WebKit-https.git
6 months agoWeb Inspector: [Overrides] Command-Z doesn't undo changes after page reload
pecoraro@apple.com [Fri, 13 Sep 2019 08:15:58 +0000 (08:15 +0000)]
Web Inspector: [Overrides] Command-Z doesn't undo changes after page reload
https://bugs.webkit.org/show_bug.cgi?id=201698
<rdar://problem/55276645>

Reviewed by Devin Rousso.

* UserInterface/Views/ContentViewContainer.js:
(WI.ContentViewContainer.prototype.closeAllContentViews):
Provide a filter to opt out of closing some content views.

* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._closeContentViewsFilter):
(WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
Avoid closing ContentViews for local resource overrides. This keeps the
SourceCodeTextEditor around and thus its undo/redo stack.

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

6 months ago[JHBuild] Fix building gst-plugins-good against glibc 2.30
pgriffis@igalia.com [Fri, 13 Sep 2019 08:11:10 +0000 (08:11 +0000)]
[JHBuild] Fix building gst-plugins-good against glibc 2.30
https://bugs.webkit.org/show_bug.cgi?id=201715

Reviewed by Xabier Rodriguez-Calvar.

* gstreamer/patches/gst-plugins-good-glibc-2.30-compat.patch: Added.

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

6 months agoFactor out duplicated functions from HTTPParsers.cpp and HTTPHeaderField.cpp
aperez@igalia.com [Fri, 13 Sep 2019 07:57:55 +0000 (07:57 +0000)]
Factor out duplicated functions from HTTPParsers.cpp and HTTPHeaderField.cpp
https://bugs.webkit.org/show_bug.cgi?id=201721

Reviewed by Don Olmstead.

No new tests needed.

* loader/HTTPHeaderField.cpp: Remove "static" from prototypes of functions needed in HTTPParsers.cpp.
(WebCore::RFC7230::isDelimiter):
(WebCore::RFC7230::isQuotedPairSecondOctet):
(WebCore::RFC7230::isCommentText):
* loader/HTTPHeaderField.h: Add prototypes of functions needed in HTTPParsers.cpp.
* platform/network/HTTPParsers.cpp: Use functionality from WebCore::RFC7230 where possible.
(WebCore::skipWhile): Moved to allow implementing skipWhiteSpace() in terms of skipWhile().
(WebCore::skipWhiteSpace): Implement using skipWhile() and the RFC7230::isWhitespace() predicate.
(WebCore::isValidAcceptHeaderValue): Replace usage of isDelimiterCharacter() with RFC7230::isDelimiter().
(WebCore::isValidHTTPToken): Replace usage of isHTTPTokenCharacter() with RFC7230::isTokenCharacter().
(WebCore::skipQuotedPair): Partially reimplement in terms of RFC7230::isQuotedPairSecondOctet().
(WebCore::skipComment): Replace usage of isCommentTextCharacter() with RFC7230::isCommentText().
(WebCore::skipHTTPToken): Replace usage of isHTTPTokenCharacter() with RFC7230::isTokenCharacter().

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

6 months agoUnreviewed debug build fix for GLib-based ports.
zandobersek@gmail.com [Fri, 13 Sep 2019 06:15:42 +0000 (06:15 +0000)]
Unreviewed debug build fix for GLib-based ports.

* platform/glib/UserAgentGLib.cpp: Add the HTTPParsers.h header
inclusion to bring in the isValidUserAgentHeaderValue() declaration as
required for an assertion check.

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

6 months ago[Win][WK1] Invert Colors inverts a part of the viewport in high DPI
Hironori.Fujii@sony.com [Fri, 13 Sep 2019 02:03:23 +0000 (02:03 +0000)]
[Win][WK1] Invert Colors inverts a part of the viewport in high DPI
https://bugs.webkit.org/show_bug.cgi?id=201719

Reviewed by Don Olmstead.

* WebView.cpp:
(WebView::paintWithDirect2D):
(WebView::paintIntoBackingStore):
Call gc.restore() after inverting the dirty rect.

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

6 months agoUpdate ANGLE
achristensen@apple.com [Fri, 13 Sep 2019 00:59:59 +0000 (00:59 +0000)]
Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=201156

Patch by James Darpinian <jdarpinian@chromium.org> on 2019-09-12
Reviewed by Alex Christensen.

Update to 2019-9-9, revision 79ad0411911b2fc84834c3705f55707be9e4b498
I merged a bunch of changes to upstream ANGLE, to minimize the changes
necessary when updating ANGLE in WebKit.

* ANGLE.plist: Update commit hashes
* ANGLE.txt: Removed in favor of LICENSE
* ANGLE.xcodeproj/project.pbxproj: Updated with upstream changes
  Also, copy src/commit.h to id/commit.h during build
* CMakeLists.txt: Updated with upstream changes
  Also, copy src/commit.h to id/commit.h during build
* Compiler.cmake: Updated with upstream changes
* GLESv2.cmake: Updated with upstream changes
* adjust-angle-include-paths-rule: Support "" as well as <> for includes
* adjust-angle-include-paths.sh: Support "" as well as <> for includes
* changes.diff: Pared down to just legal disclaimer and warning flag changes
* update-angle.sh: Update ANGLE.plist

* Many other files modified/added/removed upstream

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

6 months agoSVGLengthValue should use two enums for 'type' and 'mode' instead of one unsigned...
commit-queue@webkit.org [Fri, 13 Sep 2019 00:39:54 +0000 (00:39 +0000)]
SVGLengthValue should use two enums for 'type' and 'mode' instead of one unsigned for 'units'
https://bugs.webkit.org/show_bug.cgi?id=201663

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-12
Reviewed by Simon Fraser, Nikolas Zimmermann.

SVGLengthValue had one unsigned to store SVGLengthMode and SVGLengthType.
It used to allocate the least significant 4 bits of this unsigned to the
SVGLengthMode while it leaves the rest for SVGLengthType.

This will not be needed if SVGLengthMode and SVGLengthType are made of
size uint_8.

Also in this patch:

-- SVGLengthNegativeValuesMode is made enum class.

-- SVGLengthValue::blend() is moved to SVGLengthValue.cpp so we do not
   need to include SVGLengthContext.h in SVGLengthValue.h.

-- SVGLengthType and SVGLengthMode are moved to SVGLengthValue.h. Instead
   of having SVGLengthValue.h includes SVGLengthConttext.h, the opposite
   will happen.

-- SVGAnimatedPropertyDescription.h is deleted. It should have been deleted
   with the SVG tear off objects removal.

-- SVGPropertyTraits<SVGAngleValue> and SVGPropertyTraits<SVGLengthValue>
   are deleted. They should have been deleted with SVGAnimatedType removal.

-- SVGLengthValue::lengthModeForAnimatedLengthAttribute() is deleted. It
   was only called from SVGPropertyTraits<SVGLengthValue>.

* WebCore.xcodeproj/project.pbxproj:
* css/StyleResolver.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialBaselineShiftValue):
(WebCore::SVGRenderStyle::initialKerning):
* rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::calculateRadiiAndCenter):
* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
* rendering/svg/SVGPathData.cpp:
(WebCore::pathFromCircleElement):
(WebCore::pathFromEllipseElement):
(WebCore::pathFromRectElement):
* rendering/svg/SVGTextLayoutEngineBaseline.cpp:
(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift const):
* rendering/svg/SVGTextLayoutEngineSpacing.cpp:
(WebCore::SVGTextLayoutEngineSpacing::calculateCSSKerningAndSpacing):
* svg/LinearGradientAttributes.h:
(WebCore::LinearGradientAttributes::LinearGradientAttributes):
* svg/RadialGradientAttributes.h:
(WebCore::RadialGradientAttributes::RadialGradientAttributes):
* svg/SVGAngleValue.h:
(WebCore::SVGPropertyTraits<SVGAngleValue>::initialValue): Deleted.
(WebCore::SVGPropertyTraits<SVGAngleValue>::toString): Deleted.
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::parseAttribute):
* svg/SVGCircleElement.h:
* svg/SVGCursorElement.cpp:
(WebCore::SVGCursorElement::parseAttribute):
* svg/SVGCursorElement.h:
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::parseAttribute):
* svg/SVGEllipseElement.h:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::parseAttribute):
* svg/SVGFilterElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::parseAttribute):
* svg/SVGForeignObjectElement.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::parseAttribute):
* svg/SVGImageElement.h:
* svg/SVGLength.h:
(WebCore::SVGLength::unitType const):
(WebCore::SVGLength::setValueForBindings):
(WebCore::SVGLength::newValueSpecifiedUnits):
(WebCore::SVGLength::convertToSpecifiedUnits):
(WebCore::SVGLength::unitType): Deleted.
* svg/SVGLengthContext.cpp:
(WebCore::SVGLengthContext::valueForLength):
(WebCore::SVGLengthContext::convertValueToUserUnits const):
(WebCore::SVGLengthContext::convertValueFromUserUnits const):
(WebCore::SVGLengthContext::convertValueFromUserUnitsToPercentage const):
(WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits const):
* svg/SVGLengthContext.h:
(): Deleted.
* svg/SVGLengthList.h:
(WebCore::SVGLengthList::create):
* svg/SVGLengthValue.cpp:
(WebCore::lengthTypeToString):
(WebCore::parseLengthType):
(WebCore::primitiveTypeToLengthType):
(WebCore::lengthTypeToPrimitiveType):
(WebCore::SVGLengthValue::SVGLengthValue):
(WebCore::SVGLengthValue::construct):
(WebCore::SVGLengthValue::blend):
(WebCore::SVGLengthValue::fromCSSPrimitiveValue):
(WebCore::SVGLengthValue::toCSSPrimitiveValue):
(WebCore::SVGLengthValue::setValueAsString):
(WebCore::SVGLengthValue::valueAsString const):
(WebCore::SVGLengthValue::valueForBindings const):
(WebCore::SVGLengthValue::setValue):
(WebCore::SVGLengthValue::convertToSpecifiedUnits):
(WebCore::storeUnit): Deleted.
(WebCore::extractMode): Deleted.
(WebCore::extractType): Deleted.
(WebCore::SVGLengthValue::operator== const): Deleted.
(WebCore::SVGLengthValue::operator!= const): Deleted.
(WebCore::SVGLengthValue::unitType const): Deleted.
(WebCore::SVGLengthValue::unitMode const): Deleted.
(WebCore::SVGLengthValue::valueAsPercentage const): Deleted.
(WebCore::SVGLengthValue::newValueSpecifiedUnits): Deleted.
(WebCore::SVGLengthValue::lengthModeForAnimatedLengthAttribute): Deleted.
* svg/SVGLengthValue.h:
(WebCore::SVGLengthValue::lengthType const):
(WebCore::SVGLengthValue::lengthMode const):
(WebCore::SVGLengthValue::isZero const):
(WebCore::SVGLengthValue::isRelative const):
(WebCore::SVGLengthValue::valueAsPercentage const):
(WebCore::SVGLengthValue::valueInSpecifiedUnits const):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::SVGLengthValue::blend const): Deleted.
(WebCore::SVGPropertyTraits<SVGLengthValue>::initialValue): Deleted.
(WebCore::SVGPropertyTraits<SVGLengthValue>::parse): Deleted.
(WebCore::SVGPropertyTraits<SVGLengthValue>::toString): Deleted.
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::parseAttribute):
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::parseAttribute):
* svg/SVGLinearGradientElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::parseAttribute):
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::parseAttribute):
* svg/SVGMaskElement.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::parseAttribute):
* svg/SVGPatternElement.h:
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::parseAttribute):
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::parseAttribute):
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::hasIntrinsicWidth const):
(WebCore::SVGSVGElement::hasIntrinsicHeight const):
(WebCore::SVGSVGElement::intrinsicWidth const):
(WebCore::SVGSVGElement::intrinsicHeight const):
* svg/SVGSVGElement.h:
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::parseAttribute):
(WebCore::SVGTextContentElement::textLengthAnimated):
* svg/SVGTextContentElement.h:
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::parseAttribute):
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::parseAttribute):
* svg/SVGUseElement.h:
* svg/properties/SVGAnimatedPropertyAccessorImpl.h:
* svg/properties/SVGAnimatedPropertyDescription.h: Removed.
* svg/properties/SVGAnimationAdditiveListFunctionImpl.h:
(WebCore::SVGAnimationLengthListFunction::animate):
* svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
(WebCore::SVGAnimationLengthFunction::animate):
* svg/properties/SVGValuePropertyAnimatorImpl.h:
* svg/properties/SVGValuePropertyListAnimatorImpl.h:

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

6 months agoNode.replaceChild()'s pre-replacement validations are not done in the right order
cdumez@apple.com [Fri, 13 Sep 2019 00:01:45 +0000 (00:01 +0000)]
Node.replaceChild()'s pre-replacement validations are not done in the right order
https://bugs.webkit.org/show_bug.cgi?id=201741

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

* web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:

Source/WebCore:

Node.replaceChild()'s pre-replacement validations are not done in the right order (spec order):
- https://dom.spec.whatwg.org/#concept-node-replace

In particular, we do not do check 3 (If child’s parent is not parent, then throw a
"NotFoundError" DOMException.) at the right time, because we were making this check
*after* checkPreReplacementValidity(), instead of *during*.

No new tests, rebaselined existing test.

* dom/ContainerNode.cpp:
(WebCore::checkAcceptChild):
(WebCore::ContainerNode::ensurePreInsertionValidity):
(WebCore::checkPreReplacementValidity):
(WebCore::ContainerNode::replaceChild):

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

6 months agoUnreviewed, rolling out r249801.
ryanhaddad@apple.com [Thu, 12 Sep 2019 23:59:32 +0000 (23:59 +0000)]
Unreviewed, rolling out r249801.

Caused two servier worker layout tests to become flaky.

Reverted changeset:

"Use WebProcess processIdentifier to identify Service Worker
connections"
https://bugs.webkit.org/show_bug.cgi?id=201459
https://trac.webkit.org/changeset/249801

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

6 months agoUnreviewed test gardening, rebaseline inspector/model/remote-object.html for WK1...
ryanhaddad@apple.com [Thu, 12 Sep 2019 22:55:38 +0000 (22:55 +0000)]
Unreviewed test gardening, rebaseline inspector/model/remote-object.html for WK1 after r249808.

* platform/mac-wk1/inspector/model/remote-object-expected.txt: Added.

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

6 months agoPass sessionID to WebProcess with other WebProcessDataStoreParameters
cdumez@apple.com [Thu, 12 Sep 2019 22:46:20 +0000 (22:46 +0000)]
Pass sessionID to WebProcess with other WebProcessDataStoreParameters
https://bugs.webkit.org/show_bug.cgi?id=201730

Reviewed by Alex Christensen.

Pass sessionID to WebProcess with other WebProcessDataStoreParameters and store
it on the WebProcess object. In follow-up patches, I will use this sessionID
more and leverage the fact that we have one sessionID per Webprocess to simplify
the WebKit2-layer code.

* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* Shared/WebProcessDataStoreParameters.h:
(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::webProcessDataStoreParameters):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::sendWebProcessDataStoreParameters): Deleted.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setWebsiteDataStore):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setWebsiteDataStoreParameters):
* WebProcess/WebProcess.h:
(WebKit::WebProcess::sessionID const):

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

6 months ago[WKTR] Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED()
cdumez@apple.com [Thu, 12 Sep 2019 22:12:25 +0000 (22:12 +0000)]
[WKTR] Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED()
https://bugs.webkit.org/show_bug.cgi?id=201546

Reviewed by Alex Christensen.

Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED() from WebKitTestRunner as it does not do
the right thing for WebKit2 and tests have been rewritten to not use it.

Source/WebCore:

* page/PageGroup.cpp:
(WebCore::PageGroup::addPage):
(WebCore::PageGroup::setSessionIDForTesting): Deleted.
* page/PageGroup.h:
(): Deleted.

Source/WebKit:

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession): Deleted.
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleSetPrivateBrowsingEnabled): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::setPrivateBrowsingEnabled): Deleted.
* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess): Deleted.
* WebProcess/WebProcess.h:
* WebProcess/WebStorage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::setSessionIDForTesting):

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setPrivateBrowsingEnabled_DEPRECATED): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:

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

6 months ago[WHLSL] Slim down WSLMatrix and inline constructors in native code
sbarati@apple.com [Thu, 12 Sep 2019 21:47:25 +0000 (21:47 +0000)]
[WHLSL] Slim down WSLMatrix and inline constructors in native code
https://bugs.webkit.org/show_bug.cgi?id=201568

Reviewed by Robin Morisset.

Before, our WSL Matrix in MSL had templates to figure out how we're
constructing it. For example, with a list of elements, or a list of
columns. However, we can remove this template code since when we're
emitting Metal code, we know exactly how we're constructing the WSL
matrix. So the NativeFunctionWriter now inlines the proper stores
into the WSLMatrix elements.

This patch speeds up Metal compile times in boids by ~4ms (16%) with
a p-value of 0.0001.

Covered by existing tests.

* Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp:
(WebCore::WHLSL::Metal::metalCodePrologue):
* Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):

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

6 months agoREGRESSION (iOS 13): Top fixed element on apple.com flickers in size while pinching in
simon.fraser@apple.com [Thu, 12 Sep 2019 20:18:07 +0000 (20:18 +0000)]
REGRESSION (iOS 13): Top fixed element on apple.com flickers in size while pinching in
https://bugs.webkit.org/show_bug.cgi?id=201668
rdar://problem/51934041

Reviewed by Frédéric Wang.

Source/WebCore:

When computing the new layout viewport rect in ScrollingTreeFrameScrollingNode, use
"StickToDocumentBounds" mode, not "StickToViewportBounds", because otherwise we'll compute
a layout viewport that has negative top/left offsets which causes fixed elements to jump outside
the viewport. The only code that should be moving things outside the viewport (a temporary effect
that happens when pinching) is the 'isBelowMinimumScale' path in WebPageProxy::computeCustomFixedPositionRect().

With this change ScrollingTreeFrameScrollingNode no longer needs m_behaviorForFixed; it can be removed later.

Not currently testable, since it involves pinching in past minimum zoom and transients state.

* page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const):

Source/WebKit:

The UI process can have transient state that pushes scrolling-tree-managed layers into custom
locations while pinch-zooming. We have to apply this state both when the visible rects
in the UI process change (existing code in -[WKContentView didUpdateVisibleRect:...]) and when
we get new layers from the web process (added in RemoteLayerTreeDrawingAreaProxy::commitLayerTree()
in this patch).

Move some code into WebPageProxy to create functions that we can call from both places.

For manual testing, visit a page with fixed banners, pinch in slightly, then pinch out and,
while keeping your fingers down, move the contents around.

* UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::unconstrainedLayoutViewportRect const):
(WebKit::WebPageProxy::adjustLayersForLayoutViewport):

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

6 months agoUnreviewed test gardening, rebaseline inspector/model/remote-object.html after r249808.
ryanhaddad@apple.com [Thu, 12 Sep 2019 20:10:43 +0000 (20:10 +0000)]
Unreviewed test gardening, rebaseline inspector/model/remote-object.html after r249808.

* inspector/model/remote-object-expected.txt:

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

6 months ago[Cocoa] Text indicator for an image link on the front page of apple.com looks wrong
wenson_hsieh@apple.com [Thu, 12 Sep 2019 19:36:00 +0000 (19:36 +0000)]
[Cocoa] Text indicator for an image link on the front page of apple.com looks wrong
https://bugs.webkit.org/show_bug.cgi?id=201724
<rdar://problem/54622894>

Reviewed by Tim Horton.

Source/WebCore:

When computing the bounds of the range (<a>, 0) to (<a>, 1) for a text indicator snapshot where <a> is a link
with a single non-breaking whitespace character, we currently use the text rect of the single space. This leads
to a confusing text indicator, as the resulting snapshot is a tiny blank square in the top left corner of the
link. This problem manifests when starting a drag or showing the system context menu on iOS, or force clicking
or three-finger tapping to show a preview on macOS.

To address this scenario, tweak the heuristic in the case where the text indicator option
TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges is specified, such that we consider a range
containing only text with whitespaces to be "complex"; additionally, instead of falling back to the range's
bounding rect (which in this case is still tiny), fall back to the common ancestor container's bounding rect,
which encompasses not only the text inside the range but also the element containing the range (in this case,
the anchor element).

Test: fast/text-indicator/text-indicator-empty-link.html

* page/TextIndicator.cpp:
(WebCore::containsOnlyWhiteSpaceText):

Add a helper to determine whether a Range is comprised only of rendered text that only contains whitespace
characters.

(WebCore::initializeIndicator):

See ChangeLog entry above for more detail.

LayoutTests:

Add a new layout test to exercise this scenario.

* fast/text-indicator/text-indicator-empty-link-expected.txt: Added.
* fast/text-indicator/text-indicator-empty-link.html: Added.

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

6 months agoPDF exporting on iOS should include URL rects.
beidson@apple.com [Thu, 12 Sep 2019 16:55:52 +0000 (16:55 +0000)]
PDF exporting on iOS should include URL rects.
<rdar://problem/54900133> and https://bugs.webkit.org/show_bug.cgi?id=201693

Reviewed by Tim Horton.

Source/WebCore:

Turns out that PDF exporting on iOS works fine.

Tracking back through history it was disabled at least pre-2014.

It was almost certainly disabled because it didn't work way back then,
but it works great now.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setURLForRect): Remove the iOS platform exclusion.

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:
(TestWebKitAPI::TEST): Enable on iOS.

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

6 months agoRe-sync dom web-platform-tests from upstream
cdumez@apple.com [Thu, 12 Sep 2019 16:39:02 +0000 (16:39 +0000)]
Re-sync dom web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201697

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Re-sync dom web-platform-tests from upstream ab331d317554a3ba61.

* web-platform-tests/dom/META.yml: Added.
* web-platform-tests/dom/OWNERS: Removed.
* web-platform-tests/dom/abort/w3c-import.log:
* web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws-expected.txt: Removed.
* web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws.html: Removed.
* web-platform-tests/dom/collections/HTMLCollection-as-prototype-expected.txt: Added.
* web-platform-tests/dom/collections/HTMLCollection-as-prototype.html: Added.
* web-platform-tests/dom/collections/HTMLCollection-delete-expected.txt: Added.
* web-platform-tests/dom/collections/HTMLCollection-delete.html: Added.
* web-platform-tests/dom/collections/w3c-import.log:
* web-platform-tests/dom/historical-expected.txt:
* web-platform-tests/dom/historical.html:
* web-platform-tests/dom/idlharness.any.html: Added.
* web-platform-tests/dom/idlharness.any.js: Added.
* web-platform-tests/dom/idlharness.any.worker-expected.txt: Added.
* web-platform-tests/dom/idlharness.any.worker.html: Added.
* web-platform-tests/dom/idlharness.window-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt.
* web-platform-tests/dom/idlharness.window.html: Added.
* web-platform-tests/dom/idlharness.window.js: Added.
* web-platform-tests/dom/interfaces.html: Removed.
* web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
* web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
* web-platform-tests/dom/lists/w3c-import.log:
* web-platform-tests/dom/nodes/Comment-Text-constructor.js:
* web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
* web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js:
(test_getElementsByTagName):
* web-platform-tests/dom/nodes/Document-Element-getElementsByTagNameNS.js:
(test_getElementsByTagNameNS):
* web-platform-tests/dom/nodes/Document-URL-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-URL.sub-expected.txt.
* web-platform-tests/dom/nodes/Document-URL.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-URL.sub.html.
* web-platform-tests/dom/nodes/Document-constructor-expected.txt:
* web-platform-tests/dom/nodes/Document-constructor-svg.svg: Removed.
* web-platform-tests/dom/nodes/Document-constructor.html:
* web-platform-tests/dom/nodes/Document-contentType/contentType/w3c-import.log:
* web-platform-tests/dom/nodes/Document-contentType/resources/w3c-import.log:
* web-platform-tests/dom/nodes/Document-contentType/support/w3c-import.log:
* web-platform-tests/dom/nodes/Document-createAttribute-expected.txt:
* web-platform-tests/dom/nodes/Document-createAttribute.html:
* web-platform-tests/dom/nodes/Document-createElement-expected.txt:
* web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
* web-platform-tests/dom/nodes/Document-createElement-namespace.html:
* web-platform-tests/dom/nodes/Document-createElement.html:
* web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
* web-platform-tests/dom/nodes/Document-createElementNS.js:
* web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt: Added.
* web-platform-tests/dom/nodes/Document-createEvent.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.html.
* web-platform-tests/dom/nodes/Document-getElementsByClassName-expected.txt: Added.
* web-platform-tests/dom/nodes/Document-getElementsByClassName.html: Added.
* web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
* web-platform-tests/dom/nodes/Document-getElementsByTagNameNS-expected.txt:
* web-platform-tests/dom/nodes/Element-getElementsByClassName-expected.txt:
* web-platform-tests/dom/nodes/Element-getElementsByClassName.html:
* web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
* web-platform-tests/dom/nodes/Element-getElementsByTagNameNS-expected.txt:
* web-platform-tests/dom/nodes/Element-matches-expected.txt:
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
* web-platform-tests/dom/nodes/Node-childNodes-expected.txt:
* web-platform-tests/dom/nodes/Node-childNodes.html:
* web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
* web-platform-tests/dom/nodes/Node-cloneNode.html:
* web-platform-tests/dom/nodes/Node-insertBefore-expected.txt:
* web-platform-tests/dom/nodes/Node-insertBefore.html:
* web-platform-tests/dom/nodes/Node-normalize-expected.txt:
* web-platform-tests/dom/nodes/Node-normalize.html:
* web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:
* web-platform-tests/dom/nodes/Node-replaceChild.html:
* web-platform-tests/dom/nodes/Node-textContent.html:
* web-platform-tests/dom/nodes/ParentNode-children-expected.txt: Added.
* web-platform-tests/dom/nodes/ParentNode-children.html: Added.
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All.html:
* web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt: Added.
* web-platform-tests/dom/nodes/aria-element-reflection.tentative.html: Added.
* web-platform-tests/dom/nodes/attributes.html:
* web-platform-tests/dom/nodes/pre-insertion-checks.js: Added.
(getNonParentNodes):
(getNonInsertableNodes):
(getNonDocumentParentNodes):
(test):
* web-platform-tests/dom/nodes/productions.js:
* web-platform-tests/dom/nodes/query-target-in-load-event-expected.txt: Added.
* web-platform-tests/dom/nodes/query-target-in-load-event.html: Added.
* web-platform-tests/dom/nodes/query-target-in-load-event.part.html: Added.
* web-platform-tests/dom/nodes/remove-and-adopt-crash-expected.txt: Added.
* web-platform-tests/dom/nodes/remove-and-adopt-crash.html: Added.
* web-platform-tests/dom/nodes/rootNode-expected.txt:
* web-platform-tests/dom/nodes/rootNode.html:
* web-platform-tests/dom/nodes/selectors.js:
* web-platform-tests/dom/nodes/w3c-import.log:
* web-platform-tests/dom/ranges/Range-intersectsNode-2-expected.txt: Added.
* web-platform-tests/dom/ranges/Range-intersectsNode-2.html: Added.
* web-platform-tests/dom/ranges/w3c-import.log:
* web-platform-tests/dom/w3c-import.log:

LayoutTests:

* TestExpectations:
* platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
* tests-options.json:

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

6 months ago[GTK][WPE] webkit_settings_set_user_agent() allows content forbidden in HTTP headers
aperez@igalia.com [Thu, 12 Sep 2019 15:33:31 +0000 (15:33 +0000)]
[GTK][WPE] webkit_settings_set_user_agent() allows content forbidden in HTTP headers
https://bugs.webkit.org/show_bug.cgi?id=201077

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add a function to validate whether a string contains a valid value
which can be used in a HTTP User-Agent header.

Covered by new WebCore API test HTTPParsers.ValidateUserAgentValues.

* platform/glib/UserAgentGLib.cpp:
(WebCore::standardUserAgent): Assert that the returned string is a valid User-Agent.
(WebCore::standardUserAgentForURL): Ditto.
* platform/network/HTTPParsers.cpp: Added a series of helper functions which skip over
characters of a string, which can be used to scan over the different elements of an
User-Agent value; all of them receive the position from the input string where to start
scanning, updating it to the position right after the scanned item (this follow the
convention already in use by other functions in the source file). Each of them has
been annotated with the RFC number and section which contains the definition of the
scanned item, and the corresponding BNF rules to make the code easier to follow.
(WebCore::skipWhile): Added.
(WebCore::isVisibleCharacter): Added.
(WebCore::isOctectInFieldContentCharacter): Added.
(WebCore::isCommentTextCharacter): Added.
(WebCore::isHTTPTokenCharacter): Added.
(WebCore::isValidHTTPToken): Refactored to use the new isHTTPTokenCharacter()
helper function instead of having the test inside the loop.
(WebCore::skipCharacter): Added.
(WebCore::skipQuotedPair): Added.
(WebCore::skipComment): Added.
(WebCore::skipHTTPToken): Added.
(WebCore::skipUserAgentProduct): Added.
(WebCore::isValidUserAgentHeaderValue): Added.
* platform/network/HTTPParsers.h: Add prototype for isValidUserAgentHeaderValue().

Source/WebKit:

* UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_set_user_agent): Check the passed string using the new
WebCore::isValidUserAgentHeaderValue() function, and return early without
changing the setting if the string is not usable in the User-Agent HTTP
header.

Tools:

* TestWebKitAPI/CMakeLists.txt: Add missing HTTPParsers.cpp to be built into TestWebCore.
* TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:
(TestWebKitAPI::TEST): Add tests for WebCore::isValidUserAgentHeaderValue().

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

6 months agoREGRESSION? (r249786): inspector/canvas/context-attributes.html is failing on macOS WK1
drousso@apple.com [Thu, 12 Sep 2019 15:09:31 +0000 (15:09 +0000)]
REGRESSION? (r249786): inspector/canvas/context-attributes.html is failing on macOS WK1
https://bugs.webkit.org/show_bug.cgi?id=201714
<rdar://problem/55290473>

Reviewed by Joseph Pecoraro.

* inspector/canvas/context-attributes.html:
* inspector/canvas/context-attributes-expected.txt:

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

6 months agoHarden JSC against the abuse of runtime options.
mark.lam@apple.com [Thu, 12 Sep 2019 15:04:29 +0000 (15:04 +0000)]
Harden JSC against the abuse of runtime options.
https://bugs.webkit.org/show_bug.cgi?id=201597
<rdar://problem/55167068>

Reviewed by Filip Pizlo.

JSTests:

Remove the call to forceGCSlowPaths().  This utility function will be removed.
The modern way to set the required option is to use //@ requireOptions.

* stress/ftl-try-catch-oom-error-lazy-slow-path.js:

Source/JavaScriptCore:

Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>.

1. Introduce a JSC::Config struct that will be protected as ReadOnly once the
   first VM instance is constructed.  The end of the VM constructor calls
   Config::permanentlyFreeze() which will make the Config ReadOnly.

   Note: this is currently only supported for OS(DARWIN) and OS(LINUX).
   OS(WINDOWS) will need to implement some missing pieces before it can enable
   this hardening (see FIXME in JSCConfig.cpp).

   The hardening strategy here is to put immutable global values into the Config.
   Any modifications that need to be made to these values must be done before the
   first VM instance is done instantiating.  This ensures that no script will
   ever run while the Config is still writable.

   Also, the policy for this hardening is that a process is opted in by default.
   If there's a valid need to disable this hardening (e.g. for some test
   environments), the relevant process will need to opt itself out by calling
   Config::configureForTesting().

   The jsc shell, WK2 UI and WebContent processes are opted in by default.
   Only test processes may be opt out.

2. Put all JSC::Options in the Config.  This enforces the invariant that options
   can only be changed before we instantiate a VM.  Once a VM is instantiated,
   the options are immutable.

3. Remove functionForceGCSlowPaths() from the jsc shell.  Setting
   Options::forceGCSlowPaths this way is no longer allowed.

4. Re-factored the Options code (Options.h) into:
   - OptionEntry.h: the data structure that stores the option values.
   - OptionsList.h: the list of options.
   - Options.h: the Options singleton object which is the interface for accessing options.

   Renamed the JSC_OPTIONS macro to FOR_EACH_JSC_OPTION, because
   "FOR_EACH_JSC_OPTION(SET_OPTION_VALUE)" reads a lot better than
   "JSC_OPTIONS(FOR_EACH_OPTION)".

5. Change testapi to call Config::configureForTesting().  Parts of testapi makes
   use of setting options in its tests.  Hence, this hardening is disabled for
   testapi.

   Note: the jsc shell does enable this hardening.

6. Put ExecutableAllocator's immutable globals in the Config.

7. RELEASE_ASSERT that restrictedOptionsEnabled in order to use the
   FunctionOverrides test utility.

8. RELEASE_ASSERT that Options::useDollarVM() is enabled in order to use the $vm.

   We must RELEASE_ASSERT(Options::useDollarVM()) in all JSDollarVM functions
   that are non-trivial at an eye's glance.  This includes (but is not limited to):
       constructors
       create() factory
       createStructure() factory
       finishCreation()
       HOST_CALL or operation functions
       Constructors and methods of utility and test classes

   The only exception are some constexpr constructors used for instantiating
   globals (since these must have trivial constructors) e.g. DOMJITAttribute.
   Instead, these constructors should always be ALWAYS_INLINE.

* API/glib/JSCOptions.cpp:
(jscOptionsSetValue):
(jscOptionsGetValue):
(jsc_options_foreach):
(jsc_options_get_option_group):
* API/tests/testapi.c:
(main):
* API/tests/testapi.cpp:
(configureJSCForTesting):
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* jit/ExecutableAllocator.cpp:
(JSC::isJITEnabled):
(JSC::ExecutableAllocator::setJITEnabled):
(JSC::ExecutableAllocator::initializeUnderlyingAllocator):
(JSC::ExecutableAllocator::isValid const):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::getLock const):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::startOfFixedExecutableMemoryPoolImpl):
(JSC::endOfFixedExecutableMemoryPoolImpl):
(JSC::isJITPC):
(JSC::dumpJITMemory):
(JSC::ExecutableAllocator::initialize):
(JSC::ExecutableAllocator::singleton):
* jit/ExecutableAllocator.h:
(JSC::performJITMemcpy):
* jsc.cpp:
(GlobalObject::finishCreation):
(functionJSCOptions):
(jscmain):
(functionForceGCSlowPaths): Deleted.
* runtime/ConfigFile.cpp:
(JSC::ConfigFile::parse):
* runtime/InitializeThreading.cpp:
(JSC::initializeThreading):
* runtime/JSCConfig.cpp: Added.
(JSC::Config::disableFreezingForTesting):
(JSC::Config::enableRestrictedOptions):
(JSC::Config::permanentlyFreeze):
* runtime/JSCConfig.h: Added.
(JSC::Config::configureForTesting):
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::exposeDollarVM):
* runtime/OptionEntry.h: Added.
(JSC::OptionRange::operator= ):
(JSC::OptionRange::rangeString const):
* runtime/Options.cpp:
(JSC::Options::isAvailable):
(JSC::scaleJITPolicy):
(JSC::Options::initialize):
(JSC::Options::setOptions):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::setAliasedOption):
(JSC::Option::dump const):
(JSC::Option::operator== const):
(): Deleted.
(JSC::Options::enableRestrictedOptions): Deleted.
* runtime/Options.h:
(JSC::Option::Option):
(JSC::Option::defaultOption const):
(JSC::Option::boolVal):
(JSC::Option::unsignedVal):
(JSC::Option::doubleVal):
(JSC::Option::int32Val):
(JSC::Option::optionRangeVal):
(JSC::Option::optionStringVal):
(JSC::Option::gcLogLevelVal):
(JSC::OptionRange::operator= ): Deleted.
(JSC::OptionRange::rangeString const): Deleted.
* runtime/OptionsList.h: Added.
(JSC::countNumberOfJSCOptions):
* runtime/VM.cpp:
(JSC::VM::VM):
* tools/FunctionOverrides.cpp:
(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::FunctionOverrides::initializeOverrideFor):
(JSC::FunctionOverrides::parseOverridesInFile):
* tools/JSDollarVM.cpp:
(JSC::JSDollarVMCallFrame::JSDollarVMCallFrame):
(JSC::JSDollarVMCallFrame::createStructure):
(JSC::JSDollarVMCallFrame::create):
(JSC::JSDollarVMCallFrame::finishCreation):
(JSC::JSDollarVMCallFrame::addProperty):
(JSC::Element::Element):
(JSC::Element::create):
(JSC::Element::createStructure):
(JSC::Root::Root):
(JSC::Root::create):
(JSC::Root::createStructure):
(JSC::SimpleObject::SimpleObject):
(JSC::SimpleObject::create):
(JSC::SimpleObject::createStructure):
(JSC::ImpureGetter::ImpureGetter):
(JSC::ImpureGetter::createStructure):
(JSC::ImpureGetter::create):
(JSC::ImpureGetter::finishCreation):
(JSC::ImpureGetter::getOwnPropertySlot):
(JSC::CustomGetter::CustomGetter):
(JSC::CustomGetter::createStructure):
(JSC::CustomGetter::create):
(JSC::CustomGetter::getOwnPropertySlot):
(JSC::CustomGetter::customGetter):
(JSC::CustomGetter::customGetterAcessor):
(JSC::RuntimeArray::create):
(JSC::RuntimeArray::destroy):
(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::getOwnPropertySlotByIndex):
(JSC::RuntimeArray::createPrototype):
(JSC::RuntimeArray::createStructure):
(JSC::RuntimeArray::finishCreation):
(JSC::RuntimeArray::RuntimeArray):
(JSC::RuntimeArray::lengthGetter):
(JSC::DOMJITNode::DOMJITNode):
(JSC::DOMJITNode::createStructure):
(JSC::DOMJITNode::checkSubClassSnippet):
(JSC::DOMJITNode::create):
(JSC::DOMJITGetter::DOMJITGetter):
(JSC::DOMJITGetter::createStructure):
(JSC::DOMJITGetter::create):
(JSC::DOMJITGetter::DOMJITAttribute::DOMJITAttribute):
(JSC::DOMJITGetter::DOMJITAttribute::slowCall):
(JSC::DOMJITGetter::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetter::customGetter):
(JSC::DOMJITGetter::finishCreation):
(JSC::DOMJITGetterComplex::DOMJITGetterComplex):
(JSC::DOMJITGetterComplex::createStructure):
(JSC::DOMJITGetterComplex::create):
(JSC::DOMJITGetterComplex::DOMJITAttribute::DOMJITAttribute):
(JSC::DOMJITGetterComplex::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterComplex::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterComplex::functionEnableException):
(JSC::DOMJITGetterComplex::customGetter):
(JSC::DOMJITGetterComplex::finishCreation):
(JSC::DOMJITFunctionObject::DOMJITFunctionObject):
(JSC::DOMJITFunctionObject::createStructure):
(JSC::DOMJITFunctionObject::create):
(JSC::DOMJITFunctionObject::functionWithTypeCheck):
(JSC::DOMJITFunctionObject::functionWithoutTypeCheck):
(JSC::DOMJITFunctionObject::checkSubClassSnippet):
(JSC::DOMJITFunctionObject::finishCreation):
(JSC::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(JSC::DOMJITCheckSubClassObject::createStructure):
(JSC::DOMJITCheckSubClassObject::create):
(JSC::DOMJITCheckSubClassObject::functionWithTypeCheck):
(JSC::DOMJITCheckSubClassObject::functionWithoutTypeCheck):
(JSC::DOMJITCheckSubClassObject::finishCreation):
(JSC::DOMJITGetterBaseJSObject::DOMJITGetterBaseJSObject):
(JSC::DOMJITGetterBaseJSObject::createStructure):
(JSC::DOMJITGetterBaseJSObject::create):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::DOMJITAttribute):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterBaseJSObject::customGetter):
(JSC::DOMJITGetterBaseJSObject::finishCreation):
(JSC::JSTestCustomGetterSetter::JSTestCustomGetterSetter):
(JSC::JSTestCustomGetterSetter::create):
(JSC::JSTestCustomGetterSetter::createStructure):
(JSC::customSetAccessor):
(JSC::customSetValue):
(JSC::JSTestCustomGetterSetter::finishCreation):
(JSC::Element::handleOwner):
(JSC::Element::finishCreation):
(JSC::WasmStreamingParser::WasmStreamingParser):
(JSC::WasmStreamingParser::create):
(JSC::WasmStreamingParser::createStructure):
(JSC::WasmStreamingParser::finishCreation):
(JSC::functionWasmStreamingParserAddBytes):
(JSC::functionWasmStreamingParserFinalize):
(JSC::functionCrash):
(JSC::functionBreakpoint):
(JSC::functionDFGTrue):
(JSC::functionFTLTrue):
(JSC::functionCpuMfence):
(JSC::functionCpuRdtsc):
(JSC::functionCpuCpuid):
(JSC::functionCpuPause):
(JSC::functionCpuClflush):
(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::getExecutableForFunction):
(JSC::functionLLintTrue):
(JSC::functionJITTrue):
(JSC::functionNoInline):
(JSC::functionGC):
(JSC::functionEdenGC):
(JSC::functionDumpSubspaceHashes):
(JSC::functionCallFrame):
(JSC::functionCodeBlockForFrame):
(JSC::codeBlockFromArg):
(JSC::functionCodeBlockFor):
(JSC::functionDumpSourceFor):
(JSC::functionDumpBytecodeFor):
(JSC::doPrint):
(JSC::functionDataLog):
(JSC::functionPrint):
(JSC::functionDumpCallFrame):
(JSC::functionDumpStack):
(JSC::functionDumpRegisters):
(JSC::functionDumpCell):
(JSC::functionIndexingMode):
(JSC::functionInlineCapacity):
(JSC::functionValue):
(JSC::functionGetPID):
(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):
(JSC::functionCreateGlobalObject):
(JSC::functionCreateProxy):
(JSC::functionCreateRuntimeArray):
(JSC::functionCreateNullRopeString):
(JSC::functionCreateImpureGetter):
(JSC::functionCreateCustomGetterObject):
(JSC::functionCreateDOMJITNodeObject):
(JSC::functionCreateDOMJITGetterObject):
(JSC::functionCreateDOMJITGetterComplexObject):
(JSC::functionCreateDOMJITFunctionObject):
(JSC::functionCreateDOMJITCheckSubClassObject):
(JSC::functionCreateDOMJITGetterBaseJSObject):
(JSC::functionCreateWasmStreamingParser):
(JSC::functionSetImpureGetterDelegate):
(JSC::functionCreateBuiltin):
(JSC::functionGetPrivateProperty):
(JSC::functionCreateRoot):
(JSC::functionCreateElement):
(JSC::functionGetElement):
(JSC::functionCreateSimpleObject):
(JSC::functionGetHiddenValue):
(JSC::functionSetHiddenValue):
(JSC::functionShadowChickenFunctionsOnStack):
(JSC::functionSetGlobalConstRedeclarationShouldNotThrow):
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionFlattenDictionaryObject):
(JSC::functionDumpBasicBlockExecutionRanges):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):
(JSC::functionEnableExceptionFuzz):
(JSC::changeDebuggerModeWhenIdle):
(JSC::functionEnableDebuggerModeWhenIdle):
(JSC::functionDisableDebuggerModeWhenIdle):
(JSC::functionDeleteAllCodeWhenIdle):
(JSC::functionGlobalObjectCount):
(JSC::functionGlobalObjectForObject):
(JSC::functionGetGetterSetter):
(JSC::functionLoadGetterFromGetterSetter):
(JSC::functionCreateCustomTestGetterSetter):
(JSC::functionDeltaBetweenButterflies):
(JSC::functionTotalGCTime):
(JSC::functionParseCount):
(JSC::functionIsWasmSupported):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):
* tools/JSDollarVM.h:

Source/WebCore:

No new tests.  Covered by existing tests.

Enable Options::useDollarVM before we tell the JSGlobalObject to exposeDollarVM().
The $vm utility is now hardened to require that Options::useDollarVM be
enabled in order for it to be used.

* testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::injectInternalsObject):

Source/WebKit:

Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>.

1. Add plumbing to allow WK2 tests to configureJSCForTesting().
2. Removed the call enable Options::useBigInt in WebInspectorUI.
   WebInspectorUI doesn't really need it for now.

* PluginProcess/unix/PluginProcessMainUnix.cpp:
* Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Shared/unix/AuxiliaryProcessMain.cpp:
(WebKit::AuxiliaryProcessMainBase::parseCommandLine):
* Shared/unix/AuxiliaryProcessMain.h:
(WebKit::AuxiliaryProcessMain):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationSetShouldConfigureJSCForTesting):
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration configureJSCForTesting]):
(-[_WKProcessPoolConfiguration setConfigureJSCForTesting:]):
* UIProcess/Launcher/ProcessLauncher.h:
(WebKit::ProcessLauncher::Client::shouldConfigureJSCForTesting const):
* UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shouldConfigureJSCForTesting const):
* UIProcess/WebProcessProxy.h:
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::WebInspectorUI):

Source/WTF:

Add a source file that was missing so that Xcode can search its contents too.

* WTF.xcodeproj/project.pbxproj:

Tools:

Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>.
Windows parts contributed by Fujii Hironori <Hironori.Fujii@sony.com>.

Call JSC::Config::configureForTesting() in test harnesses or at the top of tests
to disable the hardening on test runs.  Tests rely on setting options to enable
test features.

* DumpRenderTree/mac/DumpRenderTree.mm:
(dumpRenderTree):
* DumpRenderTree/win/DumpRenderTree.cpp:
(initialize):
* TestWebKitAPI/PlatformUtilities.cpp:
(TestWebKitAPI::Util::createContextWithInjectedBundle):
* TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(main):
* TestWebKitAPI/Tests/WebKitCocoa/ApplePay.mm:
(TestWebKitAPI::TEST):
(TestWebKitAPI::runActiveSessionTest):
* TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDiagnosticLogging.mm:
(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
* TestWebKitAPI/Tests/mac/MediaPlaybackSleepAssertion.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/WKWebViewConfigurationExtras.h:
* TestWebKitAPI/WKWebViewConfigurationExtras.mm:
(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:]):
(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:configureJSCForTesting:]):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::generateContextConfiguration const):

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

6 months agoFix PDFKit references in TestWebKitAPI
krollin@apple.com [Thu, 12 Sep 2019 14:13:28 +0000 (14:13 +0000)]
Fix PDFKit references in TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=201700
<rdar://problem/55279539>

Reviewed by Youenn Fablet.

These references fail in watchOS and tvOS, so remove them on those
platforms.

* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:
* TestWebKitAPI/cocoa/TestPDFDocument.h:
* TestWebKitAPI/cocoa/TestPDFDocument.mm:
* TestWebKitAPI/config.h:

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

6 months agoFix accidental copies in NetworkLoadChecker.cpp
mcatanzaro@igalia.com [Thu, 12 Sep 2019 13:52:59 +0000 (13:52 +0000)]
Fix accidental copies in NetworkLoadChecker.cpp
https://bugs.webkit.org/show_bug.cgi?id=199528

Reviewed by Youenn Fablet.

Coverity noticed that we are copying a ResourceRequest and a ContentExtensionResultOrError
in NetworkLoadChecker::checkRequest by mistake, when the intent was to move them as rvalue
references.

* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRequest):
* NetworkProcess/NetworkLoadChecker.h:

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

6 months agoWeb Inspector: Crashes when intercept response continues with original content
pecoraro@apple.com [Thu, 12 Sep 2019 10:59:09 +0000 (10:59 +0000)]
Web Inspector: Crashes when intercept response continues with original content
https://bugs.webkit.org/show_bug.cgi?id=201707
<rdar://problem/55261857>

Reviewed by David Kilzer.

* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
Copy the data for the callback since the deferral may run it much later.

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

6 months agoLayout Test http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterro...
commit-queue@webkit.org [Thu, 12 Sep 2019 10:53:59 +0000 (10:53 +0000)]
Layout Test http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=199075

Patch by Russell Epstein <repstein@apple.com> on 2019-09-12
Reviewed by Youenn Fablet.

Currently, this test includes js-test.js twice, which is causing the test to be flaky.

* http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror.html: Removed second instance.

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

6 months agoUse typed identifiers for IDB connection identifiers
youenn@apple.com [Thu, 12 Sep 2019 08:47:31 +0000 (08:47 +0000)]
Use typed identifiers for IDB connection identifiers
https://bugs.webkit.org/show_bug.cgi?id=201682

Reviewed by Chris Dumez.

Source/WebCore:

Migrate from uint64_t to a typed identifier for IDB connection identifiers.
The identifier is reusing the process identifier type.
No change of behavior.

* Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::serverConnectionIdentifier const):
* Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::identifier const):
* Modules/indexeddb/client/IDBConnectionToServer.h:
* Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
* Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::identifier const):
* Modules/indexeddb/server/IDBConnectionToClient.h:
* Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNames):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
(WebCore::IDBServer::IDBServer::didGetAllDatabaseNames):
* Modules/indexeddb/server/IDBServer.h:
* Modules/indexeddb/shared/IDBRequestData.cpp:
(WebCore::IDBRequestData::serverConnectionIdentifier const):
* Modules/indexeddb/shared/IDBRequestData.h:
* Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):
(WebCore::IDBResourceIdentifier::emptyValue):
(WebCore::IDBResourceIdentifier::deletedValue):
(WebCore::IDBResourceIdentifier::isHashTableDeletedValue const):
(WebCore::IDBResourceIdentifier::loggingString const):
* Modules/indexeddb/shared/IDBResourceIdentifier.h:
(WebCore::IDBResourceIdentifier::hash const):
(WebCore::IDBResourceIdentifier::connectionIdentifier const):
(WTF::crossThreadCopy):
* Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::identifier const):
* Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit:

Remove no longer needed conversion from process identifier to idb connection identifier.

* NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::identifier const):
* WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

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

6 months ago[GTK] Allow CacheStore::destroyEngine to destroy default engine for soup.
cturner@igalia.com [Thu, 12 Sep 2019 08:44:09 +0000 (08:44 +0000)]
[GTK] Allow CacheStore::destroyEngine to destroy default engine for soup.
https://bugs.webkit.org/show_bug.cgi?id=201690

Reviewed by Carlos Garcia Campos.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::destroyEngine): As we do for
NetworkProcess::destroySession, also allow destroying the engine
for the default session for the same reason.

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

6 months agoUse WebProcess processIdentifier to identify Service Worker connections
youenn@apple.com [Thu, 12 Sep 2019 08:18:15 +0000 (08:18 +0000)]
Use WebProcess processIdentifier to identify Service Worker connections
https://bugs.webkit.org/show_bug.cgi?id=201459

Reviewed by Chris Dumez.

Source/WebCore:

No observable change of behavior.

* workers/service/ServiceWorkerClient.cpp:
(WebCore::ServiceWorkerClient::postMessage):
Pass sessionID to ease NetworkProcess selection of the client process connection.
* workers/service/ServiceWorkerTypes.h:
Mark server connection identifier be process identifier based.
* workers/service/context/SWContextManager.h:
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::Connection::Connection):
* workers/service/server/SWServer.h:
Let connection identifier be set in constructor instead of generated.

Source/WebCore/PAL:

* pal/SessionID.h:
(PAL::SessionID::SessionID):

Source/WebKit:

Make WebSWServerConnection be stored in NetworkConnectionToWebProcess.
They are now keyed by session IDs hence why WebSWClientConnection is using the session ID as message connection ID.
Creation no longer requires a sync IPC since the connection is uniquely identified by its session ID and its process ID.
These IDs are stable over network process crash.
Within NetworkProcess, a server connection is managed by a SWServer which is session ID specific.
In that case, the process identifier uniquely identifies the connection.

Move WebSWServerToContextConnection be owned by NetworkConnectionToWebProcess.
Instead of creating it when webprocess is connecting to network process, use a dedicated IPC message.
This is similar to WebSWServerConnection once WebProcess asks to create it.
This will allow existing WebProcess, in cache or running pages, to run service workers as well.
A context connection map is kept in Network Process to reuse context connections since these connections are not sessionID specific.

Migrate from a single boolean to a HashSet to track whether some connections are in the process of being created.
Previously if two requests to create connections were done shortly one after the other on different registrable
domains, the second request would not be processed.

* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::forEachSWServer):
(WebKit::NetworkProcess::needsServerToContextConnectionForRegistrableDomain const):
(WebKit::NetworkProcess::createServerToContextConnection):
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
(WebKit::NetworkProcess::registerSWContextConnection):
(WebKit::NetworkProcess::unregisterSWContextConnection):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
* NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
* NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::establishServiceWorkerContext):
* UIProcess/WebProcessProxy.h:
* WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):
* WebProcess/Network/NetworkProcessConnection.h:
* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::~WebSWClientConnection):
(WebKit::WebSWClientConnection::messageSenderConnection const):
(WebKit::WebSWClientConnection::scheduleJobInServer):
(WebKit::WebSWClientConnection::finishFetchingScriptInServer):
(WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::postMessageToServiceWorker):
(WebKit::WebSWClientConnection::registerServiceWorkerClient):
(WebKit::WebSWClientConnection::unregisterServiceWorkerClient):
(WebKit::WebSWClientConnection::didResolveRegistrationPromise):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::runOrDelayTaskForImport):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):
(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):
(WebKit::WebSWClientConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWClientConnection::connectionToServerLost):
(WebKit::WebSWClientConnection::clear):
(WebKit::WebSWClientConnection::syncTerminateWorker):
(WebKit::WebSWClientConnection::updateThrottleState):
(WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting):
* WebProcess/Storage/WebSWClientConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

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

6 months agoUncaught Exception: TypeError: null is not an object (evaluating 'selectedTreeElement...
pecoraro@apple.com [Thu, 12 Sep 2019 07:50:18 +0000 (07:50 +0000)]
Uncaught Exception: TypeError: null is not an object (evaluating 'selectedTreeElement.representedObject')
https://bugs.webkit.org/show_bug.cgi?id=201716
<rdar://problem/55292615>

Reviewed by Devin Rousso.

* UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
* UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
If a breakpoint was removed without a selection in the breakpoint tree outline
then there may be no selected tree element.

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

6 months agoWeb Inspector: REGRESSION: Inspector Timeline always starts at about 500ms mark on...
joepeck@webkit.org [Thu, 12 Sep 2019 06:55:26 +0000 (06:55 +0000)]
Web Inspector: REGRESSION: Inspector Timeline always starts at about 500ms mark on a reload
https://bugs.webkit.org/show_bug.cgi?id=200637
<rdar://problem/54218967>

Reviewed by Devin Rousso.

The Timeline was getting a startTime value from before the user started
the timeline recording because of artificial adjustments that were made
to CPUTimelineRecords. Ignore adjusted values when updating the Timeline's
start and end times.

* UserInterface/Models/Timeline.js:
(WI.Timeline.prototype._updateTimesIfNeeded):
Use unadjusted times, which should fall in the user started / stopped
timeline range.

* UserInterface/Models/TimelineRecord.js:
(WI.TimelineRecord.prototype.get unadjustedStartTime):
(WI.TimelineRecord.prototype.get unadjustedEndTime):
Default implementation uses startTime/endTime.

* UserInterface/Models/CPUTimelineRecord.js:
(WI.CPUTimelineRecord.prototype.get unadjustedStartTime):
* UserInterface/Models/MemoryTimelineRecord.js:
(WI.MemoryTimelineRecord.prototype.get unadjustedStartTime):
Each of these adjusted their startTime.

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

6 months agoSource/ThirdParty/libwebrtc:
youenn@apple.com [Thu, 12 Sep 2019 06:51:46 +0000 (06:51 +0000)]
Source/ThirdParty/libwebrtc:
Disable DTLS1.0
https://bugs.webkit.org/show_bug.cgi?id=201679

Reviewed by Alex Christensen.

* Source/webrtc/rtc_base/opensslstreamadapter.cc:
Set minimum version to DTLS1.2 when DTLS1.2 is supported.
This makes sure any client will never downgrade to DTLS1.0.

Source/WebCore:
Disable DTLS1.0
https://bugs.webkit.org/show_bug.cgi?id=201679

Reviewed by Alex Christensen.

Add an option to force to use DTLS1.0 and nothing else.
Add internals API to enter in that mode to verify that normal configurations cannot communicate with DTLS1.0.

Test: webrtc/datachannel/dtls10.html

* platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::setEnableWebRTCEncryption):
(WebCore::LibWebRTCProvider::setUseDTLS10):
* platform/mediastream/libwebrtc/LibWebRTCProvider.h:
* testing/Internals.cpp:
(WebCore::Internals::setUseDTLS10):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:
Disable DTLS10
https://bugs.webkit.org/show_bug.cgi?id=201679

Reviewed by Alex Christensen.

* webrtc/datachannel/dtls10-expected.txt: Added.
* webrtc/datachannel/dtls10.html: Added.

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

6 months agoWeb Inspector: REGRESSION: CPU: Overlay Markers for Thread views are off by 500ms
pecoraro@apple.com [Thu, 12 Sep 2019 06:04:09 +0000 (06:04 +0000)]
Web Inspector: REGRESSION: CPU: Overlay Markers for Thread views are off by 500ms
https://bugs.webkit.org/show_bug.cgi?id=201709
<rdar://problem/55289279>

Reviewed by Devin Rousso.

* UserInterface/Views/CPUTimelineView.js:
(WI.CPUTimelineView.prototype.layout):
Use the CPUTimelineRecord's timestamp (same as the record's endTime) as the
point when the CPU sample is taken. This aligns with the rest of the UI that
assumes that the 500ms before the sample point leads up to the sample value.

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

6 months agoWeb Inspector: Do not show override actions unless Sources tab is enabled
pecoraro@apple.com [Thu, 12 Sep 2019 05:47:26 +0000 (05:47 +0000)]
Web Inspector: Do not show override actions unless Sources tab is enabled
https://bugs.webkit.org/show_bug.cgi?id=201708

Reviewed by Devin Rousso.

* UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager.supportsLocalResourceOverrides):

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

6 months agoLog timeoutValue passed on to CFNetwork
krollin@apple.com [Thu, 12 Sep 2019 05:40:12 +0000 (05:40 +0000)]
Log timeoutValue passed on to CFNetwork
https://bugs.webkit.org/show_bug.cgi?id=201701
<rdar://problem/55279683>

Reviewed by Chris Dumez.

Source/WebCore:

Export ResourceRequest::timeoutValue for use in WebKit.

No new tests -- no new or changed functionality.

* platform/network/ResourceRequestBase.h:

Source/WebKit:

We occasionally see cases where resource-loads into CFNetwork take a
long time. Rather than timing out after the default of 60s, they stay
pending for many minutes. To better understand why this is happening,
log the timeoutValue we pass to CFNetwork when loading resources.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):

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

6 months ago[WHLSL] Remove null from the standard library
sbarati@apple.com [Thu, 12 Sep 2019 05:29:01 +0000 (05:29 +0000)]
[WHLSL] Remove null from the standard library
https://bugs.webkit.org/show_bug.cgi?id=201672

Reviewed by Robin Morisset.

I meant to remove `null` from the standard library in r249351, but
I had omitted the code I wrote to do that when I rebased that patch.
This patch removes it and ensures all tests pass when parsing the entire
standard library.

* Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:

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

6 months agoUnreviewed, rolling out r249791.
ryanhaddad@apple.com [Thu, 12 Sep 2019 05:06:34 +0000 (05:06 +0000)]
Unreviewed, rolling out r249791.

Breaks internal production builds.

Reverted changeset:

"Update ANGLE"
https://bugs.webkit.org/show_bug.cgi?id=201156
https://trac.webkit.org/changeset/249791

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

6 months agoUse same parser for <meta http-equiv="refresh"> and `Refresh` HTTP header
cdumez@apple.com [Thu, 12 Sep 2019 04:32:29 +0000 (04:32 +0000)]
Use same parser for <meta http-equiv="refresh"> and `Refresh` HTTP header
https://bugs.webkit.org/show_bug.cgi?id=201694

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing-expected.txt:

Source/WebCore:

Use same parser for <meta http-equiv="refresh"> and `Refresh` HTTP header. This aligns
our behavior with Blink and makes us more compliant on web-platform-tests. This also
simplifies our code.

No new tests, rebaselined existing test.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData):
* platform/network/HTTPParsers.cpp:
(WebCore::parseHTTPRefresh): Deleted.
* platform/network/HTTPParsers.h:

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

6 months agoUpdate ANGLE
achristensen@apple.com [Thu, 12 Sep 2019 03:08:03 +0000 (03:08 +0000)]
Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=201156

Patch by James Darpinian <jdarpinian@chromium.org> on 2019-09-11
Reviewed by Alex Christensen.

Update to 2019-9-9, revision 79ad0411911b2fc84834c3705f55707be9e4b498
I merged a bunch of changes to upstream ANGLE, to minimize the changes
necessary when updating ANGLE in WebKit.

* ANGLE.plist: Update commit hashes
* ANGLE.txt: Removed in favor of LICENSE
* ANGLE.xcodeproj/project.pbxproj: Updated with upstream changes
Also, copy src/commit.h to id/commit.h during build
* CMakeLists.txt: Updated with upstream changes
Also, copy src/commit.h to id/commit.h during build
* Compiler.cmake: Updated with upstream changes
* GLESv2.cmake: Updated with upstream changes
* adjust-angle-include-paths-rule: Support "" as well as <> for includes
* adjust-angle-include-paths.sh: Support "" as well as <> for includes
* changes.diff: Pared down to just legal disclaimer and warning flag changes
* update-angle.sh: Update ANGLE.plist

* Many other files modified/added/removed upstream

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

6 months agoWeb Inspector: Canvas: checkerboard has too much contrast in dark mode
drousso@apple.com [Thu, 12 Sep 2019 02:31:08 +0000 (02:31 +0000)]
Web Inspector: Canvas: checkerboard has too much contrast in dark mode
https://bugs.webkit.org/show_bug.cgi?id=201670

Reviewed by Timothy Hatcher.

* UserInterface/Views/CanvasTabContentView.css:
(.content-view.canvas > .preview > img, .content-view.canvas .preview-container > canvas): Deleted.
Don't force a `background-color: white;` in dark mode.

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

6 months ago[Win][MiniBrowser] Select all text in the URL bar by clicking it
Hironori.Fujii@sony.com [Thu, 12 Sep 2019 01:48:27 +0000 (01:48 +0000)]
[Win][MiniBrowser] Select all text in the URL bar by clicking it
https://bugs.webkit.org/show_bug.cgi?id=201677

Reviewed by Don Olmstead.

* MiniBrowser/win/MainWindow.cpp:
(EditProc): Post EM_SETSEL in WM_SETFOCUS to select all text.

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

6 months agoWeb Inspector: Elements: don't show Changes panel when selecting text node
nvasilyev@apple.com [Thu, 12 Sep 2019 01:06:45 +0000 (01:06 +0000)]
Web Inspector: Elements: don't show Changes panel when selecting text node
https://bugs.webkit.org/show_bug.cgi?id=201669

Reviewed by Joseph Pecoraro.

Show Changes panel only for elements regardless of "Show only for selected node" setting.

* UserInterface/Views/ChangesDetailsSidebarPanel.js:
(WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode):
(WI.ChangesDetailsSidebarPanel.prototype.inspect): Deleted.

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

6 months ago[WHLSL] Ensure structs/arrays with pointers as fields are disallowed
sbarati@apple.com [Wed, 11 Sep 2019 23:34:42 +0000 (23:34 +0000)]
[WHLSL] Ensure structs/arrays with pointers as fields are disallowed
https://bugs.webkit.org/show_bug.cgi?id=201525

Reviewed by Robin Morisset.

Source/WebCore:

This patch adds a pass which both ensures that references are always initialized with
concrete values and that we support logical mode validation by disallowing nested references.

Specifically, the pass:

1. Disallows structs to have fields which are references. This prevents us from having to
figure out how to default initialize such a struct. We could relax this in the future if we
did an analysis on which structs contain reference fields, and ensure such struct variables
always have initializers. This would also require us to create constructors for structs which
initialize each field.
2. We also do the same for arrays.
3. References can only be one level deep. So no pointers to pointers. No references to
references, etc. This is to support logical mode validation rules.

Test: webgpu/whlsl/ensure-proper-pointer-usage.html

* Modules/webgpu/WHLSL/WHLSLCheckReferenceTypes.cpp: Added.
(WebCore::WHLSL::checkReferenceTypes):
* Modules/webgpu/WHLSL/WHLSLCheckReferenceTypes.h: Added.
* Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::Checker::visit):
* Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
(WebCore::WHLSL::prepareShared):
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

LayoutTests:

This patch fixes a bug in our test harness where we forgot to wait for the gpu
device to load before running test harness tests. This patch fixes this oversight
and asserts that we have always finished loading before running a test.

* webgpu/whlsl/array-spec-tests.html:
* webgpu/whlsl/ensure-proper-pointer-usage-expected.txt: Added.
* webgpu/whlsl/ensure-proper-pointer-usage.html: Added.
* webgpu/whlsl/js/test-harness.js:
(Harness):
(Harness.prototype.async.requestDevice):
(Harness.prototype.async.callTypedFunction):
(Harness.prototype.async.checkCompileFail):
* webgpu/whlsl/pointer-spec-tests.html:
* webgpu/whlsl/test-harness-test.html:

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

6 months agoWeb Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
drousso@apple.com [Wed, 11 Sep 2019 23:28:37 +0000 (23:28 +0000)]
Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
https://bugs.webkit.org/show_bug.cgi?id=201650

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`.

A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline).  We should treat the `GPUCanvasContext` almost like a
`-webkit-canvas` client of a `WebGPUDevice`.

* inspector/protocol/Canvas.json:
 - Add `powerPreference` key to `ContextAttributes` type.
 - Rename `requestCSSCanvasClientNodes` command to `requestClientNodes` for the above reason.
 - Rename `cssCanvasClientNodesChanged` event to `clientNodesChanged` for the above reason.
 - Rename `resolveCanvasContext` command to `resolveContext` since a `WebGPUDevice` isn't
   really a "canvas".

Source/WebCore:

Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`.

A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline).  We should treat the `GPUCanvasContext` almost like a
`-webkit-canvas` client of a `WebGPUDevice`.

Tests: inspector/canvas/create-context-webgpu.html
       inspector/canvas/requestClientNodes-webgpu.html
       inspector/canvas/resolveContext-webgpu.html

* Modules/webgpu/WebGPUAdapter.cpp:
(WebCore::WebGPUAdapter::requestDevice const):
Notify web inspector after a device is created.

* Modules/webgpu/WebGPUDevice.idl:
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::instances): Added.
(WebCore::WebGPUDevice::instancesMutex): Added.
(WebCore::WebGPUDevice::~WebGPUDevice): Added.
Notify web inspector when the device is about to be destructed.

* Modules/webgpu/GPUCanvasContext.h:
* Modules/webgpu/GPUCanvasContext.cpp:
(WebCore::GPUCanvasContext::create):
(WebCore::GPUCanvasContext::configureSwapChain):

* inspector/InspectorCanvas.h:
* inspector/InspectorCanvas.cpp:
(WebCore::canvasIfContextMatchesDevice): Added.
(WebCore::InspectorCanvas::create):
(WebCore::InspectorCanvas::InspectorCanvas):
(WebCore::InspectorCanvas::canvasContext const): Added.
(WebCore::InspectorCanvas::canvasElement const): Added.
(WebCore::InspectorCanvas::isDeviceForCanvasContext const): Added.
(WebCore::InspectorCanvas::deviceContext const): Added.
(WebCore::InspectorCanvas::scriptExecutionContext const): Added.
(WebCore::InspectorCanvas::resolveContext const): Added.
(WebCore::InspectorCanvas::clientNodes const): Added.
(WebCore::InspectorCanvas::canvasChanged):
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::releaseObjectForRecording):
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::InspectorCanvas::canvasElement): Deleted.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCreateWebGPUDeviceImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDeviceImpl): Added.
(WebCore::InspectorInstrumentation::willConfigureSwapChainImpl): Added.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didCreateWebGPUDevice): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDevice): Added.
(WebCore::InspectorInstrumentation::willConfigureSwapChain): Added.

* inspector/agents/InspectorCanvasAgent.h:
* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::requestClientNodes): Added.
(WebCore::InspectorCanvasAgent::resolveContext): Added.
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::didCreateWebGPUDevice): Added.
(WebCore::InspectorCanvasAgent::willDestroyWebGPUDevice): Added.
(WebCore::InspectorCanvasAgent::willConfigureSwapChain): Added.
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::bindCanvas):
(WebCore::InspectorCanvasAgent::unbindCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes): Deleted.
(WebCore::contextAsScriptValue): Deleted.
(WebCore::InspectorCanvasAgent::resolveCanvasContext): Deleted.

* inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::context const):

Source/WebInspectorUI:

Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`.

A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline).  We should treat the `GPUCanvasContext` almost like a
`-webkit-canvas` client of a `WebGPUDevice`.

* UserInterface/Protocol/CanvasObserver.js:
(WI.CanvasObserver.prototype.clientNodesChanged): Added.
(WI.CanvasObserver.prototype.cssCanvasClientNodesChanged):
* UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager.prototype.clientNodesChanged): Added.
(WI.CanvasManager.prototype.cssCanvasClientNodesChanged): Deleted.
* UserInterface/Models/Canvas.js:
(WI.Canvas.resetUniqueDisplayNameNumbers):
(WI.Canvas.prototype.get displayName):
(WI.Canvas.prototype.requestNode):
(WI.Canvas.prototype.requestClientNodes): Added.
(WI.Canvas.prototype.requestSize):
(WI.Canvas.prototype.clientNodesChanged): Added.
(WI.Canvas.prototype.requestCSSCanvasClientNodes): Deleted.
(WI.Canvas.prototype.cssCanvasClientNodesChanged): Deleted.

* UserInterface/Protocol/RemoteObject.js:
(WI.RemoteObject.resolveCanvasContext):

* UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.attached):
(WI.CanvasContentView.prototype._refreshPixelSize):
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WI.CanvasDetailsSidebarPanel.prototype.set canvas):
(WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WI.CanvasDetailsSidebarPanel.prototype.layout):
(WI.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
(WI.CanvasDetailsSidebarPanel.prototype._refreshClientsSection): Added.
(WI.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection): Deleted.
* UserInterface/Views/CanvasOverviewContentView.js:
(WI.CanvasOverviewContentView.prototype._contentViewMouseEnter):
* UserInterface/Views/CanvasTreeElement.js:
(WI.CanvasTreeElement.prototype._handleMouseOver):

* Localizations/en.lproj/localizedStrings.js:

LayoutTests:

* inspector/canvas/create-context-webgpu.html:
* inspector/canvas/create-context-webgpu-expected.txt:
* inspector/canvas/resources/create-context-utilities.js:
(createDetachedCanvas):
(createCSSCanvas):
(destroyCanvases):

* inspector/canvas/requestClientNodes.html: Added.
* inspector/canvas/requestClientNodes-expected.txt: Added.
* inspector/canvas/requestClientNodes-css.html: Renamed from LayoutTests/inspector/canvas/css-canvas-clients.html.
* inspector/canvas/requestClientNodes-css-expected.txt: Renamed from LayoutTests/inspector/canvas/css-canvas-clients-expected.txt.
* inspector/canvas/requestClientNodes-webgpu.html: Added.
* inspector/canvas/requestClientNodes-webgpu-expected.txt: Added.

* inspector/canvas/resolveContext-2d.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d.html.
* inspector/canvas/resolveContext-2d-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d-expected.txt.
* inspector/canvas/resolveContext-bitmaprenderer.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer.html.
* inspector/canvas/resolveContext-bitmaprenderer-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer-expected.txt.
* inspector/canvas/resolveContext-webgl.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl.html.
* inspector/canvas/resolveContext-webgl-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl-expected.txt.
* inspector/canvas/resolveContext-webgl2.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2.html.
* inspector/canvas/resolveContext-webgl2-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2-expected.txt.
* inspector/canvas/resolveContext-webgpu.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
* inspector/canvas/resolveContext-webgpu-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu-expected.txt.

* inspector/canvas/context-attributes-expected.txt:

* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wpe/TestExpectations:

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

6 months agoProtect UserMediaRequest when stopping it
youenn@apple.com [Wed, 11 Sep 2019 23:10:01 +0000 (23:10 +0000)]
Protect UserMediaRequest when stopping it
https://bugs.webkit.org/show_bug.cgi?id=201687
<rdar://problem/55241215>

Reviewed by Eric Carlson.

By removing the request from the map, we may destroy the request.
To make sure it stays alive, take the request from the map.

* WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest):

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

6 months agoStop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cache...
cdumez@apple.com [Wed, 11 Sep 2019 22:42:18 +0000 (22:42 +0000)]
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cache-storage/cache-persistency.https.html
https://bugs.webkit.org/show_bug.cgi?id=201691

Reviewed by Alex Christensen.

Split cache-persistency.https.html into 2 tests (one for private session and one for
regular session) to avoid relying on legacy testRunner.setPrivateBrowsingEnabled_DEPRECATED().

* http/tests/cache-storage/cache-persistency-private-expected.txt: Added.
* http/tests/cache-storage/cache-persistency-private.html: Added.
* http/tests/cache-storage/cache-persistency.https-expected.txt:
* http/tests/cache-storage/cache-persistency.https.html:

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

6 months agoPosting a message to a redundant service worker should fail silently instead of throwing
cdumez@apple.com [Wed, 11 Sep 2019 22:38:04 +0000 (22:38 +0000)]
Posting a message to a redundant service worker should fail silently instead of throwing
https://bugs.webkit.org/show_bug.cgi?id=201696

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

* web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:

Source/WebCore:

Posting a message to a redundant service worker should fail silently instead of throwing:
- https://w3c.github.io/ServiceWorker/#dom-serviceworker-postmessage-message-options
- https://w3c.github.io/ServiceWorker/#run-service-worker (step 2)

No new tests, rebaselined existing test.

* workers/service/ServiceWorker.cpp:
(WebCore::ServiceWorker::postMessage):
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::runServiceWorkerIfNecessary):

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

6 months ago[JSC] Add StringCodePointAt intrinsic
ysuzuki@apple.com [Wed, 11 Sep 2019 22:36:52 +0000 (22:36 +0000)]
[JSC] Add StringCodePointAt intrinsic
https://bugs.webkit.org/show_bug.cgi?id=201673

Reviewed by Michael Saboff.

JSTests:

* stress/string-char-at-constant-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-char-code-at-constant-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at--out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at-basic.js: Added.
(test):
* stress/string-code-point-at-constant-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at-constant-int32-max-index-out-of-range.js: Added.
(shouldBe):
(test):
* stress/string-code-point-at-constant-surrogate-pair.js: Added.
(shouldBe):
(test):
(breaking):
* stress/string-code-point-at-surrogate-pair.js: Added.
(shouldBe):
* stress/string-code-point-at.js: Added.
(shouldBe):

Source/JavaScriptCore:

JetStream2/UniPoker executes String#codePointAt frequently. We should handle it in ThunkGenerator, DFG, and FTL like we are doing so for String#charCodeAt.
This patch adds these supports for String#codePointAt to get ~10% score improvement in JetStream2/UniPoker.

In ThunkGenerator, we add a thunk for String#codePointAt, which accelerates LLInt and Baseline. In DFG, we handle this as StringCodePointAt node, and emit
inlined code in DFG and FTL. The characteristics of StringCodePointAt node is basically the same to StringCharAt. It has String array-mode, so it emits
preceding CheckArray. This ensures that (1) StringCodePointAt node itself does not do GC since the string is always resolved, and (2) we can skip the rope
check. This thing is just the same to the existing StringCharCodeAt mechanism.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.h:
(JSC::DFG::Node::hasArrayMode):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileStringCodePointAt):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCodePointAt):
* jit/JITInlines.h:
(JSC::JIT::emitLoadCharacterString):
* jit/ThunkGenerators.cpp:
(JSC::stringGetByValGenerator):
(JSC::stringCharLoad):
(JSC::stringPrototypeCodePointAtThunkGenerator):
* jit/ThunkGenerators.h:
* runtime/Intrinsic.cpp:
(JSC::intrinsicName):
* runtime/Intrinsic.h:
* runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
* runtime/VM.cpp:
(JSC::thunkGeneratorForIntrinsic):

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

6 months agoAlign our XPath API with the specification and other browsers
cdumez@apple.com [Wed, 11 Sep 2019 22:27:34 +0000 (22:27 +0000)]
Align our XPath API with the specification and other browsers
https://bugs.webkit.org/show_bug.cgi?id=201660

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more checks are passing.

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

Source/WebCore:

Align our XPath API with the specification and other browsers:
- Document/XPathEvaluator.createExpression()'s first parameter should be mandatory
- Document/XPathEvaluator.evaluate()'s first 2 parameters should be mandatory
- XPathExpression.evaluate()'s first parameter should be mandatory

I have confirmed in the latest Chrome and Firefox that they match the specification.

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::evaluate):
* dom/Document.h:
* dom/Document.idl:
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::searchUsingXPath):
* xml/XPathEvaluator.cpp:
(WebCore::XPathEvaluator::evaluate):
* xml/XPathEvaluator.h:
* xml/XPathEvaluator.idl:
* xml/XPathExpression.cpp:
(WebCore::XPathExpression::evaluate):
* xml/XPathExpression.h:
* xml/XPathExpression.idl:
* xml/XPathUtil.cpp:
(WebCore::XPath::isValidContextNode):
* xml/XPathUtil.h:

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

6 months agoUnreviewed, rolling out r249768.
ryanhaddad@apple.com [Wed, 11 Sep 2019 21:43:53 +0000 (21:43 +0000)]
Unreviewed, rolling out r249768.

Caused 4 API tests to assert, perf test failures, and layout
test crashes under ASan

Reverted changeset:

"Remove unnecessary abstractions around WebsiteDataStore"
https://bugs.webkit.org/show_bug.cgi?id=201655
https://trac.webkit.org/changeset/249768

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

6 months agoJSC crashes due to stack overflow while building RegExp
msaboff@apple.com [Wed, 11 Sep 2019 21:22:33 +0000 (21:22 +0000)]
JSC crashes due to stack overflow while building RegExp
https://bugs.webkit.org/show_bug.cgi?id=201649

Reviewed by Yusuke Suzuki.

JSTests:

New regression test.

* stress/regexp-bol-optimize-out-of-stack.js: Added.
(test):
(catch):

Source/JavaScriptCore:

Check for running out of stack when we are optimizing RegExp containing BOL terms or
other deep copying of disjunctions.

* yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::copyDisjunction):
(JSC::Yarr::YarrPatternConstructor::copyTerm):
(JSC::Yarr::YarrPatternConstructor::error):
(JSC::Yarr::YarrPattern::compile):

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

6 months agoUnreviewed, rolling out r249753.
tsavell@apple.com [Wed, 11 Sep 2019 21:10:11 +0000 (21:10 +0000)]
Unreviewed, rolling out r249753.

caused inspector/canvas/shaderProgram-add-remove-webgl.html to
crash on all Mac platforms.

Reverted changeset:

"Web Inspector: Canvas: instrument WebGPUDevice instead of
GPUCanvasContext"
https://bugs.webkit.org/show_bug.cgi?id=201650
https://trac.webkit.org/changeset/249753

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

6 months agoREGRESSION (245006): can't scroll in "read more" view in Eventbrite app
antti@apple.com [Wed, 11 Sep 2019 17:29:25 +0000 (17:29 +0000)]
REGRESSION (245006): can't scroll in "read more" view in Eventbrite app
https://bugs.webkit.org/show_bug.cgi?id=201683
<rdar://problem/54582602>

Reviewed by Simon Fraser.

Source/WebCore:

* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isEventbrite):

Source/WebKit:

Content <body> has 'overflow:hidden'.

* UIProcess/Cocoa/VersionChecks.h:
* UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const):

Fix by adding an app specific LinkedOnOrAfter quirk that always allows main frame scrolling.

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

6 months agoRemove unnecessary abstractions around WebsiteDataStore
achristensen@apple.com [Wed, 11 Sep 2019 16:37:25 +0000 (16:37 +0000)]
Remove unnecessary abstractions around WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=201655

Reviewed by Chris Dumez.

Source/WebKit:

This patch does four things to simplify WebsiteDataStore code:
1. It removes API::WebsiteDataStore, which was just an unnecessary wrapper around WebKit::WebsiteDataStore.
2. It deprecates the unused aliases of WebsiteDataStore, WKApplicationCacheManagerRef and WKKeyValueStorageManagerRef
3. It removes the unused APIProcessPoolConfiguration properties that have been moved to WebsiteDataStore.
4. It makes WKWebsiteDataStore._delegate weak instead of strong, as already annotated in WKWebsiteDataStorePrivate.h
There should be no change in behavior from this patch.

* PlatformFTW.cmake:
* PlatformWin.cmake:
* Sources.txt:
* SourcesCocoa.txt:
* SourcesGTK.txt:
* SourcesWPE.txt:
* UIProcess/API/APIHTTPCookieStore.cpp:
* UIProcess/API/APIHTTPCookieStore.h:
* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::websiteDataStore):
(API::PageConfiguration::setWebsiteDataStore):
* UIProcess/API/APIPageConfiguration.h:
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): Deleted.
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/APIWebsiteDataStore.cpp: Removed.
* UIProcess/API/APIWebsiteDataStore.h: Removed.
* UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::data):
* UIProcess/API/APIWebsitePolicies.h:
* UIProcess/API/C/WKAPICast.h:
* UIProcess/API/C/WKApplicationCacheManager.cpp:
(WKApplicationCacheManagerGetTypeID):
(WKApplicationCacheManagerGetApplicationCacheOrigins):
(WKApplicationCacheManagerDeleteEntriesForOrigin):
(WKApplicationCacheManagerDeleteAllEntries):
* UIProcess/API/C/WKApplicationCacheManager.h:
* UIProcess/API/C/WKFramePolicyListener.cpp:
(useWithPolicies):
* UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetTypeID):
(WKKeyValueStorageManagerGetOriginKey):
(WKKeyValueStorageManagerGetCreationTimeKey):
(WKKeyValueStorageManagerGetModificationTimeKey):
(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
(WKKeyValueStorageManagerDeleteEntriesForOrigin):
(WKKeyValueStorageManagerDeleteAllEntries):
* UIProcess/API/C/WKKeyValueStorageManager.h:
* UIProcess/API/C/WKResourceCacheManager.cpp:
(WKResourceCacheManagerGetTypeID):
(WKResourceCacheManagerGetCacheOrigins):
(WKResourceCacheManagerClearCacheForOrigin):
(WKResourceCacheManagerClearCacheForAllOrigins):
(toWebsiteDataTypes): Deleted.
* UIProcess/API/C/WKResourceCacheManager.h:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreGetTypeID):
(WKWebsiteDataStoreGetDefaultDataStore):
(WKWebsiteDataStoreCreateNonPersistentDataStore):
(WKWebsiteDataStoreCreateWithConfiguration):
(WKWebsiteDataStoreGetHTTPCookieStore):
(WKWebsiteDataStoreSetResourceLoadStatisticsDebugModeWithCompletionHandler):
(WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode):
(WKWebsiteDataStoreSetStatisticsLastSeen):
(WKWebsiteDataStoreSetStatisticsPrevalentResource):
(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreDumpResourceLoadStatistics):
(WKWebsiteDataStoreIsStatisticsPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
(WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
(WKWebsiteDataStoreSetStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreIsStatisticsHasHadUserInteraction):
(WKWebsiteDataStoreSetStatisticsGrandfathered):
(WKWebsiteDataStoreIsStatisticsGrandfathered):
(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsCrossSiteLoadWithLinkDecoration):
(WKWebsiteDataStoreSetStatisticsTimeToLiveUserInteraction):
(WKWebsiteDataStoreStatisticsProcessStatisticsAndDataRecords):
(WKWebsiteDataStoreStatisticsUpdateCookieBlocking):
(WKWebsiteDataStoreStatisticsSubmitTelemetry):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WKWebsiteDataStoreSetStatisticsIsRunningTest):
(WKWebsiteDataStoreSetStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WKWebsiteDataStoreSetStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WKWebsiteDataStoreSetStatisticsGrandfatheringTime):
(WKWebsiteDataStoreSetStatisticsMaxStatisticsEntries):
(WKWebsiteDataStoreSetStatisticsPruneEntriesDownTo):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval):
(WKWebsiteDataStoreStatisticsDeleteCookiesForTesting):
(WKWebsiteDataStoreStatisticsHasLocalStorage):
(WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap):
(WKWebsiteDataStoreStatisticsHasIsolatedSession):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
(WKWebsiteDataStoreRemoveAllFetchCaches):
(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
(WKWebsiteDataStoreRemoveAllIndexedDatabases):
(WKWebsiteDataStoreRemoveLocalStorage):
(WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):
(WKWebsiteDataStoreGetFetchCacheOrigins):
(WKWebsiteDataStoreGetFetchCacheSizeForOrigin):
(WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory):
(WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory):
(WKWebsiteDataStoreSetPerOriginStorageQuota):
(WKWebsiteDataStoreClearAllDeviceOrientationPermissions):
(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):
(WKWebsiteDataStoreClearAdClickAttributionsThroughWebsiteDataRemoval):
* UIProcess/API/C/WKWebsitePolicies.cpp:
* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: Removed.
* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(+[WKWebsiteDataStore defaultDataStore]):
(+[WKWebsiteDataStore nonPersistentDataStore]):
(-[WKWebsiteDataStore dealloc]):
(-[WKWebsiteDataStore httpCookieStore]):
(-[WKWebsiteDataStore removeDataOfTypes:modifiedSince:completionHandler:]):
(-[WKWebsiteDataStore removeDataOfTypes:forDataRecords:completionHandler:]):
(+[WKWebsiteDataStore _defaultDataStoreExists]):
(+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]):
(-[WKWebsiteDataStore _initWithConfiguration:]):
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsEnabled]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsEnabled:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]):
(-[WKWebsiteDataStore _perOriginStorageQuota]):
(-[WKWebsiteDataStore _setPerOriginStorageQuota:]):
(-[WKWebsiteDataStore _cacheStorageDirectory]):
(-[WKWebsiteDataStore _setCacheStorageDirectory:]):
(-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]):
(-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]):
(-[WKWebsiteDataStore _setBoundInterfaceIdentifier:]):
(-[WKWebsiteDataStore _boundInterfaceIdentifier]):
(-[WKWebsiteDataStore _setAllowsCellularAccess:]):
(-[WKWebsiteDataStore _allowsCellularAccess]):
(-[WKWebsiteDataStore _setProxyConfiguration:]):
(-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]):
(-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]):
(-[WKWebsiteDataStore _setAllowsTLSFallback:]):
(-[WKWebsiteDataStore _allowsTLSFallback]):
(-[WKWebsiteDataStore _proxyConfiguration]):
(-[WKWebsiteDataStore _indexedDBDatabaseDirectory]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldSubmitTelemetry:]):
(-[WKWebsiteDataStore _setResourceLoadStatisticsTestingCallback:]):
(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):
(-[WKWebsiteDataStore _scheduleCookieBlockingUpdate:]):
(-[WKWebsiteDataStore _setPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _getIsPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _clearPrevalentDomain:completionHandler:]):
(-[WKWebsiteDataStore _processStatisticsAndDataRecords:]):
(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):
(-[WKWebsiteDataStore _delegate]):
(-[WKWebsiteDataStore set_delegate:]):
* UIProcess/API/Cocoa/WKWebsiteDataStoreInternal.h:
* UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: Removed.
* UIProcess/API/win/APIWebsiteDataStoreWin.cpp:
(API::WebsiteDataStore::defaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::defaultCacheStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): Deleted.
(API::WebsiteDataStore::defaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): Deleted.
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): Deleted.
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): Deleted.
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::NetworkProcessProxy):
(WebKit::NetworkProcessProxy::websiteDataStoreFromSessionID):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebFramePolicyListenerProxy.cpp:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
* UIProcess/WebProcessPool.cpp:
(WebKit::m_webProcessCache):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::resolvePathsForSandboxExtensions):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::sendWebProcessDataStoreParameters):
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers):
* UIProcess/WebProcessPool.h:
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):
(WebKit::WebsiteDataStore::defaultCacheStorageDirectory):
(WebKit::WebsiteDataStore::defaultNetworkCacheDirectory):
(WebKit::WebsiteDataStore::defaultMediaCacheDirectory):
(WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::defaultLocalStorageDirectory):
(WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStore::defaultJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStore::tempDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::globalDefaultDataStore):
(WebKit::WebsiteDataStore::defaultDataStore):
(WebKit::WebsiteDataStore::deleteDefaultDataStoreForTesting):
(WebKit::WebsiteDataStore::defaultDataStoreExists):
(WebKit::WebsiteDataStore::defaultDataStoreConfiguration):
(WebKit::WebsiteDataStore::isAssociatedProcessPool const):
(WebKit::WebsiteDataStore::processPools const):
(WebKit::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
* UIProcess/WebsiteData/WebsiteDataStore.h:
* UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):
* UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:
(WebKit::WebsiteDataStore::defaultApplicationCacheDirectory):
(WebKit::WebsiteDataStore::defaultCacheStorageDirectory):
(WebKit::WebsiteDataStore::defaultNetworkCacheDirectory):
(WebKit::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::defaultLocalStorageDirectory):
(WebKit::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
* UIProcess/glib/WebsiteDataStoreGLib.cpp: Copied from Source/WebKit/UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp.
(API::WebsiteDataStore::defaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::defaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::defaultCacheStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): Deleted.
(API::WebsiteDataStore::defaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::defaultHSTSDirectory): Deleted.
(API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory): Deleted.
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation): Deleted.
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation): Deleted.
* WebKit.xcodeproj/project.pbxproj:

LayoutTests:

* platform/mac-wk2/TestExpectations:

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

6 months agoUnreviewed, rolling out r249758.
ryanhaddad@apple.com [Wed, 11 Sep 2019 16:01:33 +0000 (16:01 +0000)]
Unreviewed, rolling out r249758.

Breaks the watchOS build.

Reverted changeset:

"[WHLSL] Ensure structs/arrays with pointers as fields are
disallowed"
https://bugs.webkit.org/show_bug.cgi?id=201525
https://trac.webkit.org/changeset/249758

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

6 months agoUnreviewed, re-skip service worker test that was unskipped in r249716
cdumez@apple.com [Wed, 11 Sep 2019 15:36:31 +0000 (15:36 +0000)]
Unreviewed, re-skip service worker test that was unskipped in r249716

This test is still a flaky timeout.

* TestExpectations:

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

6 months agoPrevent reentrancy FrameLoader::dispatchUnloadEvents()
ajuma@chromium.org [Wed, 11 Sep 2019 14:52:18 +0000 (14:52 +0000)]
Prevent reentrancy FrameLoader::dispatchUnloadEvents()
https://bugs.webkit.org/show_bug.cgi?id=200738

Reviewed by Brady Eidson.

Reentrancy causes m_pageDismissalEventBeingDispatched to be incorrectly
updated, so don't allow reentrancy.

Since this prevents m_pageDismissalEventBeingDispatched from being reset
inside a reentrant call, it can have the unintended effect of causing
FrameLoader::stopAllLoaders to early-out when called from
FrameLoader::detachFromParent while a frame's unload event handler
calls document.open() on a parent frame and causes itself to become
detached. Allowing a load to continue in a detached frame will lead to
a crash. To prevent this, add a new argument to FrameLoader::stopAllLoaders
that FrameLoader::detachFromParent can use to prevent an early-out.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::detachFromParent):
(WebCore::FrameLoader::dispatchUnloadEvents):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
Ensure that m_pageDismissalEventBeingDispatched is reset to its previous value, even if this is not None.
* loader/FrameLoader.h:
* loader/FrameLoaderTypes.h:
Add a StopLoadingPolicy enum.

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

6 months ago[GStreamer] Do not adopt floating references.
cturner@igalia.com [Wed, 11 Sep 2019 11:49:14 +0000 (11:49 +0000)]
[GStreamer] Do not adopt floating references.
https://bugs.webkit.org/show_bug.cgi?id=201685

Reviewed by Carlos Garcia Campos.

Covered by existing tests.

* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::initializeGStreamer): gst_element_factory_make returns
floating references, you do not adopt such references, rather you
sink them.

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

6 months agoBug 201603 - Synchronize MathML WPT tests against upstream
commit-queue@webkit.org [Wed, 11 Sep 2019 11:34:41 +0000 (11:34 +0000)]
Bug 201603 - Synchronize MathML WPT tests against upstream
https://bugs.webkit.org/show_bug.cgi?id=201603

Patch by Frederic Wang <fwang@igalia.com> on 2019-09-11
Reviewed by Rob Buis.

LayoutTests/imported/w3c:

* resources/resource-files.json:
* web-platform-tests/mathml/presentation-markup/direction/direction-006-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-006.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-007-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-007.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-008-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-008.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-009-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-009.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-010-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-010.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-overall-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-overall.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-token-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction-token.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/direction.html: Added.
* web-platform-tests/mathml/presentation-markup/direction/w3c-import.log: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-1.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-created-dynamically-2-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-created-dynamically-2.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-created-dynamically-3-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-created-dynamically-3.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-created-dynamically-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-created-dynamically.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-expected.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.html: Removed.
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-004-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-004.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-expected.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html:
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-001-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-001.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-002-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-002.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-003-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-003.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-004-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-004.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-005-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-005.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-006-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-006.html: Added.
* web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html:
* web-platform-tests/mathml/presentation-markup/fractions/w3c-import.log:
* web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-baseline.html: Added.
* web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html: Added.
* web-platform-tests/mathml/presentation-markup/mrow/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/spaces/w3c-import.log.
* web-platform-tests/mathml/presentation-markup/operators/embellished-operator-001-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/operators/embellished-operator-001.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/embellished-operator-002-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/operators/embellished-operator-002.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1.html:
* web-platform-tests/mathml/presentation-markup/operators/mo-form-dynamic-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form-dynamic.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form-fallback-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form-fallback.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form-minus-plus-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form-minus-plus.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-form.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-default-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-default.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-dynamic-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-dynamic.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-movablelimits.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/mo-paint-lspace-rspace.html: Added.
* web-platform-tests/mathml/presentation-markup/operators/w3c-import.log:
* web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-1.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-2.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-3.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-4.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-5.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1.html:
* web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html:
* web-platform-tests/mathml/presentation-markup/scripts/underover-1.html:
* web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1.html:
* web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2.html:
* web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html:
* web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.html:
* web-platform-tests/mathml/presentation-markup/spaces/mspace-children-expected.html: Added.
* web-platform-tests/mathml/presentation-markup/spaces/mspace-children.html: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-1.html:
* web-platform-tests/mathml/presentation-markup/spaces/space-2.html:
* web-platform-tests/mathml/presentation-markup/spaces/space-like-001-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-001.html: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-002-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-002.html: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-003-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-003.html: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-004-expected.txt: Added.
* web-platform-tests/mathml/presentation-markup/spaces/space-like-004.html: Added.
* web-platform-tests/mathml/presentation-markup/spaces/w3c-import.log:
* web-platform-tests/mathml/presentation-markup/tables/table-axis-height.html:
* web-platform-tests/mathml/relations/css-styling/attribute-mapping-002-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/color-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/color-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/color-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/color-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/color-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/color-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/color-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/color-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/color-003.html: Added.
* web-platform-tests/mathml/relations/css-styling/color-004-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/color-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/color-004.html: Added.
* web-platform-tests/mathml/relations/css-styling/color-1.html: Removed.
* web-platform-tests/mathml/relations/css-styling/display-1.html:
* web-platform-tests/mathml/relations/css-styling/display-contents-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/display-contents.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-011-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-011.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-012-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-012.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-013-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-013.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-014-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-014.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-015-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-015.html: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-1-expected.txt:
* web-platform-tests/mathml/relations/css-styling/displaystyle-1.html:
* web-platform-tests/mathml/relations/css-styling/displaystyle-2-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/displaystyle-2.html: Added.
* web-platform-tests/mathml/relations/css-styling/dynamic-dir-1-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/dynamic-dir-1.html: Added.
* web-platform-tests/mathml/relations/css-styling/lengths-1.html:
* web-platform-tests/mathml/relations/css-styling/lengths-2-expected.html: Removed.
* web-platform-tests/mathml/relations/css-styling/lengths-2-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/lengths-2.html:
* web-platform-tests/mathml/relations/css-styling/lengths-3-expected.txt: Removed.
* web-platform-tests/mathml/relations/css-styling/lengths-3.html: Removed.
* web-platform-tests/mathml/relations/css-styling/mathbackground-001-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-001-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-002-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-002-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-003-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-003-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-003.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-004-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-004-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathbackground-004.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-001-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-001-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-002-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-002-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-003-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-003-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-003.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-004-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-004-notref.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathcolor-004.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathsize-attribute-css-keywords-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathsize-attribute-css-keywords.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathsize-attribute-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathsize-attribute-legacy-values-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathsize-attribute-legacy-values.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathsize-attribute.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathvariant-auto-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathvariant-auto.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-fraktur-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-fraktur.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-italic-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-italic.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-sans-serif-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-sans-serif.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-script-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold-script.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-bold.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-case-sensitivity-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathvariant-case-sensitivity.html: Added.
* web-platform-tests/mathml/relations/css-styling/mathvariant-double-struck-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-double-struck.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-fraktur-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-fraktur.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-initial-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-initial.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-italic-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-italic.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-looped-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-looped.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-monospace-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-monospace.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-italic-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-italic.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-script-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-script.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-stretched-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-stretched.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-tailed-expected.html:
* web-platform-tests/mathml/relations/css-styling/mathvariant-tailed.html:
* web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-001-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-002-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/margin-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-001-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-border-margin-001-expected.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-border-margin-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/padding-border-margin/w3c-import.log: Added.
* web-platform-tests/mathml/relations/css-styling/visibility-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/visibility-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/visibility-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/visibility-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/visibility-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/visibility-002.html: Added.
* web-platform-tests/mathml/relations/css-styling/visibility-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/visibility-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/visibility-003.html: Added.
* web-platform-tests/mathml/relations/css-styling/visibility-004-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/visibility-1-expected.html.
* web-platform-tests/mathml/relations/css-styling/visibility-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/mathml/relations/css-styling/visibility-1.html.
* web-platform-tests/mathml/relations/css-styling/w3c-import.log:
* web-platform-tests/mathml/relations/css-styling/width-height-001-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/width-height-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/writing-mode/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/w3c-import.log.
* web-platform-tests/mathml/relations/css-styling/writing-mode/writing-mode-001-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/writing-mode/writing-mode-001.html: Added.
* web-platform-tests/mathml/relations/css-styling/writing-mode/writing-mode-002-expected.txt: Added.
* web-platform-tests/mathml/relations/css-styling/writing-mode/writing-mode-002.html: Added.
* web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative-expected.txt:
* web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative.html:
* web-platform-tests/mathml/relations/text-and-math/use-typo-metrics-1.html:
* web-platform-tests/mathml/tools/fractions.py:
* web-platform-tests/mathml/tools/math-text.py: Added.
* web-platform-tests/mathml/tools/mathvariant-transforms.py:
* web-platform-tests/mathml/tools/percentscaledown.py: Added.
* web-platform-tests/mathml/tools/stacks.py:
* web-platform-tests/mathml/tools/w3c-import.log:

LayoutTests:

* TestExpectations:
* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-2-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-002-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Added.
* platform/mac-wk1/TestExpectations:

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

6 months ago[GTK][WPE] Stop using the session bus in the unit tests
carlosgc@webkit.org [Wed, 11 Sep 2019 08:28:49 +0000 (08:28 +0000)]
[GTK][WPE] Stop using the session bus in the unit tests
https://bugs.webkit.org/show_bug.cgi?id=201636

Reviewed by Žan Doberšek.

We are actually using GTestDBus, not the actual session bus of the user session, but it would still be better to
use a private p2p DBus connection. This is also the way we encourage apps to implement the communication with
the web process extension. This patch removes the WebKitTestBus class and starts a DBus server before every
test. The server address is passed to the web extension as initialization parameter to connect directly to
it. We keep a global list of connections to the server and a HashMap to get the current active connection for
a WebKitWebView.

* TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:
(beforeAll):
(afterAll):
* TestWebKitAPI/Tests/WebKitGLib/TestMultiprocess.cpp:
(testProcessPerWebView):
(beforeAll):
(afterAll):
* TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
(testWebExtensionGetTitle):
(testWebExtensionInputElementIsUserEdited):
(testDocumentLoadedSignal):
(testWebKitWebViewProcessCrashed):
(testWebExtensionIsolatedWorld):
(testInstallMissingPluginsPermissionRequest):
(testWebExtensionFormControlsAssociated):
(FormSubmissionTest::FormSubmissionTest):
(beforeAll):
(afterAll):
* TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
(DelayedSignal::DelayedSignal):
(emitPageCreated):
(pageCreatedCallback):
(webkit_web_extension_initialize_with_user_data):
* TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp:
* TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(AccessibilityTest::AccessibilityTest):
(AccessibilityTest::ensureProxy):
(beforeAll):
(afterAll):
* TestWebKitAPI/glib/CMakeLists.txt:
* TestWebKitAPI/glib/WebKitGLib/TestMain.cpp:
(dbusConnectionClosed):
(dbusServerConnection):
(startDBusServer):
(stopDBusServer):
(main):
* TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::initializeWebExtensions):
* TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.cpp: Removed.
* TestWebKitAPI/glib/WebKitGLib/WebKitTestBus.h: Removed.
* TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:
(WebViewTest::~WebViewTest):
(WebViewTest::extensionProxy):
* TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:

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

6 months ago[WHLSL] Ensure structs/arrays with pointers as fields are disallowed
sbarati@apple.com [Wed, 11 Sep 2019 07:17:17 +0000 (07:17 +0000)]
[WHLSL] Ensure structs/arrays with pointers as fields are disallowed
https://bugs.webkit.org/show_bug.cgi?id=201525

Reviewed by Robin Morisset.

Source/WebCore:

This patch adds a pass which both ensures that references are always initialized with
concrete values and that we support logical mode validation by disallowing nested references.

Specifically, the pass:

1. Disallows structs to have fields which are references. This prevents us from having to
figure out how to default initialize such a struct. We could relax this in the future if we
did an analysis on which structs contain reference fields, and ensure such struct variables
always have initializers. This would also require us to create constructors for structs which
initialize each field.
2. We also do the same for arrays.
3. References can only be one level deep. So no pointers to pointers. No references to
references, etc. This is to support logical mode validation rules.

Test: webgpu/whlsl/ensure-proper-pointer-usage.html

* Modules/webgpu/WHLSL/WHLSLCheckReferenceTypes.cpp: Added.
(WebCore::WHLSL::checkReferenceTypes):
* Modules/webgpu/WHLSL/WHLSLCheckReferenceTypes.h: Added.
* Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::Checker::visit):
* Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
(WebCore::WHLSL::prepareShared):
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

LayoutTests:

This patch fixes a bug in our test harness where we forgot to wait for the gpu
device to load before running test harness tests. This patch fixes this oversight
and asserts that we have always finished loading before running a test.

* webgpu/whlsl/array-spec-tests.html:
* webgpu/whlsl/ensure-proper-pointer-usage-expected.txt: Added.
* webgpu/whlsl/ensure-proper-pointer-usage.html: Added.
* webgpu/whlsl/js/test-harness.js:
(Harness):
(Harness.prototype.async.requestDevice):
(Harness.prototype.async.callTypedFunction):
(Harness.prototype.async.checkCompileFail):
* webgpu/whlsl/pointer-spec-tests.html:
* webgpu/whlsl/test-harness-test.html:

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

6 months agoREGRESSION: Scrubbing on ted.com does not work well
commit-queue@webkit.org [Wed, 11 Sep 2019 07:01:57 +0000 (07:01 +0000)]
REGRESSION: Scrubbing on ted.com does not work well
https://bugs.webkit.org/show_bug.cgi?id=201635
<rdar://problem/51463649>

Patch by Antoine Quint <graouts@apple.com> on 2019-09-11
Reviewed by Dean Jackson.

This website uses custom media controls that simply don't work well on iOS when the User-Agent string is the desktop one, so we default to the mobile UA.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommendedForRequest):

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

6 months agoVersioning.
kocsen_chung@apple.com [Wed, 11 Sep 2019 06:34:25 +0000 (06:34 +0000)]
Versioning.

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

6 months ago[Win][WebKitLegacy][Clang] WebKit.h warning: 'IWebEditingDelegate2::shouldInsertNode...
Hironori.Fujii@sony.com [Wed, 11 Sep 2019 06:06:53 +0000 (06:06 +0000)]
[Win][WebKitLegacy][Clang] WebKit.h warning: 'IWebEditingDelegate2::shouldInsertNode' hides overloaded virtual function [-Woverloaded-virtual]
https://bugs.webkit.org/show_bug.cgi?id=192581
<rdar://problem/46651605>

Reviewed by Alex Christensen.

WebKitLegacy COM interfaces have same name methods within the old
and new interfaces. For example, both IWebEditingDelegate and
IWebEditingDelegate2 interfaces have 'shouldInsertNode' method.
This is a part of public API, can't be renamed.

* Interfaces/IWebEditingDelegate.idl:
* Interfaces/IWebViewPrivate.idl:
Added #pragma to ignore the warning.

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

6 months agoREGRESSION (r233780): After swiping to navigate back, pinching to zoom in on webconte...
timothy_horton@apple.com [Wed, 11 Sep 2019 04:51:29 +0000 (04:51 +0000)]
REGRESSION (r233780): After swiping to navigate back, pinching to zoom in on webcontent snaps back to zoomed out when letting go
https://bugs.webkit.org/show_bug.cgi?id=201671
<rdar://problem/50488372>

Reviewed by Simon Fraser.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
Reset m_lastTransactionIDWithScaleChange, since it is not guaranteed
to only march forward. Otherwise, we can get stuck with a very large
m_lastTransactionIDWithScaleChange, and will not allow stable-state
user-driven zooms until the current transactionID exceeds it.

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

6 months agoWeb Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
drousso@apple.com [Wed, 11 Sep 2019 04:34:34 +0000 (04:34 +0000)]
Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
https://bugs.webkit.org/show_bug.cgi?id=201650

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`.

A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline).  We should treat the `GPUCanvasContext` almost like a
`-webkit-canvas` client of a `WebGPUDevice`.

* inspector/protocol/Canvas.json:
 - Add `powerPreference` key to `ContextAttributes` type.
 - Rename `requestCSSCanvasClientNodes` command to `requestClientNodes` for the above reason.
 - Rename `cssCanvasClientNodesChanged` event to `clientNodesChanged` for the above reason.
 - Rename `resolveCanvasContext` command to `resolveContext` since a `WebGPUDevice` isn't
   really a "canvas".

Source/WebCore:

Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`.

A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline).  We should treat the `GPUCanvasContext` almost like a
`-webkit-canvas` client of a `WebGPUDevice`.

Tests: inspector/canvas/create-context-webgpu.html
       inspector/canvas/requestClientNodes-webgpu.html
       inspector/canvas/resolveContext-webgpu.html

* Modules/webgpu/WebGPUAdapter.cpp:
(WebCore::WebGPUAdapter::requestDevice const):
Notify web inspector after a device is created.

* Modules/webgpu/WebGPUDevice.idl:
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::instances): Added.
(WebCore::WebGPUDevice::instancesMutex): Added.
(WebCore::WebGPUDevice::~WebGPUDevice): Added.
Notify web inspector when the device is about to be destructed.

* Modules/webgpu/GPUCanvasContext.h:
* Modules/webgpu/GPUCanvasContext.cpp:
(WebCore::GPUCanvasContext::create):
(WebCore::GPUCanvasContext::configureSwapChain):

* inspector/InspectorCanvas.h:
* inspector/InspectorCanvas.cpp:
(WebCore::canvasIfContextMatchesDevice): Added.
(WebCore::InspectorCanvas::create):
(WebCore::InspectorCanvas::InspectorCanvas):
(WebCore::InspectorCanvas::canvasContext const): Added.
(WebCore::InspectorCanvas::canvasElement const): Added.
(WebCore::InspectorCanvas::isDeviceForCanvasContext const): Added.
(WebCore::InspectorCanvas::deviceContext const): Added.
(WebCore::InspectorCanvas::scriptExecutionContext const): Added.
(WebCore::InspectorCanvas::resolveContext const): Added.
(WebCore::InspectorCanvas::clientNodes const): Added.
(WebCore::InspectorCanvas::canvasChanged):
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::releaseObjectForRecording):
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::InspectorCanvas::canvasElement): Deleted.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCreateWebGPUDeviceImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDeviceImpl): Added.
(WebCore::InspectorInstrumentation::willConfigureSwapChainImpl): Added.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didCreateWebGPUDevice): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDevice): Added.
(WebCore::InspectorInstrumentation::willConfigureSwapChain): Added.

* inspector/agents/InspectorCanvasAgent.h:
* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::requestClientNodes): Added.
(WebCore::InspectorCanvasAgent::resolveContext): Added.
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::didCreateWebGPUDevice): Added.
(WebCore::InspectorCanvasAgent::willDestroyWebGPUDevice): Added.
(WebCore::InspectorCanvasAgent::willConfigureSwapChain): Added.
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::bindCanvas):
(WebCore::InspectorCanvasAgent::unbindCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes): Deleted.
(WebCore::contextAsScriptValue): Deleted.
(WebCore::InspectorCanvasAgent::resolveCanvasContext): Deleted.

* inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::context const):

Source/WebInspectorUI:

Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`.

A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline).  We should treat the `GPUCanvasContext` almost like a
`-webkit-canvas` client of a `WebGPUDevice`.

* UserInterface/Protocol/CanvasObserver.js:
(WI.CanvasObserver.prototype.clientNodesChanged): Added.
(WI.CanvasObserver.prototype.cssCanvasClientNodesChanged):
* UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager.prototype.clientNodesChanged): Added.
(WI.CanvasManager.prototype.cssCanvasClientNodesChanged): Deleted.
* UserInterface/Models/Canvas.js:
(WI.Canvas.resetUniqueDisplayNameNumbers):
(WI.Canvas.prototype.get displayName):
(WI.Canvas.prototype.requestNode):
(WI.Canvas.prototype.requestClientNodes): Added.
(WI.Canvas.prototype.requestSize):
(WI.Canvas.prototype.clientNodesChanged): Added.
(WI.Canvas.prototype.requestCSSCanvasClientNodes): Deleted.
(WI.Canvas.prototype.cssCanvasClientNodesChanged): Deleted.

* UserInterface/Protocol/RemoteObject.js:
(WI.RemoteObject.resolveCanvasContext):

* UserInterface/Views/CanvasContentView.js:
(WI.CanvasContentView.prototype.attached):
(WI.CanvasContentView.prototype._refreshPixelSize):
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WI.CanvasDetailsSidebarPanel.prototype.set canvas):
(WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WI.CanvasDetailsSidebarPanel.prototype.layout):
(WI.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
(WI.CanvasDetailsSidebarPanel.prototype._refreshClientsSection): Added.
(WI.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection): Deleted.
* UserInterface/Views/CanvasOverviewContentView.js:
(WI.CanvasOverviewContentView.prototype._contentViewMouseEnter):
* UserInterface/Views/CanvasTreeElement.js:
(WI.CanvasTreeElement.prototype._handleMouseOver):

* Localizations/en.lproj/localizedStrings.js:

LayoutTests:

* inspector/canvas/create-context-webgpu.html:
* inspector/canvas/create-context-webgpu-expected.txt:
* inspector/canvas/resources/create-context-utilities.js:
(createDetachedCanvas):
(createCSSCanvas):
(destroyCanvases):

* inspector/canvas/requestClientNodes.html: Added.
* inspector/canvas/requestClientNodes-expected.txt: Added.
* inspector/canvas/requestClientNodes-css.html: Renamed from LayoutTests/inspector/canvas/css-canvas-clients.html.
* inspector/canvas/requestClientNodes-css-expected.txt: Renamed from LayoutTests/inspector/canvas/css-canvas-clients-expected.txt.
* inspector/canvas/requestClientNodes-webgpu.html: Added.
* inspector/canvas/requestClientNodes-webgpu-expected.txt: Added.

* inspector/canvas/resolveContext-2d.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d.html.
* inspector/canvas/resolveContext-2d-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d-expected.txt.
* inspector/canvas/resolveContext-bitmaprenderer.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer.html.
* inspector/canvas/resolveContext-bitmaprenderer-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer-expected.txt.
* inspector/canvas/resolveContext-webgl.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl.html.
* inspector/canvas/resolveContext-webgl-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl-expected.txt.
* inspector/canvas/resolveContext-webgl2.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2.html.
* inspector/canvas/resolveContext-webgl2-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2-expected.txt.
* inspector/canvas/resolveContext-webgpu.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
* inspector/canvas/resolveContext-webgpu-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu-expected.txt.

* inspector/canvas/context-attributes-expected.txt:

* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:
* platform/wpe/TestExpectations:

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

6 months agosetup-git-clone is using http not https
dino@apple.com [Wed, 11 Sep 2019 04:15:56 +0000 (04:15 +0000)]
setup-git-clone is using http not https
https://bugs.webkit.org/show_bug.cgi?id=201658

Reviewed by Sam Weinig.

* Scripts/webkitpy/tool/commands/setupgitclone.py:
(SetupGitClone.execute):

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

6 months agoWeb Inspector: Remove legacy CodeMirror based pretty printers
pecoraro@apple.com [Wed, 11 Sep 2019 04:01:40 +0000 (04:01 +0000)]
Web Inspector: Remove legacy CodeMirror based pretty printers
https://bugs.webkit.org/show_bug.cgi?id=201624

Reviewed by Devin Rousso.

Source/WebInspectorUI:

* Tools/PrettyPrinting/FormatterDebug.js: Removed.
* Tools/PrettyPrinting/Utilities.js: Removed.
* Tools/PrettyPrinting/codemirror-additions.css: Removed.
* Tools/PrettyPrinting/index.html: Removed.
* Tools/PrettyPrinting/populate/apple.css: Removed.
* UserInterface/Controllers/Formatter.js: Removed.
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Views/CodeMirrorFormatters.js: Removed.
* UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.prettyPrint):
(WI.TextEditor.prototype._canUseFormatterWorker): Deleted.
(WI.TextEditor.prototype._startCodeMirrorPrettyPrint): Deleted.
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

LayoutTests:

* inspector/codemirror/prettyprinting-css-expected.txt: Removed.
* inspector/codemirror/prettyprinting-css.html: Removed.
* inspector/codemirror/prettyprinting-javascript-expected.txt: Removed.
* inspector/codemirror/prettyprinting-javascript.html: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/basic-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/basic.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/calc-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/calc.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/gradient-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/gradient.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/keyframes-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/keyframes.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/media-query-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/media-query.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/selectors-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/selectors.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/wrapping-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-tests/wrapping.css: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/block-comment-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/block-comment.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/switch-case-default-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/switch-case-default.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/unary-binary-operators-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/unary-binary-operators.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while-expected.js: Removed.
* inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while.js: Removed.
* inspector/codemirror/resources/prettyprinting/utilities.js: Removed.

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

6 months agoUnreviewed, rolling out r239097.
Hironori.Fujii@sony.com [Wed, 11 Sep 2019 01:57:06 +0000 (01:57 +0000)]
Unreviewed, rolling out r239097.

This is not a right fix. DumpRenderTree, MiniBrowser and
TestWebKitAPI are still reporting the same warning.

Reverted changeset:

"[Win][WebKitLegacy][Clang] WebKit.h warning:
'IWebEditingDelegate2::shouldInsertNode' hides overloaded
virtual function [-Woverloaded-virtual]"
https://bugs.webkit.org/show_bug.cgi?id=192581
https://trac.webkit.org/changeset/239097

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

6 months agorun-webkit-test: Allow results to be uploaded without scm checkout
jlewis3@apple.com [Wed, 11 Sep 2019 01:12:37 +0000 (01:12 +0000)]
run-webkit-test: Allow results to be uploaded without scm checkout
https://bugs.webkit.org/show_bug.cgi?id=200787

Reviewed by Jonathan Bedard.

* Scripts/webkitpy/common/checkout/scm/detection.py:
(SCMDetector.detect_scm_system): Added in detection of stub repository.
* Scripts/webkitpy/common/checkout/scm/stub_repository.py: Added.
(StubRepository):
(StubRepository.__init__):
(StubRepository._find_parent_path_matching_callback_condition): Checks up the path given to
find the directory containing the checkout_information.json of the stub repository.
(StubRepository.in_working_directory): Required functions to be implemented.
(StubRepository.svn_revision): Required functions to be implemented.
(StubRepository.native_revision): Required functions to be implemented.
(StubRepository.native_branch): Required functions to be implemented.
(StubRepository._decode_json): Decodes checkout_information.json.
(StubRepository.find_checkout_root): Required functions to be implemented.
* Scripts/webkitpy/common/checkout/scm/stub_repository_unittest.py: Added.
(StubRepositoryTest): Unit test for stub_repository SCM.
(StubRepositoryTest.mock_host_for_stub_repository):
(StubRepositoryTest.test_in_working_directory):
(StubRepositoryTest.test_native_revision):
(StubRepositoryTest.test_native_branch):
(StubRepositoryTest.test_svn_revision):
(StubRepositoryTest.test_find_checkout_root):
* Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
(JSONResultsGenerator._get_svn_revision): Removed unnecessary scm initialization.
* Scripts/webkitpy/port/base.py:
(Port.commits_for_upload): Removed unnecessary scm initialization.

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

6 months agoNullptr crash in Page::sessionID() via WebKit::WebFrameLoaderClient::detachedFromPare...
cdumez@apple.com [Wed, 11 Sep 2019 00:54:05 +0000 (00:54 +0000)]
Nullptr crash in Page::sessionID() via WebKit::WebFrameLoaderClient::detachedFromParent2()
https://bugs.webkit.org/show_bug.cgi?id=201625

Reviewed by Ryosuke Niwa.

This is based on a patch from Ryosuke Niwa.

Source/WebCore:

Drop setHasFrameSpecificStorageAccess() in WebCore and call it from the WebKit layer instead.

* dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
(WebCore::DocumentStorageAccess::setHasFrameSpecificStorageAccess): Deleted.
* dom/DocumentStorageAccess.h:
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoaderClient.h:

Source/WebKit:

The crash was caused by WebFrameLoaderClient::sessionID() calling WebPage::sessionID() without
checking the nullity of WebPage::m_page which can be null. Added a null check.

Because passing a wrong session to RemoveStorageAccessForFrame could result in a leak, this patch
also replaces m_hasFrameSpecificStorageAccess boolean with an optioanl struct which stores
session ID, frame ID, and page ID even after WebCore::Frame or WebCore::Page had been cleared
or before WebFrameLoaderClient::m_frame is set.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::sessionID const):
(WebKit::WebFrameLoaderClient::setHasFrameSpecificStorageAccess):
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebFrame.h:
(WebKit::WebFrame::frameLoaderClient const):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestStorageAccess):

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

6 months ago[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
ysuzuki@apple.com [Wed, 11 Sep 2019 00:46:32 +0000 (00:46 +0000)]
[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
https://bugs.webkit.org/show_bug.cgi?id=201634

Reviewed by Mark Lam and Robin Morisset.

This patch includes two things. One is fixing 32bit bitwise operation with allOne constants. Another is fixing the existing bug in BitAnd strength reduction.

1. 32bit bitwise operation with allOne constants

    Accidentally, the B3::Value is ConstInt32(-1), `value->isInt(std::numeric_limits<uint32_t>::max())` returns `false`!
    For example, in BitAnd strength reduction,

        1034             // Turn this: BitAnd(value, all-ones)
        1035             // Into this: value.
        1036             if ((m_value->type() == Int64 && m_value->child(1)->isInt(std::numeric_limits<uint64_t>::max()))
        1037                 || (m_value->type() == Int32 && m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()))) {
        1038                 replaceWithIdentity(m_value->child(0));
        1039                 break;
        1040             }

    We use `m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max())`. However, Value::isInt is,

        262 inline bool Value::isInt(int64_t value) const
        263 {
        264     return hasInt() && asInt() == value;
        265 }

    So, UINT32_MAX is expanded to int64_t, but it is not -1 since UINT32_MAX can be representable in int64_t. And Value::asInt implementation is,

        257 inline int64_t Value::asInt() const
        258 {
        259     return hasInt32() ? asInt32() : asInt64();
        260 }

    So, we perform `static_cast<int64_t>(-1) == static_cast<int64_t>(UINT32_MAX)`. This is false, but this comparison is not what we want!
    We should use `isInt32` and `isInt64` for bit patterns (like, operands for Bitwise opcodes).

2. BitAnd and BitOr strength reduction bug

    We also fix the following optimization.

        // Turn this: BitAnd(Op(value, constant1), constant2)
        //     where !(constant1 & constant2)
        //       and Op is BitOr or BitXor
        // into this: BitAnd(value, constant2)

    Since we stop further optimization when we match `if (m_value->child(1)->hasInt())`, the following optimization is never taken.

        // Turn this: BitAnd(BitXor(x, allOnes), c)
        // Into this: BitXor(BitOr(x, ~c), allOnes)

    And we also found that this not-used optimization has a bug not inserting a newly produced constant B3::Value. This patch also fixes it.

For both, this patch adds tests. And (2) fix can be ensured that the testb3 does not crash with validate-graph option.

* b3/B3LowerToAir.cpp:
* b3/B3ReduceStrength.cpp:
* b3/testb3.h:
* b3/testb3_2.cpp:
(testBitAndNotNot32):
(testBitAndNotImm):
(testBitAndNotImm32):
(testBitOrAndAndArgs32):
(testBitOrAndSameArgs32):
(testBitOrNotNot32):
(testBitOrNotImm32):
(addBitTests):
* b3/testb3_3.cpp:
(testBitXorAndAndArgs32):
(testBitXorAndSameArgs32):

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

6 months agoStop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cookies...
cdumez@apple.com [Wed, 11 Sep 2019 00:35:19 +0000 (00:35 +0000)]
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cookies/private-cookie-storage.html
https://bugs.webkit.org/show_bug.cgi?id=201648

Reviewed by Alex Christensen.

Use testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() / setShouldSwapToDefaultSessionOnNextNavigation() to
truly switch session on WebKit2 instead of using the testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.

* http/tests/cookies/private-cookie-storage-expected.txt:
* http/tests/cookies/private-cookie-storage.html:
* http/tests/cookies/resources/cookies-test-pre.js:
(testCookies):

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

6 months ago[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker...
ryanhaddad@apple.com [Wed, 11 Sep 2019 00:26:37 +0000 (00:26 +0000)]
[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/registration-mime-types.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=201190

Unreviewed test gardening.

* platform/ios/TestExpectations:

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

6 months agoUnreviewed, rolling out r249721.
ysuzuki@apple.com [Wed, 11 Sep 2019 00:17:03 +0000 (00:17 +0000)]
Unreviewed, rolling out r249721.
https://bugs.webkit.org/show_bug.cgi?id=201667

Discovering existing bug (Requested by yusukesuzuki on
#webkit).

Reverted changeset:

"[JSC] 32bit bitwide operation with all-one (-1) is wrong in
B3"
https://bugs.webkit.org/show_bug.cgi?id=201634
https://trac.webkit.org/changeset/249721

Patch by Commit Queue <commit-queue@webkit.org> on 2019-09-10

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

6 months agoLayout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch...
ryanhaddad@apple.com [Wed, 11 Sep 2019 00:02:30 +0000 (00:02 +0000)]
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=201665

Unreviewed test gardening.

This test was unskipped as part of r249716, but it is still frequently failing.

* TestExpectations: Skip the test again.

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

6 months ago[JSC] CodeBlock::calleeSaveRegisters should not see half-baked JITData
ysuzuki@apple.com [Tue, 10 Sep 2019 23:18:11 +0000 (23:18 +0000)]
[JSC] CodeBlock::calleeSaveRegisters should not see half-baked JITData
https://bugs.webkit.org/show_bug.cgi?id=201664
<rdar://problem/52126927>

Reviewed by Tadeu Zagallo.

We are hitting the crash accessing invalid-pointer as CodeBlock::calleeSaveRegisters result.
This is because concurrent Baseline JIT compiler can access m_jitData without taking a lock through CodeBlock::calleeSaveRegisters.
Since m_jitData can be initialized in the main thread while calling CodeBlock::calleeSaveRegisters from concurrent Baseline JIT compiler thread,
we can see half-baked JITData structure which holds garbage pointers.

But we do not want to make CodeBlock::calleeSaveRegisters() call with CodeBlock::m_lock due to several reasons.

1. This function is very primitive one and it is called from various AssemblyHelpers functions and other code-generation functions. Some of these functions are
   called while taking this exact same lock, so dead-lock can happen.
2. JITData::m_calleeSaveRegisters is filled only for DFG and FTL CodeBlock. And DFG and FTL code accesses these field after initializing properly. For Baseline JIT
   compiler case, only thing we should do is that JITData should say m_calleeSaveRegisters is nullptr and it won't be filled for this CodeBlock.

Instead of guarding CodeBlock::calleeSaveRegisters() function with CodeBlock::m_lock, this patch inserts WTF::storeStoreFence when filling m_jitData. This ensures that
JITData::m_calleeSaveRegisters is initialized with nullptr when this JITData pointer is exposed to concurrent Baseline JIT compiler thread.

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

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

6 months agoAdd SPI to save a PDF from the contents of a WKWebView.
beidson@apple.com [Tue, 10 Sep 2019 23:12:49 +0000 (23:12 +0000)]
Add SPI to save a PDF from the contents of a WKWebView.
<rdar://problem/48955900> and https://bugs.webkit.org/show_bug.cgi?id=195765

Reviewed by Tim Horton.

Source/WebCore:

Covered by API tests.

* page/FrameView.cpp:
(WebCore::FrameView::paintContents): Don't paint the debug color outside of the FrameRect.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setURLForRect):

* rendering/PaintPhase.h: Add "AnnotateLinks" option to always gather and annotation links.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::hasOutlineAnnotation const): Also return true when the PaintOptions include "AnnotateLinks"

Source/WebKit:

This is refactoring a combination of "snapshotFirstPage" PDF printing code and the
"takeSnapshot" API code to capture the on-screen visible page to a PDF at full fidelity.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::drawToPDFCallback):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _wk_pageCountForPrintFormatter:]):

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::drawToPDFCallback): Move to cross platform WebPageProxy.

* WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::pdfSnapshotAtSize):

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::pdfSnapshotAtSize): Instead of assuming 1 page capped at 200 inches,
  paginate every 200 inches.
(WebKit::WebPage::drawToPDF):
(WebKit::paintSnapshotAtSize): Deleted.
(WebKit::WebPage::pdfSnapshotAtSize): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

-Add an "Export to PDF..." menu option to MiniBrowser.
-Add API tests for the API itself.

* MiniBrowser/MiniBrowser.entitlements:

* MiniBrowser/mac/BrowserWindowController.h:
* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController forceRepaint:]):
(-[BrowserWindowController saveAsPDF:]):

* MiniBrowser/mac/MainMenu.xib:

* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController validateMenuItem:]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController saveAsPDF:]):

* TestWebKitAPI/Configurations/Base.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm: Added.
(TestWebKitAPI::TEST):
* TestWebKitAPI/cocoa/TestPDFDocument.h: Added.
* TestWebKitAPI/cocoa/TestPDFDocument.mm: Added.
(TestWebKitAPI::toCGRect):
(TestWebKitAPI::toPlatformPoint):
(TestWebKitAPI::TestPDFAnnotation::TestPDFAnnotation):
(TestWebKitAPI::TestPDFAnnotation::isLink const):
(TestWebKitAPI::TestPDFAnnotation::bounds const):
(TestWebKitAPI::TestPDFAnnotation::linkURL const):
(TestWebKitAPI::TestPDFPage::create):
(TestWebKitAPI::TestPDFPage::TestPDFPage):
(TestWebKitAPI::TestPDFPage::annotations):
(TestWebKitAPI::TestPDFPage::characterCount const):
(TestWebKitAPI::TestPDFPage::text const):
(TestWebKitAPI::TestPDFPage::rectForCharacterAtIndex const):
(TestWebKitAPI::TestPDFPage::characterIndexAtPoint const):
(TestWebKitAPI::TestPDFPage::bounds const):
(TestWebKitAPI::TestPDFPage::colorAtPoint const):
(TestWebKitAPI::TestPDFDocument::createFromData):
(TestWebKitAPI::TestPDFDocument::TestPDFDocument):
(TestWebKitAPI::TestPDFDocument::pageCount const):
(TestWebKitAPI::TestPDFDocument::page):

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

6 months agoRemove SSL-based TLSDeprecation.mm contents
krollin@apple.com [Tue, 10 Sep 2019 22:48:29 +0000 (22:48 +0000)]
Remove SSL-based TLSDeprecation.mm contents
https://bugs.webkit.org/show_bug.cgi?id=201657
<rdar://problem/55237678>

Reviewed by Alex Christensen.

This file does not build on watchOS due to references to SSL
facilities. Conditionalize out the contents on HAVE_SSL.

* TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

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

6 months agoREGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-credential-create-success...
jiewen_tan@apple.com [Tue, 10 Sep 2019 22:28:32 +0000 (22:28 +0000)]
REGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-credential-create-success-u2f.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=201620
<rdar://problem/51524958>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing tests.

* Modules/webauthn/fido/U2fResponseConverter.cpp:
(fido::WebCore::createAttestedCredentialDataFromU2fRegisterResponse):
Change the way how the aaguid is initialized to see if that fixes the issue.

LayoutTests:

* http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:
Remove the timeout value given those tests should never time out.
* platform/mac-wk2/TestExpectations:
Change the test expectation to Pass.

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

6 months ago[JSC] ResultType implementation is wrong for bit ops, and ends up making ArithDiv...
ysuzuki@apple.com [Tue, 10 Sep 2019 22:07:08 +0000 (22:07 +0000)]
[JSC] ResultType implementation is wrong for bit ops, and ends up making ArithDiv take the DFG Int32 fast path even if Baseline constantly produces Double result
https://bugs.webkit.org/show_bug.cgi?id=198253

Reviewed by Mark Lam.

ResultType of bitwise operation needs to include TypeMaybeNumber. TypeInt32 is something like a flag indicating the number looks like a int32.
When it is specified, TypeMaybeNumber must exist too. This issue compiles op_div in JetStream2/async-fs slow-path. And eventually DFG first mis-compiles
it with Int32 ArithDiv while that div always produces double. And unnecessary OSR exit happens.

In this patch, we add TypeMaybeNumber to bigIntOrInt32Type correctly.

* parser/ResultType.h:
(JSC::ResultType::bigIntOrInt32Type):

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

6 months agoUnreviewed, rebaseline imported/w3c/web-platform-tests/css/cssom/interfaces.html...
ryanhaddad@apple.com [Tue, 10 Sep 2019 22:03:14 +0000 (22:03 +0000)]
Unreviewed, rebaseline imported/w3c/web-platform-tests/css/cssom/interfaces.html after r249672.

Unreviewed test gardening.

* web-platform-tests/css/cssom/interfaces-expected.txt:

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

6 months agoAttempt to make this test not flakey.
simon.fraser@apple.com [Tue, 10 Sep 2019 21:59:48 +0000 (21:59 +0000)]
Attempt to make this test not flakey.
https://bugs.webkit.org/show_bug.cgi?id=201482

* legacy-animation-engine/compositing/transitions/add-remove-transition.html:

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

6 months agoAdd missing origin check for Service-Worker-Allowed header
cdumez@apple.com [Tue, 10 Sep 2019 21:43:41 +0000 (21:43 +0000)]
Add missing origin check for Service-Worker-Allowed header
https://bugs.webkit.org/show_bug.cgi?id=201653

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

* web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https-expected.txt:

Source/WebCore:

Add missing origin check for Service-Worker-Allowed header:
- https://w3c.github.io/ServiceWorker/#update-algorithm (step 15. 2.)

* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::didReceiveResponse):

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

6 months agoREGRESSION (r249460): LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html...
commit-queue@webkit.org [Tue, 10 Sep 2019 20:37:01 +0000 (20:37 +0000)]
REGRESSION (r249460): LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html is Failing
https://bugs.webkit.org/show_bug.cgi?id=201478

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

-- Revert r249460 which changed drawGreenAndBlueCheckerboardInSoftware().
-- Remove the orientation bit from webgpu/resources/blue-checkered.png
   so drawing it is not affected by r249364.

* webgpu/js/webgpu-functions.js:
(drawGreenAndBlueCheckerboardInSoftware):
* webgpu/resources/blue-checkered.png:

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

6 months agoRe-sync web-platform-tests IDL interfaces from upstream
cdumez@apple.com [Tue, 10 Sep 2019 20:14:46 +0000 (20:14 +0000)]
Re-sync web-platform-tests IDL interfaces from upstream
https://bugs.webkit.org/show_bug.cgi?id=201630

Reviewed by Alex Christensen.

Re-sync web-platform-tests IDL interfaces from upstream 603a271948a7162.

* web-platform-tests/interfaces/BackgroundSync.idl: Added.
* web-platform-tests/interfaces/CSP.idl: Added.
* web-platform-tests/interfaces/CSS-Parser-API.idl: Added.
* web-platform-tests/interfaces/DOM-Parsing.idl:
* web-platform-tests/interfaces/FileAPI.idl:
* web-platform-tests/interfaces/IndexedDB.idl:
* web-platform-tests/interfaces/InputDeviceCapabilities.idl: Added.
* web-platform-tests/interfaces/META.yml: Added.
* web-platform-tests/interfaces/README.md: Added.
* web-platform-tests/interfaces/SRI.idl: Added.
* web-platform-tests/interfaces/WebCryptoAPI.idl:
* web-platform-tests/interfaces/accelerometer.idl:
* web-platform-tests/interfaces/ambient-light.idl:
* web-platform-tests/interfaces/animation-worklet.idl: Added.
* web-platform-tests/interfaces/appmanifest.idl: Added.
* web-platform-tests/interfaces/audio-output.idl: Added.
* web-platform-tests/interfaces/background-fetch.idl:
* web-platform-tests/interfaces/battery-status.idl: Added.
* web-platform-tests/interfaces/beacon.idl: Added.
* web-platform-tests/interfaces/clipboard-apis.idl:
* web-platform-tests/interfaces/compat.idl: Added.
* web-platform-tests/interfaces/console.idl:
* web-platform-tests/interfaces/cookie-store.idl:
* web-platform-tests/interfaces/cors-rfc1918.idl: Added.
* web-platform-tests/interfaces/csp-embedded-enforcement.idl: Added.
* web-platform-tests/interfaces/css-animations.idl: Added.
* web-platform-tests/interfaces/css-conditional.idl: Added.
* web-platform-tests/interfaces/css-counter-styles.idl: Added.
* web-platform-tests/interfaces/css-device-adapt.idl: Added.
* web-platform-tests/interfaces/css-font-loading.idl: Added.
* web-platform-tests/interfaces/css-fonts.idl: Added.
* web-platform-tests/interfaces/css-images.idl: Added.
* web-platform-tests/interfaces/css-layout-api.idl: Added.
* web-platform-tests/interfaces/css-masking.idl: Added.
* web-platform-tests/interfaces/css-paint-api.idl: Added.
* web-platform-tests/interfaces/css-regions.idl: Added.
* web-platform-tests/interfaces/css-transitions.idl: Added.
* web-platform-tests/interfaces/css-typed-om.idl:
* web-platform-tests/interfaces/element-timing.idl: Added.
* web-platform-tests/interfaces/encoding.idl:
* web-platform-tests/interfaces/encrypted-media.idl:
* web-platform-tests/interfaces/entries-api.idl:
* web-platform-tests/interfaces/event-timing.idl: Added.
* web-platform-tests/interfaces/feature-policy.idl: Added.
* web-platform-tests/interfaces/fetch.idl:
* web-platform-tests/interfaces/filter-effects.idl: Added.
* web-platform-tests/interfaces/font-metrics-api.idl: Added.
* web-platform-tests/interfaces/fullscreen.idl:
* web-platform-tests/interfaces/gamepad.idl:
* web-platform-tests/interfaces/generic-sensor.idl: Added.
* web-platform-tests/interfaces/geolocation-API.idl: Added.
* web-platform-tests/interfaces/geolocation-sensor.idl:
* web-platform-tests/interfaces/geometry.idl:
* web-platform-tests/interfaces/gyroscope.idl:
* web-platform-tests/interfaces/hr-time.idl:
* web-platform-tests/interfaces/html-media-capture.idl: Added.
* web-platform-tests/interfaces/image-capture.idl: Added.
* web-platform-tests/interfaces/input-events.idl: Added.
* web-platform-tests/interfaces/intersection-observer.idl:
* web-platform-tests/interfaces/keyboard-lock.idl: Added.
* web-platform-tests/interfaces/keyboard-map.idl: Added.
* web-platform-tests/interfaces/largest-contentful-paint.idl: Added.
* web-platform-tests/interfaces/layout-instability.idl: Added.
* web-platform-tests/interfaces/longtasks.idl: Added.
* web-platform-tests/interfaces/magnetometer.idl:
* web-platform-tests/interfaces/media-capabilities.idl: Added.
* web-platform-tests/interfaces/media-playback-quality.idl: Added.
* web-platform-tests/interfaces/media-source.idl: Added.
* web-platform-tests/interfaces/mediacapture-depth.idl: Added.
* web-platform-tests/interfaces/mediacapture-fromelement.idl: Added.
* web-platform-tests/interfaces/mediasession.idl: Added.
* web-platform-tests/interfaces/mediastream-recording.idl: Added.
* web-platform-tests/interfaces/mst-content-hint.idl: Added.
* web-platform-tests/interfaces/navigation-timing.idl: Added.
* web-platform-tests/interfaces/netinfo.idl: Added.
* web-platform-tests/interfaces/notifications.idl: Added.
* web-platform-tests/interfaces/orientation-event.idl: Added.
* web-platform-tests/interfaces/orientation-sensor.idl:
* web-platform-tests/interfaces/page-visibility.idl: Added.
* web-platform-tests/interfaces/paint-timing.idl: Added.
* web-platform-tests/interfaces/payment-handler.idl:
* web-platform-tests/interfaces/payment-method-basic-card.idl: Added.
* web-platform-tests/interfaces/payment-request.idl:
* web-platform-tests/interfaces/permissions.idl: Added.
* web-platform-tests/interfaces/picture-in-picture.idl: Added.
* web-platform-tests/interfaces/pointerevents-extension.idl: Added.
* web-platform-tests/interfaces/pointerevents.idl: Added.
* web-platform-tests/interfaces/pointerlock.idl: Added.
* web-platform-tests/interfaces/presentation-api.idl: Added.
* web-platform-tests/interfaces/proximity.idl:
* web-platform-tests/interfaces/push-api.idl: Added.
* web-platform-tests/interfaces/remote-playback.idl: Added.
* web-platform-tests/interfaces/reporting.idl: Added.
* web-platform-tests/interfaces/requestidlecallback.idl: Added.
* web-platform-tests/interfaces/resize-observer.idl: Added.
* web-platform-tests/interfaces/screen-capture.idl: Added.
* web-platform-tests/interfaces/screen-orientation.idl:
* web-platform-tests/interfaces/scroll-animations.idl: Added.
* web-platform-tests/interfaces/secure-contexts.idl: Added.
* web-platform-tests/interfaces/selection-api.idl:
* web-platform-tests/interfaces/server-timing.idl: Added.
* web-platform-tests/interfaces/shape-detection-api.idl: Added.
* web-platform-tests/interfaces/speech-api.idl: Added.
* web-platform-tests/interfaces/storage.idl:
* web-platform-tests/interfaces/touch-events.idl: Added.
* web-platform-tests/interfaces/trusted-types.tentative.idl: Added.
* web-platform-tests/interfaces/uievents.idl:
* web-platform-tests/interfaces/url.idl:
* web-platform-tests/interfaces/user-timing.idl: Added.
* web-platform-tests/interfaces/vibration.idl: Added.
* web-platform-tests/interfaces/wai-aria.idl: Added.
* web-platform-tests/interfaces/wake-lock.idl:
* web-platform-tests/interfaces/wasm-js-api.idl: Added.
* web-platform-tests/interfaces/wasm-web-api.idl: Added.
* web-platform-tests/interfaces/web-animations.idl: Added.
* web-platform-tests/interfaces/web-bluetooth.idl: Added.
* web-platform-tests/interfaces/web-nfc.idl:
* web-platform-tests/interfaces/web-share.idl:
* web-platform-tests/interfaces/webaudio.idl: Added.
* web-platform-tests/interfaces/webauthn.idl:
* web-platform-tests/interfaces/webdriver.idl: Added.
* web-platform-tests/interfaces/webgl1.idl: Added.
* web-platform-tests/interfaces/webgl2.idl: Added.
* web-platform-tests/interfaces/webidl.idl:
* web-platform-tests/interfaces/webmidi.idl: Added.
* web-platform-tests/interfaces/webrtc-dscp.idl: Added.
* web-platform-tests/interfaces/webrtc-stats.idl: Added.
* web-platform-tests/interfaces/webusb.idl:
* web-platform-tests/interfaces/webvtt.idl: Added.
* web-platform-tests/interfaces/webxr.idl:
* web-platform-tests/interfaces/worklets.idl: Added.
* web-platform-tests/interfaces/xhr.idl:
* web-platform-tests/interfaces/xslt.tentative.idl: Added.

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

6 months agoSMIL animations of SVG <view> element have no effect
commit-queue@webkit.org [Tue, 10 Sep 2019 19:57:21 +0000 (19:57 +0000)]
SMIL animations of SVG <view> element have no effect
https://bugs.webkit.org/show_bug.cgi?id=201536

Patch by Nikolas Zimmermann <zimmermann@kde.org> on 2019-09-10
Reviewed by Rob Buis.

Added a new layout test to verify that navigating to different anchors within the same
external SVG does not cause reloads. Instead scrollToAnchor() is used which causes an
in-place navigation in the same document. The new test verifies that the SVGSVGElement
is preserved when navigating between anchors, which indicates that no new document was
created. Verify that the SVGViewSpec API works as intended, across navigations.

* svg/dom/SVGViewSpec-multiple-views-expected.txt: Added.
* svg/dom/SVGViewSpec-multiple-views.html: Added.
* svg/dom/resources/multiple-view-elements.svg: Added.

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

6 months agoIndexedDB: cache prepared SQLiteStatement in SQLiteIDBCursor
sihui_liu@apple.com [Tue, 10 Sep 2019 19:42:30 +0000 (19:42 +0000)]
IndexedDB: cache prepared SQLiteStatement in SQLiteIDBCursor
https://bugs.webkit.org/show_bug.cgi?id=201548

Reviewed by Alex Christensen.

This should be a performance improvement as we don't compile the same SQLiteStatement everytime it is used.

No new tests, no behavior change.

* Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
* Modules/indexeddb/server/SQLiteIDBCursor.h:

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

6 months agoUnreviewed, re-skip service worker test that was unskipped in r249716.
cdumez@apple.com [Tue, 10 Sep 2019 19:07:21 +0000 (19:07 +0000)]
Unreviewed, re-skip service worker test that was unskipped in r249716.

This test is still flaky.

* TestExpectations:

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

6 months agoUnreviewed, rolling out r249724.
cdumez@apple.com [Tue, 10 Sep 2019 18:43:28 +0000 (18:43 +0000)]
Unreviewed, rolling out r249724.

Patch included a lot more changes than intended

Reverted changeset:

"Unreviewed, re-skip service worker test that was unskipped in
r249716."
https://trac.webkit.org/changeset/249724

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

6 months agoUnreviewed, re-skip service worker test that was unskipped in r249716.
cdumez@apple.com [Tue, 10 Sep 2019 18:18:15 +0000 (18:18 +0000)]
Unreviewed, re-skip service worker test that was unskipped in r249716.

This test is still flaky.

* TestExpectations:

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

6 months agoHangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValues...
cdumez@apple.com [Tue, 10 Sep 2019 18:14:15 +0000 (18:14 +0000)]
Hangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValuesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=201644
<rdar://problem/54942761>

Reviewed by Geoffrey Garen.

Mark the StorageManagerSet::GetValues sync IPC from the WebContent process to the Network
process with a UnboundedSynchronousIPCScope so that it will process critical sync IPC
from the UIProcess (such as WebPage::GetPositionInformation) while waiting for a reply.

* WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::loadValuesIfNeeded):

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

6 months agoRTCPeerConnection can only be instantiated in documents
youenn@apple.com [Tue, 10 Sep 2019 17:41:32 +0000 (17:41 +0000)]
RTCPeerConnection can only be instantiated in documents
https://bugs.webkit.org/show_bug.cgi?id=201639

Reviewed by Alex Christensen.

Make it clear that RTCDataChannel expects Document since peer connections
and data channels can only be instantiated in document environments.
We keep one downcast in RTCPeerConnection constructor due to a limitation
in binding generator for JS built-ins.
No change of behavior.

* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::certificatesFromConfiguration):
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore::RTCPeerConnection::document):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::channelEvent):
* Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):

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

6 months ago[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
ysuzuki@apple.com [Tue, 10 Sep 2019 17:07:24 +0000 (17:07 +0000)]
[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
https://bugs.webkit.org/show_bug.cgi?id=201634

Reviewed by Mark Lam.

Accidentally, the B3::Value is ConstInt32(-1), `value->isInt(std::numeric_limits<uint32_t>::max())` returns `false`!
For example, in BitAnd strength reduction,

    1034             // Turn this: BitAnd(value, all-ones)
    1035             // Into this: value.
    1036             if ((m_value->type() == Int64 && m_value->child(1)->isInt(std::numeric_limits<uint64_t>::max()))
    1037                 || (m_value->type() == Int32 && m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()))) {
    1038                 replaceWithIdentity(m_value->child(0));
    1039                 break;
    1040             }

We use `m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max())`. However, Value::isInt is,

    262 inline bool Value::isInt(int64_t value) const
    263 {
    264     return hasInt() && asInt() == value;
    265 }

So, UINT32_MAX is expanded to int64_t, but it is not -1 since UINT32_MAX can be representable in int64_t. And Value::asInt implementation is,

    257 inline int64_t Value::asInt() const
    258 {
    259     return hasInt32() ? asInt32() : asInt64();
    260 }

So, we perform `static_cast<int64_t>(-1) == static_cast<int64_t>(UINT32_MAX)`. This is false, but this comparison is not what we want!
We should use `isInt32` and `isInt64` for bit patterns (like, operands for Bitwise opcodes).

We also fix the following optimization.

    // Turn this: BitAnd(Op(value, constant1), constant2)
    //     where !(constant1 & constant2)
    //       and Op is BitOr or BitXor
    // into this: BitAnd(value, constant2)

Since we stop further optimization when we match `if (m_value->child(1)->hasInt())`, the following optimization is never taken.

    // Turn this: BitAnd(BitXor(x, allOnes), c)
    // Into this: BitXor(BitOr(x, ~c), allOnes)

We add 32bit version of B3 tests for these optimizations.

* b3/B3LowerToAir.cpp:
* b3/B3ReduceStrength.cpp:
* b3/testb3.h:
* b3/testb3_2.cpp:
(testBitAndNotNot32):
(testBitAndNotImm):
(testBitAndNotImm32):
(testBitOrAndAndArgs32):
(testBitOrAndSameArgs32):
(testBitOrNotNot32):
(testBitOrNotImm32):
(addBitTests):
* b3/testb3_3.cpp:
(testBitXorAndAndArgs32):
(testBitXorAndSameArgs32):

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

6 months agoRemove a leftover reference to the StorageProcess
david_quesada@apple.com [Tue, 10 Sep 2019 16:56:46 +0000 (16:56 +0000)]
Remove a leftover reference to the StorageProcess
https://bugs.webkit.org/show_bug.cgi?id=192759

Reviewed by Alex Christensen.

* WebKit.xcodeproj/project.pbxproj:
    Remove com.apple.WebKit.Storage.sb as an input file to the "Copy iOS Sandbox Profiles
    for Manual Sandboxing" build phase. The file no longer exists.

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

6 months agoRe-sync workers web platform tests from upstream
cdumez@apple.com [Tue, 10 Sep 2019 16:42:27 +0000 (16:42 +0000)]
Re-sync workers web platform tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201629

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync workers web platform tests from upstream 603a271948a7162.

* web-platform-tests/workers/META.yml: Added.
* web-platform-tests/workers/OWNERS: Removed.
* web-platform-tests/workers/README.md:
* web-platform-tests/workers/SharedWorker-constructor-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-constructor.html: Added.
* web-platform-tests/workers/SharedWorker-detach-frame-in-error-event-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-detach-frame-in-error-event.html: Added.
* web-platform-tests/workers/SharedWorker-exception-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-exception-propagation-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-exception-propagation.html: Added.
* web-platform-tests/workers/SharedWorker-exception.html: Added.
* web-platform-tests/workers/SharedWorker-script-error-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-script-error.html: Added.
* web-platform-tests/workers/SharedWorker-simple-expected.txt: Added.
* web-platform-tests/workers/SharedWorker-simple.html: Added.
* web-platform-tests/workers/SharedWorkerPerformanceNow-expected.txt: Added.
* web-platform-tests/workers/SharedWorkerPerformanceNow.html: Added.
* web-platform-tests/workers/SharedWorker_dataUrl-expected.txt: Added.
* web-platform-tests/workers/SharedWorker_dataUrl.html: Added.
* web-platform-tests/workers/Worker-call.worker-expected.txt: Added.
* web-platform-tests/workers/Worker-call.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/Worker-call.worker.js: Added.
(test):
* web-platform-tests/workers/Worker-messageport-expected.txt: Added.
* web-platform-tests/workers/Worker-messageport.html: Added.
* web-platform-tests/workers/Worker-multi-port-expected.txt: Added.
* web-platform-tests/workers/Worker-multi-port.html: Added.
* web-platform-tests/workers/Worker-nested-importScripts-error-expected.txt: Added.
* web-platform-tests/workers/Worker-nested-importScripts-error.html: Added.
* web-platform-tests/workers/Worker-simultaneous-errors-expected.txt: Added.
* web-platform-tests/workers/Worker-simultaneous-errors.html: Added.
* web-platform-tests/workers/Worker-structure-message-expected.txt: Added.
* web-platform-tests/workers/Worker-structure-message.html: Added.
* web-platform-tests/workers/Worker-terminate-forever-expected.txt: Added.
* web-platform-tests/workers/Worker-terminate-forever.html: Added.
* web-platform-tests/workers/Worker-termination-with-port-messages-expected.txt: Added.
* web-platform-tests/workers/Worker-termination-with-port-messages.html: Added.
* web-platform-tests/workers/Worker-timeout-cancel-order-expected.txt: Added.
* web-platform-tests/workers/Worker-timeout-cancel-order.html: Added.
* web-platform-tests/workers/Worker-timeout-decreasing-order-expected.txt: Added.
* web-platform-tests/workers/Worker-timeout-decreasing-order.html: Added.
* web-platform-tests/workers/Worker-timeout-increasing-order-expected.txt: Added.
* web-platform-tests/workers/Worker-timeout-increasing-order.html: Added.
* web-platform-tests/workers/WorkerGlobalScope-close-expected.txt: Added.
* web-platform-tests/workers/WorkerGlobalScope-close.html: Added.
* web-platform-tests/workers/WorkerGlobalScope_close-expected.txt: Removed.
* web-platform-tests/workers/WorkerGlobalScope_close.htm: Removed.
* web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker-expected.txt: Added.
* web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.js: Added.
* web-platform-tests/workers/WorkerLocation-origin.sub.window.js: Removed.
* web-platform-tests/workers/WorkerPerformanceNow-expected.txt: Added.
* web-platform-tests/workers/WorkerPerformanceNow.html: Added.
* web-platform-tests/workers/Worker_cross_origin_security_err.htm:
* web-platform-tests/workers/baseurl/alpha/import-in-moduleworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/import-in-moduleworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/importScripts.html.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker.html: Added.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/importScripts-in-worker.html: Added.
* web-platform-tests/workers/baseurl/alpha/sharedworker-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/sharedworker-in-worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/sharedworker.html.
* web-platform-tests/workers/baseurl/alpha/w3c-import.log:
* web-platform-tests/workers/baseurl/alpha/worker-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/worker-in-worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/worker.html.
* web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/xhr.html.
* web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker.html: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-worker-expected.txt: Added.
* web-platform-tests/workers/baseurl/alpha/xhr-in-worker.html: Added.
* web-platform-tests/workers/baseurl/beta/import.py: Added.
(main):
* web-platform-tests/workers/baseurl/beta/script.js:
* web-platform-tests/workers/baseurl/beta/w3c-import.log:
* web-platform-tests/workers/baseurl/beta/xhr-worker.py: Added.
(main):
* web-platform-tests/workers/baseurl/gamma/import.js: Added.
* web-platform-tests/workers/baseurl/gamma/importScripts.js:
(test):
* web-platform-tests/workers/baseurl/gamma/script-module.js: Added.
* web-platform-tests/workers/baseurl/gamma/script.js:
* web-platform-tests/workers/baseurl/gamma/w3c-import.log:
* web-platform-tests/workers/baseurl/gamma/xhr-worker.js: Added.
* web-platform-tests/workers/constructors/SharedWorker/connect-event.html:
* web-platform-tests/workers/constructors/SharedWorker/connect-event.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/dummy-name.html:
* web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker.html:
* web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker.js: Added.
* web-platform-tests/workers/constructors/SharedWorker/empty-name.html:
* web-platform-tests/workers/constructors/SharedWorker/empty.js: Added.
* web-platform-tests/workers/constructors/SharedWorker/global-members.html:
* web-platform-tests/workers/constructors/SharedWorker/global-members.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/interface-objects.html:
* web-platform-tests/workers/constructors/SharedWorker/interface-objects.js: Added.
(handleCall):
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/name.html:
* web-platform-tests/workers/constructors/SharedWorker/name.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/port-onmessage.html:
* web-platform-tests/workers/constructors/SharedWorker/port-onmessage.js: Added.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/port-properties.html:
* web-platform-tests/workers/constructors/SharedWorker/port-readonly.html:
* web-platform-tests/workers/constructors/SharedWorker/same-origin.html:
* web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.html:
* web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.html.
(onconnect):
* web-platform-tests/workers/constructors/SharedWorker/w3c-import.log:
* web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror-expected.txt:
* web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror.html:
* web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror.js: Added.
* web-platform-tests/workers/constructors/Worker/Worker-constructor-expected.txt: Added.
* web-platform-tests/workers/constructors/Worker/Worker-constructor.html: Added.
* web-platform-tests/workers/constructors/Worker/no-arguments-ctor-expected.txt: Removed.
* web-platform-tests/workers/constructors/Worker/no-arguments-ctor.html: Removed.
* web-platform-tests/workers/constructors/Worker/resolve-empty-string-expected.txt: Removed.
* web-platform-tests/workers/constructors/Worker/resolve-empty-string.html: Removed.
* web-platform-tests/workers/constructors/Worker/same-origin.html:
* web-platform-tests/workers/constructors/Worker/sample_worker/w3c-import.log:
* web-platform-tests/workers/constructors/Worker/terminate.html:
* web-platform-tests/workers/constructors/Worker/terminate.js: Added.
(f):
* web-platform-tests/workers/constructors/Worker/unresolvable-url-expected.txt: Removed.
* web-platform-tests/workers/constructors/Worker/unresolvable-url.html: Removed.
* web-platform-tests/workers/constructors/Worker/w3c-import.log:
* web-platform-tests/workers/dedicated-worker-from-blob-url.window-expected.txt: Added.
* web-platform-tests/workers/dedicated-worker-from-blob-url.window.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/dedicated-worker-from-blob-url.window.js: Added.
(message_from_port):
* web-platform-tests/workers/examples/fetch_tests_from_worker-expected.txt: Added.
* web-platform-tests/workers/examples/fetch_tests_from_worker.html: Added.
* web-platform-tests/workers/examples/fetch_tests_from_worker.js: Added.
(test):
* web-platform-tests/workers/examples/general.worker-expected.txt: Added.
* web-platform-tests/workers/examples/general.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/examples/general.worker.js: Added.
(test):
* web-platform-tests/workers/examples/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/w3c-import.log.
* web-platform-tests/workers/interfaces.worker-expected.txt: Removed.
* web-platform-tests/workers/interfaces.worker.js: Removed.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary-expected.txt: Added.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-expected.txt:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.js: Added.
(catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.js: Added.
(catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.js: Added.
(catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.js: Added.
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.js: Added.
(i.catch):
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/w3c-import.log:
* web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/w3c-import.log:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting.html:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting.js: Added.
(switch):
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting.html:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting.js: Added.
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/w3c-import.log:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect.html:
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect.js: Added.
(catch):
(try.self.onconnect.handleEvent):
(f):
* web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.js: Added.
(onmessage):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/sending-messages.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/sending-messages.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.js: Added.
(interval1.setInterval):
(interval2.setInterval):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.js: Added.
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/close/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/members.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/members.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-expected.txt:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module-expected.txt: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.html.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker.html: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/returns-same-object.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/returns-same-object.js: Added.
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/setting-members.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/setting-members.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/location/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror-expected.txt:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.js: Added.
(onerror):
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/handled.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/handled.js: Added.
(onerror):
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/not-handled.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/not-handled.js: Added.
(onerror):
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.js: Added.
(x):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/self.html:
* web-platform-tests/workers/interfaces/WorkerGlobalScope/self.js: Added.
(check):
* web-platform-tests/workers/interfaces/WorkerGlobalScope/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.js: Added.
(setTimeout):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/002.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/002.js: Added.
(t.setTimeout):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/003.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/003.js: Added.
(setInterval):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/004.html:
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/004.js: Added.
(t.setInterval):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005-expected.txt: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.html.
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005.js: Added.
(t.setInterval):
* web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/003.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/003.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/005.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/005.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/007.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/007.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/008.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/008.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/009.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/009.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/010.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/010.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/011.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/011.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/012.html:
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/012.js: Added.
(catch):
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/1.headers: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/null.headers: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/undefined.headers: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/importScripts/w3c-import.log:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/002.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/002.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/003.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/003.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/004.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/004.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/005.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/005.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/006.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/006.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/007.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/007.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/language.html:
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/language.js: Added.
* web-platform-tests/workers/interfaces/WorkerUtils/navigator/w3c-import.log:
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.js: Added.
(import_blob_url_test):
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-csp-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-csp.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.js: Added.
(import_data_url_test):
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import-failure-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-failure.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-meta-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-meta.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-referrer-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import-referrer.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-import.any-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-import.any.js: Added.
(import_test):
* web-platform-tests/workers/modules/dedicated-worker-import.any.worker-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-import.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/modules/dedicated-worker-options-credentials-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-credentials.html: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-credentials.html.headers: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-type-expected.txt: Added.
* web-platform-tests/workers/modules/dedicated-worker-options-type.html: Added.
* web-platform-tests/workers/modules/resources/credentials.py: Added.
(main):
* web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-given-url-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/empty-worker.js: Added.
* web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/export-on-dynamic-import-script.js: Added.
* web-platform-tests/workers/modules/resources/export-on-dynamic-import-script.js.headers: Added.
* web-platform-tests/workers/modules/resources/export-on-load-script.js: Added.
* web-platform-tests/workers/modules/resources/export-on-load-script.js.headers: Added.
* web-platform-tests/workers/modules/resources/export-on-static-import-script.js: Added.
* web-platform-tests/workers/modules/resources/export-on-static-import-script.js.headers: Added.
* web-platform-tests/workers/modules/resources/import-meta-url-worker.js: Added.
* web-platform-tests/workers/modules/resources/import-scripts-worker.js: Added.
(catch):
* web-platform-tests/workers/modules/resources/import-test-cases.js: Added.
* web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/nested-static-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/new-worker-window.html: Added.
* web-platform-tests/workers/modules/resources/post-message-on-load-worker.js: Added.
* web-platform-tests/workers/modules/resources/referrer-checker.py: Added.
(main):
* web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-non-existent-script-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js: Added.
* web-platform-tests/workers/modules/resources/static-import-same-origin-credentials-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js: Added.
* web-platform-tests/workers/modules/resources/static-import-worker.js: Added.
* web-platform-tests/workers/modules/resources/w3c-import.log: Added.
* web-platform-tests/workers/modules/w3c-import.log: Added.
* web-platform-tests/workers/name-property-expected.txt:
* web-platform-tests/workers/name-property.html:
* web-platform-tests/workers/nested_worker.worker.js:
(async_test):
* web-platform-tests/workers/nested_worker_close_from_parent_worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_close_from_parent_worker.html: Added.
* web-platform-tests/workers/nested_worker_close_self.worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_close_self.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/nested_worker_close_self.worker.js: Added.
(async_test):
* web-platform-tests/workers/nested_worker_importScripts.worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_importScripts.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/nested_worker_importScripts.worker.js: Added.
(async_test):
* web-platform-tests/workers/nested_worker_sync_xhr.worker-expected.txt: Added.
* web-platform-tests/workers/nested_worker_sync_xhr.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/nested_worker_sync_xhr.worker.js: Added.
(async_test):
* web-platform-tests/workers/nested_worker_terminate_from_document-expected.txt: Added.
* web-platform-tests/workers/nested_worker_terminate_from_document.html: Added.
* web-platform-tests/workers/non-automated/navigator-onLine.html:
* web-platform-tests/workers/non-automated/navigator-onLine.js: Added.
(string_appeared_here.in.self.onmessage):
(else.e.ports.0.onmessage):
(else.onconnect):
* web-platform-tests/workers/non-automated/w3c-import.log:
* web-platform-tests/workers/opaque-origin.html:
* web-platform-tests/workers/semantics/encodings/001.html:
* web-platform-tests/workers/semantics/encodings/001.html.headers: Removed.
* web-platform-tests/workers/semantics/encodings/001.js: Added.
* web-platform-tests/workers/semantics/encodings/001.js.headers: Added.
* web-platform-tests/workers/semantics/encodings/002.html:
* web-platform-tests/workers/semantics/encodings/002.html.headers: Removed.
* web-platform-tests/workers/semantics/encodings/002.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/encodings/002.js.headers: Added.
* web-platform-tests/workers/semantics/encodings/003.html:
* web-platform-tests/workers/semantics/encodings/003.js: Added.
* web-platform-tests/workers/semantics/encodings/004.html:
* web-platform-tests/workers/semantics/encodings/004.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/encodings/w3c-import.log:
* web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
* web-platform-tests/workers/semantics/interface-objects/001.worker.js:
* web-platform-tests/workers/semantics/interface-objects/002.worker-expected.txt:
* web-platform-tests/workers/semantics/interface-objects/002.worker.js:
* web-platform-tests/workers/semantics/interface-objects/003.html:
* web-platform-tests/workers/semantics/interface-objects/003.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/003.html.
(onconnect):
* web-platform-tests/workers/semantics/interface-objects/004.html:
* web-platform-tests/workers/semantics/interface-objects/004.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/004.html.
(onconnect):
* web-platform-tests/workers/semantics/interface-objects/w3c-import.log:
* web-platform-tests/workers/semantics/multiple-workers/001.html:
* web-platform-tests/workers/semantics/multiple-workers/001.js: Added.
(string_appeared_here.in.self.onmessage):
(else.e.ports.0.onmessage):
(else.onconnect):
* web-platform-tests/workers/semantics/multiple-workers/002.html:
* web-platform-tests/workers/semantics/multiple-workers/002.js: Added.
* web-platform-tests/workers/semantics/multiple-workers/003.html:
* web-platform-tests/workers/semantics/multiple-workers/003.js: Added.
(location.hash.string_appeared_here.w2.onmessage):
(else.w3.onmessage):
(else):
* web-platform-tests/workers/semantics/multiple-workers/004-expected.txt:
* web-platform-tests/workers/semantics/multiple-workers/004.html:
* web-platform-tests/workers/semantics/multiple-workers/005.html:
* web-platform-tests/workers/semantics/multiple-workers/006.html:
* web-platform-tests/workers/semantics/multiple-workers/007.html:
* web-platform-tests/workers/semantics/multiple-workers/008-1.html:
* web-platform-tests/workers/semantics/multiple-workers/008.html:
* web-platform-tests/workers/semantics/multiple-workers/008.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/multiple-workers/w3c-import.log:
* web-platform-tests/workers/semantics/navigation/001-1.html:
* web-platform-tests/workers/semantics/navigation/001-1.js: Added.
(setInterval):
* web-platform-tests/workers/semantics/navigation/w3c-import.log:
* web-platform-tests/workers/semantics/reporting-errors/001.html:
* web-platform-tests/workers/semantics/reporting-errors/001.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/reporting-errors/001.html.
(onerror):
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/002.html:
* web-platform-tests/workers/semantics/reporting-errors/002.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/reporting-errors/002.html.
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/003.html:
* web-platform-tests/workers/semantics/reporting-errors/003.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/004-1.html:
* web-platform-tests/workers/semantics/reporting-errors/004.html:
* web-platform-tests/workers/semantics/reporting-errors/004.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/reporting-errors/w3c-import.log:
* web-platform-tests/workers/semantics/run-a-worker/001.html:
* web-platform-tests/workers/semantics/run-a-worker/001.js: Added.
* web-platform-tests/workers/semantics/run-a-worker/002.html:
* web-platform-tests/workers/semantics/run-a-worker/002.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/run-a-worker/003.html:
* web-platform-tests/workers/semantics/run-a-worker/w3c-import.log:
* web-platform-tests/workers/semantics/structured-clone/w3c-import.log:
* web-platform-tests/workers/semantics/xhr/001.html:
* web-platform-tests/workers/semantics/xhr/001.js: Added.
(xhr.onreadystatechange):
* web-platform-tests/workers/semantics/xhr/002.html:
* web-platform-tests/workers/semantics/xhr/002.js: Added.
* web-platform-tests/workers/semantics/xhr/003.html:
* web-platform-tests/workers/semantics/xhr/003.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/xhr/003.html.
(xhr.onreadystatechange):
(onconnect):
* web-platform-tests/workers/semantics/xhr/004.html:
* web-platform-tests/workers/semantics/xhr/004.js: Added.
(onconnect):
* web-platform-tests/workers/semantics/xhr/support/w3c-import.log:
* web-platform-tests/workers/semantics/xhr/w3c-import.log:
* web-platform-tests/workers/shared-worker-from-blob-url.window-expected.txt: Added.
* web-platform-tests/workers/shared-worker-from-blob-url.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
* web-platform-tests/workers/shared-worker-from-blob-url.window.js: Added.
(message_from_port):
* web-platform-tests/workers/support/SharedWorker-common.js: Added.
(generateError):
(event.ports.0.onmessage):
(onconnect):
(handleMessage):
* web-platform-tests/workers/support/SharedWorker-create-common.js: Added.
(createWorker.worker.port.onmessage):
(createWorker.worker.postMessage):
(createWorker):
* web-platform-tests/workers/support/SharedWorker-script-error.js: Added.
(event.ports.0.onmessage):
(onconnect):
(else.onerror):
(handleMessage):
* web-platform-tests/workers/support/Worker-common.js: Added.
(onmessage):
* web-platform-tests/workers/support/Worker-create-common.js: Added.
(createWorker):
* web-platform-tests/workers/support/Worker-messageport.js: Added.
(onmessage):
(pingBack):
* web-platform-tests/workers/support/Worker-run-forever.js: Added.
* web-platform-tests/workers/support/Worker-structure-message.js: Added.
(self.onmessage):
* web-platform-tests/workers/support/Worker-termination-with-port-messages.js: Added.
(echo):
(onmessage):
* web-platform-tests/workers/support/Worker-thread-multi-port.js: Added.
(onmessage):
(testPassed):
(testFailed):
* web-platform-tests/workers/support/Worker-timeout-cancel-order.js: Added.
(t1.setTimeout):
(setTimeout):
* web-platform-tests/workers/support/Worker-timeout-decreasing-order.js: Added.
(setTimeout):
* web-platform-tests/workers/support/Worker-timeout-increasing-order.js: Added.
(setTimeout):
* web-platform-tests/workers/support/WorkerGlobalScope-close.js: Added.
(else.messagePort.onmessage):
(onmessage):
* web-platform-tests/workers/support/WorkerSendingPerformanceNow.js: Added.
(calcResponse):
(self.onmessage):
(port.onmessage):
* web-platform-tests/workers/support/iframe_sw_dataUrl.html: Added.
* web-platform-tests/workers/support/importScripts-1.js: Added.
* web-platform-tests/workers/support/importScripts-2.js: Added.
* web-platform-tests/workers/support/importScripts-3.js: Added.
* web-platform-tests/workers/support/imported_script.py: Added.
(main):
* web-platform-tests/workers/support/invalidScript.js: Added.
* web-platform-tests/workers/support/name.js:
(test):
* web-platform-tests/workers/support/parent_of_nested_worker.js: Added.
(try.worker.onmessage):
(catch):
* web-platform-tests/workers/support/sync_xhr.js: Added.
(catch):
* web-platform-tests/workers/support/sync_xhr_target.xml: Added.
* web-platform-tests/workers/support/throw-on-message-Worker.js: Added.
(self.onerror):
(self.onmessage):
* web-platform-tests/workers/support/w3c-import.log:
* web-platform-tests/workers/w3c-import.log:
* web-platform-tests/workers/worker-performance.worker-expected.txt:

LayoutTests:

* TestExpectations:
* tests-options.json:

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

6 months agoRemove MediaStreamPrivate::scheduleDeferredTask
youenn@apple.com [Tue, 10 Sep 2019 16:06:51 +0000 (16:06 +0000)]
Remove MediaStreamPrivate::scheduleDeferredTask
https://bugs.webkit.org/show_bug.cgi?id=200975
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

* web-platform-tests/mediacapture-streams/MediaStream-finished-add.https-expected.txt:

Source/WebCore:

Reviewed by Eric Carlson.

All calls to scheduleDeferredTask are done on the main thread.
This was initially done to trigger less reconfiguration.
But this makes the implementation significantly more complex.

For instance, we have to wait for the document to update its media state
and send it to UIProcess before calling the allow completion handler.

Covered by existing tests.

* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream):
Make sure to update the document media state once the tracks have been added, similarly to the other constructor.
This ensures the document media state is computed with the new MediaStreamTrack.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::isMediaStreamCorrectlyStarted):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::stop):
(WebCore::UserMediaRequest::mediaStreamDidFail):
* Modules/mediastream/UserMediaRequest.h:
* page/MediaProducer.h:
(WebCore::MediaProducer::isCapturing):
Make sure to include getDisplayMedia as part of capture check.
* platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::trackMutedChanged):
(WebCore::MediaStreamPrivate::trackEnabledChanged):
(WebCore::MediaStreamPrivate::trackStarted):
(WebCore::MediaStreamPrivate::trackEnded):
* platform/mediastream/MediaStreamPrivate.h:

LayoutTests:

<rdar://problem/55113418>

Reviewed by Eric Carlson.

* fast/mediastream/media-stream-track-source-failure.html:
page mediaState may be updated synchronously.
Get it just before failing a capture track to verify that the state is being updated after the track is stopped.

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

6 months agoUnreviewed, unskip / rebaseline a few service worker tests
cdumez@apple.com [Tue, 10 Sep 2019 15:42:23 +0000 (15:42 +0000)]
Unreviewed, unskip / rebaseline a few service worker tests
https://bugs.webkit.org/show_bug.cgi?id=201626

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt:
* web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-cache.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https-expected.txt:
* web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
* web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/multipart-image.https-expected.txt:
* web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt:
* web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
* web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
* web-platform-tests/service-workers/service-worker/respond-with-body-accessed-response.https-expected.txt:
* web-platform-tests/service-workers/service-worker/sandboxed-iframe-fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update-not-allowed.https-expected.txt:
* web-platform-tests/service-workers/service-worker/update.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
* web-platform-tests/service-workers/service-worker/worker-in-sandboxed-iframe-by-csp-fetch-event.https-expected.txt:

LayoutTests:

* TestExpectations:

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

6 months agoAudio sometimes fail to capture in WebRTC
youenn@apple.com [Tue, 10 Sep 2019 15:27:41 +0000 (15:27 +0000)]
Audio sometimes fail to capture in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=180748
<rdar://problem/36032346>

Reviewed by Eric Carlson.

In some cases, Safari is not receiving unsuspend notifications.
In that case, the capture unit might stay in suspend state forever.
To work around that, we force to unsuspend whenever there is a new capture happening.
This will make it so that reloading the page will unsuspend the page.

Manually tested by triggering Siri, starting to use the microphone and quickly going back to a capturing page.

* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::provideSpeakerData):
When suspension happens, the buffer size might change.
Since this is only an issue if there are some references data, we now do not fail the capture when there
is no reference data.
(WebCore::CoreAudioSharedUnit::resume):
(WebCore::CoreAudioSharedUnit::prepareForNewCapture):
Make sure to start with a clean slate by setting suspend state to false for the shared unit.
And failing all previous sources in case we are going back from suspension.
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioCaptureSourceFactory::audioCaptureDeviceManager):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):

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

6 months ago[GTK][WPE] Fixes for non-unified builds after r249022
aperez@igalia.com [Tue, 10 Sep 2019 15:10:56 +0000 (15:10 +0000)]
[GTK][WPE] Fixes for non-unified builds after r249022
https://bugs.webkit.org/show_bug.cgi?id=201610

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests needed.

* fileapi/NetworkSendQueue.h: Add missing inclusion of wtf/WeakPtr.h; add the namespace to WTF::WeakPtr
which is needed because there is no "using" clause.
* inspector/InspectorInstrumentation.cpp: Add missing inclusion of the PageDOMDebuggerAgent.h header.
* inspector/agents/WebDebuggerAgent.cpp: Add missing inclusion of the ScriptExecutionContext.h header.
* inspector/agents/page/PageDOMDebuggerAgent.cpp: Add missing inclusion of the InstrumentingAgents.h header.

Source/WebKit:

* NetworkProcess/NetworkCORSPreflightChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header.
* NetworkProcess/NetworkLoadChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header.

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

6 months agoEnsure tests for legacy features are in LayoutTests/mathml
commit-queue@webkit.org [Tue, 10 Sep 2019 14:45:41 +0000 (14:45 +0000)]
Ensure tests for legacy features are in LayoutTests/mathml
https://bugs.webkit.org/show_bug.cgi?id=201604

Patch by Frederic Wang <fwang@igalia.com> on 2019-09-10
Reviewed by Rob Buis.

This patch copies MathML WPT tests verifying legacy support for features removed from MathML
Core. These tests will be overriden or removed in a future WPT synchronization, so we need
to keep local copies to check these legacy features when the "MathML Core" option is
disabled.

* TestExpectations: Copy expectation.
* mathml/non-core/frac-linethickness-001-expected.html: Added.
* mathml/non-core/frac-linethickness-001.html: Added.
* mathml/non-core/frac-linethickness-002-expected.html: Added.
* mathml/non-core/frac-linethickness-002.html: Added.
* mathml/non-core/frac-numalign-denomalign-001-expected.html: Added.
* mathml/non-core/frac-numalign-denomalign-001.html: Added.
* mathml/non-core/lengths-1-expected.html: Added.
* mathml/non-core/lengths-1.html: Added.
* mathml/non-core/lengths-2-expected.html: Added.
* mathml/non-core/lengths-2.html: Added.
* mathml/non-core/lengths-3-expected.txt: Added.
* mathml/non-core/lengths-3.html: Added.
* platform/gtk/TestExpectations: Copy expectation.
* platform/win/TestExpectations: Add failure expectations.

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