WebKit-https.git
5 months agoUpdate the test to ensure OutOfMemoryError is thrown as intended
ysuzuki@apple.com [Thu, 21 Mar 2019 00:27:58 +0000 (00:27 +0000)]
Update the test to ensure OutOfMemoryError is thrown as intended
https://bugs.webkit.org/show_bug.cgi?id=196032
<rdar://problem/46842740>

Rubber stamped by Saam Barati.

* stress/create-error-out-of-memory-rope-string.js:
(assert):
(catch):

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

5 months agoWeb Inspector: Styles Redesign: Editing selector should not hide the rule
drousso@apple.com [Thu, 21 Mar 2019 00:22:06 +0000 (00:22 +0000)]
Web Inspector: Styles Redesign: Editing selector should not hide the rule
https://bugs.webkit.org/show_bug.cgi?id=178489
<rdar://problem/35062434>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Extracts the selector payload parsing logic inside `WI.DOMNodeStyles` into static functions
so that when the user changes the selector of a `WI.CSSRule`, it's able to process and
update itself with the new selector. This is mainly useful in the case where the `WI.CSSRule`
no longer applies to the selected node (meaning it won't be part of that node's
`WI.DOMNodeStyles`) in that it allows the `WI.SpreadsheetCSSStyleDeclarationSection` to
display the new selector text and the owner `WI.SpreadsheetRulesStyleDetailsPanel` to keep
that section visible even though it isn't applicable to the current node anymore.

* UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles):
(WI.DOMNodeStyles.parseSelectorListPayload): Added.
(WI.DOMNodeStyles.createSourceCodeLocation): Added.
(WI.DOMNodeStyles.prototype.refresh):
(WI.DOMNodeStyles.prototype.refresh.fetchedMatchedStyles):
(WI.DOMNodeStyles.prototype.refresh.fetchedInlineStyles):
(WI.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
(WI.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
(WI.DOMNodeStyles.prototype._parseRulePayload):
(WI.DOMNodeStyles.prototype._styleSheetContentDidChange):
(WI.DOMNodeStyles.prototype.refresh.parseRuleMatchArrayPayload): Deleted.
(WI.DOMNodeStyles.prototype._createSourceCodeLocation): Deleted.
(WI.DOMNodeStyles.prototype._parseSelectorListPayload): Deleted.
Keep track of all `WI.CSSRule` and `WI.CSSStyleDeclaration` that have ever been associated
with this object, so that if a rule's selector is changed to no longer match, and then is
changed back to match again, we are able to update that rule instead of creating a new one.

* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionSelectorWillChange): Added.
Attempt to preserve the position of any sections that are changed and no longer apply to the
current node.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector):
Drive-by: remove unused CSS classes.
* UserInterface/Models/CSSRule.js:
(WI.CSSRule.prototype.update):
(WI.CSSRule.prototype._selectorResolved):
Drive-by: remove unused event.
* UserInterface/Base/Multimap.js:
(Multimap.prototype.has): Added.
(Multimap.prototype.sets): Added.
(Multimap.prototype.copy): Added.

LayoutTests:

* inspector/unit-tests/multimap.html: Added.
* inspector/unit-tests/multimap-expected.txt: Added.

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

5 months agoDumpRenderTree crashes under WebAnimation::isRelevant when running imported/mozilla...
graouts@webkit.org [Thu, 21 Mar 2019 00:14:04 +0000 (00:14 +0000)]
DumpRenderTree crashes under WebAnimation::isRelevant when running imported/mozilla/css-transitions/test_document-get-animations.html in GuardMalloc
https://bugs.webkit.org/show_bug.cgi?id=196028
<rdar://problem/46842707>

Reviewed by Dean Jackson.

Instead of keeping a ListHashSet of raw pointers, we are now using a Vector of WeakPtrs.

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::forgetAnimation):
(WebCore::AnimationTimeline::animationTimingDidChange):
(WebCore::AnimationTimeline::cancelDeclarativeAnimation):
* animation/AnimationTimeline.h:
* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::getAnimations const):

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

5 months agoUnreviewed, rebaseline two tests after r243241.
ryanhaddad@apple.com [Thu, 21 Mar 2019 00:07:37 +0000 (00:07 +0000)]
Unreviewed, rebaseline two tests after r243241.

* http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:
* http/tests/security/anchor-download-block-crossorigin-expected.txt:

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

5 months ago[ iOS WK2 ] Layout Test imported/w3c/web-platform-tests/webrtc/simplecall.https.html...
ryanhaddad@apple.com [Thu, 21 Mar 2019 00:07:34 +0000 (00:07 +0000)]
[ iOS WK2 ] Layout Test imported/w3c/web-platform-tests/webrtc/simplecall.https.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=191707

Unreviewed test gardening.

* platform/ios/TestExpectations: Skip crashing test.

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

5 months agoWeb Inspector: no way to filter out all console messages or all evaluations/results
drousso@apple.com [Wed, 20 Mar 2019 23:53:03 +0000 (23:53 +0000)]
Web Inspector: no way to filter out all console messages or all evaluations/results
https://bugs.webkit.org/show_bug.cgi?id=167035
<rdar://problem/30023523>

Reviewed by Timothy Hatcher.

* UserInterface/Views/LogContentView.js:
(WI.LogContentView):
(WI.LogContentView.prototype.didAppendConsoleMessageView):
(WI.LogContentView.prototype._markScopeBarItemUnread):
(WI.LogContentView.prototype._markScopeBarItemForMessageLevelUnread): Added.
(WI.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WI.LogContentView.prototype._messageSourceBarSelectionDidChange):
(WI.LogContentView.prototype._scopeBarSelectionDidChange):
(WI.LogContentView.prototype._filterMessageElements):
(WI.LogContentView.prototype.performSearch):
* UserInterface/Views/LogContentView.css:
(.log-scope-bar > li.unread.evaluations::before): Added.

* UserInterface/Views/ConsoleCommandView.js:
(WI.ConsoleCommandView):
Drive-by: remove unnecessary super-class extends.
* Localizations/en.lproj/localizedStrings.js:

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

5 months agoRemove the SVG tear off objects for SVGColorAnimator
said@apple.com [Wed, 20 Mar 2019 23:51:47 +0000 (23:51 +0000)]
Remove the SVG tear off objects for SVGColorAnimator
https://bugs.webkit.org/show_bug.cgi?id=196025

Reviewed by Simon Fraser.

SVG attributes like "fill" and "stroke" do not have reflecting properties
in SVGElement but they are animatable by SMIL. Animating such attributes
is different from animating the SVG animated properties. These new classes
will be added to handle the first type of this kind of attribute: the Color:

-- SVGPropertyAnimatorCreator is added to SVGElement. It is responsible
   for creating SVGPropertyAnimators for the attribute which do not have
   reflecting animated properties stored by SVGElement. It will maintain
   a HashMap for the animated values for these attributes which is indexed
   by the attribute name. The animated values has to be RefCounted because
   the same attribute can be animated by multiple animators. So the values
   of this HashMap will be of type Ref<SVGProperty>, e.g.
    <circle cx="80" cy="120" r="35">
        <animate attributeName="fill" values="#080" begin="2s" />
        <animate attributeName="fill" values="#602;#004" begin="4s" dur="5s"/>
    </circle>

-- SVGPropertyAnimator is the a new type which animates an attribute with
   no reflecting animated property.

-- SVGPrimitivePropertyAnimator is a template class which is responsible
   for animating attributes with primitive types, e.g. Color, string and
   float. It is derived form SVGPropertyAnimator and it is initialized
   with a Ref<SVGValueProperty<PropertyType>> which is created and maintained
   by SVGPropertyAnimatorFactory.

-- SVGAnimationColorFunction is the animation function that animates the
   attributes whose type are Color. Note the conversion form String to
   Color in this class has to handle the case when its value is "attributeName="
   e.g. <animate attributeName="fill" from="attributeName="r"/>

-- SVGColorAnimator will be defined to be
   SVGPrimitivePropertyAnimator<Color, SVGAnimationColorFunction>.

The life cycle of the RefCounted properties can be explained as follows:

-- SVGPropertyAnimatorFactory checks whether its HashMap has an entry
   for the given attribute name. If it does not have, it will create a
   new value through the value creation method for this attribute.

-- SVGPropertyAnimatorFactory passes the shared animated value to the
   animator creation method. So multiple animators will be accessing the
   same value through their RefCounted pointers.

-- When the animator is about to be deleted, it will notify the target
   SVGElement which will notify its SVGPropertyAnimatorFactory.
   SVGPropertyAnimatorFactory will check its HashMap and retrieves the
   entry for the given attribute name. If the refCount is 2, it is going
   to remove the entry form the HashMap.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* svg/SVGAnimateColorElement.cpp:
(WebCore::attributeValueIsCurrentColor): Deleted.
(WebCore::SVGAnimateColorElement::determinePropertyValueTypes): Deleted.
* svg/SVGAnimateColorElement.h:
* svg/SVGAnimateElementBase.cpp:
(WebCore::SVGAnimateElementBase::attributeAnimationController):
* svg/SVGAnimatedColor.cpp: Removed.
* svg/SVGAnimatedColor.h: Removed.
* svg/SVGAnimatorFactory.h:
(WebCore::SVGAnimatorFactory::create):
* svg/SVGAttributeAnimationController.cpp:
(WebCore::SVGAttributeAnimationController::~SVGAttributeAnimationController):
* svg/SVGAttributeAnimationController.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::isAnimatedAttribute const):
(WebCore::SVGElement::createAnimator):
(WebCore::SVGElement::animatorWillBeDeleted):
* svg/SVGElement.h:
(WebCore::SVGElement::propertyAnimatorFactory):
* svg/SVGFitToViewBox.h:
* svg/SVGMPathElement.cpp:
* svg/graphics/filters/SVGFEImage.h:
* svg/properties/SVGAnimationAdditiveValueFunctionImpl.cpp: Added.
(WebCore::SVGAnimationColorFunction::colorFromString):
* svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
(WebCore::SVGAnimationColorFunction::progress):
* svg/properties/SVGAnimationFunction.h:
* svg/properties/SVGAttributeAnimator.cpp:
(WebCore::SVGAttributeAnimator::applyAnimatedStylePropertyChange):
(WebCore::SVGAttributeAnimator::removeAnimatedStyleProperty):
* svg/properties/SVGAttributeAnimator.h:
* svg/properties/SVGPrimitivePropertyAnimator.h: Added.
(WebCore::SVGPrimitivePropertyAnimator::create):
(WebCore::SVGPrimitivePropertyAnimator::SVGPrimitivePropertyAnimator):
* svg/properties/SVGPrimitivePropertyAnimatorImpl.h: Added.
* svg/properties/SVGPropertyAnimator.h: Added.
(WebCore::SVGPropertyAnimator::SVGPropertyAnimator):
(WebCore::SVGPropertyAnimator::adjustForInheritance const):
(WebCore::SVGPropertyAnimator::computeCSSPropertyValue const):
(WebCore::SVGPropertyAnimator::computeInheritedCSSPropertyValue const):
* svg/properties/SVGPropertyAnimatorFactory.h: Added.
(WebCore::SVGPropertyAnimatorFactory::isKnownAttribute):
(WebCore::SVGPropertyAnimatorFactory::createAnimator):
(WebCore::SVGPropertyAnimatorFactory::animatorWillBeDeleted):
(WebCore::SVGPropertyAnimatorFactory::createColorAnimator):
(WebCore::SVGPropertyAnimatorFactory::attributeAnimatorCreator):

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

5 months agoReduce use of LegacySync IPC message type
achristensen@apple.com [Wed, 20 Mar 2019 23:37:54 +0000 (23:37 +0000)]
Reduce use of LegacySync IPC message type
https://bugs.webkit.org/show_bug.cgi?id=194835

Reviewed by Darin Adler.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::blobSize):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
* NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::getNetworkLoadInformationRequest):
(WebKit::NetworkConnectionToWebProcess::getNetworkLoadInformationResponse):
(WebKit::NetworkConnectionToWebProcess::getNetworkLoadIntermediateInformation):
(WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics):
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::capabilities):
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
* UIProcess/Plugins/PluginProcessProxy.h:
* UIProcess/Plugins/PluginProcessProxy.messages.in:
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::launchProcess):
(WebKit::PluginProcessProxy::launchApplicationAtURL):
(WebKit::PluginProcessProxy::openURL):
(WebKit::PluginProcessProxy::openFile):
* UIProcess/WebFullScreenManagerProxy.cpp:
(WebKit::WebFullScreenManagerProxy::supportsFullScreen):
* UIProcess/WebFullScreenManagerProxy.h:
* UIProcess/WebFullScreenManagerProxy.messages.in:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::fetchWebsiteData):
(WebKit::WebProcess::deleteWebsiteData):
(WebKit::WebProcess::deleteWebsiteDataForOrigins):
(WebKit::WebProcess::processWillSuspendImminently):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

5 months agoUnreviewed test gardening after r243229.
timothy@apple.com [Wed, 20 Mar 2019 23:36:06 +0000 (23:36 +0000)]
Unreviewed test gardening after r243229.

* inspector/css/shadow-scoped-style-expected.txt: Rebaseline.
* platform/mac-highsierra/inspector/css/shadow-scoped-style-expected.txt: Added.
* platform/mac-highsierra/printing/width-overflow-expected.txt: Added.
* platform/mac-sierra/inspector/css/shadow-scoped-style-expected.txt: Added.
* platform/mac-sierra/printing/width-overflow-expected.txt: Added.
* platform/mac/printing/width-overflow-expected.txt: Rebaseline.

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

5 months agoWeb Inspector: Styles: enabledProperties don't get invalidated after removing property
nvasilyev@apple.com [Wed, 20 Mar 2019 23:34:00 +0000 (23:34 +0000)]
Web Inspector: Styles: enabledProperties don't get invalidated after removing property
https://bugs.webkit.org/show_bug.cgi?id=196038

Reviewed by Timothy Hatcher.

* UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter):

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

5 months ago[ Mac WK2 ] REGRESSION (r239333) Flaky ASSERTION FAILED: m_uncommittedState.state...
cdumez@apple.com [Wed, 20 Mar 2019 23:32:55 +0000 (23:32 +0000)]
[ Mac WK2 ] REGRESSION (r239333) Flaky ASSERTION FAILED: m_uncommittedState.state == State::Committed on http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html
https://bugs.webkit.org/show_bug.cgi?id=194225
<rdar://problem/47820247>

Unreviewed, unskip the test as it no longer appears to be flaky.

* platform/mac-wk2/TestExpectations:

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

5 months agoOpen source arm64e code.
mark.lam@apple.com [Wed, 20 Mar 2019 23:32:26 +0000 (23:32 +0000)]
Open source arm64e code.
https://bugs.webkit.org/show_bug.cgi?id=196012
<rdar://problem/49066237>

Reviewed by Keith Miller.

Source/JavaScriptCore:

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* assembler/ARM64EAssembler.h: Added.
(JSC::ARM64EAssembler::encodeGroup1):
(JSC::ARM64EAssembler::encodeGroup2):
(JSC::ARM64EAssembler::encodeGroup4):
(JSC::ARM64EAssembler::pacia1716):
(JSC::ARM64EAssembler::pacib1716):
(JSC::ARM64EAssembler::autia1716):
(JSC::ARM64EAssembler::autib1716):
(JSC::ARM64EAssembler::paciaz):
(JSC::ARM64EAssembler::paciasp):
(JSC::ARM64EAssembler::pacibz):
(JSC::ARM64EAssembler::pacibsp):
(JSC::ARM64EAssembler::autiaz):
(JSC::ARM64EAssembler::autiasp):
(JSC::ARM64EAssembler::autibz):
(JSC::ARM64EAssembler::autibsp):
(JSC::ARM64EAssembler::xpaclri):
(JSC::ARM64EAssembler::pacia):
(JSC::ARM64EAssembler::pacib):
(JSC::ARM64EAssembler::pacda):
(JSC::ARM64EAssembler::pacdb):
(JSC::ARM64EAssembler::autia):
(JSC::ARM64EAssembler::autib):
(JSC::ARM64EAssembler::autda):
(JSC::ARM64EAssembler::autdb):
(JSC::ARM64EAssembler::paciza):
(JSC::ARM64EAssembler::pacizb):
(JSC::ARM64EAssembler::pacdza):
(JSC::ARM64EAssembler::pacdzb):
(JSC::ARM64EAssembler::autiza):
(JSC::ARM64EAssembler::autizb):
(JSC::ARM64EAssembler::autdza):
(JSC::ARM64EAssembler::autdzb):
(JSC::ARM64EAssembler::xpaci):
(JSC::ARM64EAssembler::xpacd):
(JSC::ARM64EAssembler::pacga):
(JSC::ARM64EAssembler::braa):
(JSC::ARM64EAssembler::brab):
(JSC::ARM64EAssembler::blraa):
(JSC::ARM64EAssembler::blrab):
(JSC::ARM64EAssembler::braaz):
(JSC::ARM64EAssembler::brabz):
(JSC::ARM64EAssembler::blraaz):
(JSC::ARM64EAssembler::blrabz):
(JSC::ARM64EAssembler::retaa):
(JSC::ARM64EAssembler::retab):
(JSC::ARM64EAssembler::eretaa):
(JSC::ARM64EAssembler::eretab):
(JSC::ARM64EAssembler::linkPointer):
(JSC::ARM64EAssembler::repatchPointer):
(JSC::ARM64EAssembler::setPointer):
(JSC::ARM64EAssembler::readPointer):
(JSC::ARM64EAssembler::readCallTarget):
(JSC::ARM64EAssembler::ret):
* assembler/MacroAssembler.cpp:
* assembler/MacroAssembler.h:
* assembler/MacroAssemblerARM64.cpp:
* assembler/MacroAssemblerARM64E.h: Added.
(JSC::MacroAssemblerARM64E::tagReturnAddress):
(JSC::MacroAssemblerARM64E::untagReturnAddress):
(JSC::MacroAssemblerARM64E::tagPtr):
(JSC::MacroAssemblerARM64E::untagPtr):
(JSC::MacroAssemblerARM64E::removePtrTag):
(JSC::MacroAssemblerARM64E::callTrustedPtr):
(JSC::MacroAssemblerARM64E::call):
(JSC::MacroAssemblerARM64E::callRegister):
(JSC::MacroAssemblerARM64E::jump):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::reifyInlinedCallFrames):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::reifyInlinedCallFrames):
* ftl/FTLThunks.cpp:
(JSC::FTL::genericGenerationThunkGenerator):
* jit/CCallHelpers.h:
(JSC::CCallHelpers::prepareForTailCallSlow):
* jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::prepareForTailCall):
* jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::allocate):
* jit/ThunkGenerators.cpp:
(JSC::arityFixupGenerator):
* llint/LLIntOfflineAsmConfig.h:
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/ClassInfo.h:
* runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
* runtime/JSCPtrTag.cpp: Added.
(JSC::tagForPtr):
(JSC::ptrTagName):
(JSC::initializePtrTagLookup):
* runtime/JSCPtrTag.h:
(JSC::initializePtrTagLookup):
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/BlockPtr.h:
* wtf/Platform.h:
* wtf/PlatformRegisters.cpp: Added.
(WTF::threadStateLRInternal):
(WTF::threadStatePCInternal):
* wtf/PlatformRegisters.h:
* wtf/PointerPreparations.h:
* wtf/PtrTag.cpp: Added.
(WTF::tagForPtr):
(WTF::ptrTagName):
(WTF::registerPtrTagLookup):
(WTF::reportBadTag):
* wtf/PtrTag.h:
(WTF::removeCodePtrTag):
(WTF::tagCodePtrImpl):
(WTF::tagCodePtr):
(WTF::untagCodePtrImplHelper):
(WTF::untagCodePtrImpl):
(WTF::untagCodePtr):
(WTF::retagCodePtrImplHelper):
(WTF::retagCodePtrImpl):
(WTF::retagCodePtr):
(WTF::tagCFunctionPtrImpl):
(WTF::tagCFunctionPtr):
(WTF::untagCFunctionPtrImpl):
(WTF::untagCFunctionPtr):
(WTF::tagInt):
(WTF::assertIsCFunctionPtr):
(WTF::assertIsNullOrCFunctionPtr):
(WTF::assertIsNotTagged):
(WTF::assertIsTagged):
(WTF::assertIsNullOrTagged):
(WTF::isTaggedWith):
(WTF::assertIsTaggedWith):
(WTF::assertIsNullOrTaggedWith):
(WTF::usesPointerTagging):
(WTF::registerPtrTagLookup):
(WTF::reportBadTag):
(WTF::tagForPtr): Deleted.

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

5 months agoUpdate checks that determine if WebKit is system WebKit
krollin@apple.com [Wed, 20 Mar 2019 23:24:53 +0000 (23:24 +0000)]
Update checks that determine if WebKit is system WebKit
https://bugs.webkit.org/show_bug.cgi?id=195756

Unreviewed tweak of r243251 after unreviewed build fix after r243230.

* Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::AuxiliaryProcess::isSystemWebKit):

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

5 months agoUse WeakPtr instead of storing raw pointers in WebSocket code
achristensen@apple.com [Wed, 20 Mar 2019 23:15:04 +0000 (23:15 +0000)]
Use WeakPtr instead of storing raw pointers in WebSocket code
https://bugs.webkit.org/show_bug.cgi?id=196034

Reviewed by Geoff Garen.

This could prevent using freed memory if we forget to reset a pointer somewhere.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::didCloseSocketStream):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::processOutgoingFrameQueue):
(WebCore::WebSocketChannel::sendFrame):
* Modules/websockets/WebSocketChannel.h:
* Modules/websockets/WebSocketChannelClient.h:
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::WebSocketHandshake):
* Modules/websockets/WebSocketHandshake.h:

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

5 months agoUpdate checks that determine if WebKit is system WebKit
krollin@apple.com [Wed, 20 Mar 2019 23:03:14 +0000 (23:03 +0000)]
Update checks that determine if WebKit is system WebKit
https://bugs.webkit.org/show_bug.cgi?id=195756

Unreviewed build fix after r243230.

* Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::AuxiliaryProcess::isSystemWebKit):

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

5 months ago[iOS WK2] Turn on async overflow scrolling by default
simon.fraser@apple.com [Wed, 20 Mar 2019 22:59:38 +0000 (22:59 +0000)]
[iOS WK2] Turn on async overflow scrolling by default
https://bugs.webkit.org/show_bug.cgi?id=196011
rdar://problem/48453859

Reviewed by Antti Koivisto.

Source/WebKit:

Turn async overflow scroll on by default for iOS WK2.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:

LayoutTests:

New baselines, and skip some RTL tests that need a bit of work (webkit.org/b/196013).

* compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
* platform/ios-wk2/TestExpectations:
* platform/ios-wk2/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Copied from LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt.
* platform/ios-wk2/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Copied from LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt.
* platform/ios-wk2/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Added.
* platform/ios-wk2/compositing/layer-creation/scroll-partial-update-expected.txt: Added.
* platform/ios-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: Added.
* platform/ios-wk2/compositing/overflow/overflow-scroll-expected.txt:
* platform/ios-wk2/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: Added.
* platform/ios-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: Added.
* platform/ios-wk2/compositing/overflow/remove-overflow-crash2-expected.txt:
* platform/ios-wk2/compositing/overflow/scrollbar-painting-expected.txt:
* platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
* platform/ios/compositing/layers-inside-overflow-scroll-expected.txt:
* platform/ios/compositing/overflow/scroll-ancestor-update-expected.txt:
* platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
* platform/ios/compositing/self-painting-layers-expected.txt:
* scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:

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

5 months ago[iOS] Crash in WebCore::Node::renderRect
dino@apple.com [Wed, 20 Mar 2019 22:49:44 +0000 (22:49 +0000)]
[iOS] Crash in WebCore::Node::renderRect
https://bugs.webkit.org/show_bug.cgi?id=196035
<rdar://problem/49076783>

Reviewed by Antoine Quint.

When renderRect was called on an HTMLAreaElement, it would
ASSERT because it doesn't have a renderer. We hadn't noticed
this before because none of our tests were hitting this in
debug mode.

The fix is to ask the corresponding HTMLImageElement for
its renderer, and use that for the returned rectangle.

Covered by these tests that had become flakey:
    fast/images/imagemap-in-shadow-tree.html
    http/tests/download/area-download.html

* dom/Node.cpp:
(WebCore::Node::renderRect):

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

5 months agoREGRESSION (r243153): [iOS] TestWebKitAPI.FocusPreservationTests.ChangingFocusedNodeR...
dbates@webkit.org [Wed, 20 Mar 2019 22:48:04 +0000 (22:48 +0000)]
REGRESSION (r243153): [iOS] TestWebKitAPI.FocusPreservationTests.ChangingFocusedNodeResetsFocusPreservationState is failing
https://bugs.webkit.org/show_bug.cgi?id=196031
<rdar://problem/49078172>

Reviewed by Tim Horton.

The test incorrectly assumes that calling -[WKWebView resignFirstResponder] is identical to dismissing the
<select> picker. This is no longer the case following r243135. Instead use testing SPI that invokes that
same code path used when the Done button is pressed to dismiss the <select> picker.

* TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:
(TestWebKitAPI::TEST):

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

5 months agoHave smaller default quotas for third party frames
youenn@apple.com [Wed, 20 Mar 2019 22:15:03 +0000 (22:15 +0000)]
Have smaller default quotas for third party frames
https://bugs.webkit.org/show_bug.cgi?id=195841

Reviewed by Geoffrey Garen.

Source/WebCore:

Test: http/wpt/cache-storage/quota-third-party.https.html

* storage/StorageQuotaManager.h:
(WebCore::StorageQuotaManager::defaultQuota):
Change default quota to 1GB.

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::storageQuotaManager):
For third party iframes, use the default quota divided by 10.

LayoutTests:

* http/wpt/cache-storage/quota-third-party.https-expected.txt: Added.
* http/wpt/cache-storage/quota-third-party.https.html: Added.
* http/wpt/cache-storage/resources/quota-third-party-iframe.html: Added.

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

5 months agoJSC::createError needs to check for OOM in errorDescriptionForValue
tzagallo@apple.com [Wed, 20 Mar 2019 22:12:12 +0000 (22:12 +0000)]
JSC::createError needs to check for OOM in errorDescriptionForValue
https://bugs.webkit.org/show_bug.cgi?id=196032
<rdar://problem/46842740>

Reviewed by Mark Lam.

JSTests:

* stress/create-error-out-of-memory-rope-string.js: Added.

Source/JavaScriptCore:

We were missing exceptions checks at two levels:
- In errorDescriptionForValue, when the value is a string, we should
  check that JSString::value returns a valid string, since we might run
  out of memory if it is a rope and we need to resolve it.
- In createError, we should check for the result of errorDescriptionForValue
  before concatenating it with the message provided by the caller.

* runtime/ExceptionHelpers.cpp:
(JSC::errorDescriptionForValue):
(JSC::createError):
* runtime/ExceptionHelpers.h:

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

5 months agoWeb Inspector: DOM: include window as part of any event listener chain
drousso@apple.com [Wed, 20 Mar 2019 21:55:05 +0000 (21:55 +0000)]
Web Inspector: DOM: include window as part of any event listener chain
https://bugs.webkit.org/show_bug.cgi?id=195730
<rdar://problem/48916872>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/protocol/DOM.json:
Modify `DOM.getEventListenersForNode` to not save the handler object, as that was never
used by the frontend. Add an `onWindow` optional property to `DOM.EventListener` that is set
when the event listener was retrieved from the `window` object.

Source/WebCore:

Test: inspector/dom/getEventListenersForNode.html

* inspector/agents/InspectorDOMAgent.h:
(WebCore::EventListenerInfo::EventListenerInfo): Deleted.
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::getEventListeners): Deleted.

Source/WebInspectorUI:

Allow non-nodes (e.g. `window`) to be listed as the target of an event listener.
Add support for the same concept when showing breakpoint details after pausing on a specific
event listener in the Debugger/Sources navigation sidebar.

* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout):
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByEvent):
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByTarget): Added.
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.eventListenersCallback):
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners):
(WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode): Deleted.

* UserInterface/Views/EventListenerSectionGroup.js:
(WI.EventListenerSectionGroup.prototype._targetTextOrLink): Added.
(WI.EventListenerSectionGroup.prototype._nodeTextOrLink): Deleted.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._addBreakpoint):
(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
(WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .content > .breakpoints .tree-outline .item.event-target-window .icon): Added.

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint):
(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
(WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):
* UserInterface/Views/SourcesNavigationSidebarPanel.css:
(.sidebar > .panel.navigation.sources > .content > .breakpoints .tree-outline .item.event-target-window .icon): Added.

* Localizations/en.lproj/localizedStrings.js:

LayoutTests:

* inspector/dom/getEventListenersForNode.html:
* inspector/dom/getEventListenersForNode-expected.txt:
* inspector/dom/setEventListenerDisabled.html:
* inspector/dom/event-listener-add-remove.html:

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

5 months agoWeb Inspector: Runtime: lazily create the agent
drousso@apple.com [Wed, 20 Mar 2019 21:53:06 +0000 (21:53 +0000)]
Web Inspector: Runtime: lazily create the agent
https://bugs.webkit.org/show_bug.cgi?id=195972
<rdar://problem/49039655>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::createLazyAgents):

* inspector/agents/InspectorRuntimeAgent.h:
(Inspector::InspectorRuntimeAgent::enabled): Deleted.
* inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::didCreateFrontendAndBackend): Added.
(Inspector::InspectorRuntimeAgent::willDestroyFrontendAndBackend):

* inspector/agents/JSGlobalObjectRuntimeAgent.h:
* inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
(Inspector::JSGlobalObjectRuntimeAgent::didCreateFrontendAndBackend): Deleted.

Source/WebCore:

No change in functionality.

* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::createLazyAgents):

* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::createLazyAgents):

* inspector/agents/page/PageRuntimeAgent.h:
* inspector/agents/page/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::disable):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):
(WebCore::PageRuntimeAgent::didCreateFrontendAndBackend): Deleted.
(WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend): Deleted.

* inspector/agents/worker/WorkerRuntimeAgent.h:
* inspector/agents/worker/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend): Deleted.
(WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend): Deleted.

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

5 months agoWeb Inspector: Debugger: virtualize the list of variables in the Scope sidebar
drousso@apple.com [Wed, 20 Mar 2019 21:49:13 +0000 (21:49 +0000)]
Web Inspector: Debugger: virtualize the list of variables in the Scope sidebar
https://bugs.webkit.org/show_bug.cgi?id=192648
<rdar://problem/46800949>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WI.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):

* UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype.set hidden):
(WI.TreeElement.prototype._attach):
(WI.TreeElement.prototype._detach):
(WI.TreeElement.prototype.collapse):
(WI.TreeElement.prototype.expand):
Move `updateVirtualizedElements` calls to the owner `WI.TreeOutline` to ensure that they get
called. Make the remaining calls use rAF debouncing to better coalesce updates.

* UserInterface/Views/TreeOutline.js:
(WI.TreeOutline.prototype._rememberTreeElement):
(WI.TreeOutline.prototype._forgetTreeElement):
(WI.TreeOutline.prototype.registerScrollVirtualizer):
(WI.TreeOutline.prototype._updateVirtualizedElements.calculateOffsetFromContainer): Added.
(WI.TreeOutline.prototype._updateVirtualizedElements):
(WI.TreeOutline.prototype._calculateVirtualizedValues): Deleted.
Calculate the `WI.TreeOutline`'s top offset within the scroll container so that it will only
update when it's within the visual area.

* UserInterface/Views/Utilities.js:
(Array.prototype.remove):
Return whether the item was actually removed from the array.

LayoutTests:

* inspector/unit-tests/array-utilities.html:
* inspector/unit-tests/array-utilities-expected.txt:

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

5 months ago[iOS] Enable fast clicking everywhere
dino@apple.com [Wed, 20 Mar 2019 21:27:47 +0000 (21:27 +0000)]
[iOS] Enable fast clicking everywhere
https://bugs.webkit.org/show_bug.cgi?id=196023
<rdar://problem/49073589>

Reviewed by Wenson Hsieh.

Source/WebKit:

Set FastClicksEverywhere to on by default for iPhone & iPad.

* Shared/WebPreferences.yaml:
* Shared/WebPreferencesDefaultValues.h:

LayoutTests:

Add a new test for the case where "Fast Clicks Everywhere" is explicitly
set to false. This required implementing a humanSpeedZoomByDoubleTappingAt
variation.

* fast/events/ios/ipad/fast-click-always-expected.txt:
* fast/events/ios/ipad/fast-click-always.html:
* fast/events/ios/ipad/fast-click-not-always-expected.txt: Added.
* fast/events/ios/ipad/fast-click-not-always.html:
* resources/ui-helper.js:
(window.UIHelper.humanSpeedZoomByDoubleTappingAt): New helper function that pauses between
double taps, and resolves when the zoom finishes.

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

5 months agoRegression(PSON): ViewGestureController is not properly notified of process swaps...
cdumez@apple.com [Wed, 20 Mar 2019 21:26:01 +0000 (21:26 +0000)]
Regression(PSON): ViewGestureController is not properly notified of process swaps on iOS
https://bugs.webkit.org/show_bug.cgi?id=196029
<rdar://problem/48954651>

Reviewed by Tim Horton.

Source/WebKit:

If there is a ViewGestureController when process swapping, make sure we disconnect it
from the old process and reconnect it to the new one. This matches what is done in
WebViewImpl for macOS (see r238356).

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processWillSwap]):
(-[WKWebView _processDidExit]):
(-[WKWebView _didRelaunchProcess]):

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

5 months ago[CSS OM] StyledElementInlineStylePropertyMap creates a Ref cycle with its owner element
rniwa@webkit.org [Wed, 20 Mar 2019 21:23:02 +0000 (21:23 +0000)]
[CSS OM] StyledElementInlineStylePropertyMap creates a Ref cycle with its owner element
https://bugs.webkit.org/show_bug.cgi?id=195987

Reviewed by Simon Fraser.

Source/WebCore:

StyledElementInlineStylePropertyMap was leaking every element for which it was created because due to
a reference cycle. The StyledElementInlineStylePropertyMap holds onto its element using Ref and
the element also stores StyledElementInlineStylePropertyMap in ElementRareData using RefPtr.

Fixed the cycle by making the reference from StyledElementInlineStylePropertyMap weak. For now we use
a raw pointer because we can't create a WeakPtr of an element yet.

Test: css-typedom/attribute-style-map-should-not-leak-every-element.html

* css/typedom/StylePropertyMap.h:
(WebCore::StylePropertyMap): Added clearElement as a virtual function.
* dom/Element.cpp:
(WebCore::Element::~Element): Clear the element pointer in StyledElementInlineStylePropertyMap.
* dom/StyledElement.cpp:
(WebCore::StyledElementInlineStylePropertyMap::get): Added a null check for m_element.
(WebCore::StyledElementInlineStylePropertyMap::StyledElementInlineStylePropertyMap):
(WebCore::StyledElementInlineStylePropertyMap::clearElement): Added.
(WebCore::StyledElementInlineStylePropertyMap): Use a raw pointer instead of Ref to StyledElement
to avoid the leak.
* platform/graphics/CustomPaintImage.cpp:
(WebCore::HashMapStylePropertyMap::clearElement): Added.

LayoutTests:

Added a regression test.

* css-typedom/attribute-style-map-should-not-leak-every-element-expected.txt: Added.
* css-typedom/attribute-style-map-should-not-leak-every-element.html: Added.

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

5 months agoWeb Inspector: Timelines - Export fails for MediaTimelineRecords with originator...
pecoraro@apple.com [Wed, 20 Mar 2019 21:22:08 +0000 (21:22 +0000)]
Web Inspector: Timelines - Export fails for MediaTimelineRecords with originator DOM Node - Cannot serialize cyclic structure
https://bugs.webkit.org/show_bug.cgi?id=196027

Reviewed by Timothy Hatcher.

* UserInterface/Models/MediaTimelineRecord.js:
(WI.MediaTimelineRecord.prototype.toJSON):
Remove the originator since that is a WI.DOMNode and cannot
be JSON serialized.

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

5 months agoJSC test crash: stress/dont-strength-reduce-regexp-with-compile-error.js.default
msaboff@apple.com [Wed, 20 Mar 2019 21:04:10 +0000 (21:04 +0000)]
JSC test crash: stress/dont-strength-reduce-regexp-with-compile-error.js.default
https://bugs.webkit.org/show_bug.cgi?id=195906

Reviewed by Mark Lam.

The problem here as that we may successfully parsed a RegExp without running out of stack,
but later run out of stack when trying to JIT compile the same expression.

Added a check for available stack space when we call into one of the parenthesis compilation
functions that recurse.  When we don't have enough stack space to recurse, we fail the JIT
compilation and let the interpreter handle the expression.

From code inspection of the YARR interpreter it has the same issue, but I couldn't cause a failure.
Filed a new bug and added a FIXME comment for the Interpreter to have similar checks.
Given that we can reproduce a failure, this is sufficient for now.

This change is covered by the previously added failing test,
JSTests/stress/dont-strength-reduce-regexp-with-compile-error.js.

* yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::interpret):
* yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::opCompileParentheticalAssertion):
(JSC::Yarr::YarrGenerator::opCompileBody):
(JSC::Yarr::dumpCompileFailure):
* yarr/YarrJIT.h:

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

5 months agoDFGNodeAllocator.h is dead code
rmorisset@apple.com [Wed, 20 Mar 2019 20:37:01 +0000 (20:37 +0000)]
DFGNodeAllocator.h is dead code
https://bugs.webkit.org/show_bug.cgi?id=196019

Reviewed by Yusuke Suzuki.

As explained by Yusuke on IRC, the comment on DFG::Node saying that it cannot have a destructor is obsolete since https://trac.webkit.org/changeset/216815/webkit.
This patch removes both the comment and DFGNodeAllocator.h that that patch forgot to remove.

* dfg/DFGNode.h:
(JSC::DFG::Node::dumpChildren):
* dfg/DFGNodeAllocator.h: Removed.

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

5 months agoREGRESSION(r240634): Element::hasPointerCapture() passes a JS-controlled value direct...
graouts@webkit.org [Wed, 20 Mar 2019 20:35:25 +0000 (20:35 +0000)]
REGRESSION(r240634): Element::hasPointerCapture() passes a JS-controlled value directly into a HashMap as a key
https://bugs.webkit.org/show_bug.cgi?id=195683

Reviewed by Alex Christensen.

Adding the test that was supposed to have landed along with r242893.

* pointerevents/pointer-id-crash-expected.txt: Added.
* pointerevents/pointer-id-crash.html: Added.

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

5 months agoUnreviewed, fix test failures after r243161.
drousso@apple.com [Wed, 20 Mar 2019 20:31:08 +0000 (20:31 +0000)]
Unreviewed, fix test failures after r243161.

* inspector/timeline/line-column-expected.txt:
Update expected line number for code movement inside Web Inspector's injected script.

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

5 months agoappendChild should throw when inserting an ancestor of a template into its content...
rniwa@webkit.org [Wed, 20 Mar 2019 20:26:18 +0000 (20:26 +0000)]
appendChild should throw when inserting an ancestor of a template into its content adopted to another document
https://bugs.webkit.org/show_bug.cgi?id=195984

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaselined the test that is not fully passing.

* web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content-hierarcy-expected.txt:

Source/WebCore:

The WPT test caught a bug that appendChild and other DOM insertion functions were incorrectly assuming that
any node that's in a HTML template element has the current document's template document as its owner.
The assumption is wrong when the template element's content DocumentFragment is adopted to another document.

Fixed the bug by always checking the ancestor host elements in checkAcceptChild. Also

Test: fast/dom/insert-template-parent-into-adopted-content.html

* dom/ContainerNode.cpp:
(WebCore::isInTemplateContent): Deleted. This code is simply wrong.
(WebCore::containsConsideringHostElements): Deleted. Call sites are updated to use containsIncludingHostElements.
(WebCore::containsIncludingHostElements): Moved from Node.cpp and optimized this code a bit. It's more efficient
to get the parent node and check for ShadowRoot and DocumentFragment only when the parent is null than to check
for those two node types before getting the parent node.
(WebCore::checkAcceptChild): Merged two code paths to call containsIncludingHostElements. The early return for
a pseudo element is there only to prevent tree corruption in release build even in the presence of a major bug
so it shouldn't be an spec compliance issue.
* dom/Node.cpp:
(WebCore::Node::containsIncludingHostElements const): Deleted.
* dom/Node.h:

LayoutTests:

Added a regression test.

* fast/dom/insert-template-parent-into-adopted-content-expected.txt: Added.
* fast/dom/insert-template-parent-into-adopted-content.html: Added.

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

5 months agoCompress CodeOrigin into a single word in the common case
rmorisset@apple.com [Wed, 20 Mar 2019 20:24:36 +0000 (20:24 +0000)]
Compress CodeOrigin into a single word in the common case
https://bugs.webkit.org/show_bug.cgi?id=195928

Reviewed by Saam Barati.

The trick is that pointers only take 48 bits on x86_64 in practice (and we can even use the bottom three bits of that thanks to alignment), and even less on ARM64.
So we can shove the bytecode index in the top bits almost all the time.
If the bytecodeIndex is too ginormous (1<<16 in practice on x86_64), we just set one bit at the bottom and store a pointer to some out-of-line storage instead.
Finally we represent an invalid bytecodeIndex (which used to be represented by UINT_MAX) by setting the second least signifcant bit.

The patch looks very long, but most of it is just replacing direct accesses to inlineCallFrame and bytecodeIndex by the relevant getters.

End result: CodeOrigin in the common case moves from 16 bytes (8 for InlineCallFrame*, 4 for unsigned bytecodeIndex, 4 of padding) to 8.
As a reference, during running JetStream2 we allocate more than 35M CodeOrigins. While they won't all be alive at the same time, it is still quite a lot of objects, so I am hoping for some small
improvement to RAMification from this work.

The one slightly tricky part is that we must implement copy and move assignment operators and constructors to make sure that any out-of-line storage belongs to a single CodeOrigin and is destroyed exactly once.

* bytecode/ByValInfo.h:
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFor):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::globalObjectFor):
(JSC::CodeBlock::updateOSRExitCounterAndCheckIfNeedToReoptimize):
(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):
* bytecode/CodeOrigin.cpp:
(JSC::CodeOrigin::inlineDepth const):
(JSC::CodeOrigin::isApproximatelyEqualTo const):
(JSC::CodeOrigin::approximateHash const):
(JSC::CodeOrigin::inlineStack const):
(JSC::CodeOrigin::codeOriginOwner const):
(JSC::CodeOrigin::stackOffset const):
(JSC::CodeOrigin::dump const):
(JSC::CodeOrigin::inlineDepthForCallFrame): Deleted.
* bytecode/CodeOrigin.h:
(JSC::OutOfLineCodeOrigin::OutOfLineCodeOrigin):
(JSC::CodeOrigin::CodeOrigin):
(JSC::CodeOrigin::~CodeOrigin):
(JSC::CodeOrigin::isSet const):
(JSC::CodeOrigin::isHashTableDeletedValue const):
(JSC::CodeOrigin::bytecodeIndex const):
(JSC::CodeOrigin::inlineCallFrame const):
(JSC::CodeOrigin::buildCompositeValue):
(JSC::CodeOrigin::hash const):
(JSC::CodeOrigin::operator== const):
(JSC::CodeOrigin::exitingInlineKind const): Deleted.
* bytecode/DeferredSourceDump.h:
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):
(JSC::GetByIdStatus::computeFor):
* bytecode/ICStatusMap.cpp:
(JSC::ICStatusContext::isInlined const):
* bytecode/InByIdStatus.cpp:
(JSC::InByIdStatus::computeFor):
(JSC::InByIdStatus::computeForStubInfo):
* bytecode/InlineCallFrame.cpp:
(JSC::InlineCallFrame::dumpInContext const):
* bytecode/InlineCallFrame.h:
(JSC::InlineCallFrame::computeCallerSkippingTailCalls):
(JSC::InlineCallFrame::getCallerInlineFrameSkippingTailCalls):
(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock):
(JSC::CodeOrigin::walkUpInlineStack):
* bytecode/InstanceOfStatus.h:
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeForStubInfo):
(JSC::PutByIdStatus::computeFor):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGArgumentsEliminationPhase.cpp:
* dfg/DFGArgumentsUtilities.cpp:
(JSC::DFG::argumentsInvolveStackSlot):
(JSC::DFG::emitCodeToGetArgumentsArrayLength):
* dfg/DFGArrayMode.h:
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
(JSC::DFG::ByteCodeParser::setLocal):
(JSC::DFG::ByteCodeParser::setArgument):
(JSC::DFG::ByteCodeParser::flushForTerminalImpl):
(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::parseCodeBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::attemptToMakeGetArrayLength):
* dfg/DFGForAllKills.h:
(JSC::DFG::forAllKilledOperands):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dumpCodeOrigin):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::isLiveInBytecode):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
(JSC::DFG::Graph::willCatchExceptionInMachineFrame):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::executableFor):
(JSC::DFG::Graph::isStrictModeFor):
(JSC::DFG::Graph::hasExitSite):
(JSC::DFG::Graph::forAllLocalsLiveInBytecode):
* dfg/DFGLiveCatchVariablePreservationPhase.cpp:
(JSC::DFG::LiveCatchVariablePreservationPhase::handleBlockForTryCatch):
* dfg/DFGMinifiedNode.cpp:
(JSC::DFG::MinifiedNode::fromNode):
* dfg/DFGOSRAvailabilityAnalysisPhase.cpp:
(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):
(JSC::DFG::printOSRExit):
(JSC::DFG::OSRExit::compileExit):
* dfg/DFGOSRExitBase.cpp:
(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSiteSlow):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::handleExitCounts):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):
* dfg/DFGOSRExitPreparation.cpp:
(JSC::DFG::prepareCodeOriginForOSRExit):
* dfg/DFGObjectAllocationSinkingPhase.cpp:
* dfg/DFGOperations.cpp:
* dfg/DFGPreciseLocalClobberize.h:
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitGetLength):
(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueNegate):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::compileForwardVarargs):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGTierUpCheckInjectionPhase.cpp:
(JSC::DFG::TierUpCheckInjectionPhase::run):
(JSC::DFG::TierUpCheckInjectionPhase::canOSREnterAtLoopHint):
(JSC::DFG::TierUpCheckInjectionPhase::buildNaturalLoopToLoopHintMap):
* dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::run):
* dfg/DFGVariableEventStream.cpp:
(JSC::DFG::VariableEventStream::reconstruct const):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueNegate):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargsWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsLength):
(JSC::FTL::DFG::LowerDFGToB3::getCurrentCallee):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsStart):
(JSC::FTL::DFG::LowerDFGToB3::codeOriginDescriptionOfCallSite const):
* ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* interpreter/CallFrame.cpp:
(JSC::CallFrame::bytecodeOffset):
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::unwindToMachineCodeBlockFrame):
(JSC::StackVisitor::readFrame):
(JSC::StackVisitor::readNonInlinedFrame):
(JSC::inlinedFrameOffset):
(JSC::StackVisitor::readInlinedFrame):
* interpreter/StackVisitor.h:
* jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::executableFor):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::isStrictModeFor):
(JSC::AssemblyHelpers::argumentsStart):
(JSC::AssemblyHelpers::argumentCount):
* jit/PCToCodeOriginMap.cpp:
(JSC::PCToCodeOriginMap::PCToCodeOriginMap):
(JSC::PCToCodeOriginMap::findPC const):
* profiler/ProfilerOriginStack.cpp:
(JSC::Profiler::OriginStack::OriginStack):
* profiler/ProfilerOriginStack.h:
* runtime/ErrorInstance.cpp:
(JSC::appendSourceToError):
* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):

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

5 months ago[GTK] REGRESSION(r243094): crash when launching minibrowser
commit-queue@webkit.org [Wed, 20 Mar 2019 20:18:49 +0000 (20:18 +0000)]
[GTK] REGRESSION(r243094): crash when launching minibrowser
https://bugs.webkit.org/show_bug.cgi?id=195951

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-20
Reviewed by Joseph Pecoraro.

Always return the inspector from WebPageProxy::inspector() when the page hasn't been closed. The inspector is
created in WebPageProxy constructor and it's safe to use even before a process has been launched, because
m_inspectedPage is null-checked everywhere.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::inspector const):

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

5 months agoUpdate checks that determine if WebKit is system WebKit
krollin@apple.com [Wed, 20 Mar 2019 19:58:06 +0000 (19:58 +0000)]
Update checks that determine if WebKit is system WebKit
https://bugs.webkit.org/show_bug.cgi?id=195756

Reviewed by Alexey Proskuryakov.

The system WebKit can be installed in additional locations, so check
for and allow those, too.

Source/WebKit:

* Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::AuxiliaryProcess::isSystemWebKit):

Source/WTF:

* wtf/Platform.h:

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

5 months agoUnreviewed followup to r243169 to fix test failures.
timothy@apple.com [Wed, 20 Mar 2019 19:57:24 +0000 (19:57 +0000)]
Unreviewed followup to r243169 to fix test failures.

* DerivedSources.make: Add HAVE_OS_DARK_MODE_SUPPORT to FEATURE_AND_PLATFORM_DEFINES.

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

5 months agoUnreviewed test gardening. Fix the results for absolute-in-async-overflow-scroll...
simon.fraser@apple.com [Wed, 20 Mar 2019 19:56:45 +0000 (19:56 +0000)]
Unreviewed test gardening. Fix the results for absolute-in-async-overflow-scroll.html.

* compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt:
* platform/ios-wk2/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Copied from LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt.

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

5 months agoUpdate the location for XProtect.meta.plist file
krollin@apple.com [Wed, 20 Mar 2019 19:52:40 +0000 (19:52 +0000)]
Update the location for XProtect.meta.plist file
https://bugs.webkit.org/show_bug.cgi?id=195764

Reviewed by Alexey Proskuryakov.

The location of this file is changing in the future, so adjust for
that.

No new tests since there should be no observable behavior difference.

* platform/mac/BlacklistUpdater.mm:

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

5 months agoWeb Inspector: Debugger: move breakpoint storage to use `WI.ObjectStore`
drousso@apple.com [Wed, 20 Mar 2019 19:50:21 +0000 (19:50 +0000)]
Web Inspector: Debugger: move breakpoint storage to use `WI.ObjectStore`
https://bugs.webkit.org/show_bug.cgi?id=192719
<rdar://problem/46746857>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

* UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager):
(WI.DebuggerManager.prototype.addBreakpoint):
(WI.DebuggerManager.prototype.removeBreakpoint):
(WI.DebuggerManager.prototype._debuggerBreakpointOptions):
(WI.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint):
(WI.DebuggerManager.prototype._setBreakpoint):
(WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange):
(WI.DebuggerManager.prototype._saveBreakpoints): Deleted.

* UserInterface/Models/Breakpoint.js:
(WI.Breakpoint.prototype.saveIdentityToCookie):
(WI.Breakpoint.prototype.serializeOptions): Added.
(WI.Breakpoint.prototype.toJSON): Added.
(WI.Breakpoint.prototype.get options): Deleted.
(WI.Breakpoint.prototype.get info): Deleted.
(WI.Breakpoint.prototype._serializableActions): Deleted.
* UserInterface/Models/BreakpointAction.js:
(WI.BreakpointAction.prototype.toJSON): Added.
(WI.BreakpointAction.prototype.get info): Deleted.

* UserInterface/Base/ObjectStore.js:
(WI.ObjectStore.async reset): Added.
(WI.ObjectStore._open):
(WI.ObjectStore.prototype.get keyPath): Added.
(WI.ObjectStore.prototype.async.getAll):
(WI.ObjectStore.prototype.async.put): Added.
(WI.ObjectStore.prototype.async.putObject): Added.
(WI.ObjectStore.prototype.async.add): Deleted.
(WI.ObjectStore.prototype.async.addObject): Deleted.
Replace `add` with `put` so that if a key already exists, it is overridden.

* UserInterface/Controllers/AuditManager.js:
(WI.AuditManager.prototype.set editing):
(WI.AuditManager.prototype.async processJSON):

* UserInterface/Controllers/BreakpointPopoverController.js:
(WI.BreakpointPopoverController.prototype._popoverActionsAddActionButtonClicked):
Inline some `WI.Breakpoint` static values.

LayoutTests:

* inspector/unit-tests/objectStore/resources/objectStore-utilities.js:
* inspector/unit-tests/objectStore/put.html: Renamed from LayoutTests/inspector/unit-tests/objectStore/add.html.
* inspector/unit-tests/objectStore/put-expected.txt: Renamed from LayoutTests/inspector/unit-tests/objectStore/add-expected.txt.
* inspector/unit-tests/objectStore/putObject.html: Renamed from LayoutTests/inspector/unit-tests/objectStore/addObject.html.
* inspector/unit-tests/objectStore/putObject-expected.txt: Renamed from LayoutTests/inspector/unit-tests/objectStore/addObject-expected.txt.
* inspector/unit-tests/objectStore/delete-expected.txt:
* inspector/unit-tests/objectStore/delete.html:
* inspector/unit-tests/objectStore/deleteObject-expected.txt:
* inspector/unit-tests/objectStore/deleteObject.html:
* inspector/unit-tests/objectStore/clear.html:
Replace `add` with `put` so that if a key already exists, it is overridden.

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

5 months agoWeb Inspector: Sources: disabled breakpoints banner should be sticky
drousso@apple.com [Wed, 20 Mar 2019 19:37:16 +0000 (19:37 +0000)]
Web Inspector: Sources: disabled breakpoints banner should be sticky
https://bugs.webkit.org/show_bug.cgi?id=195104
<rdar://problem/48442259>

Reviewed by Timothy Hatcher.

Allow each of the individual sections to be scrolled separately from the entire sidebar.

Leverage CSS variables set via JavaScript to be able to calculate the maximum height of each
`WI.TreeOutline` section based on the number of items.

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleCallStackElementAddedOrRemoved): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed):
* UserInterface/Views/SourcesNavigationSidebarPanel.css:
(.sidebar > .panel.navigation.sources > .content):
(.sidebar > .panel.navigation.sources > .content .details-section): Added.
(.sidebar > .panel.navigation.sources > .content .details-section.paused-reason.collapsed > .header > .options,): Added.
(.sidebar > .panel.navigation.sources > .content .details-section.collapsed > .content): Added.
(.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Added.
(.sidebar > .panel.navigation.sources > .content > .call-stack-container): Added.
(.sidebar > .panel.navigation.sources > .content > .breakpoints-container): Added.
(.sidebar > .panel.navigation.sources > .content > .breakpoints-container .create-breakpoint): Added.
(.sidebar > .panel.navigation.sources > .content > .resources-container): Added.
(.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread): Added.
(.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread > .item.thread): Added.
(@media (min-height: 600px) .sidebar > .panel.navigation.sources > .content): Added.
(@media (min-height: 600px) .sidebar > .panel.navigation.sources > .content > .pause-reason-container): Added.
(@media (min-height: 600px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container)): Added.
(.sidebar > .panel.navigation.sources > .content > .details-section): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.paused-reason.collapsed > .header > .options,): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): Deleted.
(.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread): Deleted.
(.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread > .item.thread): Deleted.
(.sidebar > .panel.navigation.sources > .content > .resources): Deleted.

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

5 months ago"Reveal in Layers Tab" context menu option should not be available if the Layers...
drousso@apple.com [Wed, 20 Mar 2019 19:11:01 +0000 (19:11 +0000)]
"Reveal in Layers Tab" context menu option should not be available if the Layers Tab has not been enabled
https://bugs.webkit.org/show_bug.cgi?id=196009

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForDOMNode):

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

5 months ago[iOS] Unable to PiP web videos in Safari due to sandbox violation
pvollan@apple.com [Wed, 20 Mar 2019 19:06:44 +0000 (19:06 +0000)]
[iOS] Unable to PiP web videos in Safari due to sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=196015
<rdar://problem/48867037>

Reviewed by Brent Fulgham.

The sandbox should allow getting the iokit property 'ui-pip'.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 months ago(Test fix) Override minimumTimeBetweenDataRecordsRemoval in ResourceLoadStatisticsSto...
wilander@apple.com [Wed, 20 Mar 2019 19:01:32 +0000 (19:01 +0000)]
(Test fix) Override minimumTimeBetweenDataRecordsRemoval in ResourceLoadStatisticsStore::shouldRemoveDataRecord() during layout tests
https://bugs.webkit.org/show_bug.cgi?id=196017

Unreviewed test fix.

This patch adds a check of parameters().isRunningTest to the return of
ResourceLoadStatisticsStore::shouldRemoveDataRecord() to allow successive
layout tests to remove website data, effectively overriding the
minimumTimeBetweenDataRecordsRemoval setting.

* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords const):

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

5 months ago[iOS] Group UIWebFormAccessoryDelegate-related code and tighten it up a bit
dbates@webkit.org [Wed, 20 Mar 2019 18:59:03 +0000 (18:59 +0000)]
[iOS] Group UIWebFormAccessoryDelegate-related code and tighten it up a bit
https://bugs.webkit.org/show_bug.cgi?id=196018

Reviewed by Wenson Hsieh.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView accessoryClear]): Use uniform initializer syntax. Code could send the empty
string, but I resisted since null string, as we do now, likely encodes more compactly and we
avoid a per-process alloc.
(-[WKContentView accessoryTab:]): Fix style nit; missing space between capture list and arguments
in lambda. Also use lamdba capture initializer syntax and remove a local.
(-[WKContentView _updateAccessory]): Remove a FIXME as it can't be satified with the current
design without more bookkeeping. The design for showing and hiding an AutoFill button added in
r166933 requires knowing the title for the button when showing it via -setAccessoryViewCustomButtonTitle.
We could re-implement such that -setAccessoryViewCustomButtonTitle: stores the title and calls
-_updateAccessory, but that has the disadvantage of increasing the memory footprint of WKContentView
for the stored title and that seems worse than centralizing the logic in _updateAccessory. So,
let's not fix this FIXME. Now that we are removing the FIXME, change to use an early return style.
(-[WKContentView _hideKeyboard]): Micro optimization; only call _updateAccessory if we have
a form accessory view. This method is called everytime we load a page (more precisely when we
commit the load for a page) in addition to everytime we blur (defocus) an element. No need to
update an accessory if we don't have one.

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

5 months agoWeb Inspector: Console: add a setting for controlling auto-expansion of Trace messages
drousso@apple.com [Wed, 20 Mar 2019 18:58:04 +0000 (18:58 +0000)]
Web Inspector: Console: add a setting for controlling auto-expansion of Trace messages
https://bugs.webkit.org/show_bug.cgi?id=195690

Reviewed by Timothy Hatcher.

* UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype._appendStackTrace):

* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):

* Localizations/en.lproj/localizedStrings.js:

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

5 months agoWeb Inspector: Database: lazily create the agent
drousso@apple.com [Wed, 20 Mar 2019 18:53:47 +0000 (18:53 +0000)]
Web Inspector: Database: lazily create the agent
https://bugs.webkit.org/show_bug.cgi?id=195587
<rdar://problem/48791735>

Reviewed by Timothy Hatcher.

Source/WebCore:

No change in functionality.

* inspector/agents/InspectorDatabaseAgent.h:
* inspector/agents/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::didCommitLoad): Added.
(WebCore::InspectorDatabaseAgent::didOpenDatabase):
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::enable):
(WebCore::InspectorDatabaseAgent::disable):
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
(WebCore::InspectorDatabaseAgent::executeSQL):
(WebCore::InspectorDatabaseAgent::databaseId):
(WebCore::InspectorDatabaseAgent::findByFileName):
(WebCore::InspectorDatabaseAgent::databaseForId):
(WebCore::InspectorDatabaseAgent::clearResources): Deleted.
(WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent): Deleted.
* inspector/InspectorDatabaseResource.h:
(WebCore::InspectorDatabaseResource::database const):
(WebCore::InspectorDatabaseResource::setDatabase):
(WebCore::InspectorDatabaseResource::database): Deleted.
* inspector/InspectorDatabaseResource.cpp:
(WebCore::InspectorDatabaseResource::create):
(WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
(WebCore::InspectorDatabaseResource::bind):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didOpenDatabase):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
Pass the `Database` as a reference instead of a pointer. Retrieve any information directly
from the `Database`, rather than using the arguments that were used to create it.

* Modules/webdatabase/Database.h:
(WebCore::Database::expectedVersion const): Deleted.
* Modules/webdatabase/Database.cpp:
(WebCore::Database::expectedVersion const): Added.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::closeAllDatabases):
(WebCore::DatabaseTracker::openDatabases): Added.
Expose various values used by `InspectorDatabaseAgent` and `InspectorDatabaseResource`.

* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::createLazyAgents):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):

* inspector/CommandLineAPIHost.h:
(WebCore::CommandLineAPIHost::init):
* inspector/CommandLineAPIHost.cpp:
(WebCore::CommandLineAPIHost::disconnect):
(WebCore::CommandLineAPIHost::inspect):
(WebCore::CommandLineAPIHost::clearConsoleMessages):
(WebCore::CommandLineAPIHost::databaseId):
(WebCore::CommandLineAPIHost::storageId):
Rather than pass each agent individually, pass the entire `InstrumentingAgents` so that the
current agent can be used instead of whatever was initially created.

LayoutTests:

* inspector/protocol/backend-dispatcher-argument-errors.html:
* inspector/runtime/CommandLineAPI-inspect.html:

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

5 months ago[css-grid] Always consider baseline shim for the minimum contribution
commit-queue@webkit.org [Wed, 20 Mar 2019 18:26:40 +0000 (18:26 +0000)]
[css-grid] Always consider baseline shim for the minimum contribution
https://bugs.webkit.org/show_bug.cgi?id=195964

Patch by Oriol Brufau <obrufau@igalia.com> on 2019-03-20
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Import WPT tests.

* web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-expected.txt: Added.
* web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr-expected.txt: Added.
* web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html: Added.
* web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl-expected.txt: Added.
* web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html: Added.
* web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html: Added.
* web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-lr.html
       imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim-vertical-rl.html
       imported/w3c/web-platform-tests/css/css-grid/layout-algorithm/grid-minimum-contribution-baseline-shim.html

Before this patch, the shim used for baseline alignment is not taken
into consideration when calculating the minimum contribution of a grid
item if its preferred size is auto, its minimum size is auto, and the
max track sizing function is a fixed small value. In this case, the
auto minimum size can produce a smaller track than if it was 0.

The specification needs to clarify how baseline shims interact with
minimum contributions (https://github.com/w3c/csswg-drafts/issues/3660),
but the above doesn't make sense.

* rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):

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

5 months ago[ews-build] Improve failure summary string for ApplyPatch step
aakash_jain@apple.com [Wed, 20 Mar 2019 18:10:32 +0000 (18:10 +0000)]
[ews-build] Improve failure summary string for ApplyPatch step
https://bugs.webkit.org/show_bug.cgi?id=195995

Reviewed by Alexey Proskuryakov.

* BuildSlaveSupport/ews-build/steps.py:
(ApplyPatch.getResultSummary): Override getResultSummary.

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

5 months agoUnreviewed, further attempt to fix clang 3.8 build
mcatanzaro@igalia.com [Wed, 20 Mar 2019 18:03:39 +0000 (18:03 +0000)]
Unreviewed, further attempt to fix clang 3.8 build
https://bugs.webkit.org/show_bug.cgi?id=195947

* wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::allocate):

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

5 months agoREGRESSION(r243115) breaks build for clang 3.8
mcatanzaro@igalia.com [Wed, 20 Mar 2019 18:02:52 +0000 (18:02 +0000)]
REGRESSION(r243115) breaks build for clang 3.8
https://bugs.webkit.org/show_bug.cgi?id=195947

Reviewed by Chris Dumez.

* wtf/text/StringConcatenate.h:
(WTF::tryMakeStringFromAdapters):

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

5 months agoWeb Inspector: DOM: selecting a node in a different frame should automatically switch...
drousso@apple.com [Wed, 20 Mar 2019 17:45:02 +0000 (17:45 +0000)]
Web Inspector: DOM: selecting a node in a different frame should automatically switch the console prompt's execution context
https://bugs.webkit.org/show_bug.cgi?id=195805
<rdar://problem/48930866>

Reviewed by Timothy Hatcher.

Add an "Auto" execution context item that is selected by default and will update the
selected execution context whenever the inspected node changes. It will also display the
preferred name for whatever execution context is currently active.

* UserInterface/Views/QuickConsole.js:
(WI.QuickConsole):
(WI.QuickConsole.prototype.initializeMainExecutionContextPathComponent):
(WI.QuickConsole.prototype._preferredNameForFrame): Added.
(WI.QuickConsole.prototype._selectExecutionContext): Added.
(WI.QuickConsole.prototype._executionContextPathComponentsToDisplay):
(WI.QuickConsole.prototype._rebuildExecutionContextPathComponents):
(WI.QuickConsole.prototype._framePageExecutionContextsChanged):
(WI.QuickConsole.prototype._frameExecutionContextsCleared):
(WI.QuickConsole.prototype._activeExecutionContextChanged):
(WI.QuickConsole.prototype._createExecutionContextPathComponent):
(WI.QuickConsole.prototype._insertOtherExecutionContextPathComponent):
(WI.QuickConsole.prototype._removeOtherExecutionContextPathComponent):
(WI.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
(WI.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
(WI.QuickConsole.prototype._targetRemoved):
(WI.QuickConsole.prototype._pathComponentSelected):
(WI.QuickConsole.prototype._handleInspectedNodeChanged): Added.
(WI.QuickConsole.prototype.get selectedExecutionContext): Deleted.
(WI.QuickConsole.prototype.set selectedExecutionContext): Deleted.
(WI.QuickConsole.prototype._createExecutionContextPathComponentFromFrame): Deleted.
* UserInterface/Views/QuickConsole.css:
(.quick-console > .navigation-bar > .hierarchical-path:not(.automatic-execution-context)): Added.
(.quick-console > .navigation-bar > .hierarchical-path:not(.automatic-execution-context) .execution-context): Added.
(.quick-console > .navigation-bar > .hierarchical-path:not(.automatic-execution-context) .execution-context .selector-arrows): Added.
(.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context): Deleted.
(.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context .selector-arrows): Deleted.

* UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.get inspectedNode): Added.
(WI.DOMManager.prototype.setInspectedNode):
Broadcast when the inspected node changes.

* UserInterface/Views/NavigationBar.js:
(WI.NavigationBar.prototype.layout):
When `sizesToFit` is enabled, don't force any items to be hidden.

* Localizations/en.lproj/localizedStrings.js:

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

5 months agoWeb Inspector: refactor WI.TimelineDataGridNode and its subclasses to unify the API...
drousso@apple.com [Wed, 20 Mar 2019 17:43:05 +0000 (17:43 +0000)]
Web Inspector: refactor WI.TimelineDataGridNode and its subclasses to unify the API surface
https://bugs.webkit.org/show_bug.cgi?id=195959
<rdar://problem/49028896>

Reviewed by Timothy Hatcher.

* UserInterface/Views/TimelineDataGridNode.js:
(WI.TimelineDataGridNode.prototype.get records):
(WI.TimelineDataGridNode.prototype.get data):
(WI.TimelineDataGridNode.prototype.refresh):

* UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
(WI.HeapAllocationsTimelineDataGridNode):
(WI.HeapAllocationsTimelineDataGridNode.prototype.get heapSnapshot): Added.
(WI.HeapAllocationsTimelineDataGridNode.prototype.get data):
(WI.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
(WI.HeapAllocationsTimelineDataGridNode.prototype.createCells):
(WI.HeapAllocationsTimelineDataGridNode.prototype._handleHeapSnapshotCollectedNodes):
(WI.HeapAllocationsTimelineDataGridNode.prototype._handleHeapSnapshotInvalidated):
(WI.HeapAllocationsTimelineDataGridNode.prototype.get record): Deleted.
(WI.HeapAllocationsTimelineDataGridNode.prototype.updateTimestamp): Deleted.
(WI.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotCollectedNodes): Deleted.
(WI.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotInvalidated): Deleted.

* UserInterface/Views/LayoutTimelineDataGridNode.js:
(WI.LayoutTimelineDataGridNode):
(WI.LayoutTimelineDataGridNode.prototype.get data):
(WI.LayoutTimelineDataGridNode.prototype.createCellContent):
(WI.LayoutTimelineDataGridNode.prototype.get records): Deleted.

* UserInterface/Views/MediaTimelineDataGridNode.js:
(WI.MediaTimelineDataGridNode):
(WI.MediaTimelineDataGridNode.prototype.get records): Deleted.

* UserInterface/Views/ProfileNodeDataGridNode.js:
(WI.ProfileNodeDataGridNode):
(WI.ProfileNodeDataGridNode.prototype.get profileNode):
(WI.ProfileNodeDataGridNode.prototype.get data):
(WI.ProfileNodeDataGridNode.prototype.createCellContent):
(WI.ProfileNodeDataGridNode.prototype._populate):
(WI.ProfileNodeDataGridNode.prototype.get records): Deleted.
(WI.ProfileNodeDataGridNode.prototype.get baseStartTime): Deleted.
(WI.ProfileNodeDataGridNode.prototype.get rangeStartTime): Deleted.
(WI.ProfileNodeDataGridNode.prototype.get rangeEndTime): Deleted.
(WI.ProfileNodeDataGridNode.prototype.updateRangeTimes): Deleted.
(WI.ProfileNodeDataGridNode.prototype.refresh): Deleted.

* UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
(WI.RenderingFrameTimelineDataGridNode):
(WI.RenderingFrameTimelineDataGridNode.prototype.get data):
(WI.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
(WI.RenderingFrameTimelineDataGridNode.prototype.get records): Deleted.

* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WI.ResourceTimelineDataGridNode):
(WI.ResourceTimelineDataGridNode.prototype.get resource):
(WI.ResourceTimelineDataGridNode.prototype.get data):
(WI.ResourceTimelineDataGridNode.prototype.createCellContent):
(WI.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
(WI.ResourceTimelineDataGridNode.prototype.filterableDataForColumn):
(WI.ResourceTimelineDataGridNode.prototype._createNameCellDocumentFragment):
(WI.ResourceTimelineDataGridNode.prototype._cachedCellContent):
(WI.ResourceTimelineDataGridNode.prototype._timelineRecordUpdated):
(WI.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
(WI.ResourceTimelineDataGridNode.prototype._updateStatus):
(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get startTime):
(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get currentTime):
(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get endTime):
(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get _extraTimePadding):
(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
(WI.ResourceTimelineDataGridNode.prototype.get records): Deleted.

* UserInterface/Views/ResourceTimingPopoverDataGridNode.js:
(WI.ResourceTimingPopoverDataGridNode):
(WI.ResourceTimingPopoverDataGridNode.prototype.get records): Deleted.

* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WI.ScriptTimelineDataGridNode.prototype.get data):
(WI.ScriptTimelineDataGridNode.prototype.get subtitle):
(WI.ScriptTimelineDataGridNode.prototype.createCellContent):
(WI.ScriptTimelineDataGridNode.prototype.get records): Deleted.
(WI.ScriptTimelineDataGridNode.prototype.get baseStartTime): Deleted.
(WI.ScriptTimelineDataGridNode.prototype.get rangeStartTime): Deleted.
(WI.ScriptTimelineDataGridNode.prototype.get rangeEndTime): Deleted.
(WI.ScriptTimelineDataGridNode.prototype.updateRangeTimes): Deleted.

* UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
(WI.SourceCodeTimelineTimelineDataGridNode.prototype.get data):

* UserInterface/Views/HeapAllocationsTimelineView.js:
(WI.HeapAllocationsTimelineView):
(WI.HeapAllocationsTimelineView.prototype.layout):
(WI.HeapAllocationsTimelineView.prototype.reset):
* UserInterface/Views/LayoutTimelineView.js:
(WI.LayoutTimelineView.prototype._processPendingRecords):
* UserInterface/Views/MediaTimelineView.js:
(WI.MediaTimelineView.prototype._processPendingRecords):
* UserInterface/Views/NetworkTimelineView.js:
(WI.NetworkTimelineView.prototype._processPendingRecords):
* UserInterface/Views/OverviewTimelineView.js:
(WI.OverviewTimelineView.prototype._addResourceToDataGridIfNeeded):
(WI.OverviewTimelineView.prototype._addSourceCodeTimeline):
* UserInterface/Views/RenderingFrameTimelineView.js:
(WI.RenderingFrameTimelineView.prototype._processPendingRecords):
* UserInterface/Views/ScriptDetailsTimelineView.js:
(WI.ScriptDetailsTimelineView.prototype.layout):
(WI.ScriptDetailsTimelineView.prototype._processPendingRecords):
Update Timeline `WI.DataGrid` views to use the new constructor format.

* UserInterface/Views/ResourceTimelineDataGridNode.css:
(.resource-timing-popover-content .data-grid td.graph-column):
Drive-by: add extra padding before/after resource timing bars shown when hovering.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243213 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 months agoFix _getContentsAsAttributedStringWithCompletionHandler availability for iOS.
commit-queue@webkit.org [Wed, 20 Mar 2019 16:47:55 +0000 (16:47 +0000)]
Fix _getContentsAsAttributedStringWithCompletionHandler availability for iOS.
https://bugs.webkit.org/show_bug.cgi?id=195999

Patch by Olivier Robin <olivierrobin@chromium.org> on 2019-03-20
Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

5 months agoSome elements lag behind async overflow scrolling on palace-games.com
simon.fraser@apple.com [Wed, 20 Mar 2019 16:44:49 +0000 (16:44 +0000)]
Some elements lag behind async overflow scrolling on palace-games.com
https://bugs.webkit.org/show_bug.cgi?id=195934

Reviewed by Zalan Bujtas.
Source/WebCore:

The logic added in r242997 was wrong for an absolutely-positioned layer whose containig block was
inside an overflow:scroll, but whose compositing ancestor was outside. This is a case where
we need to make a Positioning node for the absolute layer, because it needs to move along
with the scrolled content.

There are six permutations of overflow, containing block and compositing ancestor that we care about.
Showing renderer (aka DOM) order, they are (where <- indicates child <- parent):

layer <- cb <- ca <- os -- no positioned node required
layer <- cb <- os <- ca -- compositing parent skips overflow, need a "Moved" Positioned node.
layer <- ov <- cb <- ca -- no positioned node required
layer <- ov <- ca <- cb -- no positioned node required
layer <- ca <- cb <- ov -- no positioned node required
layer <- ca <- ov <- cb -- containing block skips overflow, need a "Stationary" Positioned node.

[cb = containing block, ca = compositing ancestor, ov = overflow scroll]

Test: scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html

* rendering/RenderLayer.cpp:
(WebCore::outputPaintOrderTreeRecursive):
* rendering/RenderLayerCompositor.cpp:
(WebCore::layerParentedAcrossCoordinatedScrollingBoundary):
(WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):

LayoutTests:

Add a test with more combinations of overflow, containing block and compositing ancestor.

* platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt: Added.
* scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt: Added.
* scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html: Added.

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

5 months agoAdopt RegistrableDomain in the Storage Access API prompt code paths
bfulgham@apple.com [Wed, 20 Mar 2019 16:41:15 +0000 (16:41 +0000)]
Adopt RegistrableDomain in the Storage Access API prompt code paths
https://bugs.webkit.org/show_bug.cgi?id=195957
<rdar://problem/49048028>

Reviewed by Chris Dumez.

While making the code changes in Bug 195866 we noticed that strings were being
used to pass the origins for the API calls. We should adopt the RegistrableDomain
class to improve type safety and avoid introducing bugs in the future.

* UIProcess/API/APIUIClient.h:
(API::UIClient::requestStorageAccessConfirm):
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageUIClient):
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm):
* UIProcess/Cocoa/WKStorageAccessAlert.h:
* UIProcess/Cocoa/WKStorageAccessAlert.mm:
(WebKit::presentStorageAccessAlert):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestStorageAccessConfirm):

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

5 months agoExplicitly trigger compositing for layers that need to be moved by ScrollingTreePosit...
simon.fraser@apple.com [Wed, 20 Mar 2019 16:32:32 +0000 (16:32 +0000)]
Explicitly trigger compositing for layers that need to be moved by ScrollingTreePositionedNodes
https://bugs.webkit.org/show_bug.cgi?id=195710
Source/WebCore:

<rdar://problem/48867502>

Reviewed by Zalan Bujtas.

A position:absolute layer whose containing block is outside an enclosing overflow:scroll, but
whose compositing ancestor is the overflow or is inside it, needs to be composited so that
we can make a Positioning scrolling tree node for it.

Handle this case as a "OverflowScrollPositioning" indirect compositing reason.

Test: compositing/layer-creation/absolute-in-async-overflow-scroll.html

* inspector/agents/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::logReasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
(WebCore::RenderLayerCompositor::layerContainingBlockCrossesCoordinatedScrollingBoundary):
(WebCore::layerContainingBlockCrossesCoordinatedScrollingBoundary): Deleted.
* rendering/RenderLayerCompositor.h: Generalize OverflowScrollingTouch to OverflowScrolling.

LayoutTests:

Reviewed by Zalan Bujtas.

* compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Added.
* compositing/layer-creation/absolute-in-async-overflow-scroll.html: Added.

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

5 months agoWeb Inspector: changes to CSS resources only take affect once editing stops
drousso@apple.com [Wed, 20 Mar 2019 16:28:16 +0000 (16:28 +0000)]
Web Inspector: changes to CSS resources only take affect once editing stops
https://bugs.webkit.org/show_bug.cgi?id=195774
<rdar://problem/48905413>

Reviewed by Timothy Hatcher.

* UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound):
(WI.CSSManager.prototype._resourceContentDidChange):
(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent):
(WI.CSSManager.prototype._updateResourceContent):
Use a `Throttler` instead of a 500ms debounce.

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

5 months agoWeb Inspector: Search: allow DOM searches to be case sensitive
drousso@apple.com [Wed, 20 Mar 2019 16:21:37 +0000 (16:21 +0000)]
Web Inspector: Search: allow DOM searches to be case sensitive
https://bugs.webkit.org/show_bug.cgi?id=194673
<rdar://problem/48087577>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Since `DOM.performSearch` also searches by selector and XPath, some results may appear
as unexpected. As an example, searching for "BoDy" will still return the <body> as a result,
as although the literal node name ("BODY") didn't match, it did match via selector/XPath.

* inspector/protocol/DOM.json:
Allow `DOM.performSearch` to be case sensitive.

Source/WebCore:

Tests: inspector/dom/dom-search.html
       inspector/dom/dom-search-caseSensitive.html

Since `DOM.performSearch` also searches by selector and XPath, some results may appear
as unexpected. As an example, searching for "BoDy" will still return the <body> as a result,
as although the literal node name ("BODY") didn't match, it did match via selector/XPath.

* inspector/agents/InspectorDOMAgent.h:
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::performSearch):

* inspector/InspectorNodeFinder.h:
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::InspectorNodeFinder):
(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
(WebCore::InspectorNodeFinder::checkEquals): Added.
(WebCore::InspectorNodeFinder::checkContains): Added.
(WebCore::InspectorNodeFinder::checkStartsWith): Added.
(WebCore::InspectorNodeFinder::checkEndsWith): Added.
(WebCore::InspectorNodeFinder::matchesAttribute):
(WebCore::InspectorNodeFinder::matchesElement):
(WebCore::InspectorNodeFinder::searchUsingXPath):
(WebCore::InspectorNodeFinder::searchUsingCSSSelectors):

Source/WebInspectorUI:

* UserInterface/Views/SearchSidebarPanel.js:
(WI.SearchSidebarPanel.prototype.performSearch):

* UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView.prototype.performSearch.contextNodesReady):

* UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.performSearch.callback): Deleted.
(WI.DOMManager.prototype.performSearch): Deleted.
(WI.DOMManager.prototype.searchResult.mycallback): Deleted.
(WI.DOMManager.prototype.searchResult): Deleted.
(WI.DOMManager.prototype.cancelSearch): Deleted.
Drive-by: remove unused code.
LayoutTests:

* inspector/dom/dom-search-caseSensitive.html: Copied from LayoutTests/inspector/dom/dom-search.html.
* inspector/dom/dom-search-caseSensitive-expected.txt: Copied from LayoutTests/inspector/dom/dom-search-expected.txt.
* inspector/dom/dom-search-expected.txt:
* inspector/dom/resources/dom-search-queries.js:
(TestPage.registerInitializer):

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

5 months agoAI rule for ValueBitNot/ValueBitXor/ValueBitAnd/ValueBitOr is wrong
sbarati@apple.com [Wed, 20 Mar 2019 16:17:44 +0000 (16:17 +0000)]
AI rule for ValueBitNot/ValueBitXor/ValueBitAnd/ValueBitOr is wrong
https://bugs.webkit.org/show_bug.cgi?id=195980

Reviewed by Yusuke Suzuki.

They were all saying they could be type: (SpecBoolInt32, SpecBigInt)
However, they should have been type: (SpecInt32Only, SpecBigInt)

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

5 months agoUnreviewed, fix typo in comment added in r243156.
cdumez@apple.com [Wed, 20 Mar 2019 16:17:21 +0000 (16:17 +0000)]
Unreviewed, fix typo in comment added in r243156.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::postMessageToInjectedBundle):

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

5 months agoRemove copyRef() calls added in r243163
cdumez@apple.com [Wed, 20 Mar 2019 16:13:30 +0000 (16:13 +0000)]
Remove copyRef() calls added in r243163
https://bugs.webkit.org/show_bug.cgi?id=195962

Patch by Michael Catanzaro <mcatanzaro@igalia.com> on 2019-03-20
Reviewed by Chris Dumez.

Source/JavaScriptCore:

As best I can tell, may be a GCC 9 bug. It shouldn't warn about this case because the return
value is noncopyable and the WTFMove() is absolutely required. We can avoid the warning
without refcount churn by introducing an intermediate variable.

* inspector/scripts/codegen/cpp_generator_templates.py:

Source/WebCore:

The first two cases here can just directly return the RefPtr.

In the third case, we have to work around a GCC 6 bug because GCC 6 is unable to pick the
right constructor to use, unlike modern compilers.

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::bodyAsFormData const):
(WebCore::FetchBody::take):

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

5 months agoUnreviewed, drop invalid assertions landed in r243163.
cdumez@apple.com [Wed, 20 Mar 2019 16:10:17 +0000 (16:10 +0000)]
Unreviewed, drop invalid assertions landed in r243163.

Those assertions were causing some API tests to crash.
Also include some post-review suggestions from Darin.

* Shared/CallbackID.h:
(WebKit::CallbackID::operator=):
* Shared/OptionalCallbackID.h:
(WebKit::OptionalCallbackID::operator=):

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

5 months agoUnreviewed, fix assertion failures in API tests after r243159.
cdumez@apple.com [Wed, 20 Mar 2019 15:59:40 +0000 (15:59 +0000)]
Unreviewed, fix assertion failures in API tests after r243159.

* UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::removeProcess):

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

5 months agoUnreviewed test gardening.
zalan@apple.com [Wed, 20 Mar 2019 14:25:04 +0000 (14:25 +0000)]
Unreviewed test gardening.

* TestExpectations: This test case asserts on all platforms.
* platform/mac/TestExpectations:

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

5 months ago[GLIB] Optimize jsc_value_object_define_property_data|accessor
carlosgc@webkit.org [Wed, 20 Mar 2019 13:55:54 +0000 (13:55 +0000)]
[GLIB] Optimize jsc_value_object_define_property_data|accessor
https://bugs.webkit.org/show_bug.cgi?id=195679

Reviewed by Saam Barati.

Use direct C++ call instead of using the JSC GLib API to create the descriptor object and invoke Object.defineProperty().

* API/glib/JSCValue.cpp:
(jsc_value_object_define_property_data):
(jsc_value_object_define_property_accessor):

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

5 months ago[MSE][GStreamer] Fix handling of resolution changes in AppendPipeline
aboya@igalia.com [Wed, 20 Mar 2019 13:11:08 +0000 (13:11 +0000)]
[MSE][GStreamer] Fix handling of resolution changes in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=195855

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

MediaSample instances produced by the AppendPipeline were not
accounting for resolution changes. The causes of this are twofold:

1) m_presentationSize is set by connectDemuxerSrcPadToAppsink() (by
calling parseDemuxerSrcPadCaps()), but not by appsinkCapsChanged().

2) appsinkCapsChanged() was being called in the main thread as an
asynchronous task. In consequence, even if m_presentationSize is set
there, many samples with the new resolution would still be wrapped in
a MediaSampleGStreamer using the old resolution by the main thread
running consumeAppsinkAvailableSamples() before appsinkCapsChanged()
is dispatched.

This patch fixes these problems by updating m_presentationSize in
appsinkCapsChanged() and making the streaming thread block until the
main thread has dispatched appsinkCapsChanged(). This way the handling
of caps changes is serialized with the handling of frames.

Test: media/media-source/media-source-samples-resolution-change.html

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

LayoutTests:

* media/media-source/content/test-green-6s-320x240.mp4: Added.
* media/media-source/content/test-red-3s-480x360.mp4: Added.
* media/media-source/media-source-samples-resolution-change-expected.txt: Added.
* media/media-source/media-source-samples-resolution-change.html: Added.

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

5 months agoAX: Implement support for new meter ARIA role
jdiggs@igalia.com [Wed, 20 Mar 2019 13:09:02 +0000 (13:09 +0000)]
AX: Implement support for new meter ARIA role
https://bugs.webkit.org/show_bug.cgi?id=195966

Reviewed by Chris Fleizach.

Source/WebCore:

Add the new ARIA role to the internal rolemap so that it is treated
in the same fashion as its HTML element counterpart.

No new tests. Instead add the role to the existing role-exposure tests.

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isMeter const):
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::computedRoleString const):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

Tools:

Update Core role for ATK_ROLE_LEVEL_BAR from AXProgressIndicator
to AXLevelIndicator.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

LayoutTests:

Add new role to the existing role exposure tests and update the
expectations accordingly.

* accessibility/gtk/xml-roles-exposed-expected.txt:
* accessibility/gtk/xml-roles-exposed.html:
* accessibility/roles-computedRoleString.html:
* accessibility/roles-exposed.html:
* platform/gtk/accessibility/roles-computedRoleString-expected.txt:
* platform/gtk/accessibility/roles-exposed-expected.txt:
* platform/mac/accessibility/roles-computedRoleString-expected.txt:
* platform/mac/accessibility/roles-exposed-expected.txt:
* platform/mac-wk2/accessibility/roles-exposed-expected.txt:

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

5 months ago[GStreamer] Switch back to webkitwebsrc for adaptive streaming fragments downloading
philn@webkit.org [Wed, 20 Mar 2019 11:22:57 +0000 (11:22 +0000)]
[GStreamer] Switch back to webkitwebsrc for adaptive streaming fragments downloading
https://bugs.webkit.org/show_bug.cgi?id=195948

Reviewed by Xabier Rodriguez-Calvar.

The webkitwebsrc element now behaves much better when used through
GStreamer's adaptivedemux, so use it for all WebKit media
downloads. The MediaPlayer needed by the webkitwebsrc element now
travels through GstContext messages and queries so that it can be
shared by multiple elements, typically the first webkitwebsrc
element downloads the HLS manifest and then adaptivedemux, through
uridownloader, will create new webkitwebsrc elements for fragments
downloading. Those new elements will query the first webkitwebsrc
element for its context.

The previous hack used to check SecurityOrigins can
also be cleaned-up. The origins are now cached upon reception of
the HTTP headers message from webkitwebsrc.

No new tests, existing http/tests/media/hls tests cover this change.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL):
(WebCore::MediaPlayerPrivateGStreamer::loadFull):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):
(WebCore::convertToInternalProtocol): Deleted.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkit_web_src_class_init):
(webKitWebSrcSetContext):
(webKitWebSrcStart):
(webKitWebSrcGetProtocols):
(webKitWebSrcSetUri):
(CachedResourceStreamingClient::responseReceived):
(convertPlaybinURI): Deleted.
(webKitSrcWouldTaintOrigin): Deleted.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

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

5 months ago[GStreamer][WebRTC]: Refactor to make the encoding happen synchronously
commit-queue@webkit.org [Wed, 20 Mar 2019 09:47:26 +0000 (09:47 +0000)]
[GStreamer][WebRTC]: Refactor to make the encoding happen synchronously
https://bugs.webkit.org/show_bug.cgi?id=195674

This simplifies the code and make sure that everything is called from the right
thread. It also makes it so we follow the same way of doing things as other libwebrtc
encoders.

Also "s/codecSpecifiInfos/codecSpecificInfos/"

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-03-20
Reviewed by Philippe Normand.

No new test as this is just a refactoring

* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoder::InitEncode):
(WebCore::GStreamerVideoEncoder::returnFromFlowReturn):

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

5 months agoAdd an platform-driven spell-checking mechanism
timothy_horton@apple.com [Wed, 20 Mar 2019 07:32:40 +0000 (07:32 +0000)]
Add an platform-driven spell-checking mechanism
https://bugs.webkit.org/show_bug.cgi?id=195795

Reviewed by Ryosuke Niwa.

Source/WebCore:

* dom/Document.cpp:
(WebCore::Document::textInserted):
PlatformTextChecking markers are not expected
to propagate to newly inserted text, so remove them.

* dom/DocumentMarker.h:
(WebCore::DocumentMarker::allMarkers):
Add a new type of DocumentMarker, PlatformTextChecking,
and a new data variant that stores a key value pair of strings.

* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addPlatformTextCheckingMarker):
(WebCore::DocumentMarkerController::removeMarkers):
(WebCore::DocumentMarkerController::filterMarkers):
(WebCore::shouldInsertAsSeparateMarker):
* dom/DocumentMarkerController.h:
Export some things.
Add addPlatformTextCheckingMarker, like the others.
Make it possible to filter out markers of a particular type
in a range with a predicate function.

* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
Propagate PlatformTextChecking data.
A future change should probably make it possible for
any DocumentMarker to copy its data here, instead of
special-casing each type that is important.

* editing/Editor.cpp:
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::Editor::markMisspellingsAndBadGrammar):
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):
(WebCore::platformDrivenTextCheckerEnabled):
* editing/TextCheckingHelper.h:
Bail from traditional spell checking if this mechanism is
enabled. (I wrote it this way to make it runtime switchable
in the near future, and to be similar to unifiedTextCheckerEnabled).

Source/WebKit:

* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* SourcesCocoa.txt:
* UIProcess/Cocoa/TextCheckingController.h: Added.
* UIProcess/Cocoa/TextCheckingController.mm: Added.
(WebKit::TextCheckingController::TextCheckingController):
(WebKit::TextCheckingController::replaceRelativeToSelection):
(WebKit::TextCheckingController::removeAnnotationRelativeToSelection):
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView replaceSelectionOffset:length:withAnnotatedString:relativeReplacementRange:]):
(-[WKContentView removeAnnotation:forSelectionOffset:length:]):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::textCheckingController):
Plumb two UITextInput methods through to the Web Content process.
I added a new object instead of just sticking things on WebPage
because there are quite a few more related ones coming down the pipeline,
and will also end up being messages going in the opposite direction.

* WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: Added.
* WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in: Added.
* WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm: Added.
(WebKit::TextCheckingControllerProxy::TextCheckingControllerProxy):
(WebKit::TextCheckingControllerProxy::~TextCheckingControllerProxy):
(WebKit::relevantMarkerTypes):
(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection):
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection):
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):
Make it possible for the platform to maintain arbitrary key-value pairs
attached to document ranges, as a way for it to keep track of various
text checking context (e.g. if something has been checked, replaced,
what language it might be, ...).

Allow it to replace the text of a range and the annotations in that range,
or remove annotations in a range. Ranges are specified relative to
the selection.

One large missing piece is giving the platform the ability to retrieve
annotations in a range; that is coming in a future patch.

We translate certain annotations into traditional WebCore spelling
and grammar document markers, for normal display-time treatment.

* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject convertScreenPointToRootView:]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
Unified sources fixes.

Source/WTF:

* wtf/Platform.h:
Add an ENABLE flag.

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

5 months agoUnreviewed test gardening for macOS.
ryanhaddad@apple.com [Wed, 20 Mar 2019 06:51:19 +0000 (06:51 +0000)]
Unreviewed test gardening for macOS.

* platform/mac/TestExpectations:

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

5 months ago[WebAuthN] Implement FIDO AppID extension
jiewen_tan@apple.com [Wed, 20 Mar 2019 06:11:57 +0000 (06:11 +0000)]
[WebAuthN] Implement FIDO AppID extension
https://bugs.webkit.org/show_bug.cgi?id=143491
<rdar://problem/48298273>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch adds support for FIDO AppID extension: https://www.w3.org/TR/webauthn/#sctn-appid-extension.
To be noticed, this implementation follows what spec suggested in the 'Note' session and what Chrome/Firefox
do in practice to avoid some unnecessary steps of
https://fidoalliance.org/specs/fido-v2.0-id-20180227/fido-appid-and-facets-v2.0-id-20180227.html#determining-if-a-caller-s-facetid-is-authorized-for-an-appid.

In fido::convertToU2fSignCommand, the checkOnly flag is deleted as it is never used.

Covered by new tests in existing files.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Modules/webauthn/AuthenticationExtensionsClientInputs.h: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.idl.
(WebCore::AuthenticationExtensionsClientInputs::encode const):
(WebCore::AuthenticationExtensionsClientInputs::decode):
* Modules/webauthn/AuthenticationExtensionsClientInputs.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialRequestOptions.idl.
* Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinatorInternal::processAppIdExtension):
(WebCore::AuthenticatorCoordinator::create const):
(WebCore::AuthenticatorCoordinator::discoverFromExternalSource const):
* Modules/webauthn/PublicKeyCredential.cpp:
(WebCore::PublicKeyCredential::tryCreate):
(WebCore::PublicKeyCredential::PublicKeyCredential):
(WebCore::PublicKeyCredential::getClientExtensionResults const):
(WebCore::PublicKeyCredential::create): Deleted.
* Modules/webauthn/PublicKeyCredential.h:
* Modules/webauthn/PublicKeyCredential.idl:
* Modules/webauthn/PublicKeyCredentialCreationOptions.h:
* Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
* Modules/webauthn/PublicKeyCredentialData.h:
(WebCore::PublicKeyCredentialData::encode const):
(WebCore::PublicKeyCredentialData::decode):
* Modules/webauthn/PublicKeyCredentialRequestOptions.h:
(WebCore::PublicKeyCredentialRequestOptions::encode const):
(WebCore::PublicKeyCredentialRequestOptions::decode):
* Modules/webauthn/PublicKeyCredentialRequestOptions.idl:
* Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::readCTAPMakeCredentialResponse):
(fido::readCTAPGetAssertionResponse):
* Modules/webauthn/fido/U2fCommandConstructor.cpp:
(fido::convertToU2fSignCommand):
* Modules/webauthn/fido/U2fCommandConstructor.h:
* Modules/webauthn/fido/U2fResponseConverter.cpp:
(fido::readU2fRegisterResponse):
(fido::readU2fSignResponse):
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

In U2fHidAuthenticator::continueSignCommandAfterResponseReceived, it will retry the current command
with the AppID if it exists when SW_WRONG_DATA is received from devices. Noted, it will not set
the AuthenticationExtensionsClientOutputs::appid to false in any circumstances. In other words, the
field will be empty if AppID is supplied in AuthenticationExtensionsClientInputs and not used.

* UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
* UIProcess/WebAuthentication/fido/U2fHidAuthenticator.cpp:
(WebKit::U2fHidAuthenticator::issueSignCommand):
(WebKit::U2fHidAuthenticator::continueSignCommandAfterResponseReceived):
* UIProcess/WebAuthentication/fido/U2fHidAuthenticator.h:

Tools:

Add a test that covers the new flag of convertToU2fSignCommand.

* TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebCore/FidoTestData.h:
* TestWebKitAPI/Tests/WebCore/U2fCommandConstructorTest.cpp:
(TestWebKitAPI::TEST):

LayoutTests:

* http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
* http/wpt/webauthn/public-key-credential-create-success-local.https.html:
* http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
* http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt:
* http/wpt/webauthn/public-key-credential-get-failure-u2f.https.html:
* http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
* http/wpt/webauthn/public-key-credential-get-failure.https.html:
* http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
* http/wpt/webauthn/public-key-credential-get-success-local.https.html:
* http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:
* http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:

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

5 months agoWeb Inspector: Debugger: lazily create the agent
drousso@apple.com [Wed, 20 Mar 2019 05:40:11 +0000 (05:40 +0000)]
Web Inspector: Debugger: lazily create the agent
https://bugs.webkit.org/show_bug.cgi?id=195973
<rdar://problem/49039674>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
(Inspector::JSGlobalObjectInspectorController::frontendInitialized):
(Inspector::JSGlobalObjectInspectorController::createLazyAgents):

* inspector/JSGlobalObjectConsoleClient.h:
(Inspector::JSGlobalObjectConsoleClient::setInspectorDebuggerAgent): Added.
* inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):
(Inspector::JSGlobalObjectConsoleClient::startConsoleProfile):
(Inspector::JSGlobalObjectConsoleClient::stopConsoleProfile):

* inspector/agents/InspectorDebuggerAgent.h:
(Inspector::InspectorDebuggerAgent::addListener): Added.
(Inspector::InspectorDebuggerAgent::removeListener): Added.
(Inspector::InspectorDebuggerAgent::setListener): Deleted.
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::InspectorDebuggerAgent):
(Inspector::InspectorDebuggerAgent::enable):
(Inspector::InspectorDebuggerAgent::disable):
(Inspector::InspectorDebuggerAgent::getScriptSource):
(Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement):
(Inspector::InspectorDebuggerAgent::didPause):
(Inspector::InspectorDebuggerAgent::breakProgram):
(Inspector::InspectorDebuggerAgent::clearBreakDetails):
Drive-by: reorder some member variables for better sizing.
Drive-by: rename some member variables for clarity.
Source/WebCore:

No change in functionality.

* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::createLazyAgents):

* inspector/agents/WebDebuggerAgent.cpp:
(WebCore::WebDebuggerAgent::disable):

* inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::discardAgent):

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

5 months agoUnreviewed, reduce # of iterations to avoid timing out after r242991
ysuzuki@apple.com [Wed, 20 Mar 2019 04:30:38 +0000 (04:30 +0000)]
Unreviewed, reduce # of iterations to avoid timing out after r242991
https://bugs.webkit.org/show_bug.cgi?id=195791

To avoid timing out, this patch reduces it from 3e7 to 1e7. 1e7 iteration counts still reproduce the issue at 60%.

* stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:

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

5 months agoAdd support for more platforms to generate-xcfilelists
krollin@apple.com [Wed, 20 Mar 2019 03:56:16 +0000 (03:56 +0000)]
Add support for more platforms to generate-xcfilelists
https://bugs.webkit.org/show_bug.cgi?id=195977

Reviewed by Alexey Proskuryakov.

generate-xcfilelists incorrectly complains when involved with building
WebKit for iphonesimulator:

    $ make debug SDKROOT=iphonesimulator.internal -C Internal/
    …
    ### (die get_canonical_platform_name main main) Unrecognized platform name: iphonesimulator

Address this by teaching generate-xcfilelists about more platforms.

* Scripts/generate-xcfilelists:

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

5 months agoSimplify Cocoa platform user agent logic by using string constants instead of functio...
mjs@apple.com [Wed, 20 Mar 2019 02:52:33 +0000 (02:52 +0000)]
Simplify Cocoa platform user agent logic by using string constants instead of function calls for the frozen parts
https://bugs.webkit.org/show_bug.cgi?id=195936

Reviewed by Dean Jackson.

No new tests because no behavior changes. Existing behavior is tested by fast/dom/navigator-userAgent-frozen.html

* platform/UserAgent.h: Remove prototype of removed function.
* platform/cocoa/UserAgentCocoa.mm:
(WebCore::userAgentBundleVersion): Deleted.
* platform/ios/UserAgentIOS.mm:
* platform/ios/UserAgentIOS.mm:
(WebCore::osNameForUserAgent): Use WTF String instead of NSString
(WebCore::deviceNameForUserAgent): dutto
(WebCore::standardUserAgentWithApplicationName): Simplify this
function to account for WebKit version now being frozen. Also
use String instead of NSString.
* platform/mac/UserAgentMac.mm:
(WebCore::standardUserAgentWithApplicationName): Simplify this
function to account for CPU and WEbKit version now being
frozen. Also avoid two separate but very similar calls to
makeString().

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

5 months agoUnreviewed adjustment to r242842 per Darin's request.
ross.kirsling@sony.com [Wed, 20 Mar 2019 02:01:41 +0000 (02:01 +0000)]
Unreviewed adjustment to r242842 per Darin's request.

Source/WebCore:

* platform/win/LoggingWin.cpp:
(WebCore::logLevelString):

Source/WebCore/PAL:

* pal/win/LoggingWin.cpp:
(PAL::logLevelString):

Source/WebKit:

* Platform/win/LoggingWin.cpp:
(WebKit::logLevelString):

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

5 months agoRemove the SVG property tear off objects of SVGAnimatedPreserveAspectRatio
commit-queue@webkit.org [Wed, 20 Mar 2019 01:49:29 +0000 (01:49 +0000)]
Remove the SVG property tear off objects of SVGAnimatedPreserveAspectRatio
https://bugs.webkit.org/show_bug.cgi?id=195960

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

-- Define SVGAnimatedPreserveAspectRatio to be SVGAnimatedValueProperty<
   SVGPreserveAspectRatio>.

-- Make SVGPreserveAspectRatio be derived form SVGValueProperty<
   SVGPreserveAspectRatioValue>.

-- Add SVGAnimatedPreserveAspectRatioAccessor to access the animated
   property.

-- Add SVGAnimatedPreserveAspectRatioAnimator to animate the animated
   property of the target element and all its instances.

-- Add SVGAnimationPreserveAspectRatioFunction to progress animVal of
   animated property in a period of time.

SVGFilterPrimitiveStandardAttributes::build() should be const function.
This is required for this patch because SVGFEImageElement::build() calls
SVGFEImageElement::preserveAspectRatio() which is const.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* svg/SVGAnimatedPreserveAspectRatio.cpp: Removed.
* svg/SVGAnimatedPreserveAspectRatio.h: Removed.
* svg/SVGAnimatorFactory.h:
(WebCore::SVGAnimatorFactory::create):
* svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::build const):
(WebCore::SVGFEBlendElement::build): Deleted.
* svg/SVGFEBlendElement.h:
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build const):
(WebCore::SVGFEColorMatrixElement::build): Deleted.
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build const):
(WebCore::SVGFEComponentTransferElement::build): Deleted.
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::build const):
(WebCore::SVGFECompositeElement::build): Deleted.
* svg/SVGFECompositeElement.h:
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build const):
(WebCore::SVGFEConvolveMatrixElement::build): Deleted.
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::build const):
(WebCore::SVGFEDiffuseLightingElement::build): Deleted.
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::build const):
(WebCore::SVGFEDisplacementMapElement::build): Deleted.
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::build const):
(WebCore::SVGFEDropShadowElement::build): Deleted.
* svg/SVGFEDropShadowElement.h:
* svg/SVGFEFloodElement.cpp:
(WebCore::SVGFEFloodElement::build const):
(WebCore::SVGFEFloodElement::build): Deleted.
* svg/SVGFEFloodElement.h:
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::build const):
(WebCore::SVGFEGaussianBlurElement::build): Deleted.
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::SVGFEImageElement):
(WebCore::SVGFEImageElement::parseAttribute):
(WebCore::SVGFEImageElement::build const):
(WebCore::SVGFEImageElement::registerAttributes): Deleted.
(WebCore::SVGFEImageElement::build): Deleted.
* svg/SVGFEImageElement.h:
* svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build const):
(WebCore::SVGFEMergeElement::build): Deleted.
* svg/SVGFEMergeElement.h:
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::build const):
(WebCore::SVGFEMorphologyElement::build): Deleted.
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::build const):
(WebCore::SVGFEOffsetElement::build): Deleted.
* svg/SVGFEOffsetElement.h:
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::build const):
(WebCore::SVGFESpecularLightingElement::build): Deleted.
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::build const):
(WebCore::SVGFETileElement::build): Deleted.
* svg/SVGFETileElement.h:
* svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::build const):
(WebCore::SVGFETurbulenceElement::build): Deleted.
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::SVGFitToViewBox):
(WebCore::SVGFitToViewBox::parseViewBox):
(WebCore::SVGFitToViewBox::registerAttributes): Deleted.
* svg/SVGFitToViewBox.h:
(WebCore::SVGFitToViewBox::preserveAspectRatio const):
(WebCore::SVGFitToViewBox::preserveAspectRatioAnimated):
(WebCore::SVGFitToViewBox::setPreserveAspectRatio):
(WebCore::SVGFitToViewBox::resetPreserveAspectRatio):
(WebCore::SVGFitToViewBox::preserveAspectRatioString const):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::SVGImageElement):
(WebCore::SVGImageElement::registerAttributes):
(WebCore::SVGImageElement::parseAttribute):
* svg/SVGImageElement.h:
* svg/SVGMarkerElement.h:
* svg/SVGPatternElement.h:
* svg/SVGPreserveAspectRatio.h:
(WebCore::SVGPreserveAspectRatio::create):
(WebCore::SVGPreserveAspectRatio::align const):
(WebCore::SVGPreserveAspectRatio::setAlign):
(WebCore::SVGPreserveAspectRatio::meetOrSlice const):
(WebCore::SVGPreserveAspectRatio::setMeetOrSlice):
(WebCore::SVGPreserveAspectRatio::align): Deleted.
(WebCore::SVGPreserveAspectRatio::meetOrSlice): Deleted.
(WebCore::SVGPreserveAspectRatio::SVGPreserveAspectRatio): Deleted.
* svg/SVGSVGElement.h:
* svg/SVGStringList.h:
* svg/SVGSymbolElement.h:
* svg/SVGViewSpec.h:
* svg/properties/SVGAnimatedPropertyAccessorImpl.h:
* svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
* svg/properties/SVGAnimatedPropertyImpl.h:
* svg/properties/SVGAnimationDiscreteFunctionImpl.h:
* svg/properties/SVGAttributeRegistry.h:
* svg/properties/SVGPropertyOwnerRegistry.h:
(WebCore::SVGPropertyOwnerRegistry::registerProperty):

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

5 months ago[WPE] Fix build warnings because of missing an argument when initializing wpe_input_a...
commit-queue@webkit.org [Wed, 20 Mar 2019 01:38:12 +0000 (01:38 +0000)]
[WPE] Fix build warnings because of missing an argument when initializing wpe_input_axis_event
https://bugs.webkit.org/show_bug.cgi?id=195931

Patch by Gyuyoung Kim <gyuyoung.kim@lge.com> on 2019-03-19
Reviewed by Michael Catanzaro.

There are still build warnings when building wpe port. It looks like
these build warnings have been caused by missing to set an argument
for the modifier parameter of wpe_input_axis_event. This patch sets 0
for the modifier argument to avoid the build warnings.

* UIProcess/API/wpe/ScrollGestureController.cpp:
(WebKit::ScrollGestureController::handleEvent):

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

5 months agoRemove the SVG property tear off objects of SVGAnimatedRect
commit-queue@webkit.org [Wed, 20 Mar 2019 00:59:50 +0000 (00:59 +0000)]
Remove the SVG property tear off objects of SVGAnimatedRect
https://bugs.webkit.org/show_bug.cgi?id=195949

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

SVGRect is an SVG type, so we need to introduce two classes to represent
it and its animated property SVGAnimatedRect.

-- SVGValueProperty: It is derived from SVGProperty and it will be the
   base class of all the SVG type based properties. It is basically a
   RefCounted object with m_value member. For SVGRect, m_value will be
   of type FloatRect.

-- SVGAnimatedValueProperty: It is derived from SVGAnimatedProperty and
   it will be the base class of all the animated SVG type based properties.
   It is RefCounted object with two RefCounted members: baseVal and animVal.
   These two members are of type SVGValueProperty. For SVGAnimatedRect,
   baseVal and animVal will be of type SVGRect.

SVGAnimatedValueProperty will be responsible for:

1) Providing access to its baseVal and animVal. Note the same interface
   is used internally and used by the DOM.

2) Managing the animation of the property by starting and stopping it.

3) Coordinating the changes in its baseVal and animVal with the owner
   element.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* svg/SVGAnimatedRect.cpp: Removed.
* svg/SVGAnimatedRect.h: Removed.
* svg/SVGAnimatorFactory.h:
(WebCore::SVGAnimatorFactory::create):
* svg/SVGAttributeAnimationController.cpp:
(WebCore::SVGAttributeAnimationController::calculateAnimatedValue):
This is a bug from r243036. The <set> can be the tag of m_animationElement
not m_targetElement.
* svg/SVGAttributeAnimationController.h:
* svg/SVGAttributeAnimationControllerBase.h:
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::SVGFitToViewBox):
(WebCore::SVGFitToViewBox::registerAttributes):
(WebCore::SVGFitToViewBox::setViewBox):
(WebCore::SVGFitToViewBox::resetViewBox):
* svg/SVGFitToViewBox.h:
(WebCore::SVGFitToViewBox::viewBox const):
(WebCore::SVGFitToViewBox::viewBoxAnimated):
(WebCore::SVGFitToViewBox::viewBoxString const):
* svg/SVGMarkerElement.h:
* svg/SVGPatternElement.h:
* svg/SVGRect.h:
(WebCore::SVGRect::create):
(WebCore::SVGRect::x):
(WebCore::SVGRect::setX):
(WebCore::SVGRect::y):
(WebCore::SVGRect::setY):
(WebCore::SVGRect::width):
(WebCore::SVGRect::setWidth):
(WebCore::SVGRect::height):
(WebCore::SVGRect::setHeight):
(WebCore::SVGRect::SVGRect): Deleted.
* svg/SVGSVGElement.cpp:
(WebCore::checkIntersectionWithoutUpdatingLayout):
(WebCore::checkEnclosureWithoutUpdatingLayout):
* svg/SVGSVGElement.h:
* svg/SVGSymbolElement.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::SVGViewSpec):
* svg/SVGViewSpec.h:
* svg/properties/SVGAnimatedPropertyAccessorImpl.h:
* svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
* svg/properties/SVGAnimatedPropertyImpl.h:
* svg/properties/SVGAnimatedValueProperty.h: Added.
(WebCore::SVGAnimatedValueProperty::create):
(WebCore::SVGAnimatedValueProperty::~SVGAnimatedValueProperty):
(WebCore::SVGAnimatedValueProperty::setBaseValInternal):
(WebCore::SVGAnimatedValueProperty::baseVal const):
(WebCore::SVGAnimatedValueProperty::baseVal):
(WebCore::SVGAnimatedValueProperty::setAnimVal):
(WebCore::SVGAnimatedValueProperty::animVal const):
(WebCore::SVGAnimatedValueProperty::animVal):
(WebCore::SVGAnimatedValueProperty::currentValue const):
(WebCore::SVGAnimatedValueProperty::SVGAnimatedValueProperty):
(WebCore::SVGAnimatedValueProperty::ensureAnimVal):
* svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
(WebCore::SVGAnimationRectFunction::progress):
* svg/properties/SVGAttributeRegistry.h:
* svg/properties/SVGPropertyOwnerRegistry.h:
(WebCore::SVGPropertyOwnerRegistry::registerProperty):
* svg/properties/SVGValueProperty.h: Added.
(WebCore::SVGValueProperty::create):
(WebCore::SVGValueProperty::value const):
(WebCore::SVGValueProperty::setValue):
(WebCore::SVGValueProperty::value):
(WebCore::SVGValueProperty::SVGValueProperty):

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

5 months agoRebaseline the test after r243175. It got somehow landed with failing expectations.
rniwa@webkit.org [Wed, 20 Mar 2019 00:28:10 +0000 (00:28 +0000)]
Rebaseline the test after r243175. It got somehow landed with failing expectations.

* fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt:

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

5 months agoResource Load Statistics (experimental): Clear non-cookie website data for sites...
wilander@apple.com [Wed, 20 Mar 2019 00:22:09 +0000 (00:22 +0000)]
Resource Load Statistics (experimental): Clear non-cookie website data for sites that have been navigated to, with link decoration, by a prevalent resource
https://bugs.webkit.org/show_bug.cgi?id=195923
<rdar://problem/49001272>

Reviewed by Alex Christensen.

Source/WebCore:

Adds a new experimental feature.

Test: http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html

* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setIsITPFirstPartyWebsiteDataRemovalEnabled):
(WebCore::RuntimeEnabledFeatures::isITPFirstPartyWebsiteDataRemovalEnabled const):

Source/WebKit:

Cross-site trackers abuse link query parameters to transport user identifiers and then store
them in first-party storage space. To address this, we've done three things:
- r236448 capped all persistent client-side cookies to seven days of storage.
- r242288 further capped persistent client-side cookies for navigations with link decoration from prevalent resources.
- r242603 added logging of navigations with link decoration from prevalent resources.

This patch introduces an experimental feature that removes non-cookie website data for sites
that have been navigated to, with link decoration, by a prevalent resource.

To achieve this, resource domains to remove website data for are now marked with an enum called
WebsiteDataToRemove with values All, AllButHttpOnlyCookies, AllButCookies. As resources are
iterated, they are marked for either of these values and the new function
ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor() leads to the marking with
WebsiteDataToRemove::AllButCookies.

Then NetworkProcess::deleteWebsiteDataForRegistrableDomains() looks at this setting and removes
website data accordingly.

The thinking behind this is that the lifetime cap applied in r236448 and r242288 take care of
script writable cookies, and this patch takes care of all other script writable storage.

The infrastructure to handle user interaction expiration is now parameterized so that multiple
expiries can be applied. In this particular case, seven days of browser use.

* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllWebsiteDataFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::shouldRemoveAllButCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):
* NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUnexpiredRecentUserInteraction const):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllWebsiteDataFor const):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor):
* NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::statisticsEpirationTime const):
(WebKit::ResourceLoadStatisticsStore::mergeOperatingDates):
(WebKit::ResourceLoadStatisticsStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const):
* NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores): Deleted.
   Renamed to reflect that it actually takes a parameter for which types of data to remove.
* NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCrossSiteLoadWithLinkDecorationForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores): Deleted.
   Renamed to reflect that it actually takes a parameter for which types of data to remove.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores): Deleted.
   Renamed to reflect that it actually takes a parameter for which types of data to remove.
* NetworkProcess/NetworkSession.h:
* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration):
(WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction):
(WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setCrossSiteLoadWithLinkDecorationForTesting):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setCrossSiteLoadWithLinkDecorationForTesting):
* UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

This patch does the following to the TestRunner:
- Adds setStatisticsCrossSiteLoadWithLinkDecoration().
- Makes setStatisticsTimeToLiveUserInteraction() wait for completion.
- Makes statisticsProcessStatisticsAndDataRecords() wait for completion.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsCrossSiteLoadWithLinkDecoration):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsCrossSiteLoadWithLinkDecoration):
(WTR::TestController::setStatisticsTimeToLiveUserInteraction):
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

* http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt: Added.
* http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html: Added.

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

5 months agoWeb Inspector: Sources: provide option to group by path
drousso@apple.com [Tue, 19 Mar 2019 23:35:20 +0000 (23:35 +0000)]
Web Inspector: Sources: provide option to group by path
https://bugs.webkit.org/show_bug.cgi?id=195203
<rdar://problem/27340680>

Reviewed by Timothy Hatcher.

Create top-level folders for each origin and nest all resources (in a folder chain) underneath.

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.closed):
(WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject.searchTreeOutline): Added.
(WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject):
(WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements):
(WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
(WI.SourcesNavigationSidebarPanel.prototype._addResource):
(WI.SourcesNavigationSidebarPanel.prototype._addScript):
(WI.SourcesNavigationSidebarPanel.prototype._addWorkerTargetWithMainResource):
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeMouseDown.addOption): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeMouseDown): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):
(WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged):
(WI.SourcesNavigationSidebarPanel.prototype._handleFrameMainResourceDidChange):
(WI.SourcesNavigationSidebarPanel.prototype._handleMainFrameDidChange):
* UserInterface/Views/SourcesNavigationSidebarPanel.css:
(.sidebar > .panel.navigation.sources > .content):
(.sidebar > .panel.navigation.sources > .content > .details-section.paused-reason.collapsed > .header > .options,):
(.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): Added.
(.sidebar > .panel.navigation.sources > .content > .resources): Added.
(.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread): Added.
(.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread > .item.thread): Added.
(.sidebar > .panel.navigation.sources > .content > .details-section.scripts:not(.collapsed)): Deleted.
(.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread): Deleted.
(.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread > .item.thread): Deleted.
Drive-by: fix "No Filter Results" message view to not overlap eachother.
Drive-by: try to be more smart about what tree we focus when selecting a represented object.
* UserInterface/Views/ResourceTreeElement.js:
(WI.ResourceTreeElement):
(WI.ResourceTreeElement.prototype.get mainTitleText):
(WI.ResourceTreeElement.prototype._updateTitles):
* UserInterface/Base/URLUtilities.js:
(WI.displayNameForURL):
Provide a way for the display name to use a directory "/" instead of the last path component.
This is needed in cases where the loaded resource is an implicit "index.*".

* UserInterface/Views/GeneralTreeElement.js:
(WI.GeneralTreeElement.prototype.createFoldersAsNeededForSubpath): Added.
* UserInterface/Views/SourceCodeTreeElement.js:
(WI.SourceCodeTreeElement.prototype.createFoldersAsNeededForSubpath): Deleted.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/Resource.js:

* UserInterface/Views/DetailsSection.css:
(.details-section > .header .go-to-arrow):
Drive-by: vertically center go-to-arrow.
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.contextMenuItemSelected):

* UserInterface/Base/Setting.js:
* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get filterNavigationItems):
(WI.NetworkTableContentView.prototype._populateNameCell):
(WI.NetworkTableContentView.prototype._generateSortComparator):
(WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._handleGroupMediaRequestsByDOMNodeCheckedDidChange): Added.
(WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Deleted.
Rename the `groupByNode` setting to be more specific.

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

5 months ago[CMake] Support more clang and gcc sanitizers
chris.reid@sony.com [Tue, 19 Mar 2019 23:34:03 +0000 (23:34 +0000)]
[CMake] Support more clang and gcc sanitizers
https://bugs.webkit.org/show_bug.cgi?id=195956

Reviewed by Michael Catanzaro.

.:

Add support to compile with undefined, thread, memory, and leak sanitizers in cmake.
Also add ubsan and asan support when compiling with clang-cl on WinCairo.
This changes ENABLE_ADDRESS_SANITIZER flag to a generic ENABLE_SANITIZERS
which takes a semicolon separated list of sanitizers to enable.
e.g. `-DENABLE_SANITIZERS=address;undefined`

Building WinCairo with sanitizers enabled also needs CLANG_LIB_PATH set to the clang compiler runtime library folder.
e.g. pass `--cmakeargs="-DCLANG_LIB_PATH=\"C:\Program Files\LLVM\lib\clang\7.0.1\lib\windows\""` to build-webkit

* Source/cmake/WebKitCompilerFlags.cmake:

Tools:

* Scripts/webkitdirs.pm: Updating ENABLE_ADDRESS_SANITIZER to ENABLE_SANITIZERS=address

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

5 months agoUnreviewed build fix after r243173.
cdumez@apple.com [Tue, 19 Mar 2019 23:22:11 +0000 (23:22 +0000)]
Unreviewed build fix after r243173.

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm):

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

5 months ago[ews-build] Improve summary for PrintConfiguration step
aakash_jain@apple.com [Tue, 19 Mar 2019 23:02:26 +0000 (23:02 +0000)]
[ews-build] Improve summary for PrintConfiguration step
https://bugs.webkit.org/show_bug.cgi?id=195945

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/steps.py:
(PrintConfiguration.getResultSummary): Override getResultSummary.

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

5 months agoPrune code after ForceOSRExit
sbarati@apple.com [Tue, 19 Mar 2019 22:53:40 +0000 (22:53 +0000)]
Prune code after ForceOSRExit
https://bugs.webkit.org/show_bug.cgi?id=195913

Reviewed by Keith Miller.

I removed our original implementation of this in r242989 because
it was not sound. It broke backwards propagation because it removed
uses of a node that backwards propagation relied on to be sound.
Essentially, backwards propagation relies on being able to see uses
that would exist in bytecode to be sound.

The rollout in r242989 was a 1% Speedometer2 regression. This patch
rolls back in the optimization in a sound way.

This patch augments the code we had prior to r242989 to be sound. In
addition to preserving liveness, we now also convert all uses after
the ForceOSRExit to be Phantom. This may pessimize the optimizations
we do in backwards propagation, but it will prevent that phase from
making unsound optimizations.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parse):

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

5 months agoReparenting during a mutation event inside appendChild could result in a circular...
rniwa@webkit.org [Tue, 19 Mar 2019 22:25:44 +0000 (22:25 +0000)]
Reparenting during a mutation event inside appendChild could result in a circular DOM tree
https://bugs.webkit.org/show_bug.cgi?id=192825

Reviewed by Zalan Bujtas.

Source/WebCore:

The bug was caused by appendChildWithoutPreInsertionValidityCheck, insertBefore and replaceChild
checking the circular dependency against newChild instead of targets even though when newChild
is a document fragment, appendChildWithoutPreInsertionValidityCheck inserts the children of
the document fragment. Fixed the bug by checking the circular dependency against each target child.

Also fixed the bug that checkAcceptChildGuaranteedNodeTypes was not considering shadow inclusive
ancestors or template host elements.

Tests: fast/dom/append-child-with-mutation-event-removal-and-circular-insertion.html
       fast/dom/append-child-with-mutation-event-removal-and-circular-shadow-insertion.html
       fast/dom/append-child-with-mutation-event-removal-and-circular-template-insertion.html
       fast/dom/insert-child-with-mutation-event-removal-and-circular-insertion.html
       fast/dom/insert-child-with-mutation-event-removal-and-circular-shadow-insertion.html
       fast/dom/insert-child-with-mutation-event-removal-and-circular-template-insertion.html
       fast/dom/replace-child-with-mutation-event-removal-and-circular-insertion.html
       fast/dom/replace-child-with-mutation-event-removal-and-circular-shadow-insertion.html
       fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion.html

* dom/ContainerNode.cpp:
(WebCore::checkAcceptChildGuaranteedNodeTypes):
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck):

LayoutTests:

Added regression tests.

* fast/dom/append-child-with-mutation-event-removal-and-circular-insertion-expected.txt: Added.
* fast/dom/append-child-with-mutation-event-removal-and-circular-insertion.html: Added.
* fast/dom/append-child-with-mutation-event-removal-and-circular-shadow-insertion-expected.txt: Added.
* fast/dom/append-child-with-mutation-event-removal-and-circular-shadow-insertion.html: Added.
* fast/dom/append-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt: Added.
* fast/dom/append-child-with-mutation-event-removal-and-circular-template-insertion.html: Added.
* fast/dom/insert-child-with-mutation-event-removal-and-circular-insertion-expected.txt: Added.
* fast/dom/insert-child-with-mutation-event-removal-and-circular-insertion.html: Added.
* fast/dom/insert-child-with-mutation-event-removal-and-circular-shadow-insertion-expected.txt: Added.
* fast/dom/insert-child-with-mutation-event-removal-and-circular-shadow-insertion.html: Added.
* fast/dom/insert-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt: Added.
* fast/dom/insert-child-with-mutation-event-removal-and-circular-template-insertion.html: Added.
* fast/dom/replace-child-with-mutation-event-removal-and-circular-insertion-expected.txt: Added.
* fast/dom/replace-child-with-mutation-event-removal-and-circular-insertion.html: Added.
* fast/dom/replace-child-with-mutation-event-removal-and-circular-shadow-insertion-expected.txt: Added.
* fast/dom/replace-child-with-mutation-event-removal-and-circular-shadow-insertion.html: Added.
* fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion-expected.txt: Added.
* fast/dom/replace-child-with-mutation-event-removal-and-circular-template-insertion.html: Added.

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

5 months ago[ews-build] Improve summary for CheckOutSource step
aakash_jain@apple.com [Tue, 19 Mar 2019 22:22:50 +0000 (22:22 +0000)]
[ews-build] Improve summary for CheckOutSource step
https://bugs.webkit.org/show_bug.cgi?id=195963

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/steps.py:
(CheckOutSource.getResultSummary):

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

5 months agoAdd default prompt implementation for the Storage Access API
bfulgham@apple.com [Tue, 19 Mar 2019 22:11:00 +0000 (22:11 +0000)]
Add default prompt implementation for the Storage Access API
https://bugs.webkit.org/show_bug.cgi?id=195866
<rdar://problem/45150009>

Reviewed by Chris Dumez.

Source/WebCore:

* en.lproj/Localizable.strings: Update with new strings used by the
Storage Access API dialog.

Source/WebKit:

This patch revises the UIDelegate implementation with a default permission dialog
for the Storage Access API. This allows us to use and test the API in MiniBrowser,
rather than requiring a full-fledged web browser to drive testing.

* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::presentStorageAccessConfirmDialog): Added.
(WebKit::UIDelegate::UIClient::requestStorageAccessConfirm): Modify to call new default
implementation if the WKWebVIew client doesn't implement the necessary SPI.
* UIProcess/Cocoa/WKStorageAccessAlert.h: Added.
* UIProcess/Cocoa/WKStorageAccessAlert.mm: Added.
(WebKit::presentStorageAccessAlert):
* WebKit.xcodeproj/project.pbxproj:

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

5 months agoVersioning.
bshafiei@apple.com [Tue, 19 Mar 2019 22:10:26 +0000 (22:10 +0000)]
Versioning.

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

5 months ago[GStreamer][WebRTC] Create sps/pps for all frames to please libwebrtc
commit-queue@webkit.org [Tue, 19 Mar 2019 21:39:05 +0000 (21:39 +0000)]
[GStreamer][WebRTC] Create sps/pps for all frames to please libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=195677

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-03-19
Reviewed by Xabier Rodriguez-Calvar.

* platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:
(gst_webrtc_video_encoder_set_format):
(register_known_encoder):
(setup_x264enc):
(setup_openh264enc):
(setup_omxh264enc):
(set_bitrate_bit_per_sec):
(gst_webrtc_video_encoder_class_init):

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

5 months agoREGRESSION (r239904): Update dark mode defines in a few places that got missed.
timothy@apple.com [Tue, 19 Mar 2019 20:56:31 +0000 (20:56 +0000)]
REGRESSION (r239904): Update dark mode defines in a few places that got missed.
https://bugs.webkit.org/show_bug.cgi?id=195958

Reviewed by Megan Gardner.

Source/WebCore:

* DerivedSources.make: Support HAVE_OS_DARK_MODE_SUPPORT in html.css.
* css/html.css: Update dark mode defines.
* page/FrameView.cpp:
(WebCore::FrameView::updateBackgroundRecursively): Ditto.

LayoutTests:

* inspector/css/shadow-scoped-style-expected.txt: Rebaseline.
* platform/mac/printing/width-overflow-expected.txt: Rebaseline.

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

5 months agoREGRESSION (r242369): Only use picker-supported UTIs when creating image picker
conrad_shultz@apple.com [Tue, 19 Mar 2019 20:35:14 +0000 (20:35 +0000)]
REGRESSION (r242369): Only use picker-supported UTIs when creating image picker
https://bugs.webkit.org/show_bug.cgi?id=195955

Reviewed by Chris Dumez and Wenson Hsieh.

r242369 started passing UTIs to -[UIImagePickerController setMediaTypes:] that correspond to types accepted by the
file input element. However, UIImagePickerController expects a specific subset of UTIs. In the worst case, if no
expected types are passed, this can cause a crash.

* UIProcess/ios/forms/WKFileUploadPanel.mm:
(UTIsForMIMETypes):
Return a set rather than an array.
(-[WKFileUploadPanel _mediaTypesForPickerSourceType:]):
Rather than hardcode specific UTIs, ask UIImagePickerController for its available types. If an accepted type
is in the list of available types, use it. Otherwise, if an accepted type conforms to an available type,
use the available type. This is an O(n^2) process, but there typically are only a handful of types, so
this seems acceptable.
(-[WKFileUploadPanel _showDocumentPickerMenu]):
Convert the set from UTIsForMIMETypes() to an array.

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

5 months agoREGRESSION(r241586:r241590): [GTK] Accessibility tests in need of rebase
jdiggs@igalia.com [Tue, 19 Mar 2019 20:27:51 +0000 (20:27 +0000)]
REGRESSION(r241586:r241590): [GTK] Accessibility tests in need of rebase
https://bugs.webkit.org/show_bug.cgi?id=195129

Reviewed by Žan Doberšek.

* accessibility/gtk/object-attributes-expected.txt:
* accessibility/gtk/xml-roles-exposed-expected.txt:
* platform/gtk/TestExpectations:
* platform/gtk/accessibility/image-link-expected.txt:
* platform/gtk/accessibility/image-map2-expected.txt:
* platform/gtk/accessibility/lists-expected.txt:
* platform/gtk/accessibility/math-multiscript-attributes-expected.txt:
* platform/gtk/accessibility/roles-exposed-expected.txt:
* platform/gtk/accessibility/table-attributes-expected.txt:
* platform/gtk/accessibility/table-cell-spans-expected.txt:
* platform/gtk/accessibility/table-cells-expected.txt:
* platform/gtk/accessibility/table-one-cell-expected.txt:
* platform/gtk/accessibility/table-sections-expected.txt:
* platform/gtk/accessibility/table-with-rules-expected.txt:
* platform/gtk/accessibility/transformed-element-expected.txt:

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

5 months agoWeb Inspector: CPU Usage Timeline - the right edge of each column should align with...
drousso@apple.com [Tue, 19 Mar 2019 20:13:03 +0000 (20:13 +0000)]
Web Inspector: CPU Usage Timeline - the right edge of each column should align with a CPU measurement
https://bugs.webkit.org/show_bug.cgi?id=195789
<rdar://problem/48915271>

Reviewed by Joseph Pecoraro.

Right now, each column is rendered such that the middle of the column is aligned with the
time of the CPU measurement. This could potentially be misleading, as the width/position of
the bar implies that there was a period of time after the actual time of the CPU measurement
that should be "attributed" to that same CPU measurement.

   1      2      3
       _______
       [  *  ]
       [  *  ]_______
       [  *  ][  *  ]
_______[  *  ][  *  ]
[  *  ][  *  ][  *  ]
[__*__][__*__][__*__]
 A   B  C   D  E   F

In this example, one might "attribute" any work done at time B to record 1, when in reality,
it should be "attributed" to record 2, since the CPU measurement had already been taken by
the time B was captured, meaning that the work for B hadn't yet been done and could
therefore not have affected the CPU measurement for record 1.

We should be rendering the columns such that the CPU measurement aligns with the trailing
edge of the column, so that all of the work that could be "attributed" to a given CPU
measurement comes before it.

  1      2      3
    _______       ___
    [    *]       [
    [    *]_______[
    [    *][    *][
____[    *][    *][
  *][    *][    *][
__*][____*][____*][__
 A   B  C   D  E   F

        NOTE: this "rendering" isn't exactly accurate, as the `*` should overlap the `]`.

Legend:
 - `[     ]` represents a column for a CPU measurement
 - `*` represents the time when the measurement actually takes place

* UserInterface/Views/CPUTimelineOverviewGraph.js:
(WI.CPUTimelineOverviewGraph.prototype.layout):
(WI.CPUTimelineOverviewGraph.prototype._handleChartClick):
* UserInterface/Views/TimelineOverview.js:
(WI.TimelineOverview.prototype._recordSelected):

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

5 months agoUnreviewed, fix -Wformat warning
mcatanzaro@igalia.com [Tue, 19 Mar 2019 20:07:51 +0000 (20:07 +0000)]
Unreviewed, fix -Wformat warning
https://bugs.webkit.org/show_bug.cgi?id=195895
<rdar://problem/48517629>

* bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::threadRunLoop):

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

5 months agomedia/track/track-in-band-style.html is flaky
cdumez@apple.com [Tue, 19 Mar 2019 20:05:33 +0000 (20:05 +0000)]
media/track/track-in-band-style.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=195922

Reviewed by Eric Carlson.

Source/WebCore:

* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes):
Small optimization: some of the if checks were missing their "continue;"
statement. This would cause us to keep checking following keys even though
we already got a match.

LayoutTests:

* media/track/track-in-band-style-expected.txt:
* media/track/track-in-band-style.html:
- Check element.style instead of getComputedStyle(element) to get the
  CSS colors as this seems more reliable.
- For the foreground text color, check cueNode.style.color instead of
  cueDisplayElement given that the implementation sets the CSS attribute
  on the cueNode, not the cueDisplayElement.

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

5 months agoBuild cleanly with GCC 9
mcatanzaro@igalia.com [Tue, 19 Mar 2019 20:04:34 +0000 (20:04 +0000)]
Build cleanly with GCC 9
https://bugs.webkit.org/show_bug.cgi?id=195920

Reviewed by Chris Dumez.

WebKit triggers three new GCC 9 warnings:

"""
-Wdeprecated-copy, implied by -Wextra, warns about the C++11 deprecation of implicitly
declared copy constructor and assignment operator if one of them is user-provided.
"""

Solution is to either add a copy constructor or copy assignment operator, if required, or
else remove one if it is redundant.

"""
-Wredundant-move, implied by -Wextra, warns about redundant calls to std::move.
-Wpessimizing-move, implied by -Wall, warns when a call to std::move prevents copy elision.
"""

These account for most of this patch. Solution is to just remove the bad WTFMove().

Additionally, -Wclass-memaccess has been enhanced to catch a few cases that GCC 8 didn't.
These are solved by casting nontrivial types to void* before using memcpy. (Of course, it
would be safer to not use memcpy on nontrivial types, but that's too complex for this
patch. Searching for memcpy used with static_cast<void*> will reveal other cases to fix.)

Source/JavaScriptCore:

* b3/B3ValueRep.h:
* bindings/ScriptValue.cpp:
(Inspector::jsToInspectorValue):
* bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::create):
(JSC::GetterSetterAccessCase::clone const):
* bytecode/InstanceOfAccessCase.cpp:
(JSC::InstanceOfAccessCase::clone const):
* bytecode/IntrinsicGetterAccessCase.cpp:
(JSC::IntrinsicGetterAccessCase::clone const):
* bytecode/ModuleNamespaceAccessCase.cpp:
(JSC::ModuleNamespaceAccessCase::clone const):
* bytecode/ProxyableAccessCase.cpp:
(JSC::ProxyableAccessCase::clone const):
* bytecode/StructureSet.h:
* debugger/Breakpoint.h:
* dfg/DFGRegisteredStructureSet.h:
* inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::buildDebuggerLocation):
* inspector/scripts/codegen/cpp_generator_templates.py:
* parser/UnlinkedSourceCode.h:
* wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::parseAndCompileAir):
* wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
* wasm/WasmNameSectionParser.cpp:
(JSC::Wasm::NameSectionParser::parse):
* wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::consume):

Source/WebCore:

* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDM::getSupportedConfiguration):
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::createSession):
* Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::listDirectoryWithMetadata):
(WebCore::toFileSystemEntries):
* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::fromFormData):
(WebCore::FetchBody::bodyAsFormData const):
(WebCore::FetchBody::take):
* Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::create):
(WebCore::FetchRequest::clone):
* Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::create):
(WebCore::FetchResponse::redirect):
(WebCore::FetchResponse::clone):
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::deleteFunction):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBDatabaseIdentifier.h:
(WebCore::IDBDatabaseIdentifier::decode):
* Modules/indexeddb/IDBKeyData.h:
(WebCore::IDBKeyData::decode):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
* Modules/indexeddb/IDBValue.h:
(WebCore::IDBValue::decode):
* Modules/indexeddb/shared/IDBError.cpp:
(WebCore::IDBError::operator=): Deleted.
* Modules/indexeddb/shared/IDBError.h:
* Modules/indexeddb/shared/IDBResultData.h:
(WebCore::IDBResultData::decode):
* Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::create):
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::iceServersFromConfiguration):
(WebCore::RTCPeerConnection::certificatesFromConfiguration):
(WebCore::certificateTypeFromAlgorithmIdentifier):
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::getStats):
* Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addUnifiedPlanTransceiver):
* Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::create):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaElementSource):
(WebCore::AudioContext::createMediaStreamSource):
(WebCore::AudioContext::createScriptProcessor):
* Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::create):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::tryToOpenDatabaseBackend):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
* Modules/webdatabase/SQLResultSetRowList.cpp:
(WebCore::SQLResultSetRowList::item const):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::create):
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets):
* animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::backingAnimationForCompositedRenderer const):
* bindings/js/JSCustomElementInterface.cpp:
(WebCore::JSCustomElementInterface::constructElementWithFallback):
* bindings/js/JSDOMConvertVariadic.h:
(WebCore::VariadicConverter::convert):
(WebCore::convertVariadicArguments):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readDOMPointInit):
(WebCore::transferArrayBuffers):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackImplementationContent):
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
(WebCore::JSTestCallbackFunction::handleEvent):
* bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:
(WebCore::JSTestCallbackFunctionRethrow::handleEvent):
* bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
(WebCore::JSTestCallbackInterface::callbackWithAReturnValue):
(WebCore::JSTestCallbackInterface::callbackThatRethrowsExceptions):
(WebCore::JSTestCallbackInterface::callbackThatSkipsInvokeCheck):
(WebCore::JSTestCallbackInterface::callbackWithThisObject):
* contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::getStringList):
(WebCore::ContentExtensions::loadTrigger):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):
* crypto/SubtleCrypto.cpp:
(WebCore::normalizeCryptoAlgorithmParameters):
* crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
(WebCore::calculateSignature):
* crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::exportJwk const):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedTransform):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::specifiedValueForGridTrackSize):
(WebCore::valueForGridTrackList):
(WebCore::valueForGridPosition):
(WebCore::willChangePropertyValue):
(WebCore::fontVariantLigaturesPropertyValue):
(WebCore::fontVariantNumericPropertyValue):
(WebCore::fontVariantEastAsianPropertyValue):
(WebCore::touchActionFlagsToCSSValue):
(WebCore::renderTextDecorationFlagsToCSSValue):
(WebCore::renderEmphasisPositionFlagsToCSSValue):
(WebCore::speakAsToCSSValue):
(WebCore::hangingPunctuationToCSSValue):
(WebCore::fillRepeatToCSSValue):
(WebCore::fillSizeToCSSValue):
(WebCore::counterToCSSValue):
(WebCore::fontVariantFromStyle):
(WebCore::fontSynthesisFromStyle):
(WebCore::shapePropertyValue):
(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
(WebCore::ComputedStyleExtractor::getCSSPropertyValuesFor2SidesShorthand):
(WebCore::ComputedStyleExtractor::getCSSPropertyValuesFor4SidesShorthand):
* css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::rules):
* css/DOMMatrixReadOnly.cpp:
(WebCore::DOMMatrixReadOnly::parseStringIntoAbstractMatrix):
* css/FontFace.cpp:
(WebCore::FontFace::create):
* css/FontVariantBuilder.cpp:
(WebCore::computeFontVariant):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::removeProperty):
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::strokeDashArrayToCSSValueList):
(WebCore::ComputedStyleExtractor::adjustSVGPaintForCurrentColor const):
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertReflection):
* css/WebKitCSSMatrix.cpp:
(WebCore::WebKitCSSMatrix::create):
(WebCore::WebKitCSSMatrix::multiply const):
* css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontVariationSettings):
(WebCore::consumeBasicShapePath):
(WebCore::consumeImplicitGridAutoFlow):
* cssjit/StackAllocator.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* dom/Document.cpp:
(WebCore::Document::cloneNodeInternal):
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::cloneNodeInternal):
* dom/Element.cpp:
(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::removeAttributeNode):
(WebCore::Element::parseAttributeName):
(WebCore::Element::animate):
* dom/MessagePort.cpp:
(WebCore::MessagePort::disentanglePorts):
* dom/NodeIterator.cpp:
(WebCore::NodeIterator::nextNode):
(WebCore::NodeIterator::previousNode):
* dom/Range.cpp:
(WebCore::Range::processContents):
(WebCore::processContentsBetweenOffsets):
(WebCore::processAncestorsAndTheirSiblings):
* dom/RangeBoundaryPoint.h:
* dom/ScriptDisallowedScope.h:
(WebCore::ScriptDisallowedScope::operator=):
* dom/Text.cpp:
(WebCore::Text::splitText):
* dom/TextDecoder.cpp:
(WebCore::TextDecoder::create):
(WebCore::TextDecoder::decode):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertBlockPlaceholder):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
* editing/Editing.cpp:
(WebCore::createTabSpanElement):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::styleAtSelectionStart):
* editing/TextIterator.cpp:
(WebCore::TextIterator::rangeFromLocationAndLength):
* editing/VisibleSelection.cpp:
(WebCore::makeSearchRange):
* editing/markup.cpp:
(WebCore::styleFromMatchedRulesAndInlineDecl):
(WebCore::createFragmentForInnerOuterHTML):
(WebCore::createContextualFragment):
* html/FormController.cpp:
(WebCore::deserializeFormControlState):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::captureStream):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::createElementRenderer):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createSharedCellStyle):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell):
* html/ImageData.cpp:
(WebCore::ImageData::create):
* html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::transferToImageBitmap):
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createLinearGradient):
(WebCore::CanvasRenderingContext2DBase::createRadialGradient):
* html/canvas/OESVertexArrayObject.cpp:
(WebCore::OESVertexArrayObject::createVertexArrayOES):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::createBuffer):
(WebCore::WebGLRenderingContextBase::createFramebuffer):
(WebCore::WebGLRenderingContextBase::createTexture):
(WebCore::WebGLRenderingContextBase::createProgram):
(WebCore::WebGLRenderingContextBase::createRenderbuffer):
(WebCore::WebGLRenderingContextBase::createShader):
(WebCore::WebGLRenderingContextBase::getContextAttributes):
(WebCore::WebGLRenderingContextBase::getUniform):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerContainer::resolveCustomStyle):
(WebCore::TextControlPlaceholderElement::resolveCustomStyle):
* html/track/BufferedLineReader.cpp:
(WebCore::BufferedLineReader::nextLine):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::getCueAsHTML):
(WebCore::VTTCue::createCueRenderingTree):
* html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::cloneElementWithoutAttributesAndChildren):
* inspector/InspectorStyleSheet.cpp:
(WebCore::asCSSRuleList):
(WebCore::InspectorStyle::buildObjectForStyle const):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
(WebCore::InspectorStyleSheet::buildObjectForRule):
* inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
* inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildArrayForPseudoElements):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
* loader/FetchOptions.h:
(WebCore::FetchOptions::decode):
* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::manifestURLs):
* loader/archive/mhtml/MHTMLParser.cpp:
(WebCore::MHTMLParser::parseArchiveWithHeader):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules const):
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
* page/EventSource.cpp:
(WebCore::EventSource::create):
* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::mark):
(WebCore::UserTiming::measure):
* page/SecurityOrigin.h:
(WebCore::SecurityOrigin::decode):
* page/scrolling/ScrollingConstraints.h:
(WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
(WebCore::LayoutConstraints::LayoutConstraints): Deleted.
* platform/Length.h:
(WebCore::Length::Length):
* platform/animation/TimingFunction.cpp:
(WebCore::TimingFunction::createFromCSSText):
* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::parseLicenseFormat):
* platform/graphics/FloatPoint3D.h:
* platform/graphics/Font.cpp:
(WebCore::createAndFillGlyphPage):
* platform/graphics/GLContext.cpp:
(WebCore::GLContext::createContextForWindow):
(WebCore::GLContext::createSharingContext):
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/HEVCUtilities.cpp:
(WebCore::parseHEVCCodecParameters):
* platform/graphics/gtk/ImageGtk.cpp:
(WebCore::loadImageFromGResource):
(WebCore::loadMissingImageIconFromTheme):
* platform/graphics/wayland/PlatformDisplayWayland.cpp:
(WebCore::PlatformDisplayWayland::create):
* platform/mediastream/MediaConstraints.h:
(WebCore::MediaTrackConstraintSetMap::decode):
* platform/mediastream/MediaStreamRequest.h:
(WebCore::MediaStreamRequest::decode):
* platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:
(WebCore::GStreamerSampleFromLibWebRTCVideoFrame):
* platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingAudioSource::create):
* platform/mediastream/gstreamer/RealtimeIncomingVideoSourceLibWebRTC.cpp:
(WebCore::RealtimeIncomingVideoSource::create):
* platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::captureDeviceWithPersistentID):
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockMediaSample::createNonDisplayingCopy const):
* platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::createResourceHandle):
* platform/network/CookieRequestHeaderFieldProxy.h:
(WebCore::CookieRequestHeaderFieldProxy::decode):
* platform/network/FormData.h:
(WebCore::FormData::decode):
* platform/network/MIMEHeader.cpp:
(WebCore::MIMEHeader::parseHeader):
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::create):
* platform/network/soup/DNSResolveQueueSoup.cpp:
(WebCore::DNSResolveQueueSoup::takeCompletionAndCancelHandlers):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeCircle::blend const):
(WebCore::BasicShapeEllipse::blend const):
(WebCore::BasicShapePolygon::blend const):
(WebCore::BasicShapePath::blend const):
(WebCore::BasicShapeInset::blend const):
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeRadius::BasicShapeRadius):
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createContentRenderer const):
(WebCore::TextContentData::createContentRenderer const):
(WebCore::QuoteContentData::createContentRenderer const):
* rendering/style/ContentData.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::createInlineFlowBox):
* rendering/svg/RenderSVGInlineText.cpp:
(WebCore::RenderSVGInlineText::createTextBox):
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::createRootInlineBox):
* svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::build):
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build):
* svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::build):
* svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::build):
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build):
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::build):
* svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::build):
* svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::build):
* svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::build):
* svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::build):
* svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::build):
* svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::build):
* svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::build):
* svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::build):
* svg/SVGTransformList.h:
* svg/properties/SVGList.h:
(WebCore::SVGList::initialize):
(WebCore::SVGList::insertItemBefore):
(WebCore::SVGList::replaceItem):
(WebCore::SVGList::removeItem):
(WebCore::SVGList::appendItem):
* svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::initializeValuesAndWrappers):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::replaceItemValuesAndWrappers):
(WebCore::SVGListProperty::removeItemValues):
(WebCore::SVGListProperty::appendItemValuesAndWrappers):
* svg/properties/SVGPrimitiveList.h:
* testing/Internals.cpp:
(WebCore::Internals::elementRenderTreeAsText):
(WebCore::parseFindOptions):
* workers/AbstractWorker.cpp:
(WebCore::AbstractWorker::resolveURL):
* workers/Worker.cpp:
(WebCore::Worker::create):
* workers/service/ServiceWorkerJobData.h:
(WebCore::ServiceWorkerJobData::decode):
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate):

Source/WebKit:

* NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::decode):
* Platform/IPC/ArgumentCoders.h:
* Shared/CallbackID.h:
(WebKit::CallbackID::operator=):
* Shared/OptionalCallbackID.h:
(WebKit::OptionalCallbackID::operator=):
* Shared/Plugins/NPIdentifierData.cpp:
(WebKit::NPIdentifierData::decode):
* Shared/Plugins/NPVariantData.cpp:
(WebKit::NPVariantData::decode):
* Shared/Plugins/Netscape/NetscapePluginModule.cpp:
(WebKit::NetscapePluginModule::getOrCreate):
* Shared/RTCNetwork.cpp:
(WebKit::RTCNetwork::IPAddress::decode):
* Shared/SessionState.cpp:
(WebKit::HTTPBody::Element::decode):
(WebKit::FrameState::decode):
(WebKit::BackForwardListItemState::decode):
* Shared/WebCompiledContentRuleListData.cpp:
(WebKit::WebCompiledContentRuleListData::decode):
* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FloatPoint>::decode):
(IPC::ArgumentCoder<FloatRect>::decode):
(IPC::ArgumentCoder<FloatQuad>::decode):
(IPC::ArgumentCoder<ViewportArguments>::decode):
(IPC::ArgumentCoder<IntPoint>::decode):
(IPC::ArgumentCoder<IntRect>::decode):
(IPC::ArgumentCoder<IntSize>::decode):
(IPC::ArgumentCoder<MimeClassInfo>::decode):
(IPC::ArgumentCoder<PluginInfo>::decode):
(IPC::ArgumentCoder<SelectionRect>::decode):
(IPC::ArgumentCoder<CompositionUnderline>::decode):
(IPC::ArgumentCoder<BlobPart>::decode):
(IPC::ArgumentCoder<TextIndicatorData>::decode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):
(IPC::ArgumentCoder<ScrollOffsetRange<float>>::decode):
* Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
* Shared/WebPlatformTouchPoint.cpp:
(WebKit::WebPlatformTouchPoint::decode):
* Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::Entry::decode):
* Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::decode):
* UIProcess/API/APIContentRuleListStore.cpp:
(API::decodeContentRuleListMetaData):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::launchProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::reload):
* UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::takeProcess):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::findReusableSuspendedPageProcess):
* WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
* WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::getOrCreate):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::create):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler):
* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::createGraphicsLayer):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::pdfSnapshotAtSize):
(WebKit::WebPage::createDocumentLoader):
* WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::copy):

Source/WTF:

* wtf/CheckedArithmetic.h:
(WTF::Checked::Checked):
* wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::allocate):
* wtf/URLParser.cpp:
(WTF::CodePointIterator::operator!= const):
(WTF::CodePointIterator::operator=): Deleted.
* wtf/text/StringView.h:
(WTF::StringView::CodePoints::Iterator::operator=): Deleted.

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

5 months agoStyle fix: remove C style cast in Instruction.h
sbarati@apple.com [Tue, 19 Mar 2019 19:45:42 +0000 (19:45 +0000)]
Style fix: remove C style cast in Instruction.h
https://bugs.webkit.org/show_bug.cgi?id=195917

Reviewed by Filip Pizlo.

* bytecode/Instruction.h:
(JSC::Instruction::wide const):

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