Timeline



Mar 25, 2019:

11:12 PM Changeset in webkit [243487] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

Do not terminate the NetworkProcess if a third party application sends a NSCredential with a SecIdentityRef
https://bugs.webkit.org/show_bug.cgi?id=196213

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-25
Reviewed by Geoff Garen.

Source/WebKit:

A release assertion added in r230225 was reachable. I reached it in a unit test that responds to a challenge
with a SecIdentityRef wrapped in an NSCredential.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: Added.

(credentialWithIdentityAndKeychainPath):
(-[ChallengeDelegate webView:didFinishNavigation:]):
(-[ChallengeDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(TestWebKitAPI::TEST):

10:53 PM Changeset in webkit [243486] by commit-queue@webkit.org
  • 7 edits in trunk

Expected shouldn't assume its contained types are copyable
https://bugs.webkit.org/show_bug.cgi?id=195986

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-25
Reviewed by JF Bastien.

Source/WebCore:

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):

Source/WTF:

  • wtf/Expected.h:

(std::experimental::fundamentals_v3::expected_detail::constexpr_base::constexpr_base):
(std::experimental::fundamentals_v3::operator==):
(std::experimental::fundamentals_v3::operator!=):

  • wtf/Unexpected.h:

(std::experimental::fundamentals_v3::unexpected::unexpected):

Tools:

  • TestWebKitAPI/Tests/WTF/Expected.cpp:

(TestWebKitAPI::NonCopyable::operator== const):
(TestWebKitAPI::NonCopyable::operator!= const):
(TestWebKitAPI::TEST):

10:48 PM Changeset in webkit [243485] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r242369) Trying to change profile picture on linked in shows file picker, not the image picker
https://bugs.webkit.org/show_bug.cgi?id=196205
<rdar://problem/49083324>

Reviewed by Geoffrey Garen.

Update our FileUploadPanel code on iOS to properly deal with the MIME types containing
wild cards (e.g. "image/*") that are defined in the HTML specification:

Previously, we would fail to convert those to UTIs.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:
9:45 PM Changeset in webkit [243484] by timothy_horton@apple.com
  • 4 edits in trunk

Remove some now-unnecessary dynamic class lookup
https://bugs.webkit.org/show_bug.cgi?id=196237

Reviewed by Simon Fraser.

Source/WebKit:

  • Shared/DocumentEditingContext.mm:

(WebKit::DocumentEditingContext::toPlatformContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(makeRequest):
(TEST):

8:34 PM Changeset in webkit [243483] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Leak of SVGFontFaceElement when RenderStyle holds onto a FontRances which uses it
https://bugs.webkit.org/show_bug.cgi?id=196059

Reviewed by Zalan Bujtas.

SVGFontFaceElement keeps its RenderStyle alive via ElementRareData but RenderStyle can hold onto FontRanges
and therefore CSSFontSource, which in turn keeps SVGFontFaceElement alive, making a reference cycle.

More precisely, there are two reference cycles:
SVGFontFaceElement (1) -> ElementRareData -> StyleInheritedData -> FontCascade -> FontCascadeFonts (2)
FontCascadeFonts (2) -> FontRanges (3)
FontCascadeFonts (2) -> CSSFontSelector -> CSSFontFaceSet -> CSSSegmentedFontFace -> FontRanges (3)
FontRanges (3) -> CSSFontAccessor > CSSFontFace > CSSFontSource -> SVGFontFaceElement (1)

No new tests. Unfortunately, writing a test proved to be intractable. The leak can be reproduced by running
svg/text/text-text-05-t.svg then svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html consecutively.

  • css/CSSFontFaceSource.cpp:

(WebCore::CSSFontFaceSource::CSSFontFaceSource):
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource const):

  • css/CSSFontFaceSource.h:
8:30 PM Changeset in webkit [243482] by Fujii Hironori
  • 20 edits
    3 deletes in trunk

Unreviewed, rolling out r243450.

AppleWin and WinCairo port builds get broken.

Reverted changeset:

"Add test for fix of #196095"
https://bugs.webkit.org/show_bug.cgi?id=196097
https://trac.webkit.org/changeset/243450

7:18 PM Changeset in webkit [243481] by Adrian Perez de Castro
  • 3 edits in trunk

[WPE][GTK] Make building WebVR (w/OpenVR) not depend on ENABLE_EXPERIMENTAL_FEATURES
https://bugs.webkit.org/show_bug.cgi?id=196223

Reviewed by Michael Catanzaro.

Disentangle USE_OPENVR from ENABLE_EXPERIMENTAL_FEATURES, making it
unneeded to include ThirdParty/openvr/ in release tarballs.

  • Source/cmake/OptionsGTK.cmake: Set USE_OPENVR to OFF by default,

instead of making it use the value of ENABLE_EXPERIMENTAL_FEATURES.

  • Source/cmake/OptionsWPE.cmake: Ditto.
6:44 PM Changeset in webkit [243480] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Get rid of ENABLE(ANIMATED_KEYBOARD_SCROLLING)
https://bugs.webkit.org/show_bug.cgi?id=196224

Reviewed by Simon Fraser.

  • Platform/spi/ios/AccessibilitySupportSPI.h:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator invalidate]):
(perpendicularAbsoluteUnitVector):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
(-[WKKeyboardScrollingAnimator willStartInteractiveScroll]):
(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):
(-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]):
(-[WKKeyboardScrollingAnimator startRepeatTimerIfNeeded]): Deleted.
(-[WKKeyboardScrollingAnimator stopRepeatTimer]): Deleted.
(-[WKKeyboardScrollingAnimator performDiscreteScroll]): Deleted.

6:36 PM Changeset in webkit [243479] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Enable IPC sending and receiving non-default-constructible types
https://bugs.webkit.org/show_bug.cgi?id=196132
<rdar://problem/49229221>

Unreviewed build fix for WinCairo port.

error C2440: '=': cannot convert from 'int' to 'HANDLE'

  • Platform/win/SharedMemoryWin.cpp:

(WebKit::SharedMemory::Handle::Handle): std::exchange HANDLE with nullptr, not 0.
(WebKit::SharedMemory::Handle::operator=): Ditto.

6:26 PM Changeset in webkit [243478] by commit-queue@webkit.org
  • 59 edits
    3 copies
    1 add
    7 deletes in trunk

Remove the SVG tear off objects for SVGAngle, SVGAnimatedAngle and SVGAnimatedEnumeration
https://bugs.webkit.org/show_bug.cgi?id=196087

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

Source/WebCore:

In this patch, the tear off objects for SVGAnimatedEnumeration will be
removed. Because the angle is paired with the orient type so its tear
off objects have to be removed as well. Here is what this patch does:

-- SVGAngle is now a superclass of SVGValueProperty<SVGAngleValue>. Its
relationship with its owner will be managed by the owner of its base
class SVGProperty.

-- SVGAnimatedAngle is now defined to be SVGAnimatedValueProperty<
SVGAngle>. All the DOM interfaces will be handled by the base class
given its baseVal and animVal are of type SVGAngle.

-- SVGAnimatedEnumeration is now defined to be
SVGAnimatedDecoratedProperty<SVGDecoratedEnumeration, unsigned>.
This can be read: SVGAnimatedEnumeration is an SVGAnimatedProperty which
decorates the "SVGDecoratedEnumeration" type to "unsigned". The reason
for this complication is the IDL of SVGAnimatedEnumeration defines the
baseVal and animVal are of type unsigned. However SVGAnimatedEnumeration
should be able to convert a string to its enum value and vice versa.

-- SVGAnimatedDecoratedProperty is a template class which maps from
DecoratedProperty to DecorationType. The DecoratedProperty is actually
a template class which exposes a property of type DecorationType.

-- SVGDecoratedProperty is an abstract class which manages setting and
getting a property in DecorationType regardless of how it is actually
stored.

-- SVGDecoratedPrimitive is a superclass of SVGDecoratedProperty which
stores a primitive property whose type is PropertyType but can decorate
it to the callers as DecorationType.

-- SVGDecoratedEnumeration is a superclass of SVGDecoratedPrimitive
which stores a primitive type DecorationType like "BlendMode" but
decorates it as "unsigned"

To get the mechanics of this change correct, new accessors, animators
and animation functions need to be added for SVGAnimatedAngle,
SVGAnimatedEnumeration and SVGAnimatedOrientType. But since angle and
the orient type are paired under a single attribute, a pair accessor and
animator are also needed for the pair { angle, orientType }.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • svg/SVGAngle.h:

(WebCore::SVGAngle::create):
(WebCore::SVGAngle::unitType):
(WebCore::SVGAngle::setValueForBindings):
(WebCore::SVGAngle::valueForBindings):
(WebCore::SVGAngle::setValueInSpecifiedUnits):
(WebCore::SVGAngle::valueInSpecifiedUnits):
(WebCore::SVGAngle::setValueAsString):
(WebCore::SVGAngle::newValueSpecifiedUnits):
(WebCore::SVGAngle::convertToSpecifiedUnits):
(WebCore::SVGAngle::valueAsString): Deleted.
(WebCore::SVGAngle::SVGAngle): Deleted.

  • svg/SVGAnimatedAngle.cpp: Removed.
  • svg/SVGAnimatedAngle.h: Removed.
  • svg/SVGAnimatedEnumeration.cpp: Removed.
  • svg/SVGAnimatedEnumeration.h: Removed.
  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::type const):

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::create):

  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::SVGClipPathElement):
(WebCore::SVGClipPathElement::parseAttribute):
(WebCore::SVGClipPathElement::svgAttributeChanged):
(WebCore::SVGClipPathElement::registerAttributes): Deleted.

  • svg/SVGClipPathElement.h:
  • svg/SVGComponentTransferFunctionElement.cpp:

(WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
(WebCore::SVGComponentTransferFunctionElement::parseAttribute):
(WebCore::SVGComponentTransferFunctionElement::registerAttributes): Deleted.

  • svg/SVGComponentTransferFunctionElement.h:

(WebCore::SVGComponentTransferFunctionElement::type const):
(WebCore::SVGComponentTransferFunctionElement::typeAnimated):
(WebCore::SVGComponentTransferFunctionElement::attributeRegistry): Deleted.
(WebCore::SVGComponentTransferFunctionElement::isKnownAttribute): Deleted.

  • svg/SVGElement.cpp:

(WebCore::SVGElement::commitPropertyChange):

  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::SVGFEBlendElement):
(WebCore::SVGFEBlendElement::parseAttribute):
(WebCore::SVGFEBlendElement::registerAttributes): Deleted.

  • svg/SVGFEBlendElement.h:

(WebCore::SVGPropertyTraits<BlendMode>::fromString):

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
(WebCore::SVGFEColorMatrixElement::parseAttribute):
(WebCore::SVGFEColorMatrixElement::registerAttributes): Deleted.

  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::SVGFECompositeElement):
(WebCore::SVGFECompositeElement::parseAttribute):
(WebCore::SVGFECompositeElement::registerAttributes): Deleted.

  • svg/SVGFECompositeElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
(WebCore::SVGFEConvolveMatrixElement::parseAttribute):
(WebCore::SVGFEConvolveMatrixElement::registerAttributes): Deleted.

  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
(WebCore::SVGFEDisplacementMapElement::parseAttribute):
(WebCore::SVGFEDisplacementMapElement::registerAttributes): Deleted.

  • svg/SVGFEDisplacementMapElement.h:
  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::parseAttribute):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
(WebCore::SVGFEGaussianBlurElement::registerAttributes): Deleted.

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
(WebCore::SVGFEMorphologyElement::parseAttribute):
(WebCore::SVGFEMorphologyElement::registerAttributes): Deleted.

  • svg/SVGFEMorphologyElement.h:
  • svg/SVGFETurbulenceElement.cpp:

(WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
(WebCore::SVGFETurbulenceElement::parseAttribute):
(WebCore::SVGFETurbulenceElement::svgAttributeChanged):
(WebCore::SVGFETurbulenceElement::registerAttributes): Deleted.

  • svg/SVGFETurbulenceElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::SVGFilterElement):
(WebCore::SVGFilterElement::registerAttributes):
(WebCore::SVGFilterElement::parseAttribute):

  • svg/SVGFilterElement.h:
  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::SVGGradientElement):
(WebCore::SVGGradientElement::registerAttributes):
(WebCore::SVGGradientElement::parseAttribute):

  • svg/SVGGradientElement.h:

(WebCore::SVGGradientElement::spreadMethod const):
(WebCore::SVGGradientElement::gradientUnits const):
(WebCore::SVGGradientElement::spreadMethodAnimated):
(WebCore::SVGGradientElement::gradientUnitsAnimated):

  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::SVGMarkerElement):
(WebCore::SVGMarkerElement::registerAttributes):
(WebCore::SVGMarkerElement::parseAttribute):
(WebCore::SVGMarkerElement::setOrient):
(WebCore::SVGMarkerElement::setOrientToAngle):
(WebCore::SVGMarkerElement::orientTypeIdentifier): Deleted.
(WebCore::SVGMarkerElement::orientAngleIdentifier): Deleted.

  • svg/SVGMarkerElement.h:
  • svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::autoString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::autoStartReverseString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::fromString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::toString):

  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::SVGMaskElement):
(WebCore::SVGMaskElement::registerAttributes):
(WebCore::SVGMaskElement::parseAttribute):

  • svg/SVGMaskElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::SVGPatternElement):
(WebCore::SVGPatternElement::registerAttributes):
(WebCore::SVGPatternElement::parseAttribute):

  • svg/SVGPatternElement.h:
  • svg/SVGSVGElement.cpp:
  • svg/SVGScriptElement.cpp:
  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::SVGTextContentElement):
(WebCore::SVGTextContentElement::registerAttributes):
(WebCore::SVGTextContentElement::parseAttribute):

  • svg/SVGTextContentElement.h:

(WebCore::SVGTextContentElement::lengthAdjust const):
(WebCore::SVGTextContentElement::lengthAdjustAnimated):

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::SVGTextPathElement):
(WebCore::SVGTextPathElement::registerAttributes):
(WebCore::SVGTextPathElement::parseAttribute):

  • svg/SVGTextPathElement.h:
  • svg/SVGValue.h:
  • svg/properties/SVGAnimatedDecoratedProperty.h: Added.

(WebCore::SVGAnimatedDecoratedProperty::create):
(WebCore::SVGAnimatedDecoratedProperty::SVGAnimatedDecoratedProperty):
(WebCore::SVGAnimatedDecoratedProperty::setBaseVal):
(WebCore::SVGAnimatedDecoratedProperty::setBaseValInternal):
(WebCore::SVGAnimatedDecoratedProperty::baseVal const):
(WebCore::SVGAnimatedDecoratedProperty::setAnimVal):
(WebCore::SVGAnimatedDecoratedProperty::animVal const):
(WebCore::SVGAnimatedDecoratedProperty::currentValue const):

  • svg/properties/SVGAnimatedEnumerationPropertyTearOff.h: Removed.
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:

(WebCore::SVGAnimatedOrientType::create):

  • svg/properties/SVGAnimatedPropertyPairAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyPairAnimator.h:

(WebCore::SVGAnimatedPropertyPairAnimator::appendAnimatedInstance):

  • svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h:
  • svg/properties/SVGAnimatedStaticPropertyTearOff.h: Removed.
  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationAngleFunction::progress):

  • svg/properties/SVGAnimationDiscreteFunctionImpl.h:
  • svg/properties/SVGAttributeRegistry.h:
  • svg/properties/SVGDecoratedEnumeration.h: Added.

(WebCore::SVGDecoratedEnumeration::create):

  • svg/properties/SVGDecoratedPrimitive.h: Added.

(WebCore::SVGDecoratedPrimitive::SVGDecoratedPrimitive):

  • svg/properties/SVGDecoratedProperty.h: Added.

(WebCore::SVGDecoratedProperty::setValue):
(WebCore::SVGDecoratedProperty::value const):

  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):
(WebCore::SVGPropertyOwnerRegistry::isAnimatedLengthAttribute):

  • svg/properties/SVGPropertyRegistry.h:
  • svg/properties/SVGStaticPropertyTearOff.h: Removed.

LayoutTests:

  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html:

Fixes cases that the tear off objects could not handle correctly for the
paired { angle, orientType }. Also when setting the orient type to "auto"
or "auto-start-reverse", the orient angle should be reset to
SVG_ANGLETYPE_UNSPECIFIED and is not suppsed to keep its original value.

6:21 PM Changeset in webkit [243477] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196236

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Changing expectations due to test being flaky
6:19 PM Changeset in webkit [243476] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[iOS] Break a reference cycle between PreviewLoader and ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=194964

Unreviewed build fix for WinCairo port.

error C2504: 'CanMakeWeakPtr': base class undefined

  • loader/ResourceLoader.h: Added #include <wtf/WeakPtr.h>.
5:43 PM Changeset in webkit [243475] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[Coordinated Graphics][WinCairo] ASSERTION FAILED: state.id == m_nicosia.state.id
https://bugs.webkit.org/show_bug.cgi?id=196190

Reviewed by Žan Doberšek.

This assertion assumes the pre-committed and the committed scenes
are identical. But, the pre-committed scene is updated in the main
thread. Removed the false assertion.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::purgeGLResources): Remove the
assertion. Removed layers of committed scene, not pre-committed
scene.

5:24 PM Changeset in webkit [243474] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

fast/viewport/ios/initial-scale-after-changing-view-scale.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=196233

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Changing expectations due to test being flaky
4:58 PM Changeset in webkit [243473] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

http/tests/cache-storage/cache-clearing-origin.https.html
http/tests/cache-storage/cache-records-persistency.https.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=196228

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations: Changing expectations due to flaky tests
4:50 PM Changeset in webkit [243472] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Add socket-delegate to another entitlements config
rdar://problem/48090350 and https://bugs.webkit.org/show_bug.cgi?id=196227

Reviewed by Geoffrey Garen.

  • Configurations/Network-iOSMac.entitlements:
4:30 PM Changeset in webkit [243471] by aestes@apple.com
  • 7 edits in trunk/Source

[iOS] Break a reference cycle between PreviewLoader and ResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=194964
<rdar://problem/48279441>

Reviewed by Alex Christensen.

Source/WebCore:

When a document's QuickLook preview is loaded, a reference cycle is created between
WebPreviewLoader and ResourceLoader. Break the cycle by changing WebPreviewLoader to hold a
WeakPtr to its ResourceLoader ResourceLoader::releaseResources().

Fixes leaks detected by run-webkit-tests --leaks LayoutTests/quicklook. Also covered by
existing API tests.

  • loader/ResourceLoader.h:
  • loader/ios/PreviewLoader.mm:

(-[WebPreviewLoader initWithResourceLoader:resourceResponse:]):
(-[WebPreviewLoader _sendDidReceiveResponseIfNecessary]):
(-[WebPreviewLoader connection:didReceiveData:lengthReceived:]):
(-[WebPreviewLoader connectionDidFinishLoading:]):
(-[WebPreviewLoader connection:didFailWithError:]):

Source/WebKitLegacy/mac:

The WebDataSource._quickLookContent SPI accidentally relied on PreviewLoaders being leaked
to keep the temporary file referenced by WebQuickLookFileNameKey in existence. Since
PreviewLoaders are now being deleted properly, we teach WebDataSource to keep the
PreviewLoaderClient alive for its lifetime. This ensures that as long as
WebDataSource._quickLookContent can be called, the associated temp file will not be deleted
by WebKit.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createPreviewLoaderClient):

  • WebView/WebDataSource.mm:

(-[WebDataSource _quickLookPreviewLoaderClient]):
(-[WebDataSource _setQuickLookPreviewLoaderClient:]):

  • WebView/WebDataSourceInternal.h:
4:18 PM Changeset in webkit [243470] by commit-queue@webkit.org
  • 4 edits
    1 delete in trunk

Unreviewed, rolling out r243465.
https://bugs.webkit.org/show_bug.cgi?id=196226

the test doesn't build (Requested by thorton on #webkit).

Reverted changeset:

"Do not terminate the NetworkProcess if a third party
application sends a NSCredential with a SecIdentityRef"
https://bugs.webkit.org/show_bug.cgi?id=196213
https://trac.webkit.org/changeset/243465

4:11 PM Changeset in webkit [243469] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

REGRESSION (r242687): Flicker when pinch-zooming pages in macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=196126
rdar://problem/49095791

Reviewed by Tim Horton.

I fumbled the commit after the enum rename. Make this actually work.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):

4:11 PM Changeset in webkit [243468] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Zoom on macOS is centered around a point lower than the cursor
https://bugs.webkit.org/show_bug.cgi?id=196225
rdar://problem/49213574

Reviewed by Tim Horton.

The origin handed to ViewGestureController::handleMagnificationGestureEvent is in WKWebView
coordinates, but we end up setting the transform on the RenderView's layer, so we need
to subtract the topContentInset.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::handleMagnificationGestureEvent):

3:40 PM Changeset in webkit [243467] by ysuzuki@apple.com
  • 60 edits in trunk/Source/JavaScriptCore

Heap::isMarked and friends should be instance methods
https://bugs.webkit.org/show_bug.cgi?id=179988

Reviewed by Saam Barati.

Almost all the callers of Heap::isMarked have VM& reference. We should make Heap::isMarked instance function instead of static function
so that we do not need to look up Heap from the cell.

  • API/JSAPIWrapperObject.mm:

(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):

  • API/JSMarkingConstraintPrivate.cpp:

(JSC::isMarked):

  • API/glib/JSAPIWrapperObjectGLib.cpp:

(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::finalizeUnconditionally):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::visitWeak const):
(JSC::AccessCase::propagateTransitions const):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::visitWeak):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::finalize):

  • bytecode/CallLinkStatus.h:
  • bytecode/CallVariant.cpp:

(JSC::CallVariant::finalize):

  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::shouldJettisonDueToWeakReference):
(JSC::CodeBlock::shouldJettisonDueToOldAge):
(JSC::shouldMarkTransition):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::jettison):

  • bytecode/CodeBlock.h:
  • bytecode/ExecutableToCodeBlockEdge.cpp:

(JSC::ExecutableToCodeBlockEdge::visitChildren):
(JSC::ExecutableToCodeBlockEdge::finalizeUnconditionally):
(JSC::ExecutableToCodeBlockEdge::runConstraint):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::finalize):

  • bytecode/GetByIdStatus.h:
  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::finalize):

  • bytecode/GetByIdVariant.h:
  • bytecode/InByIdStatus.cpp:

(JSC::InByIdStatus::finalize):

  • bytecode/InByIdStatus.h:
  • bytecode/InByIdVariant.cpp:

(JSC::InByIdVariant::finalize):

  • bytecode/InByIdVariant.h:
  • bytecode/ObjectPropertyCondition.cpp:

(JSC::ObjectPropertyCondition::isStillLive const):

  • bytecode/ObjectPropertyCondition.h:
  • bytecode/ObjectPropertyConditionSet.cpp:

(JSC::ObjectPropertyConditionSet::areStillLive const):

  • bytecode/ObjectPropertyConditionSet.h:
  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::visitWeak const):

  • bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isStillLive const):

  • bytecode/PropertyCondition.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::finalize):

  • bytecode/PutByIdStatus.h:
  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::finalize):

  • bytecode/PutByIdVariant.h:
  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::finalizeWithoutDeleting):
(JSC::RecordedStatuses::finalize):

  • bytecode/RecordedStatuses.h:
  • bytecode/StructureSet.cpp:

(JSC::StructureSet::isStillAlive const):

  • bytecode/StructureSet.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::visitWeakReferences):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalizeInGC):
(JSC::DFG::Plan::isKnownToBeLiveDuringGC):

  • heap/GCIncomingRefCounted.h:
  • heap/GCIncomingRefCountedInlines.h:

(JSC::GCIncomingRefCounted<T>::filterIncomingReferences):

  • heap/GCIncomingRefCountedSet.h:
  • heap/GCIncomingRefCountedSetInlines.h:

(JSC::GCIncomingRefCountedSet<T>::lastChanceToFinalize):
(JSC::GCIncomingRefCountedSet<T>::sweep):
(JSC::GCIncomingRefCountedSet<T>::removeAll): Deleted.
(JSC::GCIncomingRefCountedSet<T>::removeDead): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::addToRememberedSet):
(JSC::Heap::runEndPhase):
(JSC::Heap::sweepArrayBuffers):
(JSC::Heap::addCoreConstraints):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::isMarked):

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::appendNode):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendToMarkStack):
(JSC::SlotVisitor::visitChildren):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::visitWeak):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finalizeUnconditionally):

  • runtime/InferredValueInlines.h:

(JSC::InferredValue::finalizeUnconditionally):

  • runtime/StackFrame.h:

(JSC::StackFrame::isMarked const):

  • runtime/Structure.cpp:

(JSC::Structure::isCheapDuringGC):
(JSC::Structure::markIfCheap):

  • runtime/Structure.h:
  • runtime/TypeProfiler.cpp:

(JSC::TypeProfiler::invalidateTypeSetCache):

  • runtime/TypeProfiler.h:
  • runtime/TypeSet.cpp:

(JSC::TypeSet::invalidateCache):

  • runtime/TypeSet.h:
  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints):

  • runtime/WeakMapImplInlines.h:

(JSC::WeakMapImpl<WeakMapBucket>::finalizeUnconditionally):

3:15 PM Changeset in webkit [243466] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

performance-api/performance-observer-periodic.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196218

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Changing expectations due to flaky test
3:10 PM Changeset in webkit [243465] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

Do not terminate the NetworkProcess if a third party application sends a NSCredential with a SecIdentityRef
https://bugs.webkit.org/show_bug.cgi?id=196213

Patch by Alex Christensen <achristensen@webkit.org> on 2019-03-25
Reviewed by Geoff Garen.

Source/WebKit:

A release assertion added in r230225 was reachable. I reached it in a unit test that responds to a challenge
with a SecIdentityRef wrapped in an NSCredential.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: Added.

(credentialWithIdentityAndKeychainPath):
(-[ChallengeDelegate webView:didFinishNavigation:]):
(-[ChallengeDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(TestWebKitAPI::TEST):

3:04 PM Changeset in webkit [243464] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Gracefully handle missing patch_id in events
https://bugs.webkit.org/show_bug.cgi?id=196216

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/events.py:
3:03 PM Changeset in webkit [243463] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] use lz4 compression for improving buildbot performance
https://bugs.webkit.org/show_bug.cgi?id=196155

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/master.cfg:
2:39 PM Changeset in webkit [243462] by Wenson Hsieh
  • 3 edits in trunk/Tools

Pull some API testing helper methods out of TestWKWebView
https://bugs.webkit.org/show_bug.cgi?id=196212

Reviewed by Tim Horton.

Refactor some more API testing utility methods, so that they can be used in
tests that do not use TestWKWebView.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView loadTestPageNamed:]):
(-[WKWebView synchronouslyLoadHTMLString:baseURL:]):
(-[WKWebView synchronouslyLoadHTMLString:]):
(-[WKWebView synchronouslyLoadTestPageNamed:]):
(-[TestWKWebView loadTestPageNamed:]): Deleted.
(-[TestWKWebView synchronouslyLoadHTMLString:baseURL:]): Deleted.
(-[TestWKWebView synchronouslyLoadHTMLString:]): Deleted.
(-[TestWKWebView synchronouslyLoadTestPageNamed:]): Deleted.

2:28 PM Changeset in webkit [243461] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Get rid of WebPage::m_shouldResetDrawingAreaAfterSuspend flag
https://bugs.webkit.org/show_bug.cgi?id=196210
<rdar://problem/48681326>

Reviewed by Geoffrey Garen.

Get rid of WebPage::m_shouldResetDrawingAreaAfterSuspend flag and use the drawing area identifier
instead to reset the DrawingArea in the WebProcess whenever the UIProcess did.

This is less error-prone and guarantees that the WebProcess and the UIProcess can reliably
communicate via DrawingArea IPC.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setIsSuspended):

  • WebProcess/WebPage/WebPage.h:
2:23 PM Changeset in webkit [243460] by achristensen@apple.com
  • 33 edits in trunk/Source

Enable IPC sending and receiving non-default-constructible types
https://bugs.webkit.org/show_bug.cgi?id=196132

Reviewed by Geoff Garen.

Source/WebCore:

This basically just requires the decoding of std::tuple to return an Optional<std::tuple> instead of
constructing a std::tuple then decoding into it. I now decode synchronous replies into an Optional<std::tuple>
then move it into the tuple of references where the successfully decoded reply should go. This required
the synchronous reply types be move constructible and move assignable.

  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
  • platform/DragImage.h:
  • platform/PasteboardWriterData.h:
  • platform/audio/mac/CAAudioStreamDescription.h:
  • platform/graphics/RemoteVideoSample.h:

Source/WebKit:

  • Platform/IPC/ArgumentCoder.h:
  • Platform/IPC/ArgumentCoders.h:

(IPC::TupleEncoder::encode):
(IPC::tupleFromTupleAndObject):
(IPC::TupleDecoderImpl::decode):
(IPC::TupleDecoderImpl<Type>::decode):
(IPC::TupleDecoder::decode):
(IPC::TupleDecoder<0>::decode):
(IPC::TupleCoder::encode): Deleted.
(IPC::TupleCoder::decode): Deleted.

  • Platform/IPC/Connection.h:

(IPC::Connection::sendWithReply):
(IPC::TupleMover::move):
(IPC::moveTuple):
(IPC::Connection::sendSync):

  • Platform/IPC/Decoder.h:

(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessage):
(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageAsync):

  • Platform/SharedMemory.h:
  • Scripts/webkit/LegacyMessages-expected.h:
  • Scripts/webkit/Messages-expected.h:
  • Scripts/webkit/MessagesSuperclass-expected.h:
  • Scripts/webkit/messages.py:
  • Shared/Databases/IndexedDB/WebIDBResult.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
  • Shared/ShareableBitmap.h:
  • Shared/ShareableResource.h:
  • Shared/UpdateInfo.h:
  • Shared/WebEvent.h:
  • Shared/WebProcessCreationParameters.cpp:
  • Shared/WebProcessCreationParameters.h:
  • Shared/mac/SecItemResponseData.cpp:

(WebKit::SecItemResponseData::SecItemResponseData):
(WebKit::SecItemResponseData::decode):

  • Shared/mac/SecItemResponseData.h:
  • WebProcess/MediaStream/MediaDeviceSandboxExtensions.h:
2:21 PM Changeset in webkit [243459] by achristensen@apple.com
  • 20 edits in trunk/Source/WebCore

Stop storing raw pointers to Documents
https://bugs.webkit.org/show_bug.cgi?id=196042

Reviewed by Geoff Garen.

Use WeakPtr instead! This could change some UAF bugs into null dereference crashes.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontRangesForFamily):

  • css/CSSFontSelector.h:
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::MediaQueryMatcher):
(WebCore::MediaQueryMatcher::matchMedia):

  • css/MediaQueryMatcher.h:
  • css/StyleSheetList.cpp:

(WebCore::StyleSheetList::StyleSheetList):
(WebCore::StyleSheetList::ownerNode const):

  • css/StyleSheetList.h:
  • css/ViewportStyleResolver.cpp:

(WebCore::ViewportStyleResolver::ViewportStyleResolver):

  • css/ViewportStyleResolver.h:
  • dom/Document.h:

(WebCore::Document::setTemplateDocumentHost):
(WebCore::Document::templateDocumentHost):

  • dom/DocumentParser.cpp:

(WebCore::DocumentParser::DocumentParser):

  • dom/DocumentParser.h:

(WebCore::DocumentParser::document const):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):

  • dom/ScriptedAnimationController.h:
  • html/parser/HTMLScriptRunner.cpp:

(WebCore::HTMLScriptRunner::HTMLScriptRunner):
(WebCore::HTMLScriptRunner::runScript):

  • html/parser/HTMLScriptRunner.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::MediaResourceLoader):

  • loader/MediaResourceLoader.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequestInContentDispositionAttachmentSandbox const):
(WebCore::CachedResourceLoader::loadDone):

  • loader/cache/CachedResourceLoader.h:

(WebCore::CachedResourceLoader::document const):
(WebCore::CachedResourceLoader::setDocument):

2:14 PM Changeset in webkit [243458] by sbarati@apple.com
  • 1 edit
    3 copies in trunk/Websites/browserbench.org

Update browserbench.org/JetStream2.0 to the latest version.

Rubber-stamped by Filip Pizlo.

  • JetStream2.0: Replaced with ../../PerformanceTests/JetStream2.
2:12 PM Changeset in webkit [243457] by Truitt Savell
  • 38 edits
    17 deletes in trunk

Unreviewed, rolling out r243419.

Caused Mac WK2 testers to crash and become unresponsive.

Reverted changeset:

"[Web GPU] Prototype compute pipeline with MSL"
https://bugs.webkit.org/show_bug.cgi?id=196107
https://trac.webkit.org/changeset/243419

2:10 PM Changeset in webkit [243456] by Truitt Savell
  • 28 edits
    1 copy in trunk

Unreviewed, rolling out r243438.

243319 Caused Mac WK2 testers to crash and become
unresponsive.

Reverted changeset:

"Update WebGPU class names based on sketch.idl"
https://bugs.webkit.org/show_bug.cgi?id=194260
https://trac.webkit.org/changeset/243438

2:03 PM Changeset in webkit [243455] by sbarati@apple.com
  • 3 edits in trunk/PerformanceTests

Update the blurb describing JetStream2 and fix a broken link in the in-depth page.

Rubber-stamped by Filip Pizlo.

  • JetStream2/in-depth.html:
  • JetStream2/index.html:
1:55 PM Changeset in webkit [243454] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Animated keyboard scrolling is extremely chaotic
https://bugs.webkit.org/show_bug.cgi?id=196164
<rdar://problem/48702444>

Reviewed by Simon Fraser.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]):
Consume keyboard events instead of interpreting them traditionally
if WKKeyboardScrollingAnimator is animating.

  • UIProcess/ios/WKKeyboardScrollingAnimator.h:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
(-[WKKeyboardScrollingAnimator scrollTriggeringKeyIsPressed]):
(-[WKKeyboardScrollingAnimator displayLinkFired:]):
(-[WKKeyboardScrollViewAnimator scrollTriggeringKeyIsPressed]):
Expose the current state of interactive scrolling, and rename the related member.

1:46 PM Changeset in webkit [243453] by Keith Rollin
  • 3 edits in trunk/Source/WebKit

Add WebKit logging for first paint and other interesting layout milestones
https://bugs.webkit.org/show_bug.cgi?id=196159
<rdar://problem/49128952>

Reviewed by Simon Fraser.

Add some logging to indicate what layout milestones have been reached.
This should help us determine if there's a client, rendering, layout,
or some other issue when page content does not appear in the client
window.

The logging is being added to
WebFrameLoaderClient::dispatchDidReachLayoutMilestone. This seems like
a nice central place to capture layout milestones. However, it will
only log notifications that are being sent to clients. It does not
indicate all milestones that have occurred. That is, it does not
report milestones that are filtered out due to client disinterest.
There doesn't seem to be a good central place to capture all
milestones, regardless of client interest.

  • Platform/Logging.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):

1:45 PM Changeset in webkit [243452] by Joseph Pecoraro
  • 6 edits
    1 add in trunk

Web Inspector: Page Weight indicator clears on pages with zero length resources (macrumors.com)
https://bugs.webkit.org/show_bug.cgi?id=196170

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/DefaultDashboard.js:

(WI.DefaultDashboard.prototype._resourceSizeDidChange):
Catch NaN earlier.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.updateWithMetrics):
When we receive exact metrics transition the estimated size to zero,
since we won't receive any more updates for the resource.

LayoutTests:

  • http/tests/inspector/network/resource-sizes-network.html:
  • http/tests/inspector/network/resources/empty.txt: Added.
  • platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt:
1:43 PM Changeset in webkit [243451] by eric.carlson@apple.com
  • 5 edits
    2 deletes in trunk

Delete MetadataPreloadingNotPermitted, it is unused
https://bugs.webkit.org/show_bug.cgi?id=196202
<rdar://problem/49213611>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, the flat was unused except in an existing test that was removed.

  • html/MediaElementSession.cpp:

(WebCore::restrictionNames):
(WebCore::MediaElementSession::effectivePreloadForElement const):

  • html/MediaElementSession.h:
  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::defaultSupportedImageTypes):

  • testing/Internals.cpp:

(WebCore::Internals::setMediaElementRestrictions):

LayoutTests:

  • media/video-restricted-no-preload-metadata-expected.txt: Removed.
  • media/video-restricted-no-preload-metadata.html: Removed.
1:39 PM Changeset in webkit [243450] by jer.noble@apple.com
  • 20 edits
    3 adds in trunk

Source/WebCore:
Test for: 196095 Inband Text Track cues interspersed with Data cues can display out of order.
https://bugs.webkit.org/show_bug.cgi?id=196097

Reviewed by Eric Carlson.

Test: media/track/track-in-band-metadata-display-order.html

Add a method in Internals to create a TextTrackCueGeneric (which can normally only be created
by parsing an in-band media track). This requires adding IDL for TextTrackCueGeneric, and exporting
TextTrackCueGeneric for testing.

Drive-by fixes:

Add runtime logging to MediaControlTextTrackContainerElement. This necessitates modifying the
parentMediaElement() method to take a const Node*, and const_cast that constness away in order to return
a HTMLMediaElement*

TextTrackCue, VTTCue, TextTrackCueGeneric, and DataCue should all use the WTF TypeCasts macros to
enable use of is<> and downcast<>.

  • Source/WebCore/CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • html/shadow/MediaControlElementTypes.cpp:

(WebCore::parentMediaElement):

  • html/shadow/MediaControlElementTypes.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::logger const):
(WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
(WebCore::MediaControlTextTrackContainerElement::logChannel const):

  • html/shadow/MediaControlElements.h:
  • html/track/DataCue.h:

(isType):

  • html/track/TextTrackCueGeneric.h:

(isType):

  • html/track/TextTrackCueGeneric.idl: Added.
  • html/track/VTTCue.h:

(isType):

  • testing/Internals.cpp:

(WebCore::Internals::createGenericCue):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:
Test for: 196095 Inband Text Track cues interspersed with Data cues can display out of order.
https://bugs.webkit.org/show_bug.cgi?id=196097

Reviewed by Eric Carlson.

Drive-by bug fix: allow tests to play audio without a user gesture by default.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:
Add test for fix of #196095
https://bugs.webkit.org/show_bug.cgi?id=196097

Reviewed by Eric Carlson.

  • media/track/track-in-band-metadata-display-order-expected.txt: Added.
  • media/track/track-in-band-metadata-display-order.html: Added.
1:38 PM Changeset in webkit [243449] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[GTK][WPE] Remove network access from web process sandbox
https://bugs.webkit.org/show_bug.cgi?id=189967

Patch by Patrick Griffis <Patrick Griffis> on 2019-03-25
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::createFlatpakInfo):
(WebKit::bubblewrapSpawn):

  • UIProcess/Launcher/glib/FlatpakLauncher.cpp:

(WebKit::flatpakSpawn):

1:29 PM Changeset in webkit [243448] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

ASSERTION FAILED: m_op == CompareStrictEq in JSC::DFG::Node::convertToCompareEqPtr(JSC::DFG::FrozenValue *, JSC::DFG::Edge)
https://bugs.webkit.org/show_bug.cgi?id=196176

Reviewed by Saam Barati.

JSTests:

  • stress/object-is-fold-to-compare-eq-ptr.js: Added.

(main.v10):
(main):

Source/JavaScriptCore:

convertToCompareEqPtr should allow for either CompareStrictEq or
the SameValue DFG node. This fixes the old assertion that only
allowed CompareStrictEq.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCompareEqPtr):

1:23 PM Changeset in webkit [243447] by aestes@apple.com
  • 5 edits in trunk/Source/WebKit

[Apple Pay] Call +canMakePayments on a work queue
https://bugs.webkit.org/show_bug.cgi?id=196179
<rdar://problem/45388749>

Reviewed by Brady Eidson.

Calling +canMakePayments on either PKPaymentAuthorizationController or
PKPaymentAuthorizationViewController results in synchronous IPC and is therefore very
expensive to call on the main thread. On iOS, these calls are made in the network process,
and on Mac in the UI process.

Call these methods on a work queue to avoid main thread spins.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::canMakePayments):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):

12:11 PM Changeset in webkit [243446] by Tadeu Zagallo
  • 6 edits in trunk

WebAssembly: f32.max with NaN generates incorrect result
https://bugs.webkit.org/show_bug.cgi?id=175691
<rdar://problem/33952228>

Reviewed by Saam Barati.

JSTests:

Enable all f32.max NaN tests

  • wasm/spec-tests/f32.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

Fix the B3 and Air compilation for f32.max. In order to handle the NaN
case, we need an extra GreaterThan comparison on top of the existing
Equal and LessThan ones.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Max>):

  • wasm/wasm.json:
12:09 PM Changeset in webkit [243445] by Wenson Hsieh
  • 3 edits
    1 add in trunk/Tools

Pull IPadUserInterfaceSwizzler out into a separate header file
https://bugs.webkit.org/show_bug.cgi?id=196193

Reviewed by Anders Carlsson.

Pull the IPadUserInterfaceSwizzler helper class out into a separate file, so that it may
be used in other API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

(TestWebKitAPI::IPadUserInterfaceSwizzler::IPadUserInterfaceSwizzler): Deleted.
(TestWebKitAPI::IPadUserInterfaceSwizzler::padUserInterfaceIdiom): Deleted.

  • TestWebKitAPI/ios/IPadUserInterfaceSwizzler.h: Added.

(TestWebKitAPI::IPadUserInterfaceSwizzler::IPadUserInterfaceSwizzler):
(TestWebKitAPI::IPadUserInterfaceSwizzler::padUserInterfaceIdiom):

11:27 AM Changeset in webkit [243444] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Toggling "display: contents" to "display: none" fails to hide the element
https://bugs.webkit.org/show_bug.cgi?id=188259
<rdar://problem/42886896>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/css/display-contents-to-none.html

  • style/StyleTreeResolver.cpp:

(WebCore::Style::affectsRenderedSubtree):

An element with 'display:contents' has a rendered subtree.

LayoutTests:

  • fast/css/display-contents-to-none-expected.html: Added.
  • fast/css/display-contents-to-none.html: Added.
11:26 AM Changeset in webkit [243443] by aestes@apple.com
  • 10 edits
    2 adds in trunk/Source/WebKit

[Apple Pay] Remove the AvailablePaymentNetworks synchronous message
https://bugs.webkit.org/show_bug.cgi?id=196180

Reviewed by Youenn Fablet.

Unlike many PassKit interactions, it's ok to call +[PKPaymentRequest availableNetworks]
without an entitlement. Therefore, we can call it from the web process directly rather than
synchronously messaging the entitled UI or networking process.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::availablePaymentNetworks):

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/cocoa/WebPaymentCoordinatorCocoa.mm: Added.

(WebKit::WebPaymentCoordinator::platformAvailablePaymentNetworks const):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:

(-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]):
(-[WKAccessibilityWebPageObjectBase setWebPage:]):

11:13 AM Changeset in webkit [243442] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative fix for CLoop build on CPU(UNKNOWN)
https://bugs.webkit.org/show_bug.cgi?id=195982

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocator::initializeUnderlyingAllocator):

11:05 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
10:57 AM Changeset in webkit [243441] by commit-queue@webkit.org
  • 2 edits in trunk

[WTF] Fix typo when forcing WTF_CPU_X86
https://bugs.webkit.org/show_bug.cgi?id=196204

Patch by Xan López <Xan Lopez> on 2019-03-25
Reviewed by Michael Catanzaro.

Fix a typo when setting the WTF_CPU variable for X86.

  • CMakeLists.txt:
9:11 AM Changeset in webkit [243440] by Diego Pino Garcia
  • 1 edit
    3 adds in trunk/LayoutTests

[GTK] Gardening, update expected results for several smart-delete-paragraph tests

Unreviewed test gardening.

  • platform/gtk/editing/deleting/smart-delete-paragraph-001-expected.txt: Added.
  • platform/gtk/editing/deleting/smart-delete-paragraph-002-expected.txt: Added.
  • platform/gtk/editing/deleting/smart-delete-paragraph-004-expected.txt: Added.
8:37 AM Changeset in webkit [243439] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, tiny fix after r243388 to address API test failures on iOS

m_processType was properly initialized on macOS but not iOS.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

8:29 AM Changeset in webkit [243438] by Justin Fan
  • 28 edits
    1 delete in trunk

Update WebGPU class names based on sketch.idl
https://bugs.webkit.org/show_bug.cgi?id=194260

Reviewed by Dean Jackson.
Source/WebCore:

Update all exposed Web GPU interface names to GPU* prefix.

Existing Web GPU tests updated to expect new names.

  • Modules/webgpu/WebGPU.idl:
  • Modules/webgpu/WebGPUAdapter.idl:
  • Modules/webgpu/WebGPUBindGroup.idl:
  • Modules/webgpu/WebGPUBindGroupLayout.idl:
  • Modules/webgpu/WebGPUBuffer.idl:
  • Modules/webgpu/WebGPUDevice.idl:
  • Modules/webgpu/WebGPUInputStepMode.h: Removed.
  • Modules/webgpu/WebGPUPipelineLayout.idl:
  • Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
  • Modules/webgpu/WebGPUQueue.idl:
  • Modules/webgpu/WebGPURenderPassEncoder.idl:
  • Modules/webgpu/WebGPURenderPipeline.idl:
  • Modules/webgpu/WebGPUSampler.idl:
  • Modules/webgpu/WebGPUTexture.idl:
  • Modules/webgpu/WebGPUTextureView.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Update all exposed Web GPU interface names to GPU* prefix.

  • webgpu/adapter-options.html:
  • webgpu/bind-groups.html:
  • webgpu/map-read-buffers.html:
  • webgpu/map-write-buffers.html:
  • webgpu/pipeline-layouts.html:
  • webgpu/queue-creation.html:
  • webgpu/render-command-encoding.html:
  • webgpu/render-pipelines.html:
  • webgpu/textures-textureviews.html:
  • webgpu/webgpu-enabled.html:
8:07 AM Changeset in webkit [243437] by jfernandez@igalia.com
  • 8 edits
    24 adds in trunk

A single leading space is not considered as a word break even when word-break: break-all is set
https://bugs.webkit.org/show_bug.cgi?id=195361

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Imported additonal WPT from the CSS Text Suite that verify the
change doesn't regress in any case, specially for the word-break:
break-word feature.

  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007-expected.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007.html: Added.
  • web-platform-tests/css/css-text/overflow-wrap/w3c-import.log:
  • web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/pre-wrap-008.html: Added.
  • web-platform-tests/css/css-text/white-space/w3c-import.log:
  • web-platform-tests/css/css-text/word-break/w3c-import.log:
  • web-platform-tests/css/css-text/word-break/word-break-break-all-015-expected.html: Added.
  • web-platform-tests/css/css-text/word-break/word-break-break-all-015.html: Added.

Source/WebCore:

We must consider leading white-spaces as potential soft-breaking
opportunities that may avoid breaking in the middle of the word.

However, 'break-word: break-all' [1] implies that we should ignore
previous opportunities and break at any character (among the ones
valid for 'break-all') that prevents the line to overflow. Note,
that these breakable characters are different from the ones
provided by 'line-break: anywhere' [2].

This change is covered by the already existent tests of the CSS
Text 3 suite of the Web Platform Tests.

The word-break-break-all-010.html was precisely designed to cover
the basic issue fixed with this change, verifying that the word is
indeed broken even if a single leading space constitutes a
previous soft-breaking opportunity.

There are other Web Platform Tests. which already pass before this
change, to verify that such leading white-space must be used
instead of breaking the word in any other case, including
overflow-wrap: break-word and even the deprecated word-break:
break-word.

  • white-space/pre-wrap-008.html
  • white-space/pre-wrap-015.html
  • white-space/pre-wrap-016.html
  • overflow-wrap/overflow-wrap-break-word-004.html
  • overflow-wrap/overflow-wrap-break-word-005.html
  • overflow-wrap/overflow-wrap-break-word-007.html
  • word-break/word-break-break-all-011.html
  • word-break/word-break-break-all-014.html

The reason why the word-break-break-all-010.html passes in Mac
platform is that for that case the SimpleLineLayout codepath is
executed instead, which doesn't have this bug, present in the old
line-breaking logic implemented in the BreakingContext class.

In order to verify the validity of this change, I've added several
tests under fast/text with the SimpleLineLayout disabled.

Tests: fast/text/overflow-wrap-break-word-004.html

fast/text/overflow-wrap-break-word-005.html
fast/text/overflow-wrap-break-word-007.html
fast/text/whitespace/pre-wrap-008.html
fast/text/whitespace/pre-wrap-015.html
fast/text/whitespace/pre-wrap-016.html
fast/text/word-break-break-all-010.html
fast/text/word-break-break-all-011.html
fast/text/word-break-break-all-015.html
imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007.html
imported/w3c/web-platform-tests/css/css-text/white-space/pre-wrap-008.html
imported/w3c/web-platform-tests/css/css-text/word-break/word-break-break-all-015.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):

LayoutTests:

Removed some entries from the GTK expectation file.
Added tests to verify the codepath with SimpleLineLayout disabled.

  • fast/text/overflow-wrap-break-word-004-expected.html: Added.
  • fast/text/overflow-wrap-break-word-004.html: Added.
  • fast/text/overflow-wrap-break-word-005-expected.html: Added.
  • fast/text/overflow-wrap-break-word-005.html: Added.
  • fast/text/overflow-wrap-break-word-007-expected.html: Added.
  • fast/text/overflow-wrap-break-word-007.html: Added.
  • fast/text/whitespace/pre-wrap-008-expected.html: Added.
  • fast/text/whitespace/pre-wrap-008.html: Added.
  • fast/text/whitespace/pre-wrap-015-expected.html: Added.
  • fast/text/whitespace/pre-wrap-015.html: Added.
  • fast/text/whitespace/pre-wrap-016-expected.html: Added.
  • fast/text/whitespace/pre-wrap-016.html: Added.
  • fast/text/word-break-break-all-010-expected.html: Added.
  • fast/text/word-break-break-all-010.html: Added.
  • fast/text/word-break-break-all-011-expected.html: Added.
  • fast/text/word-break-break-all-011.html: Added.
  • fast/text/word-break-break-all-015-expected.html: Added.
  • fast/text/word-break-break-all-015.html: Added.
  • platform/gtk/TestExpectations:
    • word-break-break-all-010.html passes now thanks to this change.
7:42 AM Changeset in webkit [243436] by Diego Pino Garcia
  • 3 edits
    1 delete in trunk/LayoutTests

[GTK][WPE] Gardening, update test expectations.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/text/ja-sans-serif-expected.png: Removed.

Test harnessing suggested to remove this file as it was not being used.

  • platform/wpe/TestExpectations:
3:30 AM Changeset in webkit [243435] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

Reflect HTMLLinkElement.as according to the spec
https://bugs.webkit.org/show_bug.cgi?id=196189

Patch by Rob Buis <rbuis@igalia.com> on 2019-03-25
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update improved test result and import reflected-as-value.html.

  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/preload/reflected-as-value-expected.txt: Added.
  • web-platform-tests/preload/reflected-as-value.html: Added.

Source/WebCore:

The 'as' attribute is an enumerated attribute [1] and should
reflect using a finite set of keywords, so lowercase the as getter
to match the defined set of destinations [2].

Test: imported/w3c/web-platform-tests/preload/reflected-as-value.html

[1] https://html.spec.whatwg.org/#enumerated-attribute
[2] https://fetch.spec.whatwg.org/#concept-request-destination

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::as const):

LayoutTests:

Update improved test result.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-metadata-expected.txt:
2:11 AM Changeset in webkit [243434] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Do not allow changes in active URI before provisional load starts for non-API requests
https://bugs.webkit.org/show_bug.cgi?id=194208

Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewWillStartLoad): Block updates of active URL.
(webkitWebViewLoadChanged): Unblock updates of active URL on WEBKIT_LOAD_STARTED.

1:07 AM Changeset in webkit [243433] by Gyuyoung Kim
  • 24 edits
    3 deletes in trunk

Remove NavigatorContentUtils in WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=196070

Reviewed by Alex Christensen.

NavigatorContentUtils was to support the custom scheme spec [1].
However, in WebKit side, no port has supported the feature in
WebKit layer after EFL port was removed. So there has been the
only IDL implementation of the NavigatorContentUtils in WebCore.
Source/JavaScriptCore:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

No new tests because this patch is just to remove the feature.

  • CMakeLists.txt:
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp: Removed.
  • Modules/navigatorcontentutils/NavigatorContentUtils.h: Removed.
  • Modules/navigatorcontentutils/NavigatorContentUtils.idl: Removed.
  • Modules/navigatorcontentutils/NavigatorContentUtilsClient.h: Removed.
  • Sources.txt:

Source/WebCore/PAL:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/WebCoreSupport/WebNavigatorContentUtilsClient.h: Removed.

Source/WebKitLegacy/mac:

So we don't need to keep the implementation in WebKit.

  • Configurations/FeatureDefines.xcconfig:

Tools:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

So we don't need to keep the implementation in WebCore anymore.

[1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered-expected.txt: Removed.
  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html: Removed.
  • fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt: Removed.
  • fast/dom/NavigatorContentUtils/register-protocol-handler.html: Removed.
  • fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt: Removed.
  • fast/dom/NavigatorContentUtils/unregister-protocol-handler.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
12:46 AM Changeset in webkit [243432] by Manuel Rego Casasnovas
  • 4 edits
    2 adds in trunk

[css-grid] Fix grid container baseline alignment for orthogonal items
https://bugs.webkit.org/show_bug.cgi?id=196141

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Imported test from WPT. This patch is making some of the test cases pass but not all.
Some are still failing in WebKit as it never uses the central baseline on vertical writing modes (bug #94410),
also "text-orientation" is not supported yet in WebKit (bug #196139),
even the prefixed version "-webkit-text-orientation" doesn't fix anything in this test case.

  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001.html: Added.
  • web-platform-tests/css/css-grid/alignment/w3c-import.log:

Source/WebCore:

Grid container baseline was wrongly computed when done in reference to an orthogonal item.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-container-baseline-001.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::firstLineBaseline const): Simple change to use logicalTopForChild()
so it takes into account grid container and item writing modes.

Mar 24, 2019:

11:24 PM Changeset in webkit [243431] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed WPE build fix.

  • UIProcess/wpe/WebPasteboardProxyWPE.cpp:

Add an explicit CompletionHandler.h include to avoid a trip-up in
unified builds.

10:09 PM Changeset in webkit [243430] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] WebProcessDataStoreParameters.h(32): error C2653: 'SandboxExtension': is not a class or namespace name
https://bugs.webkit.org/show_bug.cgi?id=196192

Unreviewed for WinCairo port.

  • Shared/WebProcessDataStoreParameters.h: Added #include "SandboxExtension.h".
7:53 PM Changeset in webkit [243429] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, forgot to refactor variable name for windows build in
r243418.

  • wtf/MathExtras.h:

(WTF::clz):
(WTF::ctz):

5:41 PM Changeset in webkit [243428] by dinfuehr@igalia.com
  • 1 edit
    1 move in trunk/JSTests

[JSC] Move test into directory for WASM tests
https://bugs.webkit.org/show_bug.cgi?id=196187

Reviewed by Mark Lam.

Move Test into wasm-directory. Otherwise this test
is also executed on systems without WASM support.

  • wasm/regress/web-assembly-link-error-exception-check.js: Renamed from JSTests/stress/web-assembly-link-error-exception-check.js.
1:42 PM Changeset in webkit [243427] by aestes@apple.com
  • 20 edits
    1 delete in trunk

[watchOS] Remove unused Proximity Networking code
https://bugs.webkit.org/show_bug.cgi?id=196188

Reviewed by Tim Horton.

Source/WebKit:

  • Configurations/WebKit.xcconfig:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformPrepareToSuspend):
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):

  • NetworkProcess/watchos/NetworkProximityAssertion.h: Removed.
  • NetworkProcess/watchos/NetworkProximityAssertion.mm: Removed.
  • NetworkProcess/watchos/NetworkProximityManager.h: Removed.
  • NetworkProcess/watchos/NetworkProximityManager.mm: Removed.
  • SourcesCocoa.txt:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration wirelessContextIdentifier]):
(-[_WKProcessPoolConfiguration setWirelessContextIdentifier:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKProcessPoolConfiguration.mm:

(TEST):

1:23 PM Changeset in webkit [243426] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: WebGL action icon shouldn't invert when selected
https://bugs.webkit.org/show_bug.cgi?id=196135

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._classNameForAction):
(WI.RecordingActionTreeElement._classNameForAction.classNameForActionName): Deleted.
Remove unnecessary logging and memoization.

  • UserInterface/Views/RecordingActionTreeElement.css:

(.tree-outline:focus .item.recording-action.selected:not(.invalid, .initial-state, .has-context-replacer, .name-unknown) > .icon): Added.
(@media (prefers-color-scheme: dark)):
(.item.recording-action:not(.invalid, .initial-state, .has-context-replacer, .name-unknown) > .icon): Added.
(.tree-outline:focus .item.recording-action.selected:not(.invalid, .initial-state, .has-context-replacer) > .icon): Deleted.
(.item.recording-action.has-context-replacer > .icon): Deleted.
(.item.recording-action:not(.invalid, .initial-state, .has-context-replacer) > .icon): Deleted.
Simplify styles between light and dark mode.

1:21 PM Changeset in webkit [243425] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: testCellRoleForRequiredChidren accessibility audit checks for rows in cells
https://bugs.webkit.org/show_bug.cgi?id=195988

Patch by Simon Welsh <simon@welsh-au.com> on 2019-03-24
Reviewed by Timothy Hatcher.

The audit now checks that rows contain cells, allowing any of the four
cell-based roles.

  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.addDefaultTestsIfNeeded):
(WI.AuditManager):
(WI.AuditManager.prototype.addDefaultTestsIfNeeded.const.testCellRoleForRequiredChidren): Deleted.

1:21 PM Changeset in webkit [243424] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: missing icons for WebGL2 contexts
https://bugs.webkit.org/show_bug.cgi?id=196136

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled > .glyph): Added.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas:matches(.canvas-2d, .bitmaprenderer) .icon): Added.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas:matches(.webgl, .webgl2, .webgpu, .webmetal) .icon): Added.
(@media (prefers-color-scheme: dark)):
(.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Deleted.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon): Deleted.
(.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.casnvas.webgl .icon): Deleted.
Use the 2D icon for BitmapRenderer and the 3D icon for WebGL2, WebMetals, and WebGPU.
Drive-by: the start/stop button text was too dark when disabled in dark mode.

  • UserInterface/Models/Canvas.js:

Drive-by: "gpu" => "webgpu", to match the protocol string.

12:12 PM WebKitGTK/2.24.x edited by Michael Catanzaro
(diff)
11:13 AM Changeset in webkit [243423] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.13.1/Source

Versioning.

11:11 AM Changeset in webkit [243422] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.13.1

New tag.

10:20 AM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
trac has RSS (diff)
10:17 AM Changeset in webkit [243421] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix -Wpessimizing-move warning
https://bugs.webkit.org/show_bug.cgi?id=195905
<rdar://problem/49121824>

  • svg/properties/SVGPropertyList.h:
10:16 AM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
More tips (diff)

Mar 23, 2019:

9:15 PM Changeset in webkit [243420] by mark.lam@apple.com
  • 10 edits
    1 delete in trunk

Rolling out r243032 and r243071 because the fix is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=195892
<rdar://problem/48981239>

Not reviewed.

JSTests:

  • stress/check-object-property-condition-liveness-before-accessing-it-when-watchpoints-fire.js: Removed.

Source/JavaScriptCore:

The fix is incorrect: it relies on being able to determine liveness of an object
in an ObjectPropertyCondition based on the state of the object's MarkedBit.
However, there's no guarantee that GC has run and that the MarkedBit is already
set even if the object is live. As a result, we may not re-install adaptive
watchpoints based on presumed dead objects which are actually live.

I'm rolling this out, and will implement a more comprehensive fix to handle
watchpoint liveness later.

  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:

(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):

  • bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::fireInternal):

  • bytecode/ObjectPropertyCondition.cpp:

(JSC::ObjectPropertyCondition::dumpInContext const):

  • bytecode/StructureStubClearingWatchpoint.cpp:

(JSC::StructureStubClearingWatchpoint::fireInternal):

  • dfg/DFGAdaptiveStructureWatchpoint.cpp:

(JSC::DFG::AdaptiveStructureWatchpoint::fireInternal):

  • runtime/StructureRareData.cpp:

(JSC::ObjectToStringAdaptiveStructureWatchpoint::fireInternal):

LayoutTests:

  • platform/mac/TestExpectations:
6:35 PM Changeset in webkit [243419] by Justin Fan
  • 38 edits
    13 copies
    4 adds in trunk

[Web GPU] Prototype compute pipeline with MSL
https://bugs.webkit.org/show_bug.cgi?id=196107
<rdar://problem/46289650>

Reviewed by Myles Maxfield.

Source/WebCore:

Add GPUComputePassEncoder, GPUComputePipeline, and GPUComputePipelineDescriptor.
Implement everything needed to prototype a compute pipeline in Web GPU using Metal shaders and bound resources.

Test: webgpu/compute-squares.html

Add files and symbols:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Misc fixes:

  • Modules/webgpu/WHLSL/WHLSLNameResolver.h: Missing include.
  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp: Missing include.
  • Modules/webgpu/WebGPUPipelineStageDescriptor.cpp: Added. Move pipeline stage validation logic here.

(WebCore::WebGPUPipelineStageDescriptor::tryCreateGPUPipelineStageDescriptor const):

  • Modules/webgpu/WebGPURenderPipeline.cpp: Remove unnecessary include.
  • Modules/webgpu/WebGPURenderPipeline.h:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.cpp: Add missing inlcude.

(WebCore::WebGPUPipelineStageDescriptor::tryCreateGPUPipelineStageDescriptor const): Moved to WebGPUPipelineStageDescriptor.cpp.

  • platform/graphics/gpu/GPUPipelineDescriptorBase.h: Add missing include.
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Add missing include.

(WebCore::GPURenderPipeline::GPURenderPipeline): Remove unecessary ref of GPUPipelineLayout.

  • platform/text/mac/TextEncodingRegistryMac.mm: Carbon.h was causing ambiguous reference build errors in this file.

Enable creating a GPUComputePassEncoder from a GPUCommandEncoder:

  • Modules/webgpu/WebGPUCommandEncoder.cpp:

(WebCore::WebGPUCommandEncoder::beginRenderPass): No longer passing this WebGPUCommandEncoder to pass encoders.
(WebCore::WebGPUCommandEncoder::beginComputePass): Added.

  • Modules/webgpu/WebGPUCommandEncoder.h:
  • Modules/webgpu/WebGPUCommandEncoder.idl:

Add GPUComputePassEncoder:

  • Modules/webgpu/WebGPUComputePassEncoder.cpp: Added.

(WebCore::WebGPUComputePassEncoder::create):
(WebCore::WebGPUComputePassEncoder::WebGPUComputePassEncoder):
(WebCore::WebGPUComputePassEncoder::setPipeline):
(WebCore::WebGPUComputePassEncoder::dispatch):
(WebCore::WebGPUComputePassEncoder::passEncoder):
(WebCore::WebGPUComputePassEncoder::passEncoder const):

  • Modules/webgpu/WebGPUComputePassEncoder.h: Added.
  • Modules/webgpu/WebGPUComputePassEncoder.idl: Added.
  • platform/graphics/gpu/GPUComputePassEncoder.h: Added.

(WebCore::GPUComputePassEncoder::~GPUComputePassEncoder):

  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Added.

(WebCore::GPUComputePassEncoder::tryCreate):
(WebCore::GPUComputePassEncoder::GPUComputePassEncoder):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch): Use a default calculation for threadsPerThreadgroup while MSL is still an accepted shader format.
(WebCore::GPUComputePassEncoder::platformPassEncoder const):
(WebCore::GPUComputePassEncoder::useResource):
(WebCore::GPUComputePassEncoder::setComputeBuffer):

Add GPUComputePipeline:

  • Modules/webgpu/WebGPUComputePipeline.cpp: Added.

(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):

  • Modules/webgpu/WebGPUComputePipeline.h: Added.

(WebCore::WebGPUComputePipeline::computePipeline const):

  • Modules/webgpu/WebGPUComputePipeline.idl: Added.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.cpp: Added.

(WebCore::WebGPUComputePipelineDescriptor::tryCreateGPUComputePipelineDescriptor const):

  • Modules/webgpu/WebGPUComputePipelineDescriptor.h: Added.
  • Modules/webgpu/WebGPUComputePipelineDescriptor.idl: Added.
  • platform/graphics/gpu/GPUComputePipeline.h: Added.

(WebCore::GPUComputePipeline::platformComputePipeline const):

  • platform/graphics/gpu/GPUComputePipelineDescriptor.h: Added.

(WebCore::GPUComputePipelineDescriptor::GPUComputePipelineDescriptor):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Added.

(WebCore::tryCreateMtlComputeFunction):
(WebCore::tryCreateMTLComputePipelineState):
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):

Enable creating a GPUComputePipeline from a GPUDevice:

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createComputePipeline const):

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.idl:
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateComputePipeline const):

  • platform/graphics/gpu/GPUDevice.h:

No longer unnecessarily ref the WebGPUCommandEncoder when creating pass encoder:

  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:

(WebCore::WebGPUProgrammablePassEncoder::setBindGroup):
(WebCore::WebGPUProgrammablePassEncoder::WebGPUProgrammablePassEncoder): Deleted.
(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const): Deleted.

  • Modules/webgpu/WebGPUProgrammablePassEncoder.h:
  • Modules/webgpu/WebGPURenderPassEncoder.cpp:

(WebCore::WebGPURenderPassEncoder::create):
(WebCore::WebGPURenderPassEncoder::WebGPURenderPassEncoder):
(WebCore::WebGPURenderPassEncoder::setPipeline):
(WebCore::WebGPURenderPassEncoder::passEncoder):
(WebCore::WebGPURenderPassEncoder::passEncoder const):

  • Modules/webgpu/WebGPURenderPassEncoder.h:

Updates to GPUBindGroup and *setBindGroup for compute function arguments:

  • platform/graphics/gpu/GPUBindGroup.h:

(WebCore::GPUBindGroup::vertexArgsBuffer const):
(WebCore::GPUBindGroup::fragmentArgsBuffer const):
(WebCore::GPUBindGroup::computeArgsBuffer const):
(WebCore::GPUBindGroup::vertexArgsBuffer): Deleted. Const-qualified.
(WebCore::GPUBindGroup::fragmentArgsBuffer): Ditto.

  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::tryGetResourceAsMTLSamplerState): Now just returns the MTLSamplerState to reduce reference churning.
(WebCore::GPUBindGroup::tryCreate):
(WebCore::GPUBindGroup::GPUBindGroup):
(WebCore::tryGetResourceAsSampler): Renamed to tryGetResourceAsMTLSamplerState.

Updates to GPUProgrammablePassEncoder and GPURenderPassEncoder:

  • platform/graphics/gpu/GPUProgrammablePassEncoder.h:

(WebCore::GPUProgrammablePassEncoder::setVertexBuffer):
(WebCore::GPUProgrammablePassEncoder::setFragmentBuffer):
(WebCore::GPUProgrammablePassEncoder::setComputeBuffer): Added.

  • platform/graphics/gpu/GPURenderPassEncoder.h:

(WebCore::GPURenderPassEncoder::~GPURenderPassEncoder):

  • platform/graphics/gpu/GPURenderPipeline.h:
  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm: Remove unecessary include.

(WebCore::GPUProgrammablePassEncoder::endPass): No longer virtual. Delegates shared behavior for derived classes.
(WebCore::GPUProgrammablePassEncoder::setBindGroup):

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::GPURenderPassEncoder::platformPassEncoder const):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::useResource): These private overrides are called only by base after checking for encoder existence.
(WebCore::GPURenderPassEncoder::setVertexBuffer): Ditto.
(WebCore::GPURenderPassEncoder::setFragmentBuffer): Ditto.
(WebCore::GPURenderPassEncoder::endPass): Deleted. Now handled by base class.

LayoutTests:

Add a basic test to create, execute, and verify the results of a Web GPU compute pipeline.

  • webgpu/compute-squares-expected.txt: Added.
  • webgpu/compute-squares.html: Added.
  • webgpu/whlsl.html: Update some function names to match API changes.
6:32 PM Changeset in webkit [243418] by keith_miller@apple.com
  • 9 edits in trunk

Refactor clz/ctz and fix getLSBSet.
https://bugs.webkit.org/show_bug.cgi?id=196162

Reviewed by Saam Barati.

Source/JavaScriptCore:

Refactor references of clz32/64 and ctz32 to use clz and ctz,
respectively.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGOperations.cpp:
  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::absoluteDivWithBigIntDivisor):
(JSC::JSBigInt::calculateMaximumCharactersRequired):
(JSC::JSBigInt::toStringBasePowerOfTwo):
(JSC::JSBigInt::compareToDouble):

  • runtime/MathObject.cpp:

(JSC::mathProtoFuncClz32):

Source/WTF:

This patch makes clz32/64 and ctz32 generic so they work on any
numeric type. Since these methods work on any type we don't need
to have a separate implementation of getLSBSet, which also
happened to be getMSBSet. This patch also adds getMSBSet as there
may be users who want that in the future.

  • wtf/MathExtras.h:

(WTF::clz):
(WTF::ctz):
(WTF::getLSBSet):
(WTF::getMSBSet):
(getLSBSet): Deleted.
(WTF::clz32): Deleted.
(WTF::clz64): Deleted.
(WTF::ctz32): Deleted.

Tools:

Add tests for clz, ctz, getLSBSet, and getMSBSet.

  • TestWebKitAPI/Tests/WTF/MathExtras.cpp:

(TestWebKitAPI::TEST):

5:47 PM Changeset in webkit [243417] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix typo in comment added in r243379.

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup setDelegate:]):

3:00 PM Changeset in webkit [243416] by Simon Fraser
  • 17 edits
    1 delete in trunk

REGRESSION (iOS 8): Scrollbar can't be hidden when webkit-overflow-scrolling is set to touch
https://bugs.webkit.org/show_bug.cgi?id=137043
rdar://problem/16595330

Reviewed by Zalan Bujtas.

Source/WebCore:

Plumb horizontalScrollbarHiddenByStyle/verticalScrollbarHiddenByStyle through ScrollableAreaParameters
to the UI process, and use it to set UIScrollView indicators visible or not.

Tests: fast/scrolling/ios/scrollbar-hiding.html:

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setScrollingNodeScrollableAreaGeometry):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::operator<<):

  • page/scrolling/ScrollingCoordinatorTypes.h:
  • page/scrolling/ScrollingTreeNode.h:
  • page/scrolling/ScrollingTreeOverflowScrollingNode.cpp:

(WebCore::ScrollingTreeOverflowScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::horizontalScrollbarHiddenByStyle const):
(WebCore::ScrollableArea::verticalScrollbarHiddenByStyle const):

  • rendering/RenderLayer.cpp:

(WebCore::scrollbarHiddenByStyle):
(WebCore::RenderLayer::horizontalScrollbarHiddenByStyle const):
(WebCore::RenderLayer::verticalScrollbarHiddenByStyle const):

  • rendering/RenderLayer.h:

Source/WebKit:

Plumb horizontalScrollbarHiddenByStyle/verticalScrollbarHiddenByStyle through ScrollableAreaParameters
to the UI process, and use it to set UIScrollView indicators visible or not.

The scroll snap changes in ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren() fix a bug
where hasChangedProperty(HorizontalSnapOffsets) was nested inside another set of hasChangedProperty()
tests, so would never get called.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::decode):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

Test that dumps the UI-side scrolling tree, showing e.g. "horizontal scrollbar hidden by style"
in the dump.

This test was previously a render tree dump, which did not test whether scrollbars were visible.

  • fast/scrolling/ios/scrollbar-hiding-expected.txt:
  • fast/scrolling/ios/scrollbar-hiding.html:
  • platform/ios/fast/scrolling/ios/scrollbar-hiding-expected.txt: Removed.
2:07 PM Changeset in webkit [243415] by Alan Bujtas
  • 3 edits
    4 adds in trunk

[ContentChangeObserver] Taping on a form control should always result in click.
https://bugs.webkit.org/show_bug.cgi?id=196177

Reviewed by Simon Fraser.

Source/WebKit:

This patch enures that we send a synthetic click when the traget node is a form control (button, edit field etc) even if
the mousemove brings up some hover content.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

LayoutTests:

  • fast/events/touch/ios/content-observation/tap-on-input-type-button-element-expected.txt: Added.
  • fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html: Added.
  • fast/events/touch/ios/content-observation/tap-on-input-type-text-element-expected.txt: Added.
  • fast/events/touch/ios/content-observation/tap-on-input-type-text-element.html: Added.
1:58 PM Changeset in webkit [243414] by Alan Bujtas
  • 4 edits
    10 adds in trunk

[ContentChangeObserver] Add support for observing opacity.
https://bugs.webkit.org/show_bug.cgi?id=196172

Reviewed by Simon Fraser.

Source/WebCore:

This patch adds support for observing opacity changes. At this point we only track one transition at a time.
if the page registers transition on both left and opacity, the first is getting observed only.

Tests: fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html

fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html
fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::isConsideredHidden):
(WebCore::ContentChangeObserver::didAddTransition):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservedPropertyForTransition const):

LayoutTests:

  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-expected.txt: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left-expected.txt: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition-expected.txt: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-expected.txt: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition-expected.txt: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html: Added.
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html: Added.
1:47 PM Changeset in webkit [243413] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[ContentChangeObserver] Check if the transitioned content is visible at onAnimationEnd
https://bugs.webkit.org/show_bug.cgi?id=196171

Reviewed by Simon Fraser.

Source/WebCore:

At onAnimationEnd we don't yet have the final computed style for the transitioned content.
However the current state (before computing the final style) might already be qualified to be visible.
Introduce "CompletedTransition" to indicate that the transition is all set as far observing is concerned
(as opposed to "EndedTransition" where we still need to observe the content for the final style change).

Test: fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::adjustObservedState):

  • page/ios/ContentChangeObserver.h:

LayoutTests:

  • fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end-expected.txt: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html: Added.
9:39 AM Changeset in webkit [243412] by aestes@apple.com
  • 10 edits in trunk/Source

[Apple Pay] Stop calling PKPaymentAuthorizationViewController class methods on iOS
https://bugs.webkit.org/show_bug.cgi?id=196163
<rdar://problem/48787564>

Reviewed by Anders Carlsson.

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

Now that we've transitioned to PKPaymentAuthorizationController on iOS, we should stop
calling PKPaymentAuthorizationViewController class methods on iOS in favor of their
PKPaymentAuthorizationController alternatives.

While we're here, we should also transition to calling
+paymentServicesMerchantURLForAPIType:completion: on both
PKPaymentAuthorizationViewController and PKPaymentAuthorizationController.

  • Platform/cocoa/PaymentAuthorizationViewController.mm:

(-[WKPaymentAuthorizationViewControllerDelegate _paymentServicesMerchantURLForAPIType:completion:]):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate _initWithRequest:presenter:]):
(-[WKPaymentAuthorizationDelegate _paymentServicesMerchantURLForAPIType:completion:]):

  • Platform/ios/PaymentAuthorizationController.mm:

(-[WKPaymentAuthorizationControllerDelegate _paymentServicesMerchantURLForAPIType:completion:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments): Deleted.

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments):

4:25 AM Changeset in webkit [243411] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK][WPE] check-webkit-style doesn't complain about identifiers with underscores in files under glib, gtk or wpe dirs
https://bugs.webkit.org/show_bug.cgi?id=196143

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-23
Reviewed by Michael Catanzaro.

Fix the check for the exception of identifiers starting with webkit_ in files under glib, gtk or wpe
directories.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_names):

3:56 AM Changeset in webkit [243410] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix GTK build after r243409.

Build failure is actually unrelated to r243409, it's yet another unified build failure that happens when source
file list changes.

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformShowCertificate): Use WebCore namespace for CertificateInfo parameter.

3:37 AM Changeset in webkit [243409] by Carlos Garcia Campos
  • 13 edits
    3 adds
    2 deletes in trunk

[GTK] Remove build time dependency on Geoclue2
https://bugs.webkit.org/show_bug.cgi?id=195994

Reviewed by Michael Catanzaro.

.:

Remove USE_GEOCLUE build option.

  • Source/cmake/FindGeoClue2.cmake: Removed.
  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Remove old Geoclue implementation.

  • PlatformGTK.cmake:
  • SourcesGTK.txt:
  • platform/geoclue/GeolocationProviderGeoclue.cpp: Removed.
  • platform/geoclue/GeolocationProviderGeoclue.h: Removed.
  • platform/geoclue/GeolocationProviderGeoclueClient.h: Removed.

Source/WebCore/platform/gtk/po:

  • POTFILES.in: Add GeoclueGeolocationProvider.cpp.

Source/WebKit:

Add GeoclueGeolocationProvider class to provide geolocation position updates using Geoclue2 DBus service.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitGeolocationManager.cpp:

(_WebKitGeolocationPosition::_WebKitGeolocationPosition):
(webkitGeolocationManagerStop):
(webkitGeolocationManagerSetEnableHighAccuracy):
(webkitGeolocationManagerDispose):
(webkit_geolocation_manager_class_init):

  • UIProcess/geoclue/GeoclueGeolocationProvider.cpp: Added.

(WebKit::GeoclueGeolocationProvider::GeoclueGeolocationProvider):
(WebKit::GeoclueGeolocationProvider::~GeoclueGeolocationProvider):
(WebKit::GeoclueGeolocationProvider::start):
(WebKit::GeoclueGeolocationProvider::stop):
(WebKit::GeoclueGeolocationProvider::setEnableHighAccuracy):
(WebKit::GeoclueGeolocationProvider::destroyManagerLater):
(WebKit::GeoclueGeolocationProvider::destroyManager):
(WebKit::GeoclueGeolocationProvider::setupManager):
(WebKit::GeoclueGeolocationProvider::createClient):
(WebKit::GeoclueGeolocationProvider::setupClient):
(WebKit::GeoclueGeolocationProvider::startClient):
(WebKit::GeoclueGeolocationProvider::stopClient):
(WebKit::GeoclueGeolocationProvider::requestAccuracyLevel):
(WebKit::GeoclueGeolocationProvider::clientLocationUpdatedCallback):
(WebKit::GeoclueGeolocationProvider::createLocation):
(WebKit::GeoclueGeolocationProvider::locationUpdated):
(WebKit::GeoclueGeolocationProvider::didFail):

  • UIProcess/geoclue/GeoclueGeolocationProvider.h: Added.
12:58 AM Changeset in webkit [243408] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Shrink sizeof(RegExp)
https://bugs.webkit.org/show_bug.cgi?id=196133

Reviewed by Mark Lam.

Some applications have many RegExp cells. But RegExp cells are very large (144B).
This patch reduces the size from 144B to 48B by,

  1. Allocate Yarr::YarrCodeBlock in non-GC heap. We can avoid this allocation if JIT is disabled.
  2. m_captureGroupNames and m_namedGroupToParenIndex are moved to RareData. They are only used when RegExp has named capture groups.
  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::estimatedSize):
(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):
(JSC::RegExp::deleteCode):
(JSC::RegExp::printTraceData):

  • runtime/RegExp.h:
  • runtime/RegExpInlines.h:

(JSC::RegExp::hasCodeFor):
(JSC::RegExp::matchInline):
(JSC::RegExp::hasMatchOnlyCodeFor):

Mar 22, 2019:

5:59 PM Changeset in webkit [243407] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Undo collision with r243390.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(stringForSSLProtocol):

5:56 PM Changeset in webkit [243406] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Fix internal builds.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(stringForSSLProtocol):

5:22 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
4:34 PM Changeset in webkit [243405] by Devin Rousso
  • 16 edits in trunk/LayoutTests

Unreviewed, fix test failures after r243269.

In debug builds, it's possible that the Web Inspector frontend is told to stop a timeline
recording before all of the recorded records have had a chance to be completed/processed.

As an example
`

setTimeout(() => {

<stop recording>

});

`
it may happen that the "stop recording" event will be dispatched before the timeout has
finished executing, meaning that the event that contains the recorded data for that timeout
will be ignored by the frontend.

Rework the tests so that they don't dispatch the "stop recording" event until the expected
record is received by the frontend, rather than having the test code itself say when to stop.

  • inspector/timeline/resources/timeline-event-utilities.js:

(savePageData): Added.
(TestPage.registerInitializer.InspectorTest.TimelineEvent.captureTimelineWithScript):
(finishRecording): Deleted.

  • inspector/timeline/timeline-event-CancelAnimationFrame.html:
  • inspector/timeline/timeline-event-CancelAnimationFrame-expected.txt:
  • inspector/timeline/timeline-event-EventDispatch.html:
  • inspector/timeline/timeline-event-EventDispatch-expected.txt:
  • inspector/timeline/timeline-event-FireAnimationFrame.html:
  • inspector/timeline/timeline-event-FireAnimationFrame-expected.txt:
  • inspector/timeline/timeline-event-RequestAnimationFrame.html:
  • inspector/timeline/timeline-event-RequestAnimationFrame-expected.txt:
  • inspector/timeline/timeline-event-TimerFire.html:
  • inspector/timeline/timeline-event-TimerFire-expected.txt:
  • inspector/timeline/timeline-event-TimerInstall.html:
  • inspector/timeline/timeline-event-TimerInstall-expected.txt:
  • inspector/timeline/timeline-event-TimerRemove.html:
  • inspector/timeline/timeline-event-TimerRemove-expected.txt:
3:54 PM Changeset in webkit [243404] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Flaky AVEncoderBitRateKey symbol not found crash on imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-constructor.html
https://bugs.webkit.org/show_bug.cgi?id=193724
<rdar://problem/47483831>

Reviewed by Jer Noble.

The soft link macros occasionally fail to load constants from AVFoundation.framework
which are actually in one of its sub-frameworks. While we investigate the cause
cause of the failure, ise the SOFT_LINK_CONSTANT_MAY_FAIL so we can detect the failure
and return a local copy of the string instead of crashing.

No new tests, this should prevent existing tests from crashing.

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::myAVFormatIDKey):
(WebCore::myAVNumberOfChannelsKey):
(WebCore::myAVSampleRateKey):
(WebCore::myAVEncoderBitRateKey):

3:19 PM Changeset in webkit [243403] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: "Reveal in Resources Tab" still shown when Sources tab is enabled
https://bugs.webkit.org/show_bug.cgi?id=196134

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement.prototype.populateContextMenu):
Drive-by: find the first call frame that has a source code location, rather than naively
always using the top call frame.

  • UserInterface/Views/SearchResultTreeElement.js:

(WI.SearchResultTreeElement.prototype.populateContextMenu):

3:12 PM Changeset in webkit [243402] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION: Flaky ASSERTION FAILED: !m_killed seen with http/tests/security/cross-origin-worker-indexeddb.html
https://bugs.webkit.org/show_bug.cgi?id=196024
<rdar://problem/49117272>

Reviewed by Alexey Proskuryakov.

Do not proceed with opening the database if it is being closed.
Speculative fix, this should stop making test crashing on bots.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):

3:11 PM Changeset in webkit [243401] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

storage/indexeddb/closed-cursor-private.html is crashing on debug
https://bugs.webkit.org/show_bug.cgi?id=196101

Reviewed by Alex Christensen.

In case of immediate close for user delete, the transaction might be deleted.
If the request for space is pending, it will be executed with an error as parameter.
In that case, the call to didCommitTransaction will not find any existing transaction.
Speculative fix, test should no longer crash.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::didCommitTransaction):

3:03 PM Changeset in webkit [243400] by Devin Rousso
  • 16 edits in trunk

Web Inspector: Safari Canvas Inspector seems to show the canvas being rendered twice per frame.
https://bugs.webkit.org/show_bug.cgi?id=196082
<rdar://problem/49113496>

Reviewed by Dean Jackson.

Source/WebCore:

Tests: inspector/canvas/recording-2d.html

inspector/canvas/recording-bitmaprenderer.html
inspector/canvas/recording-html-2d.html
inspector/canvas/recording-webgl.html
inspector/canvas/setRecordingAutoCaptureFrameCount.html

WebGL <canvas> follow a different "rendering" path such that HTMLCanvasElement::paint
isn't called. Previously, there was a 0s timer that was started after the first action of a
frame was recorded (for the case that the <canvas> isn't attached to the DOM) that would
automatically stop the recording. It was possible that actions in two different "frame"s
were recorded as part of the same frame, because the WebGL <canvas> would instead fall
back to the timer to know when the "frame" had ended.

Now, there is additional instrumentation for the WebGL specific rendering path.
Additionally, replace the 0s timer with a microtask for more "immediate" calling.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint):
Ensure that the InspectorInstrumentation call is last. This matches what we expect, as
before we were instrumenting right before is it about to paint.

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::Client::~Client): Added.
(WebCore::GraphicsContext3D::addClient): Added.
(WebCore::GraphicsContext3D::removeClient): Added.
(WebCore::GraphicsContext3D::setWebGLContext): Deleted.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::markLayerComposited):
(WebCore::GraphicsContext3D::forceContextLost):
(WebCore::GraphicsContext3D::recycleContext):
(WebCore::GraphicsContext3D::dispatchContextChangedNotification):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::destroyGraphicsContext3D):
(WebCore::WebGLRenderingContextBase::didComposite): Added.
(WebCore::WebGLRenderingContextBase::forceContextLost):
(WebCore::WebGLRenderingContextBase::recycleContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification): Added.
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent): Deleted.
Introduce a GraphicsContext3DClient abstract class, rather than passing the
WebGLRenderingContextBase directly to the GraphicsContext3D (layering violation).
Notify the client whenever the GraphicsContext3D composites, which will in turn notify the
InspectorCanvasAgent so that it knows that the "frame" is over.

  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::requestNode):
(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::resolveCanvasContext):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::requestShaderSource):
(WebCore::InspectorCanvasAgent::updateShader):
(WebCore::InspectorCanvasAgent::setShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::setShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
(WebCore::InspectorCanvasAgent::didEnableExtension):
(WebCore::InspectorCanvasAgent::didCreateProgram):
(WebCore::InspectorCanvasAgent::willDeleteProgram):
(WebCore::InspectorCanvasAgent::isShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::isShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::assertInspectorCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::assertInspectorProgram):
(WebCore::InspectorCanvasAgent::findInspectorProgram):
(WebCore::InspectorCanvasAgent::canvasRecordingTimerFired): Deleted.
Replace raw pointers with RefPtrs. This is primarily used so that the microtask (instead
of a timer) that is enqueued after the first action of each frame is recorded can access a
ref-counted instance of an InspectorCanvas, ensuring that it isn't destructed.

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::canvasElement):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::finalizeFrame):
(WebCore::InspectorCanvas::releaseObjectForRecording): Added.
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::appendActionSnapshotIfNeeded):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::InspectorCanvas::releaseInitialState): Deleted.
(WebCore::InspectorCanvas::releaseFrames): Deleted.
(WebCore::InspectorCanvas::releaseData): Deleted.
Move the recording payload construction logic to InspectorCanvas so the actual data
doesn't need to leave that class.
Drive-by: unify the logic for getting the contents of a canvas from InspectorCanvasAgent.

LayoutTests:

  • inspector/canvas/recording-2d.html:
  • inspector/canvas/recording-bitmaprenderer.html:
  • inspector/canvas/recording-html-2d.html:
  • inspector/canvas/recording-webgl.html:
  • inspector/canvas/setRecordingAutoCaptureFrameCount.html:
2:23 PM Changeset in webkit [243399] by Alan Coon
  • 2 edits in tags/Safari-608.1.13/Source/WebKit

Cherry-pick r243392. rdar://problem/49123855

[macOS] Fix sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=196153
<rdar://problem/49123855>

Reviewed by Brent Fulgham.

The sandbox on macOS is blocking the mach lookup.

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

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

1:50 PM Changeset in webkit [243398] by Alan Coon
  • 1 copy in tags/Safari-608.1.13

Tag Safari-608.1.13.

1:41 PM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
(diff)
1:37 PM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
(diff)
1:34 PM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
(diff)
1:32 PM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
(diff)
1:31 PM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
(diff)
1:30 PM WebKitGTK/MaintenanceTips edited by Michael Catanzaro
(diff)
1:27 PM WebKitGTK edited by Michael Catanzaro
(diff)
1:26 PM WebKitGTK/MaintenanceTips created by Michael Catanzaro
12:07 PM Changeset in webkit [243397] by Alan Coon
  • 3 edits in tags/Safari-608.1.11.1/Source/JavaScriptCore

Cherry-pick r243311. rdar://problem/49113565

[JSC] Fix JSC build with newer ICU
https://bugs.webkit.org/show_bug.cgi?id=196098

Reviewed by Keith Miller.

IntlDateTimeFormat and IntlNumberFormat have switch statement over ICU's enums. However it lacks "default" clause so that
the compile error occurs when a new enum value is added in ICU side. We should have "default" clause which just fallbacks
"unknown"_s case. The behavior is not changed since we already have return "unknown"_s; statement anyway after the
switch statement. This patch just suppresses a compile error.

  • runtime/IntlDateTimeFormat.cpp: (JSC::IntlDateTimeFormat::partTypeString):
  • runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::partTypeString):

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

11:56 AM Changeset in webkit [243396] by Keith Rollin
  • 20 edits in trunk/Source

Enable ThinLTO support in Production builds
https://bugs.webkit.org/show_bug.cgi?id=190758
<rdar://problem/45413233>

Reviewed by Daniel Bates.

Source/bmalloc:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

Tweak JavaScriptCore's Base.xcconfig to be more in-line with other
.xcconfig files with regards to LTO settings. However, don't actually
enable LTO for JavaScriptCore. LTO is not enabled for JavaScriptCore
due to <rdar://problem/24543547>.

  • Configurations/Base.xcconfig:

Source/ThirdParty/ANGLE:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/WebCore:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

Removed the conditionals that disabled LTO on 32-bit systems since we
no longer build for those.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.

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

  • Configurations/Base.xcconfig:

Source/WebCore/PAL:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

Removed the conditionals that disabled LTO on 32-bit systems since we
no longer build for those.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/WebInspectorUI:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/WebKit:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:

Source/WTF:

Enable building with Thin LTO in Production when using Xcode 10.2 or
later. This change results in a 1.45% progression in PLT5. Full
Production build times increase about 2-3%. Incremental build times
are more severely affected, and so LTO is not enabled for local
engineering builds.

LTO is enabled only on macOS for now, until rdar://problem/49013399,
which affects ARM builds, is fixed.

To change the LTO setting when building locally:

  • If building with make, specify WK_LTO_MODE={none,thin,full} on the command line.
  • If building with build-webkit, specify --lto-mode={none,thin,full} on the command line.
  • If building with build-root, specify --lto={none,thin,full} on the command line.
  • If building with Xcode, create a LocalOverrides.xcconfig file at the top level of your repository directory (if needed) and define WK_LTO_MODE to full, thin, or none.
  • Configurations/Base.xcconfig:
11:49 AM Changeset in webkit [243395] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r243388.

  • WebProcess/WebProcess.h:
11:19 AM Changeset in webkit [243394] by Alan Coon
  • 7 edits in tags/Safari-608.1.11.1/Source

Versioning.

11:14 AM Changeset in webkit [243393] by Alan Coon
  • 1 copy in tags/Safari-608.1.11.1

New tag.

11:12 AM Changeset in webkit [243392] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=196153
<rdar://problem/49123855>

Reviewed by Brent Fulgham.

The sandbox on macOS is blocking the mach lookup.

  • WebProcess/com.apple.WebProcess.sb.in:
10:59 AM Changeset in webkit [243391] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

Placate exception check validation in genericTypedArrayViewProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=196154
<rdar://problem/49145307>

Reviewed by Filip Pizlo.

JSTests:

Also added @ runDefault constraint to web-assembly-link-error-exception-check.js.
There's no need to run this test on more than 1 test configuration.

  • stress/typed-array-lastIndexOf-exception-check.js: Added.
  • stress/web-assembly-link-error-exception-check.js:

Source/JavaScriptCore:

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

10:57 AM Changeset in webkit [243390] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the build with recent SDKs.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(stringForSSLProtocol):

10:43 AM Changeset in webkit [243389] by msaboff@apple.com
  • 3 edits in trunk/Source/bmalloc

[BMalloc] No need to delay deallocating chunks based on recent use
https://bugs.webkit.org/show_bug.cgi?id=196121

Reviewed by Mark Lam.

The "used since last scavenge" logic is not needed for small chunks since their memory isn't decommitted directly.
We can deallocate small chunks immediately as that adds them to the LargeRange free list. That free list employs the
"used since last scavenge" logic before the scavenger decommits the backing memory.

  • bmalloc/Chunk.h:

(bmalloc::Chunk::usedSinceLastScavenge): Deleted.
(bmalloc::Chunk::clearUsedSinceLastScavenge): Deleted.
(bmalloc::Chunk::setUsedSinceLastScavenge): Deleted.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::allocateSmallPage):

10:40 AM Changeset in webkit [243388] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Implement WebProcess freezer opt-in completely on WebContent process side
https://bugs.webkit.org/show_bug.cgi?id=196149

Reviewed by Brady Eidson.

Implement WebProcess freezer opt-in completely on WebContent process side, we do not need
to involve the UIProcess with this and rely on IPC which may be fragile.

In the future, we may want to set freezable state from the UIProcess when the API supports
it. We can move the logic to be fully on the UIProcess side then. In the mean time, it is
likely best not to rely on IPC and process coordination for this.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::globalPageMap):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::markIsNoLongerInPrewarmedPool):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::validateFreezerStatus): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::removeProvisionalPageProxy):
(WebKit::WebProcessProxy::WebPageProxyMap::WebPageProxyMap): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::size const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::values): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::values const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::begin): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::end): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::get): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::contains const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::isEmpty const): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::set): Deleted.
(WebKit::WebProcessProxy::WebPageProxyMap::take): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setIsInProcessCache):
(WebKit::WebProcess::markIsNoLongerPrewarmed):
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::setFreezable): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::shouldFreezeOnSuspension const):
(WebKit::WebProcess::updateFreezerStatus):

10:40 AM Changeset in webkit [243387] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] Manifest expanding fails for qt WPE extension
https://bugs.webkit.org/show_bug.cgi?id=196148

Patch by Philippe Normand <pnormand@igalia.com> on 2019-03-22
Reviewed by Alex Christensen.

  • flatpak/flatpakutils.py:

(expand_submodules_recurse): The last recurse manifest expand
iteration might lead to a single module so take it into account
and don't try to recurse further.

10:21 AM Changeset in webkit [243386] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Placate exception check validation in constructJSWebAssemblyLinkError().
https://bugs.webkit.org/show_bug.cgi?id=196152
<rdar://problem/49145257>

Reviewed by Michael Saboff.

JSTests:

  • stress/web-assembly-link-error-exception-check.js: Added.

Source/JavaScriptCore:

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::constructJSWebAssemblyLinkError):

10:02 AM Changeset in webkit [243385] by Chris Dumez
  • 2 edits in trunk/Tools

[ iOS Simulator] REGRESSION (r241821) Layout Test platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html is a flaky failure on bots
https://bugs.webkit.org/show_bug.cgi?id=195348
<rdar://problem/48622090>

Reviewed by Alex Christensen.

Make sure webView.configuration.preferences._shouldIgnoreMetaViewport gets reset
to NO when test.options().shouldIgnoreMetaViewport is false.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformConfigureViewForTest):

10:01 AM Changeset in webkit [243384] by Chris Dumez
  • 23 edits
    1 add in trunk

Prewarmed processes should be usable with any website data store
https://bugs.webkit.org/show_bug.cgi?id=196104

Reviewed by Alex Christensen.

Source/WebKit:

Split WebsiteDataStore-specific data out of WebProcessCreationParameters and into a new
WebProcessDataStoreParameters struct so that we do not need a WebsiteDataStore in order
to lauch and initialize a WebProcess. When the process finally gets used and we thus
know which WebsiteDataStore they will be used for, we send the WebProcessDataStoreParameters
to the process to that it can do its data store-specific initialization.

This allows prewarmed processes not not have a WebsiteDataStore assocated with them. They
can then be used for any WebsiteDataStore when we need them.

This is also used by our dummy WebProcessProxy since it does not have a backing process and
thus has no associated WebsiteDataStore.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebProcessDataStoreParameters.h: Added.

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/API/C/WKContext.cpp:

(WKContextWarmInitialProcess):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _warmInitialProcess]):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::sendWebProcessDataStoreParameters):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToOneProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::addExistingWebPage):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::websiteDataStore const):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:

(WebKit::WebMediaKeyStorageManager::setWebsiteDataStore):

  • WebProcess/MediaCache/WebMediaKeyStorageManager.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setWebsiteDataStoreParameters):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/WebProcessSupplement.h:

(WebKit::WebProcessSupplement::initialize):
(WebKit::WebProcessSupplement::setWebsiteDataStore):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):

  • WebProcess/win/WebProcessWin.cpp:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm:

(runInitialWarmedProcessUsedTest):
(TEST):

9:54 AM Changeset in webkit [243383] by Ryan Haddad
  • 16 edits in trunk

Unreviewed, rolling out r243356.

Causes assertion failures with WebGL layout tests on macOS and
iOS.

Reverted changeset:

"Web Inspector: Safari Canvas Inspector seems to show the
canvas being rendered twice per frame."
https://bugs.webkit.org/show_bug.cgi?id=196082
https://trac.webkit.org/changeset/243356

9:42 AM Changeset in webkit [243382] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WTF

Fix the build after r243354

  • wtf/Platform.h:
9:38 AM Changeset in webkit [243381] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

REGRESSION (r242687): Flicker when pinch-zooming pages in macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=196126
rdar://problem/49095791

Reviewed by Antti Koivisto.

The scrolling tree doesn't have an accurate picture of the main view's scroll position
during pinch-zooming, so don't have it apply layer positions if a transient zoom is
in progress.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):

9:28 AM Changeset in webkit [243380] by Antti Koivisto
  • 12 edits
    2 adds in trunk

Handle UI side hit testing for ScrollPositioningBehavior::Stationary positioned nodes
https://bugs.webkit.org/show_bug.cgi?id=196100
<rdar://problem/49117933>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/ios/overflow-scroll-overlap-6.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::positionedNodesWithRelatedOverflow):

Add a separate map of positioned node ids for easy access.

  • page/scrolling/cocoa/ScrollingTreePositionedNode.h:

(WebCore::ScrollingTreePositionedNode::scrollPositioningBehavior const):
(WebCore::ScrollingTreePositionedNode::relatedOverflowScrollingNodes const):

  • page/scrolling/cocoa/ScrollingTreePositionedNode.mm:

(WebCore::ScrollingTreePositionedNode::commitStateBeforeChildren):

Source/WebKit:

Test: fast/scrolling/ios/overflow-scroll-overlap-6.html

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:

(WebKit::RemoteLayerTreeNode::relatedScrollContainerIDs const):
(WebKit::RemoteLayerTreeNode::relatedScrollContainerPositioningBehavior const):

Make more generic and save the associated positioning behavior.

(WebKit::RemoteLayerTreeNode::nonAncestorScrollContainerIDs const): Deleted.
(WebKit::RemoteLayerTreeNode::addNonAncestorScrollContainerID): Deleted.
(WebKit::RemoteLayerTreeNode::clearNonAncestorScrollContainerIDs): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:

(WebKit::RemoteLayerTreeNode::setRelatedScrollContainerBehaviorAndIDs):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::isScrolledBy):

Stationary relationship means the layer won't scroll the scroller.

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations):

LayoutTests:

  • fast/scrolling/ios/overflow-scroll-overlap-6-expected.txt: Added.
  • fast/scrolling/ios/overflow-scroll-overlap-6.html: Added.
9:27 AM Changeset in webkit [243379] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

REGRESSION (r243094): ePub files do not render or open in Books
https://bugs.webkit.org/show_bug.cgi?id=196119
<rdar://problem/49121686>

Reviewed by Brady Eidson.

Do not delay the WebProcess launch until a load when contructing a web view and the client
may observe when its injected bundle is loaded via WKProcessGroupDelegate's
didCreateConnectionToWebProcessPlugIn.

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup setDelegate:]):

  • UIProcess/WebInspectorUtilities.cpp:

(WebKit::inspectorProcessPool):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
9:03 AM Changeset in webkit [243378] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(r243094): Automation: browser crash in WebAutomationSession::exitFullscreenWindowForPage()
https://bugs.webkit.org/show_bug.cgi?id=196140

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-22
Reviewed by Chris Dumez.

Since r243094, the WebPageProxy fullscreen manager is not created in the constructor, but once the page has a
process launched.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::exitFullscreenWindowForPage): Null check WebPageProxy::fullScreenManager() before
using it.

8:54 AM Changeset in webkit [243377] by Simon Fraser
  • 1 edit
    3 deletes in trunk/LayoutTests

Unreviewed test gardening of plugin tests
https://bugs.webkit.org/show_bug.cgi?id=196150

For reasons unknown, my machine and bots produce different results for these plug-in tests.
My machine behaves like the test plug-in does not exist.

  • platform/mac-wk1/compositing/plugins/composited-plugin-expected.txt: Removed.
  • platform/mac-wk1/compositing/plugins/no-backing-store-expected.txt: Removed.
  • platform/mac-wk1/compositing/plugins/small-to-large-composited-plugin-expected.txt: Removed.
8:45 AM Changeset in webkit [243376] by timothy@apple.com
  • 140 edits in trunk/Source

Change macosx() to macos() in WK_API... and JSC_API... macros.
https://bugs.webkit.org/show_bug.cgi?id=196106

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • API/JSBasePrivate.h:
  • API/JSContext.h:
  • API/JSContextPrivate.h:
  • API/JSContextRef.h:
  • API/JSContextRefInternal.h:
  • API/JSContextRefPrivate.h:
  • API/JSManagedValue.h:
  • API/JSObjectRef.h:
  • API/JSObjectRefPrivate.h:
  • API/JSRemoteInspector.h:
  • API/JSScript.h:
  • API/JSTypedArray.h:
  • API/JSValue.h:
  • API/JSValuePrivate.h:
  • API/JSValueRef.h:
  • API/JSVirtualMachinePrivate.h:

Source/WebCore/PAL:

  • pal/spi/cocoa/NSTouchBarSPI.h:

Source/WebKit:

  • Shared/API/Cocoa/WKBrowsingContextHandle.h:
  • Shared/API/Cocoa/WKDragDestinationAction.h:
  • Shared/API/Cocoa/WKMain.h:
  • Shared/API/Cocoa/_WKFrameHandle.h:
  • Shared/API/Cocoa/_WKHitTestResult.h:
  • Shared/API/Cocoa/_WKNSWindowExtras.h:
  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
  • Shared/API/Cocoa/_WKRemoteObjectRegistry.h:
  • Shared/API/Cocoa/_WKRenderingProgressEvents.h:
  • Shared/API/Cocoa/_WKSameDocumentNavigationType.h:
  • UIProcess/API/C/WKPage.h:
  • UIProcess/API/Cocoa/NSAttributedString.h:
  • UIProcess/API/Cocoa/WKBackForwardList.h:
  • UIProcess/API/Cocoa/WKBackForwardListItem.h:
  • UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h:
  • UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h:
  • UIProcess/API/Cocoa/WKContentRuleList.h:
  • UIProcess/API/Cocoa/WKContentRuleListStore.h:
  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKErrorPrivate.h:
  • UIProcess/API/Cocoa/WKFrameInfo.h:
  • UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStore.h:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKNavigationResponse.h:
  • UIProcess/API/Cocoa/WKOpenPanelParameters.h:
  • UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKScriptMessage.h:
  • UIProcess/API/Cocoa/WKSecurityOrigin.h:
  • UIProcess/API/Cocoa/WKSnapshotConfiguration.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKURLSchemeHandler.h:
  • UIProcess/API/Cocoa/WKURLSchemeTask.h:
  • UIProcess/API/Cocoa/WKURLSchemeTaskPrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.h:
  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/API/Cocoa/WKUserScript.h:
  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/WKWindowFeatures.h:
  • UIProcess/API/Cocoa/WKWindowFeaturesPrivate.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKApplicationManifest.h:
  • UIProcess/API/Cocoa/_WKAttachment.h:
  • UIProcess/API/Cocoa/_WKAutomationDelegate.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.h:
  • UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h:
  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
  • UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKDownloadDelegate.h:
  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKExperimentalFeature.h:
  • UIProcess/API/Cocoa/_WKFindOptions.h:
  • UIProcess/API/Cocoa/_WKFocusedElementInfo.h:
  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/API/Cocoa/_WKFullscreenDelegate.h:
  • UIProcess/API/Cocoa/_WKGeolocationCoreLocationProvider.h:
  • UIProcess/API/Cocoa/_WKInspector.h:
  • UIProcess/API/Cocoa/_WKInspectorWindow.h:
  • UIProcess/API/Cocoa/_WKInternalDebugFeature.h:
  • UIProcess/API/Cocoa/_WKLayoutMode.h:
  • UIProcess/API/Cocoa/_WKLinkIconParameters.h:
  • UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h:
  • UIProcess/API/Cocoa/_WKSessionState.h:
  • UIProcess/API/Cocoa/_WKTextInputContext.h:
  • UIProcess/API/Cocoa/_WKThumbnailView.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
  • UIProcess/API/Cocoa/_WKUserContentFilter.h:
  • UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h:
  • UIProcess/API/Cocoa/_WKUserContentWorld.h:
  • UIProcess/API/Cocoa/_WKUserInitiatedAction.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkStore.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataSize.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • WebProcess/API/Cocoa/WKWebProcess.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMText.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextControllerPrivate.h:
6:49 AM Changeset in webkit [243375] by yousuke.kimoto@sony.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:
6:46 AM Changeset in webkit [243374] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] com.apple.WebKit.WebContent.Development at com.apple.WebCore: WebCore::WebAnimation::timeToNextTick const + 757
https://bugs.webkit.org/show_bug.cgi?id=196125
<rdar://problem/46520059>

Patch by Antoine Quint <Antoine Quint> on 2019-03-22
Reviewed by Dean Jackson.

Because of floating point math in playState() that wouldn't account for timeEpsilon, we would get into a state where the animation phase
was "after" but the play state was "running" when the current time was about a microsecond away from the active time boundary. This meant
that the early return statement in WebAnimation::timeToNextTick() would not be hit while we would not handle the possibility of being in
the "after" phase in the rest of the function, therefore eventually hitting the ASSERT_NOT_REACHED() at the end of the function.

We now account for timeEpsilon in playState() and correctly report we're in the "finished" play state when in the "after" phase also.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::playState const):

5:56 AM Changeset in webkit [243373] by ddkilzer@apple.com
  • 8 edits in trunk/Tools

Back out local changes to Alex's Subversion working directory

They were accidentally committed.

  • Scripts/webkitpy/common/system/abstractexecutive.py:

(AbstractExecutive.wait_newest):

  • Scripts/webkitpy/common/system/executive.py:

(Executive.running_pids):

  • Scripts/webkitpy/common/system/executive_mock.py:

(MockExecutive.running_pids):

  • Scripts/webkitpy/common/system/executive_unittest.py:

(ExecutiveTest.serial_test_running_pids):

  • Scripts/webkitpy/port/darwin.py:

(DarwinPort.check_for_leaks):

  • Scripts/webkitpy/port/leakdetector.py:

(LeakDetector.check_for_leaks):

  • This was the hack attached to Bug 193772.
  • WebKitTestRunner/mac/WebKitTestRunnerEvent.mm:

(+[WebKitTestRunnerEvent mouseLocation]):

  • This works around a crash on an internal build.
5:22 AM Changeset in webkit [243372] by aboya@igalia.com
  • 5 edits
    6 adds in trunk

[MSE][GStreamer] Don't construct segments on PlaybackPipeline::flush
https://bugs.webkit.org/show_bug.cgi?id=195867

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

These tests check that video and audio are roughly in sync with each
other and with the reported player position during MSE playback.

  • web-platform-tests/media-source/mediasource-correct-frames-after-reappend-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-correct-frames-after-reappend.html: Added.
  • web-platform-tests/media-source/mediasource-correct-frames-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-correct-frames.html: Added.
  • web-platform-tests/media-source/mp4/test-boxes-audio.mp4: Added.
  • web-platform-tests/media-source/mp4/test-boxes-video.mp4: Added.

Source/WebCore:

The previous approach did not really work for flushes on only one
branch, as setting reset-time in FLUSH_STOP affects the running time
of the entire pipeline, causing timing issues in the other branch.

Since it's preferable not to interfere with the other branch if
possible, setting reset-time to FALSE fixes that problem.

Also, it's not necessary to fabricate a segment. Since we are not
seeking, only the base needs to be adjusted, and gstbasesrc already
handles this correctly by default.

This fixes an audio/video synchronization bug in YT when some
automatic quality changes occur.

Tests: imported/w3c/web-platform-tests/media-source/mediasource-correct-frames-after-reappend.html

imported/w3c/web-platform-tests/media-source/mediasource-correct-frames.html

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::flush):

LayoutTests:

Drawing an MSE video in a canvas seems to be failing in Mac. That
functionality is necessary for the tests introduced with this patch,
therefore they fail there. Marking them as Skip.

  • platform/mac/TestExpectations:
3:03 AM Changeset in webkit [243371] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

Move implementation of mathsize to a single place
https://bugs.webkit.org/show_bug.cgi?id=196129

Patch by Frederic Wang <fwang@igalia.com> on 2019-03-22
Reviewed by Ryosuke Niwa.

Currently, mathsize is partially implemented in the MathML UA stylesheet and partially
implemented in the MathML DOM classes using addPropertyToPresentationAttributeStyle. This
patch moves the whole implementation to the latter place, so that it's easier to understand.
It will also allow to conditionally disable the mathsize values removed from MathML Core.

No new tests, already covered by existing tests.

  • css/mathml.css: Remove mathsize rules.
  • mathml/MathMLElement.cpp:

(WebCore::convertMathSizeIfNeeded): Convert "small", "normal" and "big" to the values that
used to be in the UA stylesheet. Also add a comment that we don't support all MathML lengths.
(WebCore::MathMLElement::collectStyleForPresentationAttribute): Don't skip "small", "normal"
or "big".
(WebCore::convertToPercentageIfNeeded): Renamed to convertMathSizeIfNeeded.

2:40 AM Changeset in webkit [243370] by timothy_horton@apple.com
  • 9 edits in trunk

Fix the build after r243354
https://bugs.webkit.org/show_bug.cgi?id=196138
<rdar://problem/49145951>

  • wtf/Platform.h:
  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
  • Platform/spi/ios/UIKitSPI.h:
  • Shared/DocumentEditingContext.mm:

(WebKit::DocumentEditingContext::toPlatformContext):

  • UIProcess/ios/WKContentViewInteraction.mm:
12:54 AM Changeset in webkit [243369] by bshafiei@apple.com
  • 7 edits in trunk/Source

Versioning.

12:53 AM Changeset in webkit [243368] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.12

Tag Safari-608.1.12.

12:39 AM Changeset in webkit [243367] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for Windows
https://bugs.webkit.org/show_bug.cgi?id=196122

  • runtime/FunctionExecutable.cpp:
12:28 AM Changeset in webkit [243366] by dinfuehr@igalia.com
  • 2 edits in trunk/JSTests

Skip tests running out of memory on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=196131

Unreviewed. Skip test if memory is limited.

  • microbenchmarks/put-by-val-direct-large-index.js:
12:14 AM Changeset in webkit [243365] by ysuzuki@apple.com
  • 16 edits
    2 copies in trunk/Source/JavaScriptCore

[JSC] Shrink sizeof(FunctionExecutable) by 16bytes
https://bugs.webkit.org/show_bug.cgi?id=196122

Reviewed by Saam Barati.

This patch reduces sizeof(FunctionExecutable) by 16 bytes.

  1. ScriptExecutable::m_numParametersForCall and ScriptExecutable::m_numParametersForConstruct are not used in a meaningful way. Removed them.
  2. ScriptExecutable::m_lastLine and ScriptExecutable::m_endColumn can be calculated from UnlinkedFunctionExecutable. So FunctionExecutable does not need to hold it. This patch adds GlobalExecutable, which are non-function ScriptExecutables, and move m_lastLine and m_endColumn to this class.
  3. FunctionExecutable still needs to have the feature overriding m_lastLine and m_endColumn. We move overridden data in FunctionExecutable::RareData.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::link):

  • runtime/EvalExecutable.cpp:

(JSC::EvalExecutable::EvalExecutable):

  • runtime/EvalExecutable.h:
  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::FunctionExecutable):
(JSC::FunctionExecutable::ensureRareDataSlow):
(JSC::FunctionExecutable::overrideInfo):

  • runtime/FunctionExecutable.h:
  • runtime/GlobalExecutable.cpp: Copied from Source/JavaScriptCore/tools/FunctionOverrides.h.
  • runtime/GlobalExecutable.h: Copied from Source/JavaScriptCore/tools/FunctionOverrides.h.

(JSC::GlobalExecutable::lastLine const):
(JSC::GlobalExecutable::endColumn const):
(JSC::GlobalExecutable::recordParse):
(JSC::GlobalExecutable::GlobalExecutable):

  • runtime/ModuleProgramExecutable.cpp:

(JSC::ModuleProgramExecutable::ModuleProgramExecutable):

  • runtime/ModuleProgramExecutable.h:
  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::ProgramExecutable):

  • runtime/ProgramExecutable.h:
  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::clearCode):
(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::hasClearableCode const):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::typeProfilingEndOffset const):
(JSC::ScriptExecutable::recordParse):
(JSC::ScriptExecutable::lastLine const):
(JSC::ScriptExecutable::endColumn const):

  • runtime/ScriptExecutable.h:

(JSC::ScriptExecutable::hasJITCodeForCall const):
(JSC::ScriptExecutable::hasJITCodeForConstruct const):
(JSC::ScriptExecutable::recordParse):
(JSC::ScriptExecutable::lastLine const): Deleted.
(JSC::ScriptExecutable::endColumn const): Deleted.

  • tools/FunctionOverrides.h:

Mar 21, 2019:

11:45 PM Changeset in webkit [243364] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Shrink sizeof(RegExpObject)
https://bugs.webkit.org/show_bug.cgi?id=196130

Reviewed by Saam Barati.

sizeof(RegExpObject) is 48B due to one bool flag. We should compress this flag into lower bit of RegExp* field so that we can make RegExpObject 32B.
It saves memory footprint 1.3% in RAMification's regexp.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewRegexp):
(JSC::DFG::SpeculativeJIT::compileSetRegExpObjectLastIndex):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
(JSC::FTL::DFG::LowerDFGToB3::compileSetRegExpObjectLastIndex):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::RegExpObject):
(JSC::RegExpObject::visitChildren):
(JSC::RegExpObject::getOwnPropertySlot):
(JSC::RegExpObject::defineOwnProperty):

  • runtime/RegExpObject.h:
10:56 PM Changeset in webkit [243363] by tpopela@redhat.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build after r243232 on unsupported 64bit architectures
https://bugs.webkit.org/show_bug.cgi?id=196072

Reviewed by Keith Miller.

As Keith suggested we already expect 16 free bits at the top of any
pointer for JSValue even for the unsupported 64 bit arches.

  • bytecode/CodeOrigin.h:
9:45 PM Changeset in webkit [243362] by commit-queue@webkit.org
  • 26 edits
    4 deletes in trunk

Remove the SVG tear off objects for SVGNumber, SVGNumberList and SVGAnimatedNumberList
https://bugs.webkit.org/show_bug.cgi?id=196084

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

Source/WebCore:

To remove the tear off objects for these interfaces, we need to do the
following:

-- SVGNumber will be a superclass of SVGValueProperty<float>. It provides

the DOM interface functions.

-- SVGNumberList will be a superclass of SVGValuePropertyList<SVGNumber>.

It provides creation, parsing and converting to string functions.

-- SVGAnimatedNumberList will be defined as SVGAnimatedPropertyList<SVGNumberList>.

To make things work as expected:

-- Properties of type SVGAnimatedNumberList have to be registered with

SVGPropertyOwnerRegistry.

-- An accessor, an animator and an animation function should be defined

for SVGAnimatedNumberList.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/SVGTextLayoutAttributesBuilder.cpp:

(WebCore::updateCharacterData):
(WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):

  • svg/SVGAnimatedNumberList.cpp: Removed.
  • svg/SVGAnimatedNumberList.h: Removed.
  • svg/SVGAnimatedPointList.cpp: Removed.
  • svg/SVGAnimatedPointList.h: Removed.
  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::type const):

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::create):

  • svg/SVGComponentTransferFunctionElement.cpp:

(WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement):
(WebCore::SVGComponentTransferFunctionElement::registerAttributes):
(WebCore::SVGComponentTransferFunctionElement::parseAttribute):

  • svg/SVGComponentTransferFunctionElement.h:

(WebCore::SVGComponentTransferFunctionElement::tableValues const):
(WebCore::SVGComponentTransferFunctionElement::tableValuesAnimated):

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
(WebCore::SVGFEColorMatrixElement::registerAttributes):
(WebCore::SVGFEColorMatrixElement::parseAttribute):
(WebCore::SVGFEColorMatrixElement::build const):

  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
(WebCore::SVGFEConvolveMatrixElement::registerAttributes):
(WebCore::SVGFEConvolveMatrixElement::parseAttribute):
(WebCore::SVGFEConvolveMatrixElement::build const):

  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGNumber.h:

(WebCore::SVGNumber::create):
(WebCore::SVGNumber::clone const):
(WebCore::SVGNumber::valueForBindings):
(WebCore::SVGNumber::setValueForBindings):
(WebCore::SVGNumber::SVGNumber): Deleted.

  • svg/SVGNumberList.h:

(WebCore::SVGNumberList::create):
(WebCore::SVGNumberList::parse):
(WebCore::SVGNumberList::SVGNumberList): Deleted.

  • svg/SVGNumberListValues.cpp: Removed.
  • svg/SVGNumberListValues.h: Removed.
  • svg/SVGTextPositioningElement.cpp:

(WebCore::SVGTextPositioningElement::SVGTextPositioningElement):
(WebCore::SVGTextPositioningElement::registerAttributes):
(WebCore::SVGTextPositioningElement::parseAttribute):

  • svg/SVGTextPositioningElement.h:

(WebCore::SVGTextPositioningElement::rotate const):
(WebCore::SVGTextPositioningElement::rotateAnimated):

  • svg/SVGValue.h:
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:
  • svg/properties/SVGAnimationAdditiveListFunctionImpl.h:

(WebCore::SVGAnimationNumberListFunction::progress):

  • svg/properties/SVGAttributeRegistry.h:
  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):

LayoutTests:

  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGNumberList-basics.xhtml:

This change is required because SVGNumberList will be following the SVG2
specs regarding adding new items to the list.

See https://www.w3.org/TR/SVG/types.html#TermListInterface.

9:44 PM Changeset in webkit [243361] by Simon Fraser
  • 2 edits
    17 adds in trunk/LayoutTests

WebKit1 test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/compositing/clipping/border-radius-async-overflow-clipping-layer-expected.txt: Added.
  • platform/mac-wk1/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Added.
  • platform/mac-wk1/compositing/overflow/overflow-auto-with-touch-expected.txt: Added.
  • platform/mac-wk1/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt: Added.
  • platform/mac-wk1/compositing/overflow/overflow-overlay-with-touch-expected.txt: Added.
  • platform/mac-wk1/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: Added.
  • platform/mac-wk1/compositing/overflow/textarea-scroll-touch-expected.txt: Added.
  • platform/mac-wk1/compositing/plugins/composited-plugin-expected.txt: Added.
  • platform/mac-wk1/compositing/plugins/no-backing-store-expected.txt: Added.
  • platform/mac-wk1/compositing/plugins/small-to-large-composited-plugin-expected.txt: Added.
  • platform/mac-wk1/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt: Added.
  • platform/mac-wk1/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt: Added.
9:22 PM Changeset in webkit [243360] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

Clean up some TiledCoreAnimationDrawingArea members
https://bugs.webkit.org/show_bug.cgi?id=196124

Reviewed by Tim Horton.

The giant m_transform was unused.

Group the bools etc.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

9:15 PM Changeset in webkit [243359] by Simon Fraser
  • 3 edits in trunk/LayoutTests

REGRESSION: (r242132) tiled-drawing/scrolling/scroll-snap/scroll-snap-proximity-mainframe.html is a timeout
https://bugs.webkit.org/show_bug.cgi?id=196115

Unreviewed test gardening.

Scroll snap doesn't work on macOS with async overflow scrolling, so revert the changes to these tests.

  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
8:34 PM Changeset in webkit [243358] by Dewei Zhu
  • 4 edits in trunk/Websites/perf.webkit.org

'custom-configuration-test-group-form' should update test name when selected test or platform changes.
https://bugs.webkit.org/show_bug.cgi?id=196114

Reviewed by Ryosuke Niwa.

r240104 fixes commit sets unnecessarily get updated even there is no change.
However, this made changing test or platform no longer triggers 'commitSetChange' action.
Test name should change not only when 'commitSet' gets change, but also platform or test changes.
Renaming the action name from 'commitSetChange' to a more accurate description 'testConfigChange'.
Dispatch 'testConfigChange' when platform or test changes.

  • browser-tests/custom-analysis-task-configurator-tests.js: Changed action name to 'commitSetChange'.
  • public/v3/components/custom-analysis-task-configurator.js:

(CustomAnalysisTaskConfigurator.prototype._didUpdateSelectedPlatforms): Should dispatch 'commitSetChange' action.
(CustomAnalysisTaskConfigurator.prototype._updateCommitSetMap): Changed action name to 'commitSetChange'.

  • public/v3/components/custom-configuration-test-group-form.js: Added a unit test for this change.

(CustomConfigurationTestGroupForm.prototype.didConstructShadowTree):

8:00 PM Changeset in webkit [243357] by beidson@apple.com
  • 9 edits in trunk/Source

Certain WebProcesses should opt-out of the freezer.
<rdar://problem/42846139> and https://bugs.webkit.org/show_bug.cgi?id=196062

Reviewed by Andy Estes.

Source/bmalloc:

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/darwin/MemoryStatusSPI.h:

Source/WebKit:

WebProcesses should opt-in and opt-out of the freezer as is appropriate.
By default a WebProcess is freezer eligible.
If any of the following become true then it should become ineligible:

  • The WebProcess is a pre-warmed process.
  • The WebProcess is in the process cache.
  • The WebProcess is not actively hosting any web pages (e.g. it only has suspending web pages)

The most complicated part of the above is guaranteeing that any operation that changes
the active pages hosted by the process causes a recalculation of the freezer opt-in state.

To do that this replaces the basic WebPageProxyMap with a custom class.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::globalPageMap):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::validateFreezerStatus):
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::markIsNoLongerInPrewarmedPool):
(WebKit::WebProcessProxy::didFinishLaunching):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::WebPageProxyMap::WebPageProxyMap):
(WebKit::WebProcessProxy::WebPageProxyMap::size const):
(WebKit::WebProcessProxy::WebPageProxyMap::values):
(WebKit::WebProcessProxy::WebPageProxyMap::values const):
(WebKit::WebProcessProxy::WebPageProxyMap::begin):
(WebKit::WebProcessProxy::WebPageProxyMap::end):
(WebKit::WebProcessProxy::WebPageProxyMap::get):
(WebKit::WebProcessProxy::WebPageProxyMap::contains const):
(WebKit::WebProcessProxy::WebPageProxyMap::isEmpty const):
(WebKit::WebProcessProxy::WebPageProxyMap::set):
(WebKit::WebProcessProxy::WebPageProxyMap::take):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setFreezable):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
7:47 PM Changeset in webkit [243356] by Devin Rousso
  • 16 edits in trunk

Web Inspector: Safari Canvas Inspector seems to show the canvas being rendered twice per frame.
https://bugs.webkit.org/show_bug.cgi?id=196082
<rdar://problem/49113496>

Reviewed by Dean Jackson.

Source/WebCore:

Tests: inspector/canvas/recording-2d.html

inspector/canvas/recording-bitmaprenderer.html
inspector/canvas/recording-html-2d.html
inspector/canvas/recording-webgl.html
inspector/canvas/setRecordingAutoCaptureFrameCount.html

WebGL <canvas> follow a different "rendering" path such that HTMLCanvasElement::paint
isn't called. Previously, there was a 0s timer that was started after the first action of a
frame was recorded (for the case that the <canvas> isn't attached to the DOM) that would
automatically stop the recording. It was possible that actions in two different "frame"s
were recorded as part of the same frame, because the WebGL <canvas> would instead fall
back to the timer to know when the "frame" had ended.

Now, there is additional instrumentation for the WebGL specific rendering path.
Additionally, replace the 0s timer with a microtask for more "immediate" calling.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint):
Ensure that the InspectorInstrumentation call is last. This matches what we expect, as
before we were instrumenting right before is it about to paint.

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::Client::~Client): Added.
(WebCore::GraphicsContext3D::addClient): Added.
(WebCore::GraphicsContext3D::removeClient): Added.
(WebCore::GraphicsContext3D::setWebGLContext): Deleted.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::markLayerComposited):
(WebCore::GraphicsContext3D::forceContextLost):
(WebCore::GraphicsContext3D::recycleContext):
(WebCore::GraphicsContext3D::dispatchContextChangedNotification):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::destroyGraphicsContext3D):
(WebCore::WebGLRenderingContextBase::didComposite): Added.
(WebCore::WebGLRenderingContextBase::forceContextLost):
(WebCore::WebGLRenderingContextBase::recycleContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedNotification): Added.
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent): Deleted.
Introduce a GraphicsContext3DClient abstract class, rather than passing the
WebGLRenderingContextBase directly to the GraphicsContext3D (layering violation).
Notify the client whenever the GraphicsContext3D composites, which will in turn notify the
InspectorCanvasAgent so that it knows that the "frame" is over.

  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::requestNode):
(WebCore::InspectorCanvasAgent::requestContent):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::resolveCanvasContext):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::requestShaderSource):
(WebCore::InspectorCanvasAgent::updateShader):
(WebCore::InspectorCanvasAgent::setShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::setShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
(WebCore::InspectorCanvasAgent::didEnableExtension):
(WebCore::InspectorCanvasAgent::didCreateProgram):
(WebCore::InspectorCanvasAgent::willDeleteProgram):
(WebCore::InspectorCanvasAgent::isShaderProgramDisabled):
(WebCore::InspectorCanvasAgent::isShaderProgramHighlighted):
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::assertInspectorCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::assertInspectorProgram):
(WebCore::InspectorCanvasAgent::findInspectorProgram):
(WebCore::InspectorCanvasAgent::canvasRecordingTimerFired): Deleted.
Replace raw pointers with RefPtrs. This is primarily used so that the microtask (instead
of a timer) that is enqueued after the first action of each frame is recorded can access a
ref-counted instance of an InspectorCanvas, ensuring that it isn't destructed.

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::canvasElement):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::finalizeFrame):
(WebCore::InspectorCanvas::releaseObjectForRecording): Added.
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::appendActionSnapshotIfNeeded):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::InspectorCanvas::releaseInitialState): Deleted.
(WebCore::InspectorCanvas::releaseFrames): Deleted.
(WebCore::InspectorCanvas::releaseData): Deleted.
Move the recording payload construction logic to InspectorCanvas so the actual data
doesn't need to leave that class.
Drive-by: unify the logic for getting the contents of a canvas from InspectorCanvasAgent.

LayoutTests:

  • inspector/canvas/recording-2d.html:
  • inspector/canvas/recording-bitmaprenderer.html:
  • inspector/canvas/recording-html-2d.html:
  • inspector/canvas/recording-webgl.html:
  • inspector/canvas/setRecordingAutoCaptureFrameCount.html:
7:33 PM Changeset in webkit [243355] by Joseph Pecoraro
  • 20 edits
    2 adds in trunk

Web Inspector: Timelines - Cannot export on about:blank - suggested filename containing a colon silently fails
https://bugs.webkit.org/show_bug.cgi?id=196109

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.sanitizeFilename):
(WI.FileUtilities.inspectorURLForFilename):
New utility functions.

  • UserInterface/Test.html:

Include FileUtilities.

  • UserInterface/Base/Main.js:
  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.export):

  • UserInterface/Debug/ProtocolTrace.js:

(WI.ProtocolTrace.prototype.get saveData):
(WI.ProtocolTrace):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._handleContextMenu):
(WI.ConsoleMessageView):

  • UserInterface/Views/ContextMenuUtilities.js:
  • UserInterface/Views/HeapSnapshotContentView.js:

(WI.HeapSnapshotContentView.prototype._exportSnapshot):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.get saveData):
(WI.LogContentView.prototype._handleContextMenuEvent):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._exportHAR):

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype._exportRecording):
(WI.RecordingContentView.prototype._exportReduction):

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype.get saveData):

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView.prototype.get saveData):

  • UserInterface/Views/TextContentView.js:

(WI.TextContentView.prototype.get saveData):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.get saveData):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype._exportTimelineRecording):
Update "web-inspector:///" URL building code to use the utility.

LayoutTests:

  • inspector/unit-tests/file-utilities-expected.txt: Added.
  • inspector/unit-tests/file-utilities.html: Added.

Tests for FileUtilities.js

  • inspector/unit-tests/object-utilities.html:
  • inspector/unit-tests/promise-utilities.html:
7:26 PM Changeset in webkit [243354] by timothy_horton@apple.com
  • 23 edits
    3 adds in trunk

Adopt UIWKDocumentContext
https://bugs.webkit.org/show_bug.cgi?id=196040
<rdar://problem/48642440>

Reviewed by Ryosuke Niwa.

New API test: WebKit.DocumentEditingContext

  • dom/Range.h:
  • editing/TextGranularity.h:

Make TextGranularity encodable by providing EnumTraits.

  • editing/TextIterator.cpp:

(WebCore::plainTextReplacingNoBreakSpace):

  • editing/TextIterator.h:

Expose an nbsp-replacing variant of plainText that takes Positions instead of Ranges.

  • Platform/spi/ios/UIKitSPI.h:
  • Scripts/webkit/messages.py:
  • Shared/DocumentEditingContext.h: Added.
  • Shared/DocumentEditingContext.mm: Added.

(WebKit::toNSRange):
(WebKit::DocumentEditingContext::toPlatformContext):
(IPC::ArgumentCoder<WebKit::DocumentEditingContext::Range>::encode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContext::Range>::decode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContext::TextRect>::encode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContext::TextRect>::decode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContext>::encode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContext>::decode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContextRequest>::encode):
(IPC::ArgumentCoder<WebKit::DocumentEditingContextRequest>::decode):
Add DocumentEditingContext(Request), and coders.
Also expose DocumentEditingContext::toPlatformContext, which populates
a UIWKDocumentContext with the relevant values.

  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(toWebDocumentRequestOptions):
(toWebRequest):
(-[WKContentView adjustSelectionWithDelta:completionHandler:]):
(-[WKContentView requestDocumentContext:completionHandler:]):
(-[WKContentView selectPositionAtPoint:withContextRequest:completionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::adjustSelectionWithDelta):
(WebKit::WebPageProxy::requestDocumentEditingContext):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Plumb DocumentEditingContext(Request) around.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::adjustSelectionWithDelta):
Adjust the current selection given deltas to apply to the location and length.

(WebKit::visiblePositionAdjacentToVisiblePosition):
(WebKit::visiblePositionForPointInRootViewCoordinates):
(WebKit::WebPage::requestDocumentEditingContext):
Retrieve the relevant part of the selection, as well as the context,
given either the selection, or a rect.
If we're collecting context for a rect, we split the context between
before and after (except for the part that intersects the selection).
The three strings will always be directly adjacent, and any of the three
can sometimes be null.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm: Added.

(makeRequest):
(-[TestWKWebView synchronouslyRequestDocumentContext:]):
(-[TestWKWebView synchronouslyAdjustSelectionWithDelta:]):
(applyStyle):
(TEST):
Add tests for UIWKDocumentContext.

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:

(TEST):
(recursiveFindWKContentView): Deleted.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(recursiveFindWKContentView):
(-[TestWKWebView wkContentView]):

  • TestWebKitAPI/ios/UIKitSPI.h:

Share the WKContentView finding code between tests.

6:58 PM Changeset in webkit [243353] by Chris Dumez
  • 5 edits in trunk/LayoutTests

[ Mac WK2 ] Layout Test http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=194350
<rdar://problem/47937466>

Reviewed by Alex Christensen.

Bypass the HTMLPreloadScanner in the test or compass.jpg resource may end up getting loaded twice and log extra
lines in the test output.

  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-insecure-image-with-enforced-and-report-policies.php:
  • platform/mac-wk2/TestExpectations:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt:
6:22 PM Changeset in webkit [243352] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use CSS variables for text color in Computed panel
https://bugs.webkit.org/show_bug.cgi?id=196117

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section):
(.computed-style-section .computed-property-item .property-trace-item .selector):
(.computed-style-section .computed-property-item .go-to-link):

6:03 PM Changeset in webkit [243351] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Long press gesture recognizers in WKWebView are conflicting with internal scroll view long press gesture recognizers
https://bugs.webkit.org/show_bug.cgi?id=195726
rdar://problem/48582449

Patch by James Magahern <jmagahern@apple.com> on 2019-03-21
Reviewed by Megan Gardner.

We just need to add another clause to WKContentViewInteraction's
canPreventGestureRecognizer whitelist.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):

5:49 PM Changeset in webkit [243350] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Fix this test by turning on async scrolling so that mock scrollbars don't show up.

  • fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking-expected.html:
5:33 PM Changeset in webkit [243349] by Simon Fraser
  • 9 edits
    6 deletes in trunk/LayoutTests

Unreviewed test gardening.

Revert some iOS layout test results that were rebaselined with async scrolling enabled.

  • platform/ios-wk2/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Removed.
  • platform/ios-wk2/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Removed.
  • platform/ios-wk2/compositing/layer-creation/scroll-partial-update-expected.txt: Removed.
  • platform/ios-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: Removed.
  • platform/ios-wk2/compositing/overflow/overflow-scroll-expected.txt:
  • platform/ios-wk2/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: Removed.
  • platform/ios-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: Removed.
  • platform/ios-wk2/compositing/overflow/remove-overflow-crash2-expected.txt:
  • platform/ios-wk2/compositing/overflow/scrollbar-painting-expected.txt:
  • platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
  • platform/ios/compositing/layers-inside-overflow-scroll-expected.txt:
  • platform/ios/compositing/overflow/scroll-ancestor-update-expected.txt:
  • platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
  • platform/ios/compositing/self-painting-layers-expected.txt:
5:03 PM Changeset in webkit [243348] by sihui_liu@apple.com
  • 20 edits
    1 add in trunk

Fix key path extraction code in IndexedDB to check own property
https://bugs.webkit.org/show_bug.cgi?id=196099

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Updated test expectations to PASS.

  • web-platform-tests/IndexedDB/key-conversion-exceptions-expected.txt:
  • web-platform-tests/IndexedDB/keygenerator-inject-expected.txt:
  • web-platform-tests/IndexedDB/keypath-exceptions-expected.txt: Added.
  • web-platform-tests/IndexedDB/wasm-module-value-expected.txt:

Source/WebCore:

Covered by existing tests.

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):
We don't need to check the second parameters if the first is already invalid.

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::bound):
Ditto.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::putOrAdd):
we should not clear the exception during serialization because the execeptions may be explicitly thrown by parameters.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::get):
Fix implementation according to https://www.w3.org/TR/IndexedDB-2/#extract-key-from-value.

(WebCore::canInjectNthValueOnKeyPath):
Check the last identifier.

LayoutTests:

Rebaseline the tests because we will have same exception but different exception messages after the patch.

  • storage/indexeddb/clone-exception-expected.txt:
  • storage/indexeddb/clone-exception-private-expected.txt:
  • storage/indexeddb/exceptions-expected.txt:
  • storage/indexeddb/exceptions-private-expected.txt:
  • storage/indexeddb/objectstore-basics-expected.txt:
  • storage/indexeddb/objectstore-basics-private-expected.txt:
  • storage/indexeddb/objectstore-basics-workers-expected.txt:
  • storage/indexeddb/structured-clone-expected.txt:
  • storage/indexeddb/structured-clone-private-expected.txt:
  • storage/indexeddb/wasm-exceptions-expected.txt:
4:55 PM Changeset in webkit [243347] by Simon Fraser
  • 121 edits
    6 adds in trunk

[iOS WK2] Turn on async overflow scrolling by default
https://bugs.webkit.org/show_bug.cgi?id=196011
rdar://problem/48453859

Reviewed by Antti Koivisto.
Source/WebKit:

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

Tools:

Explicitly turn off the async overflow scrolling internal feature for tests by default,
since so many basic layout tests have different results when compositing is triggered for
overflow.

Individual tests will re-enable with <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] -->.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Explicitly turn on async overflow scrolling in any test that:

  1. Used -webkit-overflow-scrolling:touch
  2. Called settings.setAsyncOverflowScrollingEnabled(true)
  • accessibility/ios-simulator/scroll-in-overflow-div.html:
  • compositing/clipping/border-radius-async-overflow-clipping-layer.html:
  • compositing/clipping/border-radius-async-overflow-non-stacking.html:
  • compositing/clipping/border-radius-async-overflow-stacking.html:
  • compositing/geometry/fixed-inside-overflow-scroll.html:
  • compositing/ios/overflow-scroll-touch-tiles.html:
  • compositing/ios/overflow-scroll-update-overlap.html:
  • compositing/layer-creation/absolute-in-async-overflow-scroll.html:
  • compositing/overflow/absolute-in-overflow-expected.html:
  • compositing/overflow/absolute-in-overflow.html:
  • compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
  • compositing/overflow/iframe-inside-overflow-clipping.html:
  • compositing/overflow/nested-scrolling.html:
  • compositing/overflow/overflow-auto-with-touch-expected.txt:
  • compositing/overflow/overflow-auto-with-touch-no-overflow.html:
  • compositing/overflow/overflow-auto-with-touch-toggle.html:
  • compositing/overflow/overflow-auto-with-touch.html:
  • compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html:
  • compositing/overflow/overflow-hidden-with-touch.html:
  • compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • compositing/overflow/overflow-overlay-with-touch-no-overflow.html:
  • compositing/overflow/overflow-overlay-with-touch.html:
  • compositing/overflow/overflow-scroll-with-touch-no-overflow.html:
  • compositing/overflow/overflow-scroll.html:
  • compositing/overflow/overflow-visible-with-touch.html:
  • compositing/overflow/remove-overflow-crash.html:
  • compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • compositing/overflow/scrolling-content-clip-to-viewport.html:
  • compositing/overflow/scrolling-without-painting.html:
  • compositing/overflow/should-not-override-z-index-for-element-with-non-auto-z-index-and-overflow-scroll-and-touch.html:
  • compositing/overflow/subpixel-overflow.html:
  • compositing/overflow/textarea-scroll-touch-expected.txt:
  • compositing/overflow/textarea-scroll-touch.html:
  • compositing/overflow/updating-scrolling-content.html:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
  • compositing/scrolling/fixed-inside-scroll-expected.html:
  • compositing/scrolling/fixed-inside-scroll.html:
  • compositing/scrolling/overflow-scrolling-layers-are-self-painting.html:
  • compositing/scrolling/touch-scroll-to-clip.html:
  • compositing/scrolling/touch-scrolling-repaint-expected.html:
  • compositing/scrolling/touch-scrolling-repaint-spans-expected.html:
  • compositing/scrolling/touch-scrolling-repaint-spans.html:
  • compositing/scrolling/touch-scrolling-repaint.html:
  • css3/scroll-snap/nested-elements.html:
  • css3/scroll-snap/scroll-snap-children-with-overflow.html:
  • css3/scroll-snap/scroll-snap-offsets.html:
  • css3/scroll-snap/scroll-snap-positions.html:
  • css3/scroll-snap/scroll-snap-programmatic-overflow-scroll.html:
  • css3/scroll-snap/scroll-snap-style-changed-align.html:
  • fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html:
  • fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html:
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html:
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html:
  • fast/events/touch/ios/drag-block-without-overflow-scroll.html:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested.html:
  • fast/scrolling/ios/change-scrollability-on-content-resize.html:
  • fast/scrolling/ios/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
  • fast/scrolling/ios/fixed-inside-overflow-inside-iframe-expected.html:
  • fast/scrolling/ios/fixed-inside-overflow-inside-iframe.html:
  • fast/scrolling/ios/iframe-inside-overflow-clipping.html:
  • fast/scrolling/ios/overflow-clip-with-accelerated-scrolling-ancestor.html:
  • fast/scrolling/ios/overflow-scroll-inherited.html:
  • fast/scrolling/ios/overflow-scroll-overlap-2.html:
  • fast/scrolling/ios/overflow-scroll-overlap-3.html:
  • fast/scrolling/ios/overflow-scroll-overlap-4.html:
  • fast/scrolling/ios/overflow-scroll-overlap-5.html:
  • fast/scrolling/ios/overflow-scroll-overlap.html:
  • fast/scrolling/ios/overflow-scroll-touch.html:
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html:
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip.html:
  • fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking.html:
  • fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking-expected.html:
  • fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html:
  • fast/scrolling/ios/reconcile-layer-position-recursive.html:
  • fast/scrolling/ios/remove-overflow-crash.html:
  • fast/scrolling/ios/scroll-into-view-with-top-content-inset.html:
  • fast/scrolling/ios/scrollbar-hiding.html:
  • fast/scrolling/ios/scrolling-content-clip-to-viewport.html:
  • fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html:
  • fast/scrolling/ios/table-cell-touch-scrolling.html:
  • fast/scrolling/ios/textarea-scroll-touch.html:
  • fast/scrolling/ios/touch-scroll-back-forward.html:
  • fast/scrolling/ios/touch-scroll-pointer-events-none.html:
  • fast/scrolling/ios/touch-stacking.html:
  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt: Added.
  • platform/ios-wk2/compositing/layer-creation/overflow-scroll-overlap-expected.txt: Added.
  • platform/ios-wk2/compositing/layer-creation/scroll-partial-update-expected.txt: Added.
  • platform/ios-wk2/compositing/overflow/content-gains-scrollbars-expected.txt: Added.
  • platform/ios-wk2/compositing/overflow/overflow-scroll-expected.txt:
  • platform/ios-wk2/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt: Added.
  • platform/ios-wk2/compositing/overflow/overflow-scrollbar-layers-expected.txt: Added.
  • platform/ios-wk2/compositing/overflow/remove-overflow-crash2-expected.txt:
  • platform/ios-wk2/compositing/overflow/scrollbar-painting-expected.txt:
  • platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
  • platform/ios/compositing/layers-inside-overflow-scroll-expected.txt:
  • platform/ios/compositing/overflow/scroll-ancestor-update-expected.txt:
  • platform/ios/compositing/reflections/nested-reflection-on-overflow-expected.txt:
  • platform/ios/compositing/self-painting-layers-expected.txt:
  • platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit.html:
  • platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position.html:
  • platform/ios/fast/scrolling/find-text-in-overflow-node.html:
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html:
  • platform/mac/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
  • pointerevents/ios/touch-action-none-in-overflow-scrolling-touch.html:
  • scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll-expected.html:
  • scrollingcoordinator/ios/absolute-layer-should-not-move-with-scroll.html:
  • scrollingcoordinator/ios/relative-layer-should-move-with-scroll-expected.html:
  • scrollingcoordinator/ios/relative-layer-should-move-with-scroll.html:
  • scrollingcoordinator/ios/scroll-element-at-point.html:
  • scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent.html:
  • scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent.html:
  • scrollingcoordinator/scrolling-tree/overflow-in-fixed.html:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html:
  • scrollingcoordinator/scrolling-tree/positioned-nodes.html:
  • scrollingcoordinator/scrolling-tree/remove-scrolling-role.html:
  • scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers.html:
  • scrollingcoordinator/scrolling-tree/reparent-with-layer-removal.html:
  • scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html:
  • tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html:
4:53 PM Changeset in webkit [243346] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[Web Animations] JS wrapper may be deleted while animation is yet to dispatch its finish event
https://bugs.webkit.org/show_bug.cgi?id=196118
<rdar://problem/46614137>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: webanimations/js-wrapper-kept-alive.html

We need to teach WebAnimation to keep its JS wrapper alive if it's relevant or could become relevant again by virtue of having a timeline.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::stop): Drive-by fix for the missing superclass method call.
(WebCore::WebAnimation::hasPendingActivity const):

  • animation/WebAnimation.h:

LayoutTests:

Add a test that starts a short animation, sets a custom property on it, registers a "finish" event listener on it and deletes
the sole reference to it in the JS world before triggering garbage collection. Prior to this fix, this test would time out
because the JS wrapper would be garbage-collected prior to the animation completing and thus the event listener would not
be called. To complete successfully, this test checks that it receives the event and its target is the same animation object
that was originally created by checking the custom property is still set.

  • webanimations/js-wrapper-kept-alive-expected.txt: Added.
  • webanimations/js-wrapper-kept-alive.html: Added.
4:35 PM Changeset in webkit [243345] by achristensen@apple.com
  • 37 edits in trunk/Source/WebKit

Remove last use of LegacySync IPC messages
https://bugs.webkit.org/show_bug.cgi?id=196113

Reviewed by Chris Dumez.

Also rename "Delayed" to "Synchronous" now that there's only one type of synchronous message.

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::syncTerminateWorkerFromClient):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchMessage):

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageSynchronous):
(IPC::handleMessageSynchronousWantsConnection):
(IPC::handleMessageLegacySync): Deleted.
(IPC::handleMessageDelayed): Deleted.
(IPC::handleMessageDelayedWantsConnection): Deleted.

  • PluginProcess/PluginControllerProxy.messages.in:
  • PluginProcess/WebProcessConnection.messages.in:
  • Scripts/webkit/LegacyMessageReceiver-expected.cpp:

(WebKit::WebPage::didReceiveSyncWebPageMessage):

  • Scripts/webkit/MessageReceiver-expected.cpp:

(WebKit::WebPage::didReceiveSyncMessage):

  • Scripts/webkit/MessageReceiverSuperclass-expected.cpp:

(Messages::WebPage::TestSyncMessage::send):
(Messages::WebPage::TestSynchronousMessage::send):
(WebKit::WebPage::didReceiveSyncMessage):
(Messages::WebPage::TestDelayedMessage::send): Deleted.

  • Scripts/webkit/MessagesSuperclass-expected.h:

(Messages::WebPage::TestSynchronousMessage::name):
(Messages::WebPage::TestSynchronousMessage::TestSynchronousMessage):
(Messages::WebPage::TestDelayedMessage::receiverName): Deleted.
(Messages::WebPage::TestDelayedMessage::name): Deleted.
(Messages::WebPage::TestDelayedMessage::TestDelayedMessage): Deleted.
(Messages::WebPage::TestDelayedMessage::arguments const): Deleted.

  • Scripts/webkit/messages.py:
  • Scripts/webkit/messages_unittest.py:
  • Scripts/webkit/test-legacy-messages.in:
  • Scripts/webkit/test-messages.in:
  • Scripts/webkit/test-superclass-messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/Plugins/NPObjectMessageReceiver.messages.in:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/Plugins/PluginProcessProxy.messages.in:
  • UIProcess/WebFullScreenManagerProxy.messages.in:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/WebProcessPool.messages.in:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/WebStorage/StorageManager.messages.in:
  • UIProcess/mac/SecItemShimProxy.messages.in:
  • WebProcess/Plugins/PluginProcessConnection.messages.in:
  • WebProcess/Plugins/PluginProxy.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::syncTerminateWorker):

  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.messages.in:
4:34 PM Changeset in webkit [243344] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Remove an invalid assertion in DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined().
https://bugs.webkit.org/show_bug.cgi?id=196116
<rdar://problem/48976951>

Reviewed by Filip Pizlo.

JSTests:

  • stress/dfg-compare-eq-via-nonSpeculativeNonPeepholeCompareNullOrUndefined.js: Added.

Source/JavaScriptCore:

The DFG backend should not make assumptions about what optimizations the front end
will or will not do. The assertion asserts that the operand cannot be known to be
a cell. However, it is not guaranteed that the front end will fold away this case.
Also, the DFG backend is perfectly capable of generating code to handle the case
where the operand is a cell.

The attached test case demonstrates a case where the operand can be a known cell.
The test needs to be run with the concurrent JIT and GC, and is racy. It used to
trip up this assertion about once every 10 runs or so.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):

4:16 PM Changeset in webkit [243343] by Alan Coon
  • 1 edit in tags/Safari-608.1.11/Source/WebKit/UIProcess/WebProcessPool.cpp

Apply patch. rdar://problem/49128812

4:11 PM Changeset in webkit [243342] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Retry API test in case of failures
https://bugs.webkit.org/show_bug.cgi?id=196004

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(UnApplyPatchIfRequired.doStepIf): Updated doStepIf to include patchFailedAPITests.
(CompileWebKitToT.doStepIf): Ditto.
(RunAPITests.evaluateCommand): Check if tests failed and retry them if required.
(ReRunAPITests): Re-run API tests.
(ReRunAPITests.evaluateCommand): Check if tests failed and retry on clean build if required.
(RunAPITestsWithoutPatch): Run API tests without patch.
(RunAPITestsWithoutPatch.doStepIf):
(RunAPITestsWithoutPatch.hideStepIf):
(RunAPITestsWithoutPatch.evaluateCommand):
(AnalyzeAPITestsResults): Analyze API test results from previous runs.
(AnalyzeAPITestsResults.start):
(AnalyzeAPITestsResults.analyzeResults): Analyze API test results.
(AnalyzeAPITestsResults.getBuildStepByName): Search for a build step by name.
(AnalyzeAPITestsResults.getTestsResults): Get the test results from previous API tesst steps.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Monkey patched FakeBuild.
4:01 PM Changeset in webkit [243341] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Inband Text Track cues interspersed with Data cues can display out of order.
https://bugs.webkit.org/show_bug.cgi?id=196095

Reviewed by Eric Carlson.

The compareCueIntervalForDisplay() comparator depends on a virtual function, isPositionedAbove(TextTrackCue* other),
but this comparison returns inconsistent results for cueA->isPositionedAbove(cueB) and cueB->isPositionedAbove(cueA)
if the two cues are different subclasses of TextTrackCue.

The underlying algorithm should be fixed in a future patch, but for now, remove all non-displaying cues from the array
of activeCues before sorting, rather than after when iterating over the sorted list of activeCues.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay):

3:54 PM Changeset in webkit [243340] by BJ Burg
  • 5 edits in trunk/Source/WebKit

Web Automation: support uploading non-local file paths
https://bugs.webkit.org/show_bug.cgi?id=196081
<rdar://problem/45819897>

Reviewed by Devin Rousso and Joseph Pecoraro.

To support cases where supplied file paths do not exist on the session host, add support for
receiving file contents via Automation.setFilesToSelectForFileUpload.

  • UIProcess/Automation/Automation.json: Add new parameter.
  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::setFilesToSelectForFileUpload):
Add support for receiving and saving file contents to a temporary directory. Rewrite the used paths so
that WebCore knows to look at the revised paths where the file contents have been saved.

(WebKit::WebAutomationSession::platformGenerateLocalFilePathForRemoteFile):
Since WebKit does not have usable FileSystem implementations for all ports, shell out the actual
saving of base64-encoded file data. Provide a Cocoa implementation, since that's what I can test.

  • UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm:

(WebKit::WebAutomationSession::platformGenerateLocalFilePathForRemoteFile):
Use WTF::FileSystem to create a temporary directory, and use Cocoa methods to actually write the file.

3:52 PM Changeset in webkit [243339] by youenn@apple.com
  • 18 edits
    1 move
    3 adds in trunk

Cache API and IDB space usages should be initialized on first quota check
https://bugs.webkit.org/show_bug.cgi?id=195707

Reviewed by Chris Dumez.

Source/WebCore:

Add a way to require IDBServer to create a quota user for a given origin.
Make sure that removing a user might kick-in processing of pending requests.
In the case of processing pending requests, we should not decide on the first task
except if it is triggered by a request space response.
Update processPendingRequests accordingly.

Tests: http/tests/IndexedDB/storage-limit-1.https.html

http/tests/IndexedDB/storage-limit-2.https.html

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::initializeQuotaUser):

  • storage/StorageQuotaManager.cpp:

(WebCore::StorageQuotaManager::removeUser):
(WebCore::StorageQuotaManager::askForMoreSpace):
(WebCore::StorageQuotaManager::processPendingRequests):

  • storage/StorageQuotaManager.h:

Source/WebKit:

When the quota manager is created, make sure it delays quota check decisions until IDB and Cache API quota users are initialized.
For IDB, the creation is synchronous but it may not be synchronous for Cache API.
For that purpose, add a temporary quota user that will stay uninitialized until these two quota users are added.
Once added, the temporary quota user is removed.
The addition of the real users is made asynchronously as this is triggered by the creation of one of the two quota users.

In the case of a Cache API caches being cleared, make sure to reset the size to zero and to redo the quota user initialization dance.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::QuotaUserInitializer::initialize):
(WebKit::QuotaUserInitializer::~QuotaUserInitializer):
(WebKit::QuotaUserInitializer::QuotaUserInitializer):
(WebKit::NetworkProcess::storageQuotaManager):

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::initializeQuotaUser):

  • NetworkProcess/cache/CacheStorageEngine.h:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::clear):

LayoutTests:

Marking http/tests/cache-storage/cache-clearing-origin.https.html as
flaky on iOS as it is already marked flaky in MacOS.

  • platform/mac-wk2/TestExpectations:
  • http/tests/IndexedDB/storage-limit-1.https-expected.txt: Added.
  • http/tests/IndexedDB/storage-limit-1.https.html: Added.
  • http/tests/IndexedDB/storage-limit-2.https-expected.txt: Added.
  • http/tests/IndexedDB/storage-limit-2.https.html: Added.
  • http/tests/IndexedDB/storage-limit.https.html:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
3:51 PM Changeset in webkit [243338] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS build after r243337
https://bugs.webkit.org/show_bug.cgi?id=195935

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(WebCore::playbackSessionModel const): Deleted.

3:36 PM Changeset in webkit [243337] by Brent Fulgham
  • 8 edits in trunk/Source/WebCore

Hardening: Use WeakPtrs in PlaybackSessionInterface{Mac,AVKit}
https://bugs.webkit.org/show_bug.cgi?id=195935
<rdar://problem/49007015>

Reviewed by Eric Carlson.

The PlaybackSessionInterface{Mac,AVKit} implementations store their playback session model
and playback controls manager members as bare pointers, something we've been working
to eliminate.

This patch corrects this oversight.

No new tests since no changes in behavior.

  • platform/cocoa/PlaybackSessionModel.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::playbackSessionModel const): Moved to implementation since WEBCORE_EXPORT is not
supposed to be used with inline methods.

  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm:

(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::playBackControlsManager):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):

3:21 PM Changeset in webkit [243336] by Said Abou-Hallawa
  • 27 edits
    5 adds
    4 deletes in trunk

Remove the SVG tear off objects for SVGPoint, SVGPointList and SVGAnimatedPointList
https://bugs.webkit.org/show_bug.cgi?id=195905

Source/WebCore:

Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2019-03-21
Reviewed by Simon Fraser.

To remove the SVG tear off objects for SVGPoint, SVGPointList and
SVGAnimatedPointList, these changes are needed:

-- Define SVGPoint to be a superclass of SVGValueProperty<FloatPoint>.

-- Define SVGAnimatedPointList to be a superclass of SVGAnimatedPropertyList<SVGPointList>

-- Add SVGPropertyList which is a superclass of SVGList. Its items are

defined to RefCounted. It is the base class of SVGValuePropertyList
and it will be the base class of SVGPathSegList in a later patch.

-- Add SVGValuePropertyList which is the base class of all the lists whose

items are backed by a value objects like SVGPoint. The difference between
SVGPropertyList and SVGValuePropertyList is the former class can store
a Ref pointer of the base class like SVGPathSeg while the later type
has to store the same type for all the items.

-- Add SVGAnimatedPropertyList which is the base class for all the animated

lists. Note that:
1) SVGElement owns SVGAnimatedPropertyList
2) SVGAnimatedPropertyList owns m_baseVal whose type is SVGList
3) m_baseVal owns the items whose type is a superclass of SVGProperty.
When changing an item, it calls its owner which is an SVGList.
SVGList calls its owner which is SVGAnimatedPropertyList.
SVGAnimatedPropertyList calls its owner which SVGElement to commit
the change. Later SVGAnimatedPropertyList::synchronize() is called
which returns the property valueAsString() to update the reflecting
attribute.

-- New accessor, animator and animation function are added to access

and animate a member of type SVGAnimatedPropertyList.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/SVGPathData.cpp:

(WebCore::pathFromCircleElement):
(WebCore::pathFromEllipseElement):
(WebCore::pathFromLineElement):
(WebCore::pathFromPathElement):
(WebCore::pathFromPolygonElement):
(WebCore::pathFromPolylineElement):
(WebCore::pathFromRectElement):
(WebCore::pathFromGraphicsElement):

  • rendering/svg/SVGPathData.h:

The IDL of SVGPolyElement interface requires the following attribute:

readonly attribute SVGPointList points;

For which we return:

SVGPointList& points() { return m_points->baseVal(); }

But for all the other properties we return the currentValue(). So to have
the two functions with the same name, the following function is added:

const SVGPointList& points() const { return m_points->currentValue(); }

This definition requires changing all callers to be const.

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::operator<<):

  • svg/SVGAnimatedPointList.cpp: Removed.
  • svg/SVGAnimatedPointList.h: Removed.
  • svg/SVGAnimatedType.h:

(WebCore::SVGAnimatedType::type const):
This function had a bad design. It was designed to use the index of the
variant as the AnimatedPropertyType. But when some of the types are removed
from SVGValueVariant, this broke things. This fix is temporary till the
class SVGValueVariant is removed.

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::create):

  • svg/SVGExternalResourcesRequired.cpp:
  • svg/SVGParserUtilities.cpp:

(WebCore::pointsListFromSVGData): Deleted.

  • svg/SVGParserUtilities.h:
  • svg/SVGPoint.h:

(WebCore::SVGPoint::create):
(WebCore::SVGPoint::clone const):
(WebCore::SVGPoint::x):
(WebCore::SVGPoint::setX):
(WebCore::SVGPoint::y):
(WebCore::SVGPoint::setY):
(WebCore::SVGPoint::matrixTransform const):
(WebCore::SVGPoint::matrixTransform): Deleted.
(WebCore::SVGPoint::SVGPoint): Deleted.

  • svg/SVGPoint.idl:

matrixTransform() should not throw an exception.

  • svg/SVGPointList.h:

(WebCore::SVGPointList::create):
(WebCore::SVGPointList::parse):
(WebCore::SVGPointList::SVGPointList): Deleted.
Move the parse() and valueAsString() methods to SVGPointList. It is now
a superclass of SVGValuePropertyList. Its items are of type Ref<SVGPoint>.

  • svg/SVGPointListValues.cpp: Removed.
  • svg/SVGPointListValues.h: Removed.
  • svg/SVGPolyElement.cpp:

(WebCore::SVGPolyElement::SVGPolyElement):
(WebCore::SVGPolyElement::parseAttribute):
(WebCore::SVGPolyElement::approximateMemoryCost const):
(WebCore::SVGPolyElement::registerAttributes): Deleted.
(WebCore::SVGPolyElement::points): Deleted.
(WebCore::SVGPolyElement::animatedPoints): Deleted.

  • svg/SVGPolyElement.h:

(WebCore::SVGPolyElement::points const):
(WebCore::SVGPolyElement::points):
(WebCore::SVGPolyElement::animatedPoints):
(WebCore::SVGPolyElement::pointList const): Deleted.
(WebCore::SVGPolyElement::attributeRegistry): Deleted.

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::setCurrentTranslate):
(WebCore::SVGSVGElement::currentTranslate): Deleted.

  • svg/SVGSVGElement.h:
  • svg/SVGSVGElement.idl:

Define currentTranslate property to be of type Ref<SVGPoint>. When requesting
it just return a reference to it.

  • svg/SVGValue.h:
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:
  • svg/properties/SVGAnimatedPropertyList.h: Added.

Define the accessor, the animator and the animated type of SVGPointList.

(WebCore::SVGAnimatedPropertyList::create):
(WebCore::SVGAnimatedPropertyList::~SVGAnimatedPropertyList):
(WebCore::SVGAnimatedPropertyList::baseVal const):
(WebCore::SVGAnimatedPropertyList::baseVal):
(WebCore::SVGAnimatedPropertyList::animVal const):
(WebCore::SVGAnimatedPropertyList::animVal):
(WebCore::SVGAnimatedPropertyList::currentValue const):
(WebCore::SVGAnimatedPropertyList::SVGAnimatedPropertyList):
(WebCore::SVGAnimatedPropertyList::ensureAnimVal):

  • svg/properties/SVGAnimationAdditiveListFunction.h: Added.

(WebCore::SVGAnimationAdditiveListFunction::SVGAnimationAdditiveListFunction):
(WebCore::SVGAnimationAdditiveListFunction::toAtEndOfDuration const):
(WebCore::SVGAnimationAdditiveListFunction::adjustAnimatedList):

  • svg/properties/SVGAnimationAdditiveListFunctionImpl.h: Added.

(WebCore::SVGAnimationPointListFunction::progress):
Define the animation function for animating SVGPointList.

  • svg/properties/SVGAttributeRegistry.h:
  • svg/properties/SVGPropertyList.h: Added.

(WebCore::SVGPropertyList::SVGPropertyList):
(WebCore::SVGPropertyList::~SVGPropertyList):

  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):

  • svg/properties/SVGValuePropertyList.h: Added.

(WebCore::SVGValuePropertyList::operator=):
(WebCore::SVGValuePropertyList::operator Vector<typename PropertyType::ValueType> const):
(WebCore::SVGValuePropertyList::resize):
(WebCore::SVGValuePropertyList::SVGValuePropertyList):

LayoutTests:

Reviewed by Simon Fraser.

  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGPointList-basics.xhtml:

This change is required because SVGPointList will be following the SVG2
specs regarding adding new items to the list.

See https://www.w3.org/TR/SVG/types.html#TermListInterface.

3:04 PM Changeset in webkit [243335] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

JSC::createError should clear exception thrown by errorDescriptionForValue
https://bugs.webkit.org/show_bug.cgi?id=196089

Reviewed by Mark Lam.

errorDescriptionForValue returns a nullString in case of failure, but it
might also throw an OOM exception when resolving a rope string. We need
to clear any potential exceptions thrown by errorDescriptionForValue
before returning the OOM from JSC::createError.

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

3:00 PM Changeset in webkit [243334] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Update queues configurations
https://bugs.webkit.org/show_bug.cgi?id=196074

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/ews-build/config.json: Updated queues from iOS11 to iOS12,

added new bots, reassigned bots for various builders, moved few builders to another scheduler.

2:46 PM Changeset in webkit [243333] by Said Abou-Hallawa
  • 59 edits
    2 deletes in trunk/Source/WebCore

Remove the SVG property tear off objects for SVGAnimatedString
https://bugs.webkit.org/show_bug.cgi?id=196065

Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2019-03-21
Reviewed by Simon Fraser.

-- Define SVGAnimatedString to be SVGAnimatedPrimitiveProperty<String>.

-- Add SVGAnimatedStringAccessor to associate an attribute name with a

pointer to an SVGAnimatedString member of an SVGElement. Given a
pointer to an SVGElement, this accessor will and create an animator
for the animated property.

-- Add SVGAnimatedStringAnimator to animated an SVGAnimatedString.

-- Add SVGAnimationStringFunction which is a discrete function and is

responsible for progressing an animated String over a period of time.

-- Define SVGStringAnimator to be SVGPrimitivePropertyAnimator<String,

SVGAnimationStringFunction>. SVGStringAnimator is responsible for
animating attributes with no reflecting animated properties, e.g.
"font-family".

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::SVGAElement):
(WebCore::SVGAElement::parseAttribute):
(WebCore::SVGAElement::registerAttributes): Deleted.

  • svg/SVGAElement.h:
  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::hasValidAttributeType const):
(WebCore::SVGAnimateElementBase::isDiscreteAnimator const):

  • svg/SVGAnimateElementBase.h:
  • svg/SVGAnimatedString.cpp: Removed.
  • svg/SVGAnimatedString.h: Removed.
  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
The animation controller has to tell whether the animator is discrete or
not. The properties are now registered either in SVGAttributeRegistry which
relies on the tear off objects to know the AnimatedPropertyType of the
property. Or it is registered in SVGPropertyOwnerRegistry which creates
the animators through the accessors. Each animator knows whether it is
discrete or not.

  • svg/SVGAnimatorFactory.h:

(WebCore::SVGAnimatorFactory::create):

  • svg/SVGAttributeAnimationController.cpp:

(WebCore::SVGAttributeAnimationController::isDiscreteAnimator const):

  • svg/SVGAttributeAnimationController.h:
  • svg/SVGAttributeAnimationControllerBase.h:
  • svg/SVGCursorElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::parseAttribute):
(WebCore::SVGElement::registerAttributes): Deleted.

  • svg/SVGElement.h:

(WebCore::SVGElement::isKnownAttribute):
(WebCore::SVGElement::className const):
(WebCore::SVGElement::classNameAnimated):
(WebCore::SVGElement::attributeRegistry): Deleted.

  • svg/SVGExternalResourcesRequired.cpp:
  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::SVGFEBlendElement):
(WebCore::SVGFEBlendElement::registerAttributes):
(WebCore::SVGFEBlendElement::parseAttribute):

  • svg/SVGFEBlendElement.h:
  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
(WebCore::SVGFEColorMatrixElement::registerAttributes):
(WebCore::SVGFEColorMatrixElement::parseAttribute):

  • svg/SVGFEColorMatrixElement.h:
  • svg/SVGFEComponentTransferElement.cpp:

(WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
(WebCore::SVGFEComponentTransferElement::parseAttribute):
(WebCore::SVGFEComponentTransferElement::registerAttributes): Deleted.

  • svg/SVGFEComponentTransferElement.h:
  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::SVGFECompositeElement):
(WebCore::SVGFECompositeElement::registerAttributes):
(WebCore::SVGFECompositeElement::parseAttribute):

  • svg/SVGFECompositeElement.h:
  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
(WebCore::SVGFEConvolveMatrixElement::registerAttributes):
(WebCore::SVGFEConvolveMatrixElement::parseAttribute):

  • svg/SVGFEConvolveMatrixElement.h:
  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
(WebCore::SVGFEDiffuseLightingElement::parseAttribute):
(WebCore::SVGFEDiffuseLightingElement::registerAttributes): Deleted.

  • svg/SVGFEDiffuseLightingElement.h:
  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
(WebCore::SVGFEDisplacementMapElement::registerAttributes):
(WebCore::SVGFEDisplacementMapElement::parseAttribute):

  • svg/SVGFEDisplacementMapElement.h:
  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::SVGFEDropShadowElement):
(WebCore::SVGFEDropShadowElement::parseAttribute):
(WebCore::SVGFEDropShadowElement::svgAttributeChanged):
(WebCore::SVGFEDropShadowElement::registerAttributes): Deleted.

  • svg/SVGFEDropShadowElement.h:
  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::registerAttributes):
(WebCore::SVGFEGaussianBlurElement::parseAttribute):

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEMergeNodeElement.cpp:

(WebCore::SVGFEMergeNodeElement::SVGFEMergeNodeElement):
(WebCore::SVGFEMergeNodeElement::parseAttribute):
(WebCore::SVGFEMergeNodeElement::registerAttributes): Deleted.

  • svg/SVGFEMergeNodeElement.h:
  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::SVGFEMorphologyElement):
(WebCore::SVGFEMorphologyElement::registerAttributes):
(WebCore::SVGFEMorphologyElement::parseAttribute):

  • svg/SVGFEMorphologyElement.h:
  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
(WebCore::SVGFEOffsetElement::parseAttribute):
(WebCore::SVGFEOffsetElement::svgAttributeChanged):
(WebCore::SVGFEOffsetElement::registerAttributes): Deleted.

  • svg/SVGFEOffsetElement.h:
  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
(WebCore::SVGFESpecularLightingElement::parseAttribute):
(WebCore::SVGFESpecularLightingElement::registerAttributes): Deleted.

  • svg/SVGFESpecularLightingElement.h:
  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::SVGFETileElement):
(WebCore::SVGFETileElement::parseAttribute):
(WebCore::SVGFETileElement::registerAttributes): Deleted.

  • svg/SVGFETileElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::SVGFilterPrimitiveStandardAttributes):
(WebCore::SVGFilterPrimitiveStandardAttributes::registerAttributes):
(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):

  • svg/SVGFilterPrimitiveStandardAttributes.h:

(WebCore::SVGFilterPrimitiveStandardAttributes::result const):
(WebCore::SVGFilterPrimitiveStandardAttributes::resultAnimated):

  • svg/SVGLegacyAttributeAnimationController.cpp:

(WebCore::SVGLegacyAttributeAnimationController::isDiscreteAnimator const):

  • svg/SVGLegacyAttributeAnimationController.h:
  • svg/SVGMPathElement.h:
  • svg/SVGScriptElement.h:
  • svg/SVGURIReference.cpp:

(WebCore::SVGURIReference::SVGURIReference):
(WebCore::SVGURIReference::isKnownAttribute):
(WebCore::SVGURIReference::parseAttribute):
(WebCore::SVGURIReference::registerAttributes): Deleted.
(WebCore::SVGURIReference::href const): Deleted.
(WebCore::SVGURIReference::hrefAnimated): Deleted.

  • svg/SVGURIReference.h:

(WebCore::SVGURIReference::href const):
(WebCore::SVGURIReference::hrefAnimated):

  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
  • svg/properties/SVGAnimatedPropertyImpl.h:
  • svg/properties/SVGAttributeRegistry.h:
  • svg/properties/SVGPrimitivePropertyAnimatorImpl.h:
  • svg/properties/SVGPropertyAnimatorFactory.h:

(WebCore::SVGPropertyAnimatorFactory::createStringAnimator):
(WebCore::SVGPropertyAnimatorFactory::attributeAnimatorCreator):

  • svg/properties/SVGPropertyOwnerRegistry.h:

(WebCore::SVGPropertyOwnerRegistry::registerProperty):

2:46 PM Changeset in webkit [243332] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Generate status-bubble hover-over messages (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=195680
<rdar://problem/48903534>

Unreviewed infrastructure fix.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble._build_bubble): Do not append to details_message in the cases in which it wasn't defined earlier.

2:43 PM Changeset in webkit [243331] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Do not insert the first-letter anonymous container until after we've constructed the first-letter renderer.
https://bugs.webkit.org/show_bug.cgi?id=195919
<rdar://problem/48573434>

Reviewed by Brent Fulgham.

Source/WebCore:

When the container is injected too early, we might end up removing it as part of the collapsing logic
while the text renderer is being removed (replaced with the first letter + remaining text).

Test: fast/css/first-letter-and-float-crash.html

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

LayoutTests:

  • fast/css/first-letter-and-float-crash-expected.txt: Added.
  • fast/css/first-letter-and-float-crash.html: Added.
  • platform/mac/TestExpectations:
2:36 PM Changeset in webkit [243330] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

B3::Opcode can fit in a single byte, shrinking B3Value by 8 bytes
https://bugs.webkit.org/show_bug.cgi?id=196014

Reviewed by Keith Miller.

B3::Opcode has less than one hundred cases, so it can easily fit in one byte (from two currently)
This shrinks B3::Kind from 4 bytes to 2 (by removing the byte of padding at the end).
This in turns eliminate padding from B3::Value, shrinking it by 8 bytes (out of 80).

  • b3/B3Opcode.h:
2:16 PM Changeset in webkit [243329] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][macOS] Fix sandbox call violations
https://bugs.webkit.org/show_bug.cgi?id=195809
<rdar://problem/48829655>

Reviewed by Brent Fulgham.

An additional syscall needs to be added to the sandbox allow list.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
2:15 PM Changeset in webkit [243328] by eric.carlson@apple.com
  • 28 edits in trunk

Add UI process WebRTC runtime logging.
https://bugs.webkit.org/show_bug.cgi?id=196020
<rdar://problem/49071443>

Reviewed by Youenn Fablet.

Source/WebCore:

  • inspector/agents/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::getLoggingChannels): Deleted.
(WebCore::channelConfigurationForString): Deleted.
(WebCore::WebConsoleAgent::setLoggingChannelLevel): Deleted.

  • inspector/agents/WebConsoleAgent.h:
  • inspector/agents/page/PageConsoleAgent.cpp:

(WebCore::PageConsoleAgent::PageConsoleAgent): Change 'context' parameter from
WebAgentContext to PageAgentContext. Store the inspected page for later use.
(WebCore::PageConsoleAgent::getLoggingChannels): Moved from WebConsoleAgent.
(WebCore::channelConfigurationForString): Ditto.
(WebCore::PageConsoleAgent::setLoggingChannelLevel): Moved from WebConsoleAgent.
Call the inspected page to actually change the log channel configuration.

  • inspector/agents/page/PageConsoleAgent.h:
  • page/ChromeClient.h:
  • page/Page.cpp:

(WebCore::Page::configureLoggingChannel): New.

  • page/Page.h:

Source/WebKit:

  • Platform/Logging.cpp:

(WebKit::getLogChannel): New.

  • Platform/Logging.h:
  • Shared/WebCoreArgumentCoders.h: Add coders for WTFLogChannelState and WTFLogLevel.

Add runtime logging.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture):
(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::clearCachedState):
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied):
(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted):
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::grantAccess):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionInvalidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::processUserMediaPermissionValidRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame):
(WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired):
(WebKit::UserMediaPermissionRequestManagerProxy::logChannel const):
(WebKit::convertEnumerationToString):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

(WTF::LogArgument<WebKit::UserMediaPermissionRequestManagerProxy::RequestAction>::toString):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::convertEnumerationToString): Add an enum specialization for logging.

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WTF::LogArgument<WebKit::UserMediaPermissionRequestProxy::UserMediaAccessDenialReason>::toString): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::logger):
(WebKit::WebPageProxy::configureLoggingChannel):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::configureLoggingChannel):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::configureLoggingChannel):

  • WebProcess/WebPage/WebPage.h:

Source/WTF:

  • wtf/Logger.h:

(WTF::LogArgument::toString): Add long long and unsigned long long variants.

LayoutTests:

  • inspector/console/webcore-logging.html:
  • inspector/console/webcore-logging-expected.txt:
2:06 PM Changeset in webkit [243327] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKit

Stop using LegacySync messages in WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=196056

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::loadRecentSearches):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::backForwardGoToItem):
(WebKit::ProvisionalPageProxy::didReceiveSyncMessage):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleSynchronousMessage):
(WebKit::WebPageProxy::hasInsecureContent):
(WebKit::WebPageProxy::accessibilityScreenToRootView):
(WebKit::WebPageProxy::rootViewToAccessibilityScreen):
(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::backForwardGoToItem):
(WebKit::WebPageProxy::backForwardGoToItemShared):
(WebKit::WebPageProxy::backForwardItemAtIndex):
(WebKit::WebPageProxy::backForwardBackListCount):
(WebKit::WebPageProxy::backForwardForwardListCount):
(WebKit::WebPageProxy::canUndoRedo):
(WebKit::WebPageProxy::executeUndoRedo):
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::checkSpellingOfString):
(WebKit::WebPageProxy::checkGrammarOfString):
(WebKit::WebPageProxy::spellingUIIsShowing):
(WebKit::WebPageProxy::getGuessesForWord):
(WebKit::WebPageProxy::substitutionsPanelIsShowing):
(WebKit::WebPageProxy::showCorrectionPanel):
(WebKit::WebPageProxy::dismissCorrectionPanel):
(WebKit::WebPageProxy::dismissCorrectionPanelSoon):
(WebKit::WebPageProxy::recordAutocorrectionResponse):
(WebKit::WebPageProxy::dictationAlternatives):
(WebKit::WebPageProxy::wrapCryptoKey):
(WebKit::WebPageProxy::unwrapCryptoKey):
(WebKit::WebPageProxy::signedPublicKeyAndChallengeString):
(WebKit::WebPageProxy::serializedAttachmentDataForIdentifiers):
(WebKit::WebPageProxy::speechSynthesisVoiceList):
(WebKit::WebPageProxy::printMainFrame): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::createPluginContainer):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::interpretKeyEvent):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::getIsSpeaking):
(WebKit::WebPageProxy::executeSavedCommandBySelector):
(WebKit::WebPageProxy::showPDFContextMenu):

2:04 PM Changeset in webkit [243326] by achristensen@apple.com
  • 6 edits in trunk/Source/WebKit

Stop using LegacySync messages in WebPage
https://bugs.webkit.org/show_bug.cgi?id=196057

Reviewed by Chris Dumez.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::markLayersVolatile):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::getCenterForZoomGesture):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::readSelectionFromPasteboard):
(WebKit::WebPage::getStringSelectionForPasteboard):
(WebKit::WebPage::getDataSelectionForPasteboard):
(WebKit::WebPage::shouldDelayWindowOrderingEvent):
(WebKit::WebPage::acceptsFirstMouse):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::replaceSelectionWithPasteboardData):
(WebKit::WebPage::readSelectionFromPasteboard):
(WebKit::WebPage::getStringSelectionForPasteboard):
(WebKit::WebPage::getDataSelectionForPasteboard):
(WebKit::WebPage::shouldDelayWindowOrderingEvent):
(WebKit::WebPage::acceptsFirstMouse):

2:03 PM Changeset in webkit [243325] by achristensen@apple.com
  • 7 edits in trunk/Source/WebKit

Stop using LegacySync messages in WebPasteboardProxy
https://bugs.webkit.org/show_bug.cgi?id=196060

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::pasteboardCopy):
(WebKit::WebPasteboardProxy::getPasteboardChangeCount):
(WebKit::WebPasteboardProxy::getPasteboardUniqueName):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):
(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getNumberOfFiles):
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::writeToClipboard):
(WebKit::WebPasteboardProxy::readFromClipboard):

  • UIProcess/wpe/WebPasteboardProxyWPE.cpp:

(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):

1:51 PM Changeset in webkit [243324] by aestes@apple.com
  • 42 edits
    2 copies
    4 adds in trunk

[iOS] Apple Pay should be available in documents with no user agent scripts
https://bugs.webkit.org/show_bug.cgi?id=196061
<rdar://problem/48649391>

Reviewed by Brady Eidson.

Source/WebCore:

On platforms that support APPLE_PAY_REMOTE_UI, we can enable Apple Pay JS and Payment Request
by default in all WebKit clients.

In order to protect the privacy of Apple Pay transactions, this patch implements the
following restrictions on API usage:

  1. If user agent scripts have been evaluated in a document, Apple Pay APIs will no longer be

available for the duration of the document's lifetime.

  1. If an Apple Pay transaction has started in a document, user agent scripts will no longer

be evaluated for the duration of the document's lifetime.

These restrictions are disabled for clients with the
com.apple.private.WebKit.UnrestrictedApplePay entitlement and platforms that do support
Apple Pay but don't support APPLE_PAY_REMOTE_UI.

Added new API tests.

  • Modules/applepay/ApplePayRequestBase.cpp:

(WebCore::convertAndValidate):

  • Modules/applepay/ApplePayRequestBase.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::create):
(WebCore::ApplePaySession::supportsVersion):
(WebCore::ApplePaySession::canMakePayments):
(WebCore::ApplePaySession::canMakePaymentsWithActiveCard):
(WebCore::ApplePaySession::openPaymentSetup):
(WebCore::ApplePaySession::begin):

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySession.idl:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::supportsVersion const):
(WebCore::PaymentCoordinator::canMakePayments):
(WebCore::PaymentCoordinator::canMakePaymentsWithActiveCard):
(WebCore::PaymentCoordinator::openPaymentSetup):
(WebCore::PaymentCoordinator::beginPaymentSession):
(WebCore::PaymentCoordinator::validatedPaymentNetwork const):
(WebCore::PaymentCoordinator::shouldAllowApplePay const):
(WebCore::PaymentCoordinator::shouldAllowUserAgentScripts const):

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinatorClient.h:

(WebCore::PaymentCoordinatorClient::supportsUnrestrictedApplePay const):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::show):
(WebCore::ApplePayPaymentHandler::canMakePayment):
(WebCore::ApplePayPaymentHandler::version const):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::show):
(WebCore::PaymentRequest::canMakePayment):

Plumbed a Document& through to the various places that call into PaymentCoordinator for use
by shouldAllowApplePay and shouldAllowUserAgentScripts.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeUserAgentScriptInWorld):
(WebCore::ScriptController::shouldAllowUserAgentScripts const):

  • bindings/js/ScriptController.h:

Added executeUserAgentScriptInWorld, which calls executeScriptInWorld if allowed.

  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

Changed to only evaluate the chrome client's plug-in extra script if allowed, and to mark
the document as having evaluated user agent scripts.

(WebCore::Document::hasEvaluatedUserAgentScripts const):
(WebCore::Document::isRunningUserScripts const):
(WebCore::Document::setAsRunningUserScripts):
(WebCore::Document::setHasEvaluatedUserAgentScripts):
(WebCore::Document::hasStartedApplePaySession const):
(WebCore::Document::setHasStartedApplePaySession):

  • dom/Document.h:

Added helper functions to set state on the top document.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):

Removed call to topDocument() now that isRunningUserScripts() always checks the top document.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

Changed to only inject the user script if allowed.

  • page/Settings.yaml:
  • page/SettingsDefaultValues.h:

Enabled Apple Pay by default on platforms that enable APPLE_PAY_REMOTE_UI.

  • testing/Internals.cpp:

(WebCore::Internals::setAsRunningUserScripts):
(WebCore::Internals::setHasStartedApplePaySession):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.idl:

Added some internal interfaces for use by TestWebKitAPI.

Source/WebKit:

  • Shared/AuxiliaryProcess.h:
  • Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::parentProcessHasEntitlement):

Added a convenience function for checking parent process entitlements.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

Enabled Apple Pay by default on platforms that enable APPLE_PAY_REMOTE_UI.

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::supportsUnrestrictedApplePay const):

  • WebProcess/ApplePay/WebPaymentCoordinator.h:

Implemented supportsUnrestrictedApplePay by checking for the
com.apple.private.WebKit.UnrestrictedApplePay entitlement on platforms that enable
APPLE_PAY_REMOTE_UI.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(didClearWindowObjectForFrame):
(setUpPageLoaderClient):

Added injected bundle SPI that TestWebKitAPI uses to inject the WebCore Internals interface.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

Changed to call ScriptController::executeUserAgentScriptInWorld.

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

Tools:

Added API tests and related infrastructure.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ApplePay.mm: Added.

(-[TestApplePayScriptMessageHandler initWithExpectation:]):
(-[TestApplePayScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-active-session.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-availability-in-iframe.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/apple-pay-availability.html: Added.
  • TestWebKitAPI/cocoa/TestProtocol.mm:

(-[TestProtocol startLoading]):

  • TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugInWithInternals.h: Added.
  • TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugInWithInternals.mm: Added.

(-[WebProcessPlugInWithInternals webProcessPlugIn:didCreateBrowserContextController:]):
(-[WebProcessPlugInWithInternals webProcessPlugInBrowserContextController:didClearWindowObjectForFrame:inScriptWorld:]):

1:47 PM Changeset in webkit [243323] by Michael Catanzaro
  • 7 edits in trunk/Source/JavaScriptCore

Unreviewed, more clang 3.8 build fixes
https://bugs.webkit.org/show_bug.cgi?id=195947
<rdar://problem/49069219>

In the spirit of making our code worse to please old compilers....

  • bindings/ScriptValue.cpp:

(Inspector::jsToInspectorValue):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::create):
(JSC::GetterSetterAccessCase::clone const):

  • bytecode/InstanceOfAccessCase.cpp:

(JSC::InstanceOfAccessCase::clone const):

  • bytecode/IntrinsicGetterAccessCase.cpp:

(JSC::IntrinsicGetterAccessCase::clone const):

  • bytecode/ModuleNamespaceAccessCase.cpp:

(JSC::ModuleNamespaceAccessCase::clone const):

  • bytecode/ProxyableAccessCase.cpp:

(JSC::ProxyableAccessCase::clone const):

1:42 PM Changeset in webkit [243322] by youenn@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

Fix one of RTCRtpTransceiver-stop.html test title
https://bugs.webkit.org/show_bug.cgi?id=196090

Reviewed by Brent Fulgham.

  • web-platform-tests/webrtc/RTCRtpTransceiver-stop-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver-stop.html:
1:39 PM Changeset in webkit [243321] by Jonathan Bedard
  • 3 edits in trunk/Tools

REGRESSSION (r243297): webkitpy tests broken
https://bugs.webkit.org/show_bug.cgi?id=196108

Reviewed by Aakash Jain.

r243297 updated contributors.json, which broke a few unit tests.

  • Scripts/webkitpy/tool/bot/irc_command_unittest.py:

(IRCCommandTest.test_whois):

  • Scripts/webkitpy/tool/commands/suggestnominations_unittest.py:
1:31 PM Changeset in webkit [243320] by Chris Dumez
  • 5 edits in trunk

WebKit should throw when trying to create a WKWebView with a related view that is using a different data store
https://bugs.webkit.org/show_bug.cgi?id=196041
<rdar://problem/49083230>

Reviewed by Alex Christensen.

Source/WebKit:

WebKit should throw when trying to create a WKWebView with a related view that is using a different data store.
We do not support having several WebsiteDataStores sharing the same WebProcess.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:

(TEST):

1:23 PM Changeset in webkit [243319] by achristensen@apple.com
  • 52 edits
    6 adds in trunk

Add SPI to inform applications of WKContentRuleList actions
https://bugs.webkit.org/show_bug.cgi?id=195965
<rdar://problem/42664365>

Reviewed by Geoff Garen.

Source/WebCore:

We already had SPI to inform the application of notifications.
In order to inform it about other actions, I needed to put them in a different structure.
Basically, instead of a Vector<Action> I use a Vector<Vector<Action>> that contains the same actions.
That way we can give one callback per WKContentRuleList.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionActions.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadEncodedRules):

  • contentextensions/ContentExtensionRule.cpp:

(WebCore::ContentExtensions::Action::isolatedCopy const):

  • contentextensions/ContentExtensionRule.h:

(WebCore::ContentExtensions::Action::operator== const):
(WebCore::ContentExtensions::Action::setExtensionIdentifier): Deleted.
(WebCore::ContentExtensions::Action::extensionIdentifier const): Deleted.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForPingLoad):
(WebCore::ContentExtensions::applyResultsToRequest):
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad): Deleted.
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForPingLoad): Deleted.
(WebCore::ContentExtensions::applyBlockedStatusToRequest): Deleted.

  • contentextensions/ContentExtensionsBackend.h:
  • contentextensions/ContentRuleListResults.h: Added.

(WebCore::ContentRuleListResults::Result::shouldNotifyApplication const):
(WebCore::ContentRuleListResults::shouldNotifyApplication const):
(WebCore::ContentRuleListResults::encode const):
(WebCore::ContentRuleListResults::decode):
(WebCore::ContentRuleListResults::Result::encode const):
(WebCore::ContentRuleListResults::Result::decode):
(WebCore::ContentRuleListResults::Summary::encode const):
(WebCore::ContentRuleListResults::Summary::decode):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::subresourcesAllowReuse const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/PingLoader.cpp:

(WebCore::processContentRuleListsForLoad):
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::processContentExtensionRulesForLoad): Deleted.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::applyResults):
(WebCore::CachedResourceRequest::applyBlockedStatus): Deleted.

  • loader/cache/CachedResourceRequest.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::contentRuleListNotification):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::open):

  • page/UserContentProvider.cpp:

(WebCore::UserContentProvider::processContentRuleListsForLoad):
(WebCore::UserContentProvider::actionsForResourceLoad):
(WebCore::UserContentProvider::processContentExtensionRulesForLoad): Deleted.

  • page/UserContentProvider.h:

Source/WebKit:

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::processContentRuleListsForLoad):
(WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): Deleted.

  • NetworkProcess/NetworkLoadChecker.h:
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::contentRuleListNotification):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::contentRuleListNotification):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contentRuleListNotification):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::contentRuleListNotification):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::allActionsForResourceLoad):
(TestWebKitAPI::testRequest):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(Notification::description):
(Notification::operator== const):
(toVector):
(-[ContentRuleListNotificationDelegate _webView:URL:contentRuleListIdentifiers:notifications:]):
(-[ContentRuleListNotificationDelegate _webView:contentRuleListWithIdentifier:performedActionOnURL:blockedLoad:blockedCookies:madeHTTPS:notifications:]):
(makeContentRuleList):
(TEST):
(makeWarnContentRuleList): Deleted.

LayoutTests:

  • http/tests/contentextensions/popups-expected.txt:

Because popups now use UserContentProvider.processContentRuleListsForLoad like everything else,
it now prints messages to the debug console. That is a desired improvement, so expectations are updated accordingly.

1:20 PM Changeset in webkit [243318] by Simon Fraser
  • 11 edits
    4 adds in trunk

Add an internal feature flag to disable the -webkit-overflow-scrolling CSS property
https://bugs.webkit.org/show_bug.cgi?id=196058
rdar://problem/49078202

Reviewed by Antti Koivisto.
Source/WebCore:

Add an internal setting called "legacyOverflowScrollingTouchEnabled", initially
on by default.

When disabled, it makes the -webkit-overflow-scrolling property be unsupported.

Tests: fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking.html

fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • page/Settings.yaml:

Source/WebKit:

Add an internal feature flag called "LegacyOverflowScrollingTouchEnabled", initially
on by default.

  • Shared/WebPreferences.yaml:

LayoutTests:

Add tests testing that the stacking-context side-effects -webkit-overflow-scrolling:touch
go away when it's disabled.

  • fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking-expected.html: Added.
  • fast/scrolling/ios/overflow-scrolling-touch-disabled-stacking.html: Added.
  • fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking-expected.html: Added.
  • fast/scrolling/ios/overflow-scrolling-touch-enabled-stacking.html: Added.
12:55 PM Changeset in webkit [243317] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test failures after r243269.

  • inspector/timeline/line-column-expected.txt:
12:54 PM Changeset in webkit [243316] by Antti Koivisto
  • 11 edits
    2 adds in trunk

UI-process hit-testing needs to know about containing block relationships
https://bugs.webkit.org/show_bug.cgi?id=195845
<rdar://problem/48949633>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/scrolling/ios/overflow-scroll-overlap-5.html

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/cocoa/ScrollingTreePositionedNode.h:

(WebCore::ScrollingTreePositionedNode::layer const):

Source/WebKit:

Test: fast/scrolling/ios/overflow-scroll-overlap-5.html

When an overflow scroller contains a positioned element the element may not be on a descendant layer of the scroller,
yet should move along with it. This needs to be taken into account in UI-side hit testing.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:

(WebKit::RemoteLayerTreeNode::nonAncestorScrollContainerIDs const):
(WebKit::RemoteLayerTreeNode::addNonAncestorScrollContainerID):
(WebKit::RemoteLayerTreeNode::clearNonAncestorScrollContainerIDs):

Maintain non-ancestor scrolling relationships for layers.

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::commitScrollingTreeState):
(WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::isScrolledBy):

Helper to figure out who scrolls who.

(-[UIView _web_findDescendantViewAtPoint:withEvent:]):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations):

After commit, pull the non-ancestor scrolling relationships from the scrolling tree and update the layer tree.

LayoutTests:

  • fast/scrolling/ios/overflow-scroll-overlap-5-expected.txt: Added.
  • fast/scrolling/ios/overflow-scroll-overlap-5.html: Added.
12:52 PM Changeset in webkit [243315] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Cleanup reset state.
https://bugs.webkit.org/show_bug.cgi?id=196076
<rdar://problem/49107931>

Reviewed by Simon Fraser.

stopObservingPendingActivities() is a subset of reset() and call it when we've observed a visible change.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::willNotProceedWithClick):
(WebCore::ContentChangeObserver::stopObservingPendingActivities):
(WebCore::ContentChangeObserver::reset):
(WebCore::ContentChangeObserver::didSuspendActiveDOMObjects):
(WebCore::ContentChangeObserver::willDetachPage):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::cancelPendingActivities): Deleted.

  • page/ios/ContentChangeObserver.h:
12:21 PM Changeset in webkit [243314] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline test after failure in 243211.
https://bugs.webkit.org/show_bug.cgi?id=195934.

  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
12:21 PM Changeset in webkit [243313] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • page/ios/ContentChangeObserver.h:
12:14 PM Changeset in webkit [243312] by ysuzuki@apple.com
  • 14 edits
    1 add in trunk/Source/JavaScriptCore

[JSC] Do not create JIT related data under non-JIT mode
https://bugs.webkit.org/show_bug.cgi?id=195982

Reviewed by Mark Lam.

We avoid creations of JIT related data structures under non-JIT mode.
This patch removes the following allocations.

  1. JITThunks
  2. FTLThunks
  3. FixedVMPoolExecutableAllocator
  4. noJITValueProfileSingleton since it is no longer used
  5. ARM disassembler should be initialized when it is used
  6. Wasm related data structures are accidentally allocated if VM::canUseJIT() == false && Options::useWebAssembly() == true. Add Wasm::isSupported() function to check the both conditions.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):

  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::~FixedVMPoolExecutableAllocator):
(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::ExecutableAllocator::initialize):
(JSC::ExecutableAllocator::initializeAllocator): Deleted.
(JSC::ExecutableAllocator::ExecutableAllocator): Deleted.
(JSC::ExecutableAllocator::~ExecutableAllocator): Deleted.

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocatorBase::isValid const):
(JSC::ExecutableAllocatorBase::underMemoryPressure):
(JSC::ExecutableAllocatorBase::memoryPressureMultiplier):
(JSC::ExecutableAllocatorBase::dumpProfile):
(JSC::ExecutableAllocatorBase::allocate):
(JSC::ExecutableAllocatorBase::setJITEnabled):
(JSC::ExecutableAllocatorBase::isValidExecutableMemory):
(JSC::ExecutableAllocatorBase::committedByteCount):
(JSC::ExecutableAllocatorBase::getLock const):
(JSC::ExecutableAllocator::isValid const): Deleted.
(JSC::ExecutableAllocator::underMemoryPressure): Deleted.
(JSC::ExecutableAllocator::memoryPressureMultiplier): Deleted.
(JSC::ExecutableAllocator::allocate): Deleted.
(JSC::ExecutableAllocator::setJITEnabled): Deleted.
(JSC::ExecutableAllocator::isValidExecutableMemory): Deleted.
(JSC::ExecutableAllocator::committedByteCount): Deleted.
(JSC::ExecutableAllocator::getLock const): Deleted.

  • jsc.cpp:

(functionWebAssemblyMemoryMode):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/VM.cpp:

(JSC::enableAssembler):
(JSC::VM::canUseAssembler):
(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/WasmCapabilities.h: Added.

(JSC::Wasm::isSupported):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::enableFastMemory):

12:09 PM Changeset in webkit [243311] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Fix JSC build with newer ICU
https://bugs.webkit.org/show_bug.cgi?id=196098

Reviewed by Keith Miller.

IntlDateTimeFormat and IntlNumberFormat have switch statement over ICU's enums. However it lacks "default" clause so that
the compile error occurs when a new enum value is added in ICU side. We should have "default" clause which just fallbacks
"unknown"_s case. The behavior is not changed since we already have return "unknown"_s; statement anyway after the
switch statement. This patch just suppresses a compile error.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::partTypeString):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::partTypeString):

12:01 PM Changeset in webkit [243310] by Alan Bujtas
  • 3 edits
    8 adds in trunk

[ContentChangeObserver] Start tracking implicit transitions at mousemove
https://bugs.webkit.org/show_bug.cgi?id=196054
<rdar://problem/49093840>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes the hover menu issue on seriouseats.com. After tapping on the menu items, the submenus show up now.

  1. Start observing at mousemove
  2. Check if the style change is synchronous or not and start observing it accordingly.

Tests: fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove.html

fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove.html
fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove.html
fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::adjustObservedState):

LayoutTests:

  • fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove-expected.txt: Added.
  • fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove.html: Added.
  • fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-expected.txt: Added.
  • fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove.html: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove-expected.txt: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove.html: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start-expected.txt: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start.html: Added.
11:58 AM Changeset in webkit [243309] by Simon Fraser
  • 5 edits
    2 adds in trunk

Absolute in stacking-context scroller jiggles when scrolled
https://bugs.webkit.org/show_bug.cgi?id=196010

Reviewed by Zalan Bujtas.

Source/WebCore:

Updating compositing layers after a scroll (in a compositing update on the main thread)
failed to traverse to an absolute layer inside a stacking-context overflow:scroll,
because the overflow's layer didn't have the "hasCompositingAncestor" bit set on it.

This happened because childState.subtreeIsCompositing wasn't being set when indirect
reasons trigger compositing. So clean up RenderLayerCompositor::computeCompositingRequirements()
to set childState.subtreeIsCompositing for "late" compositing decisions, and move the
"Subsequent layers in the parent stacking context also need to composite" chunk
down to after the last compositing decision has been made.

Test: compositing/overflow/absolute-in-overflow.html

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/cocoa/ScrollingTreePositionedNode.mm:

(WebCore::ScrollingTreePositionedNode::applyLayerPositions):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):

LayoutTests:

  • compositing/overflow/absolute-in-overflow-expected.html: Added.
  • compositing/overflow/absolute-in-overflow.html: Added.
11:57 AM Changeset in webkit [243308] by timothy@apple.com
  • 3 edits in trunk/Tools

Style check error "WK_MAC_TBA is neither a version number nor WK_IOS_TBA" is confusing.
https://bugs.webkit.org/show_bug.cgi?id=196088

Reviewed by Brian Burg.

Fix the error messages used when looking for macos(WK_IOS_TBA) or ios(WK_MAC_TBA).
Support checks when only one platform is specified. Also deprecate macosx() and
force the use of macos() instead.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_min_versions_of_wk_api_available):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_min_versions_of_wk_api_available):

11:49 AM Changeset in webkit [243307] by Alan Bujtas
  • 4 edits
    8 adds in trunk

[ContentChangeObserver] Start tracking implicit transitions at touchStart
https://bugs.webkit.org/show_bug.cgi?id=196051
<rdar://problem/49092952>

Reviewed by Simon Fraser.

Source/WebCore:

This patch enables transition tracking on touchStart.

  1. Start observing for new transitions at touchStart
  2. Stop observing at touchEnd
  3. Check the next style recalc when the transition is finished (at onAnimationEnd we don't yet have the final computed style).
  4. Remove the tracked transition when it is canceled.

Tests: fast/events/touch/ios/content-observation/0ms-transition-on-touch-start.html

fast/events/touch/ios/content-observation/100ms-transition-on-touch-start.html
fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start.html
fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didAddTransition):
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::didRemoveTransition):
(WebCore::ContentChangeObserver::adjustObservedState):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::setShouldObserveTransitions):
(WebCore::ContentChangeObserver::clearObservedTransitions):
(WebCore::ContentChangeObserver::hasObservedTransition const):
(WebCore::ContentChangeObserver::hasPendingActivity const):

LayoutTests:

  • fast/events/touch/ios/content-observation/0ms-transition-on-touch-start-expected.txt: Added.
  • fast/events/touch/ios/content-observation/0ms-transition-on-touch-start.html: Added.
  • fast/events/touch/ios/content-observation/100ms-transition-on-touch-start-expected.txt: Added.
  • fast/events/touch/ios/content-observation/100ms-transition-on-touch-start.html: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-expected.txt: Added.
  • fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start.html: Added.
  • fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove-expected.txt: Added.
  • fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove.html: Added.
11:46 AM Changeset in webkit [243306] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

11:38 AM Changeset in webkit [243305] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Track hidden elements only while transitioning.
https://bugs.webkit.org/show_bug.cgi?id=196050
<rdar://problem/49092037>

Reviewed by Simon Fraser.

Use the existing isConsideredHidden() logic to decide whether the current transition should be tracked.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::isConsideredHidden):
(WebCore::ContentChangeObserver::didAddTransition):
(WebCore::ContentChangeObserver::StyleChangeScope::StyleChangeScope):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
(WebCore::ContentChangeObserver::StyleChangeScope::isConsideredHidden const): Deleted.

  • page/ios/ContentChangeObserver.h:
11:33 AM Changeset in webkit [243304] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[ContentChangeObserver] Add support for observing implicit transitions
https://bugs.webkit.org/show_bug.cgi?id=195914
<rdar://problem/49091959>

Reviewed by Simon Fraser.

This patch is in preparation for observing elements with property "left" implicit transitions.

This is not a continuous tracking, we are only interested in the start and the end state.
The idea here is to register hidden elements only and check if they become visible by
the end of the transition (and ignore if the transition gets "canceled").

  • page/animation/AnimationBase.h:
  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::ImplicitAnimation):
(WebCore::ImplicitAnimation::~ImplicitAnimation):
(WebCore::ImplicitAnimation::clear):
(WebCore::ImplicitAnimation::onAnimationEnd):

  • page/animation/ImplicitAnimation.h:
  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didAddTransition):
(WebCore::ContentChangeObserver::removeTransitionIfNeeded):
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::didRemoveTransition):
(WebCore::ContentChangeObserver::didInstallDOMTimer):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservingTransitions const):
(WebCore::ContentChangeObserver::isObservedPropertyForTransition const):

11:22 AM Changeset in webkit [243303] by Devin Rousso
  • 17 edits in trunk/Source/WebCore

Web Inspector: Page: lazily create the agent
https://bugs.webkit.org/show_bug.cgi?id=195592
<rdar://problem/48791916>

Reviewed by Timothy Hatcher.

No change in functionality.

Have more agents save the inspected Page so they don't need to access it via the
InspectorPageAgent. Make some of InspectorPageAgent's functions static so other
agents can use them without needing to have access to an enabled InspectorPageAgent.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::createLazyAgents):

  • inspector/agents/InspectorPageAgent.h:

(WebCore::InspectorPageAgent::page): Deleted.

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::reload):
(WebCore::InspectorPageAgent::navigate):
(WebCore::InspectorPageAgent::overrideSetting):
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):
(WebCore::InspectorPageAgent::getResourceTree):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::didPaint):
(WebCore::InspectorPageAgent::didLayout):
(WebCore::InspectorPageAgent::didScroll):
(WebCore::InspectorPageAgent::didRecalculateStyle):
(WebCore::InspectorPageAgent::setEmulatedMedia):
(WebCore::InspectorPageAgent::setForcedAppearance):
(WebCore::InspectorPageAgent::getCompositingBordersVisible):
(WebCore::InspectorPageAgent::setCompositingBordersVisible):
(WebCore::InspectorPageAgent::snapshotNode):
(WebCore::InspectorPageAgent::snapshotRect):
(WebCore::InspectorPageAgent::archive):
(WebCore::InspectorPageAgent::mainFrame): Deleted.
(WebCore::InspectorPageAgent::hasIdForFrame const): Deleted.

  • inspector/agents/InspectorApplicationCacheAgent.h:
  • inspector/agents/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
(WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):

  • inspector/agents/InspectorCanvasAgent.h:
  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::enable):

  • inspector/agents/InspectorDOMStorageAgent.h:
  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/agents/InspectorIndexedDBAgent.h:
  • inspector/agents/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
(WebCore::InspectorIndexedDBAgent::requestDatabase):
(WebCore::InspectorIndexedDBAgent::requestData):
(WebCore::InspectorIndexedDBAgent::clearObjectStore):

  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::PageDebuggerAgent):
(WebCore::PageDebuggerAgent::sourceMapURLForScript):
(WebCore::PageDebuggerAgent::breakpointActionLog):
(WebCore::PageDebuggerAgent::injectedScriptForEval):

  • inspector/agents/page/PageNetworkAgent.h:
  • inspector/agents/page/PageNetworkAgent.cpp:

(WebCore::PageNetworkAgent::PageNetworkAgent):
(WebCore::PageNetworkAgent::loaderIdentifier):
(WebCore::PageNetworkAgent::frameIdentifier):
(WebCore::PageNetworkAgent::setResourceCachingDisabled):
(WebCore::PageNetworkAgent::scriptExecutionContext):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):

11:14 AM Changeset in webkit [243302] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] Inline -_ensureFormAccessoryView into -formAccessoryView and have -_updateAccessory ensure we have a form accessory
https://bugs.webkit.org/show_bug.cgi?id=196021

Reviewed by Wenson Hsieh.

Every caller of -_ensureFormAccessoryView, except -formAccessoryView, immediately follows the call
with a call to -_updateAccessory. Let's just have -_updateAccessory ensure we have a form accessory
view and inline the implementation of -_ensureFormAccessoryView into -formAccessoryView so we can
remove one method.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView inputView]): Remove call to -_ensureFormAccessoryView, -_updateAccessory will do
the equivalent work for us.
(-[WKContentView formAccessoryView]): Moved implementation of -_ensureFormAccessoryView into here.
(-[WKContentView _updateAccessory]): Call self.formAccessoryView to ensure we have a form accessory view.
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
Remove call to -_ensureFormAccessoryView, -_updateAccessory will do
the equivalent work for us.
(-[WKContentView _ensureFormAccessoryView]): Deleted.

11:03 AM Changeset in webkit [243301] by Devin Rousso
  • 14 edits
    3 deletes in trunk/Source/WebInspectorUI

Web Inspector: Timelines: flatten the overview to show all records, one per line
https://bugs.webkit.org/show_bug.cgi?id=191901
<rdar://problem/46423618>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/OverviewTimelineView.js:

(WI.OverviewTimelineView):
(WI.OverviewTimelineView.prototype.closed):
(WI.OverviewTimelineView.prototype.get navigationItems): Added.
(WI.OverviewTimelineView.prototype.reset):
(WI.OverviewTimelineView.prototype.layout):
(WI.OverviewTimelineView.prototype.get _relevantTimelines): Added.
(WI.OverviewTimelineView.prototype.get _shouldGroupBySourceCode): Added.
(WI.OverviewTimelineView.prototype._loadExistingRecords): Added.
(WI.OverviewTimelineView.prototype._insertDataGridNode):
(WI.OverviewTimelineView.prototype._addResourceToDataGridIfNeeded):
(WI.OverviewTimelineView.prototype._addSourceCodeTimeline):
(WI.OverviewTimelineView.prototype._processPendingRepresentedObjects):
(WI.OverviewTimelineView.prototype._handleGroupBySourceCodeSettingChanged): Added.
(WI.OverviewTimelineView.prototype._handleGroupBySourceCodeNavigationItemCheckedDidChange): Added.
(WI.OverviewTimelineView.prototype._handleTimelineRecordAdded): Added.
(WI.OverviewTimelineView.prototype._sourceCodeTimelineAdded):
(WI.OverviewTimelineView.prototype._networkTimelineRecordAdded): Deleted.
Listen for new records on all timelines. Add each record as a new line. Since each timeline
has different data to display, only show the "name" and "graph" for all records.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype._currentContentViewDidChange):
(WI.TimelineRecordingContentView.prototype._updateImportedView): Deleted.
When viewing the overview of an imported recording, show the non-grouped overview.

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.addRecord):
(WI.TimelineRecording.prototype._keyForRecord):
Drive-by: show Media timeline events under the owner frame's resource when grouped.

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment, .timeline-record-bar.timeline-record-type-heap-allocations > .segment): Added.
(.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment): Deleted.

  • UserInterface/Base/Setting.js:

Add setting for controlling the Timeline overview grouping.

  • UserInterface/Main.html:
  • UserInterface/Views/SourceCodeTimelineTreeElement.js: Removed.
  • UserInterface/Views/TimelineRecordingImportedView.js: Removed.
  • UserInterface/Views/TimelineRecordingImportedView.css: Removed.

Remove unused files.

  • Localizations/en.lproj/localizedStrings.js:
11:00 AM Changeset in webkit [243300] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: the name of the file should not be used as a folder
https://bugs.webkit.org/show_bug.cgi?id=196064
<rdar://problem/49097710>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/GeneralTreeElement.js:

(WI.GeneralTreeElement.prototype.createFoldersAsNeededForSubpath):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._addResource):
Drive-by: sort resources in each folder by name when grouping by path.

10:42 AM Changeset in webkit [243299] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

JSObject::putDirectIndexSlowOrBeyondVectorLength should check if indexIsSufficientlyBeyondLengthForSparseMap
https://bugs.webkit.org/show_bug.cgi?id=196078
<rdar://problem/35925380>

Reviewed by Mark Lam.

JSTests:

Add a new benchmark that allocates several objects and invokes put_by_val_direct
with a large index. run-jsc-benchmarks says "definitely 1.6178x faster".

  • microbenchmarks/put-by-val-direct-large-index.js: Added.

Source/JavaScriptCore:

Unlike the other variations of putByIndex, it only checked if the index
was larger than MIN_SPARSE_ARRAY_INDEX when the indexingType was
ALL_BLANK_INDEXING_TYPES. This resulted in a huge butterfly being
allocated for object literals (e.g. {[9e4]: ...}) and objects parsed
from JSON.

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):

10:21 AM Changeset in webkit [243298] by Brent Fulgham
  • 7 edits in trunk/Source/WebCore

Hardening: Use WeakPtrs in VideoFullscreenInterface{Mac,AVKit}
https://bugs.webkit.org/show_bug.cgi?id=196052
<rdar://problem/48778571>

Reviewed by Eric Carlson.

The VideoFullscreenInterface{Mac,AVKit} implementations store their fullscreen model
and fullscreen change observer members as bare pointers, something we've been working
to eliminate.

This patch corrects this oversight.

No new tests since no changes in behavior.

  • platform/cocoa/VideoFullscreenChangeObserver.h:
  • platform/cocoa/VideoFullscreenModel.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::invalidate):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):

  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::enterFullscreen):
(WebCore::VideoFullscreenInterfaceMac::invalidate):

10:11 AM Changeset in webkit [243297] by ap@apple.com
  • 2 edits in trunk/Tools

Update status inactive committers' status to 'contributor'.

  • Scripts/webkitpy/common/config/contributors.json:
10:03 AM Changeset in webkit [243296] by Megan Gardner
  • 6 edits
    13 adds in trunk

Smart delete for paragraphs.
https://bugs.webkit.org/show_bug.cgi?id=195837

Reviewed by Ryosuke Niwa.

Remove additional newlines to maintain spacing around paragraphs.

Tests: editing/pasteboard/smart-delete-paragraph-001.html

editing/pasteboard/smart-delete-paragraph-002.html
editing/pasteboard/smart-delete-paragraph-003.html
editing/pasteboard/smart-delete-paragraph-004.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::isBlankLine):
(WebCore::DeleteSelectionCommand::initializePositionData):

9:45 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
9:45 AM Changeset in webkit [243295] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

CachedUnlinkedSourceCodeShape::m_provider should be a CachedRefPtr
https://bugs.webkit.org/show_bug.cgi?id=196079

Reviewed by Saam Barati.

It was mistakenly cached as CachedPtr, which was leaking the decoded SourceProvider.

  • runtime/CachedTypes.cpp:

(JSC::CachedUnlinkedSourceCodeShape::encode):

9:36 AM Changeset in webkit [243294] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Placate exception check validation in operationArrayIndexOfString().
https://bugs.webkit.org/show_bug.cgi?id=196067
<rdar://problem/49056572>

Reviewed by Michael Saboff.

JSTests:

  • stress/string-equal-exception-check.js: Added.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:
9:29 AM Changeset in webkit [243293] by commit-queue@webkit.org
  • 8 edits in trunk

[JSC][x86] Drop support for x87 floating point
https://bugs.webkit.org/show_bug.cgi?id=194853

Patch by Xan Lopez <Xan Lopez> on 2019-03-21
Reviewed by Don Olmstead.

Source/JavaScriptCore:

Require SSE2 throughout the codebase, and remove x87 support where
it was optionally available. SSE2 detection happens at compile
time through a static_assert.

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::storeDouble):
(JSC::MacroAssemblerX86::moveDoubleToInts):
(JSC::MacroAssemblerX86::supportsFloatingPoint):
(JSC::MacroAssemblerX86::supportsFloatingPointTruncate):
(JSC::MacroAssemblerX86::supportsFloatingPointSqrt):
(JSC::MacroAssemblerX86::supportsFloatingPointAbs):

  • assembler/MacroAssemblerX86Common.cpp:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::moveDouble):
(JSC::MacroAssemblerX86Common::loadDouble):
(JSC::MacroAssemblerX86Common::loadFloat):
(JSC::MacroAssemblerX86Common::storeDouble):
(JSC::MacroAssemblerX86Common::storeFloat):
(JSC::MacroAssemblerX86Common::convertDoubleToFloat):
(JSC::MacroAssemblerX86Common::convertFloatToDouble):
(JSC::MacroAssemblerX86Common::addDouble):
(JSC::MacroAssemblerX86Common::addFloat):
(JSC::MacroAssemblerX86Common::divDouble):
(JSC::MacroAssemblerX86Common::divFloat):
(JSC::MacroAssemblerX86Common::subDouble):
(JSC::MacroAssemblerX86Common::subFloat):
(JSC::MacroAssemblerX86Common::mulDouble):
(JSC::MacroAssemblerX86Common::mulFloat):
(JSC::MacroAssemblerX86Common::convertInt32ToDouble):
(JSC::MacroAssemblerX86Common::convertInt32ToFloat):
(JSC::MacroAssemblerX86Common::branchDouble):
(JSC::MacroAssemblerX86Common::branchFloat):
(JSC::MacroAssemblerX86Common::compareDouble):
(JSC::MacroAssemblerX86Common::compareFloat):
(JSC::MacroAssemblerX86Common::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerX86Common::truncateDoubleToInt32):
(JSC::MacroAssemblerX86Common::truncateFloatToInt32):
(JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32):
(JSC::MacroAssemblerX86Common::branchDoubleNonZero):
(JSC::MacroAssemblerX86Common::branchDoubleZeroOrNaN):
(JSC::MacroAssemblerX86Common::lshiftPacked):
(JSC::MacroAssemblerX86Common::rshiftPacked):
(JSC::MacroAssemblerX86Common::orPacked):
(JSC::MacroAssemblerX86Common::move32ToFloat):
(JSC::MacroAssemblerX86Common::moveFloatTo32):
(JSC::MacroAssemblerX86Common::moveConditionallyDouble):
(JSC::MacroAssemblerX86Common::moveConditionallyFloat):

  • offlineasm/x86.rb:
  • runtime/MathCommon.cpp:

(JSC::operationMathPow):

Tools:

Force SSE2 on x86/32bit builds.

  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject):

9:21 AM Changeset in webkit [243292] by Shawn Roberts
  • 14 edits
    6 deletes in trunk

Unreviewed, rolling out r243250.

Causing 109 Failures and 2 crashes on iOS Sim Debug
OpenSource/Internal queues

Reverted changeset:

"[iOS WK2] Turn on async overflow scrolling by default"
https://bugs.webkit.org/show_bug.cgi?id=196011
https://trac.webkit.org/changeset/243250

8:51 AM Changeset in webkit [243291] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Fix possible memory leak when dismissing a color picker
https://bugs.webkit.org/show_bug.cgi?id=196026
<rdar://problem/48778568>

Reviewed by Wenson Hsieh.

Fix a problem with WebPageProxy::endColorPicker where an early return could leave a color picker
with a +1 reference count after dismissing it.

  • UIProcess/WebColorPicker.cpp:

(WebKit::WebColorPicker::endPicker):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::endColorPicker):
(WebKit::WebPageProxy::didEndColorPicker):

8:43 AM Changeset in webkit [243290] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fixed ContentChangeObserver build error.
https://bugs.webkit.org/show_bug.cgi?id=195993

Patch by Cathie Chen <cathiechen> on 2019-03-21
Reviewed by Rob Buis.

EWS IOS compiler complains after adding new files in Bug 157743.
ContentChangeObserver.h should have forward declaration for Element.

  • page/ios/ContentChangeObserver.cpp:
  • page/ios/ContentChangeObserver.h:
7:36 AM Changeset in webkit [243289] by commit-queue@webkit.org
  • 5 edits in trunk

[GLIB] User data not correctly passed to callback of functions and constructors with no parameters
https://bugs.webkit.org/show_bug.cgi?id=196073

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-21
Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This is because GClosure always expects a first parameter as instance. In case of functions or constructors with
no parameters we insert a fake instance which is just a null pointer that is ignored by the callback. But
if the function/constructor has user data the callback will expect one parameter for the user data. In that case
we can simply swap instance/user data so that the fake instance will be the second argument and user data the
first one.

  • API/glib/JSCClass.cpp:

(jscClassCreateConstructor): Use g_cclosure_new_swap() if parameters is empty and user data was provided.

  • API/glib/JSCValue.cpp:

(jscValueFunctionCreate): Ditto.

Tools:

Add test cases to check functions and constructors with no arguments but receiving user data.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(checkUserData):
(testJSCFunction):
(fooCreateWithUserData):
(testJSCClass):

6:09 AM Changeset in webkit [243288] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK build with GLib < 2.58 after r243285.

Add g_assert_cmpfloat_with_epsilon macro if not defined.

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:
5:14 AM Changeset in webkit [243287] by cturner@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][EME][Clearkey] Take a lock in keys() method
https://bugs.webkit.org/show_bug.cgi?id=195900

Reviewed by Xabier Rodriguez-Calvar.

This isn't ideal, since we're taking a lock for every frame to
decode. But there's no good way around it when keys can be
made unavailable at any time via an update() call, so we can't
cache key IDs in the decryptor.

Covered by test imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMInstanceClearKey::keys const): This method is called
from GStreamer's decode() method, which runs off the main thread,
therefore we need to take a lock.

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
3:35 AM Changeset in webkit [243286] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC][32-bit] Build failure after r243232
https://bugs.webkit.org/show_bug.cgi?id=196068

Patch by Pablo Saavedra <Pablo Saavedra> on 2019-03-21
Reviewed by Mark Lam.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

3:10 AM Changeset in webkit [243285] by Carlos Garcia Campos
  • 28 edits
    1 copy
    4 adds
    2 deletes in trunk

[GTK][WPE] Add API to provide geolocation information
https://bugs.webkit.org/show_bug.cgi?id=195940

Reviewed by Michael Catanzaro.

.:

Build with geolocation enabled by default in both GTK and WPE. In GTK add a specific USE_GEOCLUE build option
instead of using ENABLE_GEOLOCATION.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Replace ENABLE(GEOLOCATION) with USE(GEOCLUE).

  • PlatformGTK.cmake:
  • platform/geoclue/GeolocationProviderGeoclue.cpp:
  • platform/geoclue/GeolocationProviderGeoclue.h:
  • platform/geoclue/GeolocationProviderGeoclueClient.h:

Source/WebCore/platform/gtk/po:

  • POTFILES.in: Add WebKitGeolocationManager.cpp.

Source/WebKit:

Add WebKitGeolocationManager public class to handle geolocation position updates. WebKitGeolocationProvider has
been removed and the default implementation based on GeoClue is done by WebKitGeolocationManager.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitGeolocationManager.cpp: Added.

(_WebKitGeolocationPosition::_WebKitGeolocationPosition):
(webkit_geolocation_position_new):
(webkit_geolocation_position_copy):
(webkit_geolocation_position_free):
(webkit_geolocation_position_set_timestamp):
(webkit_geolocation_position_set_altitude):
(webkit_geolocation_position_set_altitude_accuracy):
(webkit_geolocation_position_set_heading):
(webkit_geolocation_position_set_speed):
(webkitGeolocationManagerStop):
(webkitGeolocationManagerSetEnableHighAccuracy):
(webkitGeolocationManagerCreate):
(webkitGeolocationManagerGetProperty):
(webkit_geolocation_manager_class_init):
(webkit_gelocation_manager_update_position):
(webkit_gelocation_manager_failed):
(webkit_geolocation_manager_get_enable_high_accuracy):

  • UIProcess/API/glib/WebKitGeolocationManagerPrivate.h: Copied from Source/WebCore/platform/geoclue/GeolocationProviderGeoclueClient.h.
  • UIProcess/API/glib/WebKitGeolocationProvider.cpp: Removed.
  • UIProcess/API/glib/WebKitGeolocationProvider.h: Removed.
  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed): Create a WebKitGeolocationManager instead of a WebKitGeolocationProvider.
(webkit_web_context_get_geolocation_manager): Get the WebKitGeolocationManager.

  • UIProcess/API/gtk/WebKitGeolocationManager.h: Added.
  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0.types:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/WebKitGeolocationManager.h: Added.
  • UIProcess/API/wpe/WebKitWebContext.h:
  • UIProcess/API/wpe/docs/wpe-0.1-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
  • UIProcess/API/wpe/webkit.h:

Tools:

Add a new test to check the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestGeolocationManager.cpp: Added.

(testGeolocationManagerCurrentPosition):
(testGeolocationManagerWatchPosition):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewGeolocationPermissionRequests): Stop using ENABLE(GEOLOCATION) conditionals for geolocation tests.
(beforeAll): Ditto.

  • TestWebKitAPI/glib/CMakeLists.txt:
2:44 AM Changeset in webkit [243284] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[WPE] Confusing messages in stderr when surfaceless context is not supported
https://bugs.webkit.org/show_bug.cgi?id=195742

Reviewed by Žan Doberšek.

The messages shown are:

Cannot create EGL surfaceless context: missing EGL_KHR_surfaceless_{context,opengl} extension.
Cannot create EGL WPE context: EGL_SUCCESS

It seems like there's anything wrong, while there isn't. It's also confusing an error message where the error is
EGL_SUCCESS. I think we should not show those messages at all, not suporting surfaceless contexts is not an
error and it's correctly handled. Failing to get a native window handle from render backend offscreen egl target
is not an error either, since most of the backends don't implement the interface (they actually have an empty
implementation).

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createSurfacelessContext): Remove the message when extensions are not present

  • platform/graphics/egl/GLContextEGLLibWPE.cpp:

(WebCore::GLContextEGL::createWPEContext): Handle the case of wpe_renderer_backend_egl_offscreen_target_create()
returning nullptr, which can happen if the backend doesn't implement the interface. Move the context creation
after the target initialization, to avoid leaking the context when the target doesn't have a native window.

2:43 AM Changeset in webkit [243283] by Carlos Garcia Campos
  • 6 edits in trunk

[GLib] Returning G_TYPE_OBJECT from a method does not work
https://bugs.webkit.org/show_bug.cgi?id=195574

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Add more documentation to clarify the ownership of wrapped objects when created and when returned by functions.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::construct): Also allow to return boxed types from a constructor.

  • API/glib/JSCClass.cpp:
  • API/glib/JSCValue.cpp:

Tools:

Add new test cases to check the behavior of constructors and functions returning GObject and boxed types.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(getGFile):
(getParent):
(createGString):
(getGString):
(getGStringCopyWillRaise):
(getGStringCopy):
(getGStringStr):
(getGStringLen):
(freeGString):
(testJSCClass):

2:24 AM Changeset in webkit [243282] by magomez@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed GTK+ and WPE gardening after r243278.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
1:25 AM Changeset in webkit [243281] by Antti Koivisto
  • 7 edits in trunk/LayoutTests

Use immediateScrollElementAtContentPointToOffset for scroll overlap tests
https://bugs.webkit.org/show_bug.cgi?id=195943

Reviewed by Simon Fraser.

This is much faster and simpler than simulated touch events.

  • fast/scrolling/ios/overflow-scroll-overlap-2.html:
  • fast/scrolling/ios/overflow-scroll-overlap-3.html:
  • fast/scrolling/ios/overflow-scroll-overlap-4.html:
  • fast/scrolling/ios/overflow-scroll-overlap.html:

This API doesn't respect touch-action property, so stop using it. Instead restore
the main scrollview to the initial position explicitly after scroll.

  • fast/scrolling/resources/overflow-scroll-overlap.js:

(async.runTest):

  • resources/ui-helper.js:

(return.new.Promise.):
(return.new.Promise):

Add a Promise returning helper.

12:51 AM Changeset in webkit [243280] by mark.lam@apple.com
  • 8 edits
    1 add in trunk

Cap length of an array with spread to MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.
https://bugs.webkit.org/show_bug.cgi?id=196055
<rdar://problem/49067448>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/new_array_with_spread-should-cap-array-size-to-MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH.js: Added.

Source/JavaScriptCore:

We are doing this because:

  1. We expect the array to be densely packed.
  2. SpeculativeJIT::compileAllocateNewArrayWithSize() (and the FTL equivalent) expects the array length to be less than MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH if we don't want to use an ArrayStorage shape.
  3. There's no reason why an array with spread needs to be that large anyway. MIN_ARRAY_STORAGE_CONSTRUCTION_LENGTH is plenty.

In this patch, we also add a debug assert in compileAllocateNewArrayWithSize() and
emitAllocateButterfly() to check for overflows.

  • assembler/AbortReason.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::emitAllocateButterfly):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):

  • runtime/ArrayConventions.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

12:00 AM Changeset in webkit [243279] by ysuzuki@apple.com
  • 11 edits
    2 deletes in trunk/Source

[JSC] Use finalizer in JSGlobalLexicalEnvironment and JSGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=195992

Reviewed by Keith Miller and Mark Lam.

Source/JavaScriptCore:

JSGlobalLexicalEnvironment and JSGlobalObject have their own CompleteSubspace to call destructors while they are not inheriting JSDestructibleObject.
But it is too costly since (1) it requires CompleteSubspace in VM, (2) both objects allocate MarkedBlocks while # of them are really small.

Instead of using CompleteSubspace, we just set finalizers for them. Since these objects are rarely allocated, setting finalizers does not show
memory / performance problems (actually, previously we used finalizer for ArrayPrototype due to the same reason, and it does not show any problems).

And we also add following two changes to JSSegmentedVariableObject.

  1. Remove one boolean used for debugging in Release build. It enlarges sizeof(JSSegmentedVariableObject) and allocates one more MarkedBlock.
  2. Use cellLock() instead.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::findVariableIndex):
(JSC::JSSegmentedVariableObject::addVariables):
(JSC::JSSegmentedVariableObject::visitChildren):
(JSC::JSSegmentedVariableObject::~JSSegmentedVariableObject):
(JSC::JSSegmentedVariableObject::finishCreation):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::subspaceFor): Deleted.

  • runtime/JSSegmentedVariableObjectHeapCellType.cpp: Removed.
  • runtime/JSSegmentedVariableObjectHeapCellType.h: Removed.
  • runtime/StringIteratorPrototype.cpp:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WebCore:

Use cellHeapCellType since JSSegmentedVariableObject already set finalizer.

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

Note: See TracTimeline for information about the timeline view.