Timeline



Jul 6, 2020:

9:44 PM Changeset in webkit [264010] by Lauro Moura
  • 4 edits
    1 add in trunk/LayoutTests

[GTK][WPE] Imported semantics tests gardening after r263987

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
8:48 PM Changeset in webkit [264009] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark ref-test imported in r263987 as failing on iOS.

imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html is
a new ref-test that has been failing on iOS since import.

  • platform/ios/TestExpectations:
8:46 PM Changeset in webkit [264008] by Simon Fraser
  • 7 edits in trunk/Source

High CPU usage on Stash search results pages
https://bugs.webkit.org/show_bug.cgi?id=214018
<rdar://problem/64832917>

Reviewed by Tim Horton.
Source/WebCore:

Stash search results pages can contain a lot of overflow:scroll areas, so scrolling thread CA commits
would take a long time because ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters() would
open and close a CA commit for each scroller.

Fix by not explicitly starting a CA commit, and only entering this code if a gesture is active and in
the momentum phase.

Also sprinkle BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS in more places that call into Core
Animation.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionScrollingLayers):
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionScrollingLayers):

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters):

Source/WebKit:

Stash search results pages can contain a lot of overflow:scroll areas, so scrolling thread CA commits
would take a long time because ScrollingTreeScrollingNodeDelegateMac::updateScrollbarPainters() would
open and close a CA commit for each scroller.

Fix by not explicitly starting a CA commit, and only entering this code if a gesture is active and in
the momentum phase.

Also sprinkle BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS in more places that call into Core
Animation.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::repositionRelatedLayers):

8:35 PM Changeset in webkit [264007] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Rebaseline test for iOS after r263987.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
7:57 PM Changeset in webkit [264006] by Simon Fraser
  • 57 edits in trunk/Source

BEGIN_BLOCK_OBJC_EXCEPTIONS/END_BLOCK_OBJC_EXCEPTIONS should not have trailing semicolons
https://bugs.webkit.org/show_bug.cgi?id=214019

Reviewed by Tim Horton.

These macros are defined as:

#define BEGIN_BLOCK_OBJC_EXCEPTIONS @try {
#define END_BLOCK_OBJC_EXCEPTIONS } @catch(NSException *localException) { ReportBlockedObjCException(localException); }

so they should not be used with trailing semicolons.

Source/WebCore:

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::expandSelectionByCharacters):
(WebCore::showPopupOrCreateAnimationController):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::dataInRTFDFormat):
(WebCore::Editor::dataInRTFFormat):

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::tokenRange):
(WebCore::expandSelectionByCharacters):
(WebCore::showPopupOrCreateAnimationController):
(WebCore::DictionaryLookup::hidePopup):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::keyEvent):
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::mouseMoved):

  • page/mac/ChromeMac.mm:

(WebCore::Chrome::focusNSView):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::keyEvent):
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::passMouseDownEventToWidget):
(WebCore::findViewInSubviews):
(WebCore::EventHandler::eventLoopHandleMouseDragged):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::passSubframeEventToSubframe):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::mouseDown):
(WebCore::EventHandler::mouseDragged):
(WebCore::EventHandler::mouseUp):
(WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::pressureChange):
(WebCore::EventHandler::passMouseMovedEventToScrollbars):

  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:

(WebCore::ContentFilterUnblockHandler::encode const):
(WebCore::ContentFilterUnblockHandler::decode):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):

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

(WebCore::GPUBindGroupAllocator::allocateAndSetEncoders):
(WebCore::GPUBindGroupAllocator::reallocate):

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

(WebCore::appendArgumentToArray):
(WebCore::tryCreateMtlArgumentEncoder):
(WebCore::argumentDescriptor):
(WebCore::GPUBindGroupLayout::tryCreate):

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

(WebCore::setBufferOnEncoder):
(WebCore::setSamplerOnEncoder):
(WebCore::setTextureOnEncoder):

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

(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::commandBufferCommitted):
(WebCore::GPUBuffer::copyStagingBufferToGPU):

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

(WebCore::GPUCommandBuffer::tryCreate):
(WebCore::GPUCommandBuffer::endBlitEncoding):
(WebCore::GPUCommandBuffer::copyBufferToBuffer):
(WebCore::GPUCommandBuffer::copyBufferToTexture):
(WebCore::GPUCommandBuffer::copyTextureToBuffer):
(WebCore::GPUCommandBuffer::copyTextureToTexture):

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

(WebCore::GPUComputePassEncoder::tryCreate):
(WebCore::GPUComputePassEncoder::setPipeline):
(WebCore::GPUComputePassEncoder::dispatch):
(WebCore::GPUComputePassEncoder::useResource):
(WebCore::GPUComputePassEncoder::setComputeBuffer):

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

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):
(WebCore::tryCreateMTLComputePipelineState):

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

(WebCore::GPUDevice::tryCreate):

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

(WebCore::GPUProgrammablePassEncoder::endPass):

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

(WebCore::GPUQueue::tryCreate):
(WebCore::GPUQueue::submit):

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

(WebCore::populateMtlColorAttachmentsArray):
(WebCore::populateMtlDepthStencilAttachment):
(WebCore::GPURenderPassEncoder::tryCreate):
(WebCore::GPURenderPassEncoder::setPipeline):
(WebCore::GPURenderPassEncoder::setBlendColor):
(WebCore::GPURenderPassEncoder::setViewport):
(WebCore::GPURenderPassEncoder::setScissorRect):
(WebCore::GPURenderPassEncoder::setVertexBuffers):
(WebCore::GPURenderPassEncoder::draw):
(WebCore::GPURenderPassEncoder::drawIndexed):
(WebCore::GPURenderPassEncoder::useResource):
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::setFragmentBuffer):

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

(WebCore::tryCreateMtlDepthStencilState):
(WebCore::trySetVertexInput):
(WebCore::trySetColorStates):
(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertRenderPipelineDescriptor):
(WebCore::tryCreateMtlRenderPipelineState):

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

(WebCore::tryCreateMtlSamplerState):

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

(WebCore::GPUShaderModule::tryCreate):

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

(WebCore::tryCreateWebGPULayer):
(WebCore::GPUSwapChain::tryGetCurrentTexture):

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

(WebCore::tryCreateMtlTextureDescriptor):
(WebCore::GPUTexture::tryCreate):
(WebCore::GPUTexture::tryCreateDefaultTextureView):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):

  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::documentView const):
(WebCore::ScrollView::platformSetScrollbarModes):
(WebCore::ScrollView::platformScrollbarModes const):
(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformUnobscuredContentRect const):
(WebCore::ScrollView::platformExposedContentRect const):
(WebCore::ScrollView::setActualScrollPosition):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentSize const):
(WebCore::ScrollView::legacyTileCache):
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollbarsSuppressed):
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformRepaintContentRectangle):
(WebCore::ScrollView::platformContentsToScreen const):
(WebCore::ScrollView::platformScreenToContents const):
(WebCore::ScrollView::platformSetScrollOrigin):

  • platform/ios/WidgetIOS.mm:

(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::frameRect const):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::addToSuperview):
(WebCore::Widget::removeFromSuperview):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):

  • platform/mac/CursorMac.mm:

(WebCore::createCustomCursor):

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation invalidate]):
(-[WebScrollerImpDelegate cancelAnimations]):
(-[WebScrollerImpDelegate invalidate]):
(WebCore::ScrollAnimatorMac::~ScrollAnimatorMac):

  • platform/mac/ScrollViewMac.mm:

(WebCore::ScrollView::documentView const):
(WebCore::ScrollView::platformAddChild):
(WebCore::ScrollView::platformSetScrollbarModes):
(WebCore::ScrollView::platformScrollbarModes const):
(WebCore::ScrollView::platformSetCanBlitOnScroll):
(WebCore::ScrollView::platformTopContentInset const):
(WebCore::ScrollView::platformSetTopContentInset):
(WebCore::ScrollView::platformVisibleContentRect const):
(WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea const):
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollbarsSuppressed):
(WebCore::ScrollView::platformSetScrollPosition):
(WebCore::ScrollView::platformRepaintContentRectangle):
(WebCore::ScrollView::platformContentsToScreen const):
(WebCore::ScrollView::platformScreenToContents const):
(WebCore::ScrollView::platformSetScrollOrigin):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
(WebCore::scrollerImpPaint):
(WebCore::linenBackgroundColor):

  • platform/mac/WidgetMac.mm:

(WebCore::Widget::setFocus):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::frameRect const):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::setIsSelected):
(WebCore::Widget::removeFromSuperview):
(WebCore::Widget::convertFromRootToContainingWindow):
(WebCore::Widget::convertFromContainingWindowToRoot):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):
(WebCore::NetworkStorageSession::cookiesForSession const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::platformLazyInit):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::start):

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

Source/WebKit:

  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeFontInternal):

  • Shared/Cocoa/CoreTextHelpers.mm:

(WebKit::fontWithAttributes):

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateFontManagerIfNeeded):

  • UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:

(-[WKScrollbarPartAnimation invalidate]):
(-[WKScrollerImpDelegate cancelAnimations]):
(-[WKScrollerImpDelegate invalidate]):
(WebKit::ScrollerMac::updateValues):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]):

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::updateLayerAnimations):

Source/WebKitLegacy/mac:

  • DOM/DOMCustomXPathNSResolver.mm:

(DOMCustomXPathNSResolver::lookupNamespaceURI):

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::exceededDatabaseQuota):
(WebChromeClient::reachedApplicationCacheOriginQuota):
(WebChromeClient::runOpenPanel):
(WebChromeClient::keyboardUIMode):
(WebChromeClient::firstResponder):
(WebChromeClient::makeFirstResponder):
(WebChromeClient::attachRootGraphicsLayer):
(WebChromeClient::setNeedsOneShotDrawingSynchronization):
(WebChromeClient::scheduleRenderingUpdate):
(WebChromeClient::enterVideoFullscreenForVideoElement):
(WebChromeClient::exitVideoFullscreenForVideoElement):
(WebChromeClient::exitVideoFullscreenToModeWithoutAnimation):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createFrame):
(WebFrameLoaderClient::objectContentType):
(NetscapePluginWidget::notifyWidget):
(WebFrameLoaderClient::createPlugin):
(WebFrameLoaderClient::redirectDataToPlugin):
(WebFrameLoaderClient::createJavaAppletWidget):

  • WebCoreSupport/WebGeolocationClient.mm:

(WebGeolocationClient::setEnableHighAccuracy):
(WebGeolocationClient::requestPermission):
(-[WebGeolocationProviderInitializationListener initializationAllowedWebView:]):

  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::requestPermission):

  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):

  • WebCoreSupport/WebVisitedLinkStore.mm:

(WebVisitedLinkStore::populateVisitedLinksIfNeeded):

  • WebView/WebHTMLView.mm:

(imageFromRect):

6:49 PM Changeset in webkit [264005] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Add ability for AX objects to output html in debug
https://bugs.webkit.org/show_bug.cgi?id=214020

Reviewed by Darin Adler.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase innerHTML]):
(-[WebAccessibilityObjectWrapperBase outerHTML]):

6:34 PM Changeset in webkit [264004] by beidson@apple.com
  • 25 edits in trunk/Source

Get rid of concept of "initial connected gamepads"
https://bugs.webkit.org/show_bug.cgi?id=214010

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Refactor, no behavior change)

When a page starts using gamepads and some were already connected, this concept
was meant to manage when the already-connected gamepads could be revealed to the page.

It obviously wasn't needed, as only the HID provider used them (GameController provider didn't)

Instead, we should just always include a "does this event make gamepads visible?" bit.

This cleans up a lot of weird code gets both providers working closer to each other.

  • Modules/gamepad/GamepadManager.cpp:

(WebCore::GamepadManager::platformGamepadConnected):
(WebCore::GamepadManager::platformGamepadInputActivity):

  • Modules/gamepad/GamepadManager.h:
  • platform/gamepad/GamepadProvider.cpp:

(WebCore::GamepadProvider::dispatchPlatformGamepadInputActivity):

  • platform/gamepad/GamepadProviderClient.h:

(WebCore::GamepadProviderClient::setInitialConnectedGamepads): Deleted.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::makeInvisibileGamepadsVisible):

  • platform/gamepad/mac/HIDGamepadProvider.cpp:

(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired): Deleted.

  • platform/gamepad/mac/HIDGamepadProvider.h:
  • testing/MockGamepadProvider.cpp:

(WebCore::MockGamepadProvider::connectMockGamepad):

Source/WebKit:

  • Scripts/webkit/messages.py:
  • UIProcess/Gamepad/UIGamepadProvider.cpp:

(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::platformGamepadConnected):
(WebKit::UIGamepadProvider::platformGamepadInputActivity):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads): Deleted.

  • UIProcess/Gamepad/UIGamepadProvider.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::gamepadActivity):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::gamepadConnected):
(WebKit::WebProcessPool::setInitialConnectedGamepads): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadActivity):

  • WebProcess/Gamepad/WebGamepadProvider.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::gamepadActivity):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::gamepadConnected):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
5:54 PM Changeset in webkit [264003] by Wenson Hsieh
  • 4 edits in trunk

Web process sometimes crashes when translating an article on spiegel.de
https://bugs.webkit.org/show_bug.cgi?id=214014
<rdar://problem/65099253>

Reviewed by Tim Horton.

Source/WebCore:

The crash happens because we try to make a BoundaryPoint (using makeBoundaryPoint) out of an orphaned
Position that is anchored before or after the anchor node (more specifically, either PositionIsBeforeAnchor
or PositionIsAfterAnchor). In makeBoundaryPoint, we'll avoid the early WTF::nullopt return since the
position is non-null, but then try to access the container node, which is null in this case because the anchor
node has been unparented.

Fix this by not attempting to observe orphaned DOM positions when extracting content for translation.

Test: TextManipulation.StartTextManipulationAvoidCrashWhenExtractingOrphanedPositions

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a test case that dynamically adds an object element, immediately removes it, and then adds a chunk of text
and verifies that the text manipulation delegate method for new content is invoked.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
5:46 PM Changeset in webkit [264002] by clopez@igalia.com
  • 2 edits in trunk/Tools

svn-apply should use verbose mode when adding files to git
https://bugs.webkit.org/show_bug.cgi?id=214022

Reviewed by Darin Adler.

If a patch contains several copy or add operations it can happen that there is
no output for more than 600 seconds meanwhile the tool is applying the patch.
This can cause a fatal error on the EWS. Pass the verbose flag to git,
so it outputs the name of the file after adding it to the index.
This is consequent how "svn add" works by default (it outputs the name of the file),
or how "git rm" works (it also outputs the name of the file by default as well).

  • Scripts/svn-apply:

(scmCopy):
(scmAdd):
(scmCommitQueueAdded):

5:15 PM Changeset in webkit [264001] by wilander@apple.com
  • 3 edits in trunk/Source/WebCore

Follow-up to r263992: Make isKinjaLoginAvatarElement() a free function
https://bugs.webkit.org/show_bug.cgi?id=214015
<rdar://problem/65153632>

Unreviewed follow-up to a quirk. Just changing
isKinjaLoginAvatarElement() from member to free function.

As requested in https://bugs.webkit.org/show_bug.cgi?id=213910#c10.

  • page/Quirks.cpp:

(WebCore::isKinjaLoginAvatarElement):
(WebCore::Quirks::isKinjaLoginAvatarElement const): Deleted.

  • page/Quirks.h:
5:09 PM Changeset in webkit [264000] by Chris Fleizach
  • 23 edits
    2 adds in trunk

AX: Implement user action spec for Escape action
https://bugs.webkit.org/show_bug.cgi?id=213875
<rdar://problem/65022980>

Reviewed by Darin Adler.

Source/WebCore:

Implement the Escape action for the user action events.
https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology

Test: accessibility/keyevents-posted-for-dismiss-action.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::performEscape):
(WebCore::AccessibilityNodeObject::dispatchSimulatedKeyboardUpDownEvent):
(WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformEscape]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::performEscape):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(dismissCallback):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::dismiss):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::textMarkerRangeMatchesTextNearMarkers):
(WTR::AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::dismiss):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::dismiss):

LayoutTests:

  • accessibility/keyevents-posted-for-dismiss-action-expected.txt: Added.
  • accessibility/keyevents-posted-for-dismiss-action.html: Added.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
5:01 PM Changeset in webkit [263999] by commit-queue@webkit.org
  • 15 edits in trunk

Fix transform feedback tests
https://bugs.webkit.org/show_bug.cgi?id=213906

Patch by James Darpinian <James Darpinian> on 2020-07-06
Reviewed by Dean Jackson.

Fix transform feedback conformance tests by implementing missing functionality such as:

  • Transform feedback object state tracking
  • Validation for all GL errors that can affect state tracking before calling ANGLE
  • Default transform feedback object
  • Pause/resume
  • Fix vertexAttribDivisor in WebGL 2 (unrelated to transform feedback)

After this, all related tests pass except for a few that also fail in Chrome, and one that uses
PIXEL_PACK_BUFFER which is not yet supported.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::ValidateTransformFeedbackPrimitiveMode):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::pauseTransformFeedback):
(WebCore::WebGL2RenderingContext::resumeTransformFeedback):
(WebCore::WebGL2RenderingContext::setIndexedBufferBinding):
(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getMaxTransformFeedbackSeparateAttribs):
(WebCore::WebGL2RenderingContext::getParameter):
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::cacheInfoIfNeeded):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::create):
(WebCore::WebGLTransformFeedback::WebGLTransformFeedback):
(WebCore::WebGLTransformFeedback::setProgram):
(WebCore::WebGLTransformFeedback::setBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::getBoundIndexedTransformFeedbackBuffer):
(WebCore::WebGLTransformFeedback::hasEnoughBuffers const):
(WebCore::WebGLTransformFeedback::usesBuffer):
(WebCore::WebGLTransformFeedback::unbindBuffer):
(WebCore::WebGLTransformFeedback::validateProgramForResume const):

  • html/canvas/WebGLTransformFeedback.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::vertexAttribDivisor):

4:59 PM Changeset in webkit [263998] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Locale-specific quotes infrastructure needs to compare locale strings properly
https://bugs.webkit.org/show_bug.cgi?id=213827

Reviewed by Darin Adler.

Source/WebCore:

Before this patch, WebKit is selecting which quotes to display on <q>
elements by doing a raw strcmp() on the locale string with a big table
of locale strings. strcmp() is the wrong way to compare locale strings.

The HTML spec has a list of locales and their associated quotes[1].
It is formulated in terms of CSS using the "lang()" pseudoclass.
The spec of the lang() pseudoclass[2] describes that locale comparison
needs to be done according to section 3.3.2 in RFC4647[3].

This algorithm is a pretty general algorithm, and implementing it naively
would mean turning our O(log(n)) algorithm into a O(n) algorithm, which
would be unfortunate. Instead, we can use a few observations about the
set of locale strings we are comparing against, in order to preserve the
O(log(n)) runtime:

  • All the locales have either 1 or 2 subtags
  • None of the subtags in any of the ranges are wildcards
  • The list is sorted, so a locale string that is a prefix of another one

is listed before it.

[1] https://html.spec.whatwg.org/multipage/rendering.html#quotes
[2] https://drafts.csswg.org/selectors-4/#the-lang-pseudo
[3] https://tools.ietf.org/html/rfc4647#page-10

Test: fast/css-generated-content/quotes-lang-2.html

  • WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
  • rendering/RenderQuote.cpp:

(WebCore::subtagCompare):
(WebCore::quoteTableLanguageComparisonFunction):
(WebCore::quotesForLanguage):
(WebCore::RenderQuote::computeText const):

LayoutTests:

  • fast/css-generated-content/quotes-lang-2-expected.html: Added.
  • fast/css-generated-content/quotes-lang-2.html: Added.
4:32 PM Changeset in webkit [263997] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] No need to mark tables/mozilla_expected_failures/other/empty_cells.html with [Failure] anymore.

Unreviewed.

  • platform/win/TestExpectations:
4:30 PM Changeset in webkit [263996] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Regression(r249303) Crash under NetworkLoad::NetworkLoad()
https://bugs.webkit.org/show_bug.cgi?id=214008
<rdar://problem/64853936>

Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
Do some hardening and fail the SpeculativeLoad if the network session is null, instead of dereferencing
the network session unconditionally. The NetworkCache owns the NetworkCacheSpeculativeLoadManager and
the NetworkCache is RefCounted so it may outlive its NetworkSession in theory and schedule speculative
loads for a session that was just destroyed.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:

Capture weakThis in a few lambda and check it when the lambda gets called. It looked unsafe so I
decided to do some hardening.

4:27 PM Changeset in webkit [263995] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] WAKWindow should override -resignFirstResponder and clear state
https://bugs.webkit.org/show_bug.cgi?id=214011
<rdar://problem/65152410>

Reviewed by Tim Horton.

This is part of the fix for <rdar://problem/62615273>.

Override -resignFirstResponder to clear out internal state that tracks the first responder
in the iOS Legacy WebKit world.

  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow resignFirstResponder]):

4:14 PM Changeset in webkit [263994] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed mozilla test gardening after r263855.

  • platform/win/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
4:13 PM Changeset in webkit [263993] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION: (r263977): [ iOS Debug WK2 ] 36 fast form and web-platform test consistently crashing
https://bugs.webkit.org/show_bug.cgi?id=214009
<rdar://problem/65151752>

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::weekInputStyleSheet const):
Replace ""_s with emptyString() to fix crashing tests.

4:01 PM Changeset in webkit [263992] by wilander@apple.com
  • 4 edits in trunk/Source/WebCore

Storage Access API: Add the capability to open a popup and get user interaction so we can call the Storage Access API as a quirk, on behalf of websites that should be doing it themselves
https://bugs.webkit.org/show_bug.cgi?id=213910
<rdar://problem/65058017>

Reviewed by Darin Adler.

This patch not only adds the capability but also adds a site-specific quirk for
the family of Kinja sites so that no previous user interaction with kinja.com
results in a login popup for kinja.com.

No new tests. This is for site-specific quirks.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):

Just a change in the call into the quirk function.

  • page/Quirks.cpp:

(WebCore::Quirks::isKinjaLoginAvatarElement const):

Convenience function for telling if the given element is the Kinja login avatar.

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

Now takes the whole Element to be able to look at both classes and attributes.

  • page/Quirks.h:
3:25 PM Changeset in webkit [263991] by Peng Liu
  • 2 edits in trunk/Source/WebKit

REGRESSION (r261001): ASSERTION FAILED: m_clientCounts.contains(contextId) in WebKit::VideoFullscreenManagerProxy::removeClientForContext
https://bugs.webkit.org/show_bug.cgi?id=212986

Reviewed by Jer Noble.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
Function removeClientForContext() could be called multiple times with the same contextId.
We should bail out if m_clientCounts does not contain the contextId.

3:04 PM Changeset in webkit [263990] by Peng Liu
  • 3 edits in trunk/Source/WebCore

Cleanup WebVideoFullscreenControllerAVKit.mm and PlaybackSessionInterfaceAVKit.mm
https://bugs.webkit.org/show_bug.cgi?id=214005

Reviewed by Daniel Bates.

No new tests, no behavior change.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::setUpFullscreen):
Remove a redundant line.

2:52 PM Changeset in webkit [263989] by Alan Coon
  • 1 copy in tags/Safari-610.1.21

Tag Safari-610.1.21.

2:50 PM Changeset in webkit [263988] by Russell Epstein
  • 2 edits in branches/safari-610.1.21-branch/Source/WebKitLegacy/mac

Cherry-pick r263986. rdar://problem/65149071

[Catalyst] Remove SPI header from WebDownload.h
https://bugs.webkit.org/show_bug.cgi?id=214004
<rdar://problem/65146575>

Reviewed by Wenson Hsieh.

  • Misc/WebDownload.h: Remove SPI header.

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

2:36 PM Changeset in webkit [263987] by Chris Dumez
  • 202 edits
    16 copies
    5 moves
    334 adds
    20 deletes in trunk/LayoutTests

Resync web-platform-tests/html/semantics from upstream
https://bugs.webkit.org/show_bug.cgi?id=213994

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/semantics from upstream 145839c323ba1ec8b.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/semantics/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/valueMode-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly-expected.txt:
  • tests-options.json:
2:33 PM Changeset in webkit [263986] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKitLegacy/mac

[Catalyst] Remove SPI header from WebDownload.h
https://bugs.webkit.org/show_bug.cgi?id=214004
<rdar://problem/65146575>

Reviewed by Wenson Hsieh.

  • Misc/WebDownload.h: Remove SPI header.
2:24 PM Changeset in webkit [263985] by commit-queue@webkit.org
  • 17 edits
    4 adds in trunk

Added PannerNode constructor according to spec
https://bugs.webkit.org/show_bug.cgi?id=213801

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-06
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined existing tests now that new ones are passing. New ones that fail are due to accepted range
of values that attributes can take on, which are to be implemented in a future patch.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:

Source/WebCore:

Added in new PannerNode constructor to match spec: https://www.w3.org/TR/webaudio/#dom-pannernode-pannernode.
Added in AudioNodeOptions and PannerOptions files. Modified some previous code in order to pass compilation.

Re-baselined existing tests now that new ones are passing. New ones that fail are due to accepted range
of values that attributes can take on, which are to be implemented in a future patch.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):

  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/AudioNodeOptions.h: Added.
  • Modules/webaudio/AudioNodeOptions.idl: Added.
  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNodeBase::PannerNodeBase):
(WebCore::PannerNode::create):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/PannerOptions.h: Added.
  • Modules/webaudio/PannerOptions.idl: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
1:34 PM Changeset in webkit [263984] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Some tests are failing on the EWS bots
https://bugs.webkit.org/show_bug.cgi?id=213998

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:19 PM Changeset in webkit [263983] by Jonathan Bedard
  • 2 edits in trunk/Tools

[test-webkitpy] Use platform architecture
https://bugs.webkit.org/show_bug.cgi?id=214002
<rdar://problem/65144773>

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests):

1:19 PM Changeset in webkit [263982] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

update-webkit-localizable-strings exits without writing localized strings because of an R"" string
https://bugs.webkit.org/show_bug.cgi?id=213274
<rdar://problem/64427891>

Reviewed by Darin Adler.

Remove R"" string, use adjacent string literals instead.

No new tests, functionality tested by existing tests, specifically
(http/tests/resourceLoadStatistics/telemetry-generation-basic-functionality-database.html
and http/tests/resourceLoadStatistics/telemetry-generation-advanced-functionality-database.html).

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::joinSubStatisticsForSorting):
(WebKit::CompletionHandler<void): Deleted.

12:51 PM Changeset in webkit [263981] by ggaren@apple.com
  • 8 edits in trunk/Source

callOnMainThread should use the same queue as RunLoop::dispatch
https://bugs.webkit.org/show_bug.cgi?id=213830

Reviewed by Brady Eidson.

Source/JavaScriptCore:

Source/WTF:

This should reduce flakiness in scheduled tasks.

There's no need to keep a separate queue anymore since both APIs have
the same semantics now.

  • wtf/MainThread.cpp:

(WTF::callOnMainThread):
(WTF::functionQueue): Deleted.
(WTF::dispatchFunctionsFromMainThread): Deleted.

  • wtf/MainThread.h:
  • wtf/cocoa/MainThreadCocoa.mm:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/generic/MainThreadGeneric.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

  • wtf/win/MainThreadWin.cpp:

(WTF::scheduleDispatchFunctionsOnMainThread): Deleted.

12:48 PM Changeset in webkit [263980] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

ASSERT_NOT_REACHED() in EventRegionContext::popClip()
https://bugs.webkit.org/show_bug.cgi?id=213905

Reviewed by Daniel Bates.

Fix an assertion seen on bing.com, tesla.com etc where event region painting
would have mismatched push/pop because of an obvious code error.

I spent too long trying to make a testcase and gave up.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::restoreClip):

12:45 PM Changeset in webkit [263979] by Wenson Hsieh
  • 12 edits
    1 move
    4 adds in trunk

[iPadOS] Unable to change focus between Google Docs windows by tapping
https://bugs.webkit.org/show_bug.cgi?id=213985
<rdar://problem/57083267>

Reviewed by Darin Adler.

Source/WebKit:

When putting two Google Docs windows side-by-side on iPad, it's currently not possible to change the window to
which keyboard input is routed. In native views (e.g. two side-by-side Notes windows), this is normally handled
by UITextMultiTapRecognizer, which is part of the UITextSelectionInteraction; tapping to place the text
selection calls into -[UITextInteractionAssistant setFirstResponderIfNecessaryActivatingSelection:], which
updates the key window if needed. This doesn't apply to Google Docs because they instead use touch events to
drive their own "text interaction"-like behaviors instead of relying on system gesture recognizers, which we
suppress due to the fact that the selection is within a hidden contenteditable.

But even in non-hidden editable areas, the initial tap to focus an editable element still doesn't automatically
make the window key, since the editable text interaction gestures are still inactive when tapping to focus an
editable element. This means two taps are currently required to change the key window when focusing two Safari
windows side-by-side: the first tap to focus the element (via the synthetic click gesture), and the second tap
to trigger the editable text interaction tap gesture that is used to set the selection.

To fix both of these issues, make some minor adjustments to call -makeKeyWindow from WebKit when focusing
editable elements. See below for more details.

Test: editing/selection/ios/become-key-window-when-focusing-editable-area.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _webTouchEventsRecognized:]):

For the case in Google Docs where a hidden editable element is used and tapping in the page does not result in
the element being refocused, we additionally need to make sure that we make our window key anyways. Limit this
hack to tap gestures, and only when there is a hidden focused editable element to emulate platform behavior of
updating the key window based on the text tap gesture.

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

Make the content view's window key when focusing an editable element.

(-[WKContentView hasHiddenContentEditable]):

Consider the selection to be inside a hidden editable area if the WebKit::FocusedElementIsTooSmall flag is set
as well. While this doesn't affect Google Docs, it does affect some other custom editors, such as Quip.

(-[WKContentView mouseGestureRecognizerChanged:]):

Additionally make the current window key when clicking in a hidden editable area with a trackpad on iOS.

Tools:

Add WebKitTestRunner support for being able to verify that a web view's window has become the key window.

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/UIScriptController.cpp: Added.

(WTR::UIScriptController::setWindowIsKey):
(WTR::UIScriptController::windowIsKey const):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • TestRunnerShared/UIScriptContext/UIScriptControllerShared.cpp: Renamed from Tools/TestRunnerShared/UIScriptContext/UIScriptController.cpp.

Rename UIScriptController.cpp (in TestRunnerShared) to UIScriptControllerShared.cpp, and introduce new
DumpRenderTree and WebKitTestRunner versions of UIScriptController.cpp to house DumpRenderTree and
WebKitTestRunner-specific UIScriptController method implementations.

For now, these are just windowIsKey and setWindowIsKey below, which plumb into their respective platform-
agnostic PlatformWebView methods in WebKitTestRunner.

  • WebKitTestRunner/UIScriptController.cpp: Added.

(WTR::UIScriptController::windowIsKey const):
(WTR::UIScriptController::setWindowIsKey):

  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(-[WebKitTestRunnerWindow becomeKeyWindow]):
(-[WebKitTestRunnerWindow resignKeyWindow]):

Update these two methods to update m_windowIsKey when the test runner's UIWindow becomes the key window (or
stops being the key window). This is invoked when -[UIWindow makeKeyWindow] is called (e.g. from within WebKit
code when tapping on an editable element).

(WTR::PlatformWebView::setWindowIsKey):

Avoid infinitely looping when setting windowIsKey to true, due to -becomeKeyWindow calling back into
setWindowIsKey.

LayoutTests:

Add a new layout test to verify that tapping to focus a plain textarea causes the web view's window to become
the key window, as well as tapping to focus a hidden contenteditable area, over a touch handler that prevents
default.

  • editing/selection/ios/become-key-window-when-focusing-editable-area-expected.txt: Added.
  • editing/selection/ios/become-key-window-when-focusing-editable-area.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setWindowIsKey):
(window.UIHelper.windowIsKey):

12:03 PM Changeset in webkit [263978] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Spams system logs with "Current memory footprint: 10 MB"
https://bugs.webkit.org/show_bug.cgi?id=213991

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-06
Reviewed by Darin Adler.

This particular log statement is too much spam in the system journal, since it prints
continuously under normal operating conditions. Let's limit it only to Apple platforms,
which have had RELEASE_LOG() for a long time and where this is presumably expected.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::measurementTimerFired):

12:01 PM Changeset in webkit [263977] by weinig@apple.com
  • 27 edits in trunk/Source

Compile-time enable (but leave disabled at runtime by default) date/time input types on macOS to allow testing of cross platform (e.g. DOM) aspects of the controls
https://bugs.webkit.org/show_bug.cgi?id=213949

Reviewed by Darin Adler.

Source/WebCore:

Enable date/time related input element types on all Cocoa platforms, but disable them at runtime.
To make runtime disabling work completely, the user agent style for these element types was
extracted from html.css and is now only added when needed via UserAgentStyle::ensureDefaultStyleSheetsForElement.

This is the first step to allowing us to run a subset of the date/time related input element tests
on more platforms. If this is successful, we should consider do this for all platforms, not just Cocoa.

  • css/html.css:

Move to RenderTheme accessors for conditional inclusion based on Settings.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isDateTimeField const): Deleted.

  • html/HTMLInputElement.h:

Removed dead isDateTimeField() code. This should have been removed when datetime was removed.

  • html/InputType.cpp:

(WebCore::createInputTypeFactoryMap):
(WebCore::InputType::create):
Switch from using RuntimeEnabledFeatures to Settings for checking for enabling (Settings allows
us to write less boilerplate code and is more versatile for testing) and switch to checking the
condition on each InputType construction, rather than just on map's creation (again, this allows
us to have more flexibility in testing).

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::inputTypeColorEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeColorEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeDateEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeDateTimeLocalEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateTimeLocalEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeMonthEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeMonthEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeTimeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeTimeEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inputTypeWeekEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeWeekEnabled): Deleted.
Remove hand written code infavor of code genreated from Settings.yaml.

  • page/Settings.yaml:

Moved from RuntimeEnabledFeatures.

  • platform/LocalizedStrings.h:

Remove weekFormatInLDML() declaration, which had not implementation.

  • platform/text/PlatformLocale.cpp:

(WebCore::Locale::formatDateTime):

  • platform/text/PlatformLocale.h:

Simplify code by marking formatDateTime() virtual on all platforms and un-#ifdefing
the base implementation. Platforms that wish to override it still can.

  • platform/text/cocoa/LocaleCocoa.h:
  • platform/text/cocoa/LocaleCocoa.mm:
  • platform/text/ios/LocalizedDateCache.h:
  • platform/text/ios/LocalizedDateCache.mm:

Remove iOS specific #ifdefs around code that should work on all Cocoa platforms.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::colorInputStyleSheet const):
(WebCore::RenderTheme::dateInputStyleSheet const):
(WebCore::RenderTheme::dateTimeLocalInputStyleSheet const):
(WebCore::RenderTheme::monthInputStyleSheet const):
(WebCore::RenderTheme::timeInputStyleSheet const):
(WebCore::RenderTheme::weekInputStyleSheet const):

  • rendering/RenderTheme.h:

Add default user agent stylesheet strings for input types. All moved from html.css.

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • style/UserAgentStyle.h:

Conditionally add the input type specific user agent stylesheets only if the actual
input type is being passed in. Since creation of the input types is guarded by a Setting,
this can only happen if the type has been enabled.

Source/WebKit:

  • Shared/FocusedElementInformation.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFocusedElementInfo initWithFocusedElementInformation:isUserInitiated:userObject:]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView textInputTraits]):
(mayContainSelectableText):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):
Remove DateTime from the InputType enum. This should have been removed when datetime was removed.

  • Shared/WebPreferences.yaml:

Add preferences for all the date/time related input types, and have them automatically
link up with the newly added WebCore Settings of the same names (this is the default
behavior if no explicit webcoreBinding: is provided).

  • Shared/WebPreferencesDefaultValues.h:

Disable date/time input elements by default for non iOS/watchOS cocoa platforms. For non-Cocoa platforms
(and iOS/watchOS), they are enabled by default, but only actually get enabled if the appropriate ENABLE_*
macro is also set.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Enable building date/time input types on all Cocoa ports.

11:09 AM Changeset in webkit [263976] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[result database] Empty search will return too many tests to display
https://bugs.webkit.org/show_bug.cgi?id=213898

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/js/search.js: Trim the search string before fetching the tests, ingore empty string on paste event
10:44 AM Changeset in webkit [263975] by Russell Epstein
  • 8 edits in branches/safari-610.1.21-branch/Source

Versioning.

WebKit-610.1.21

10:39 AM Changeset in webkit [263974] by Russell Epstein
  • 1 copy in branches/safari-610.1.21-branch

New branch.

10:15 AM Changeset in webkit [263973] by ggaren@apple.com
  • 6 edits in trunk

RunLoop::dispatch should only call wakeUp when needed
https://bugs.webkit.org/show_bug.cgi?id=213705

Reviewed by Brady Eidson.

Source/WTF:

RunLoop::wakeUp is super expensive (at least on Darwin platforms). Back
when IndexedDB used RunLoop::dispatch, RunLoop::wakeUp accounted for 15%
of all database lookup time.

We can reduce the cost a bit by only scheduling a wakeUp when the queue
is empty.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::performWork): Take all the functions out of the pending
queue before we start executing them; that way, we can tell if a new
function has been added to the pending queue since we enetered
performWork.

(WTF::RunLoop::dispatch): Only call wakeUp if we need to.

  • wtf/RunLoop.h:

Tools:

Added some tests for interesting edge cases.

Now that we have tests, we don't need so many comments.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST): Test that re-entry maintiains ordering. Test that
re-entry does not deadlock with cross-thread posting. (This deadlock is
why we can't just use a naive check for an empty queue.)

  • TestWebKitAPI/glib/UtilitiesGLib.cpp:

(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::spinRunLoop):
(TestWebKitAPI::Util::sleep): Try to fix the GLib RunLoop testing code.
GLib fails my two new tests, and seems to fail other RunLoop-y tests.
I think this is because g_idle_add is defined not to work in nested
RunLoops. Let's see if using WTF's RunLoop API instead can help.

9:53 AM Changeset in webkit [263972] by commit-queue@webkit.org
  • 3 edits in trunk/PerformanceTests

MallocBench: Remove unused private field
https://bugs.webkit.org/show_bug.cgi?id=213989

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-06
Reviewed by Alex Christensen.

The m_argc private field is never used. Remove it.

  • MallocBench/MallocBench/CommandLine.cpp:
  • MallocBench/MallocBench/CommandLine.h:
9:51 AM Changeset in webkit [263971] by commit-queue@webkit.org
  • 4 edits in trunk

Allow setting empty host/hostname on URLs if they use file scheme
https://bugs.webkit.org/show_bug.cgi?id=213983

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-06
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Allow setting empty host/hostname on URLs if they use file scheme [1, 2, 3].

Behavior matches Firefox.

[1] https://url.spec.whatwg.org/#dom-url-host
[2] https://url.spec.whatwg.org/#dom-url-hostname
[3] https://url.spec.whatwg.org/#host-state Step 1

Test: imported/w3c/web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):
(WebCore::URLDecomposition::setHostname):

9:48 AM Changeset in webkit [263970] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Update the user agent on iPadOS to use 11 to match macOS Safari
https://bugs.webkit.org/show_bug.cgi?id=213753

Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2020-07-06
Reviewed by Alex Christensen.

Update the version number in the desktop user agent string to 11_0.

  • platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):

9:27 AM Changeset in webkit [263969] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Use RenderObject::positionForPoint instead of hit testing the entire view in closestEditablePositionInElementForAbsolutePoint
https://bugs.webkit.org/show_bug.cgi?id=213975

Reviewed by Wenson Hsieh.

The target renderer is known a priori so it is more efficient to hit test this directly
instead of indirectly by hit testing the entire view.

  • editing/Editing.cpp:

(WebCore::closestEditablePositionInElementForAbsolutePoint):

8:18 AM Changeset in webkit [263968] by Alan Bujtas
  • 8 edits in trunk/LayoutTests

[Win] Unreviewed mozilla test gardening after r263855.

  • platform/win/tables/mozilla/bugs/bug100334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug10633-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1302-expected.txt:
  • platform/win/tables/mozilla/bugs/bug16012-expected.txt:
  • platform/win/tables/mozilla/bugs/bug222336-expected.txt:
  • platform/win/tables/mozilla/bugs/bug3037-1-expected.txt:
8:03 AM Changeset in webkit [263967] by Alan Bujtas
  • 13 edits in trunk/LayoutTests

[Win] Unreviewed test gardening after r263855.

  • platform/win/fast/css/acid2-expected.txt:
  • platform/win/fast/css/acid2-pixel-expected.txt:
  • platform/win/fast/css/percentage-non-integer-expected.txt:
  • platform/win/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/win/fast/repaint/table-cell-move-expected.txt:
  • platform/win/fast/table/cell-absolute-child-expected.txt:
  • platform/win/fast/table/empty-cells-expected.txt:
  • platform/win/fast/table/prepend-in-anonymous-table-expected.txt:
  • platform/win/fast/table/table-cell-split-expected.txt:
  • platform/win/fast/table/table-insert-before-non-anonymous-block-expected.txt:
  • platform/win/http/tests/misc/acid2-expected.txt:
  • platform/win/http/tests/misc/acid2-pixel-expected.txt:
5:13 AM Changeset in webkit [263966] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

BubblewrapLauncher.cpp: Add paths required for sndio
https://bugs.webkit.org/show_bug.cgi?id=212524

Information about the paths currently ins't into the sndio
documentation but it can be found in this email:
http://www.sndio.org/arch/0077.html

Patch by Haelwenn (lanodan) Monnier <contact@hacktivis.me> on 2020-07-06
Reviewed by Adrian Perez de Castro.

Manually tested, there is currently no automatic tests for it

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindSndio):
(WebKit::bubblewrapSpawn):

2:47 AM Changeset in webkit [263965] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][WPE] Enable storageAccess tests
https://bugs.webkit.org/show_bug.cgi?id=213881

Reviewed by Adrian Perez de Castro.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::getAllStorageAccessEntries): Use the right website data store.

LayoutTests:

Enable storageAccess tests and mark expected failures.

  • platform/glib/TestExpectations:
1:49 AM Changeset in webkit [263964] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK][WPE] Change the cookies accept policy when ITP is enabled
https://bugs.webkit.org/show_bug.cgi?id=213502

Reviewed by Michael Catanzaro.

Source/WebCore:

Set the accept policy to always when ITP is enabled and no-third-party is set, otherwise cookies access granted
by request storage access would still be rejected by libsoup if policy is set to no-third-party.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled): Move here the implementation for ports not
using soup.

  • platform/network/NetworkStorageSession.h:
  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession): Initialize cookie accept policy.
(WebCore::NetworkStorageSession::setCookieStorage): Set here the accept policy of the new jar.
(WebCore::NetworkStorageSession::setCookieAcceptPolicy): Set the cookie accept policy taking into account that
if ITP is enabled and no-third-party is set we save the policy but use always instead.
(WebCore::NetworkStorageSession::cookieAcceptPolicy const): Remove the default case of the switch.
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled): When enabled, save current policy and set
always if no-third-party is set. When disabled, restore the saved policy.

Source/WebKit:

  • NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Use NetworkStorageSession::setCookieAcceptPolicy().

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::setCookiePersistentStorage): Do not change the accept policy, it's now done by
NetworkStorageSession when the new cookie jar is set.

  • UIProcess/API/glib/WebKitCookieManager.cpp: Update API docs.
  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp: Ditto.

Tools:

Add tests to check the policy is changed and restored correctly when ITP is enabled and disabled.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:

(testCookieManagerAcceptPolicy):

1:35 AM Changeset in webkit [263963] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[Flatpak SDK] Misc updates
https://bugs.webkit.org/show_bug.cgi?id=213968

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-06
Reviewed by Sergio Villar Senin.

  • buildstream/README.rst: ReST format fixes and doc additions.
  • buildstream/elements/sdk/perl-term-readkey.bst: Remove perllocal.pod as it can clash with other recipes.
  • flatpak/flatpakutils.py:

(run_in_sandbox_if_available): Add --flatpak- option pass-through support. This was lost
after the migration of run-minibrowser to python.

12:42 AM Changeset in webkit [263962] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Don't skip samples past media duration in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=213888

Reviewed by Xabier Rodriguez-Calvar.

appsinkNewSample() contained code to skip samples whose presentation
time starts after media duration. This is paradoxical, because later
sourceBufferPrivateDidReceiveSample() extends media duration whenever
the presentation end time of the sample is past the original one.

It does not sound reasonable that samples extending the duration are
okay on one case but outright rejected in the other. Also, if it was
about skipping samples, sourceBufferPrivateDidReceiveSample() could do
it itself, and already does in other cases.

For all these reasons I was very doubtful of the need for this if()
and indeed removing this condition didn't cause any new test failure.

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

(WebCore::AppendPipeline::appsinkNewSample):

Jul 5, 2020:

5:59 PM Changeset in webkit [263961] by commit-queue@webkit.org
  • 34 edits
    4 deletes in trunk

Unreviewed, reverting r263960.
https://bugs.webkit.org/show_bug.cgi?id=213980

Re-land, because r263959 somehow fixed the build issue caused
by r263953

Reverted changeset:

"Unreviewed, reverting r263953 and r263959."
https://bugs.webkit.org/show_bug.cgi?id=213979
https://trac.webkit.org/changeset/263960

5:46 PM Changeset in webkit [263960] by commit-queue@webkit.org
  • 34 edits
    4 adds in trunk

Unreviewed, reverting r263953 and r263959.
https://bugs.webkit.org/show_bug.cgi?id=213979

Broke internal build

Reverted changesets:

"[Cocoa] Move almost all features from FeatureDefines.xcconfig
to PlatformEnableCocoa.h"
https://bugs.webkit.org/show_bug.cgi?id=212542
https://trac.webkit.org/changeset/263953

"[Cocoa] Remove FEATURE_DEFINES from the Cocoa/Xcode build
system"
https://bugs.webkit.org/show_bug.cgi?id=213976
https://trac.webkit.org/changeset/263959

4:34 PM Changeset in webkit [263959] by Darin Adler
  • 32 edits
    4 deletes in trunk

[Cocoa] Remove FEATURE_DEFINES from the Cocoa/Xcode build system
https://bugs.webkit.org/show_bug.cgi?id=213976

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Removed FEATURE_DEFINES.
  • Configurations/FeatureDefines.xcconfig: Removed.
  • Configurations/JSC.xcconfig: Removed include of FeatureDefines.xcconfig.
  • Configurations/JavaScriptCore.xcconfig: Ditto.
  • Configurations/ToolExecutable.xcconfig: Ditto.
  • DerivedSources-input.xcfilelist: Removed FeatureDefines.xcconfig.
  • DerivedSources.make: Removed FEATURE_DEFINES and FEATURE_DEFINE_FLAGS.
  • JavaScriptCore.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed everything except for ENABLE_WEB_RTC.
  • Configurations/WebCore.xcconfig: Removed FEATURE_DEFINES.
  • DerivedSources-input.xcfilelist: Removed FeatureDefines.xcconfig.
  • DerivedSources.make: Removed FEATURE_DEFINES, FEATURE_DEFINE_FLAGS, and the dependency

on FeatureDefines.xcconfig.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed.
  • Configurations/PAL.xcconfig: Removed FEATURE_DEFINES and the include

of FeatureDefines.xcconfig.

  • PAL.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.

Source/WebKit:

  • Configurations/BaseTarget.xcconfig: Removed FEATURE_DEFINES, and added

WK_ENABLE_EXPERIMENTAL_FEATURES,

  • Configurations/FeatureDefines.xcconfig: Removed everything except for ENABLE_WEB_RTC.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Removed FeatureDefines.xconfig.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed.
  • Configurations/WebKitLegacy.xcconfig: Removed FEATURE_DEFINES and the include of

FeatureDefines.xcconfig.

  • MigrateHeaders.make: Removed FEATURE_DEFINES, FEATURE_DEFINE_FLAGS, and

FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES. FEATURE_AND_PLATFORM_DEFINES is now used
solely to determine if this is an internal SDK build, which should be cleaned up later.

Tools:

  • Scripts/webkitpy/style/checkers/featuredefines.py: Removed all FeatureDefines.xcconfig

files except for the two that remain, WebCore and WebKit.

  • TestWebKitAPI/Configurations/Base.xcconfig: Removed FEATURE_DEFINES.
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed.
  • TestWebKitAPI/Configurations/TestWTF.xcconfig: Removed include of FeatureDefines.xcconfig.
  • TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Ditto.
  • TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig: Ditto.
  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Ditto.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.
4:32 PM Changeset in webkit [263958] by commit-queue@webkit.org
  • 4 edits in trunk

Text manipulation: add a new heuristic to decide paragraph boundary
https://bugs.webkit.org/show_bug.cgi?id=213918

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-05
Reviewed by Wenson Hsieh.

Source/WebCore:

Modified test: TextManipulation.StartTextManipulationTreatsInlineBlockLinksAndButtonsAndSpansAsParagraphs.

  • editing/TextManipulationController.cpp:

(WebCore::isEnclosingItemBoundaryElement):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

4:10 PM Changeset in webkit [263957] by Darin Adler
  • 2 edits in trunk/Source/WebCore

[Cocoa] REGRESSION (r263914): Non-Apple-Pay Cocoa builds failing
https://bugs.webkit.org/show_bug.cgi?id=213977

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm: Fixed messed up #endif and

unnecessary #undef at end of file.

4:06 PM Changeset in webkit [263956] by aestes@apple.com
  • 8 edits
    1 add in trunk/Source

[iOS] La Banque Postale app does not respect safe area insets on iOS 14
https://bugs.webkit.org/show_bug.cgi?id=213974
<rdar://problem/65109197>

Reviewed by Darin Adler.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isLaBanquePostale): Added.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

La Banque Postale uses a fixed list of iOS versions that support safe area insets (versions
11 through 13 at the time of writing). Since iOS 14 is not in this list, the app fails to
apply top and bottom safe area insets to its web content. Work around this by adding the
'device-ios12p' class to <body> as if the iOS major version were 13 (the app currently uses
'device-ios12p' to represent both iOS 12 and iOS 13). This quirk will be disabled on
versions of La Banque Postale that link against the iOS 14 SDK (or later).

  • Configurations/WebKitLegacy.xcconfig: Excluded LaBanquePostaleQuirks.js on Mac.
  • Resources/LaBanquePostaleQuirks.js: Added.
  • WebView/WebView.mm:

(needsLaBanquePostaleQuirks): Added. Checks if the quirk is needed.
(leakLaBanquePostaleQuirksScript): Added. Leaks an NSString containing the quirk script.
(-[WebView _injectLaBanquePostaleQuirks]): Added. Injects the quirk as a user script.
(-[WebView _commonInitializationWithFrameName:groupName:]):

3:23 PM Changeset in webkit [263955] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.20.4

Tag Safari-610.1.20.4.

2:57 PM Changeset in webkit [263954] by Kocsen Chung
  • 8 edits in branches/safari-610.1.20-branch/Source

Versioning.

WebKit-610.1.20.4

12:31 PM Changeset in webkit [263953] by Darin Adler
  • 14 edits in trunk

[Cocoa] Move almost all features from FeatureDefines.xcconfig to PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=212542

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

  • Configurations/WebKit.xcconfig: Added include of WebKitTargetConditionals.xcconfig.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Delete everything except

ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Added include of

WebKitTargetConditionals.xcconfig.

12:00 PM Changeset in webkit [263952] by Wenson Hsieh
  • 8 edits in trunk/Source/WebCore

[macOS 11] Indeterminate progress bar animation periodically jumps
https://bugs.webkit.org/show_bug.cgi?id=213967

Reviewed by Sam Weinig.

Source/WebCore:

The animation for an indeterminate progress bar occasionally jumps to the starting frame on macOS 11. This is
because the indeterinate progress bar animation only lasts for 120 frames on macOS 11, so our current hard-coded
value of 256 frames results in 16 extra frames of animation, before abruptly looping back to the starting frame.

To fix this, instead of specifying the animation frame index when painting progress bars on macOS, specify the
starting time and current time for the animation, and let CoreUI determine which frame to use.

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::animationProgress):

Assert that this never gets called with a zero animation duration.

(WebCore::RenderProgress::updateAnimationState):

Instead of checking for the animation duration to determine whether or not we should try and animate progress
bar painting, check for the animation repeat interval instead. This is because on macOS, we no longer hard-code
the animation duration, but still want to be able to animate progress bars.

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar const): Deleted.
(WebCore::RenderThemeIOS::animationDurationForProgressBar const): Deleted.

Drive-by fix: remove some unnecessary overridden method implementations on RenderThemeIOS.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::RenderThemeMac::animationDurationForProgressBar const): Deleted.

Stop overriding this method, and remove the progressAnimationNumFrames constant declared in this file.

Source/WebCore/PAL:

  • pal/spi/mac/CoreUISPI.h: Add declarations for kCUIAnimationStartTimeKey and kCUIAnimationTimeKey.
7:23 AM Changeset in webkit [263951] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: Fix python3 build warnings
https://bugs.webkit.org/show_bug.cgi?id=213971

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-05
Reviewed by Sam Weinig.

Fix Python3 syntax warnings. Using 'is' with string literals triggers those. Adopt the ==
operator instead, which is more idiomatic anyway.

  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.cpp_getter_method_for_type):
(CppGenerator.cpp_setter_method_for_type):

  • inspector/scripts/codegen/objc_generator.py:

(ObjCTypeCategory.category_for_type):
(ObjCGenerator.objc_type_for_raw_name):
(ObjCGenerator.objc_class_for_raw_name):
(ObjCGenerator.protocol_type_for_raw_name):
(ObjCGenerator.objc_protocol_export_expression_for_variable):
(ObjCGenerator.objc_protocol_import_expression_for_variable):
(ObjCGenerator.objc_to_protocol_expression_for_member):
(ObjCGenerator.protocol_to_objc_expression_for_member):
(ObjCGenerator.payload_to_objc_expression_for_member):
(ObjCGenerator.objc_setter_method_for_member_internal):
(ObjCGenerator.objc_getter_method_for_member_internal):
(ObjCGenerator.objc_protocol_export_expression_for_variable.is): Deleted.
(ObjCGenerator.objc_protocol_import_expression_for_variable.is): Deleted.
(ObjCGenerator.objc_to_protocol_expression_for_member.is): Deleted.
(ObjCGenerator.protocol_to_objc_expression_for_member.is): Deleted.

7:15 AM Changeset in webkit [263950] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] run-wpe-tests Python3 compatibility
https://bugs.webkit.org/show_bug.cgi?id=213969

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-05
Reviewed by Sam Weinig.

  • Scripts/run-wpe-tests:
3:02 AM Changeset in webkit [263949] by commit-queue@webkit.org
  • 15 edits in trunk

[macOS] Allow selecting HEIF images if the 'accept' attribute includes an image MIME type that the platform can transcode the HEIF to
https://bugs.webkit.org/show_bug.cgi?id=212489

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-05
Reviewed by Darin Adler.

Source/WebCore:

Add some utility functions to MIMETypeRegistry. These new functions will
deal with a list of MIME types combined with a list of file extensions.
They are going to be used the FileChooserSettings which reflects the
'accept' attribute of the <input> file element.

  • platform/MIMETypeRegistry.cpp:

(WebCore::trimmedExtension):
(WebCore::MIMETypeRegistry::preferredImageMIMETypeForEncoding):
(WebCore::MIMETypeRegistry::containsImageMIMETypeForEncoding):

(WebCore::MIMETypeRegistry::allowedMIMETypes):
It returns the set of mime types which is stated by a list of mime types
and a list of file extensions.

(WebCore::MIMETypeRegistry::allowedFileExtensions):
It returns the set of extensions which is stated by a list of mime types
and a list of file extensions.

  • platform/MIMETypeRegistry.h:

Source/WebKit:

Make WKOpenPanelParameters call allowedFileExtensions() and allowedMIMETypes()
of MIMETypeRegistry via OpenPanelParameters.

UIDelegate will get allowedMIMETypes() and pass it to WebOpenPanelResultListenerProxy
which will pass it to WebPageProxy. In a following patch, WebPageProxy
will use allowedMIMETypes to transcode the selected images before sending
them to WebPage.

  • UIProcess/API/APIOpenPanelParameters.cpp:

(API::OpenPanelParameters::allowedMIMETypes const):
(API::OpenPanelParameters::allowedFileExtensions const):
(API::OpenPanelParameters::mediaCaptureType const): Deleted.

  • UIProcess/API/APIOpenPanelParameters.h:

(API::OpenPanelParameters::mediaCaptureType const):

  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:

(-[WKOpenPanelParameters _allowedFileExtensions]):
(-[WKOpenPanelParameters _allowedFileExtensionsTitles]): Deleted.

  • UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::runOpenPanel):

  • UIProcess/WebOpenPanelResultListenerProxy.cpp:

(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):

  • UIProcess/WebOpenPanelResultListenerProxy.h:

(WebKit::WebOpenPanelResultListenerProxy::chooseFiles):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChooseFilesForOpenPanel):

  • UIProcess/WebPageProxy.h:

Tools:

The scope of this enhancement will be scaled down. No UI change will be
done for now. Only allow HEIF/HEIC images to be selected if the 'accept'
attribute include a mime type which CG supports transcoding the HEIF/HEIC
images to.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[FileExtensionsPopupTarget initWithOpenPanel:allowedFileExtensions:]): Deleted.
(-[FileExtensionsPopupTarget popupAction:]): Deleted.
(-[FileExtensionsPopupTarget dealloc]): Deleted.
(-[WK2BrowserWindowController createFilterView:popupTarget:]): Deleted.

Jul 4, 2020:

6:54 PM Changeset in webkit [263948] by Darin Adler
  • 2 edits in trunk/Source/WTF

[Cocoa] Add almost everything from FeatureDefines.xcconfig to PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=213964

Reviewed by Sam Weinig.

Added logic that matches what FeatureDefines.xcconfig does for everything
except for ENABLE_EXPERIMENTAL_FEATURES.

Changed format so we mostly list platforms where we do not want to enable
a certain feature; also order it pretty consistently macOS, iOS, Mac Catalyst,
watchOS, then tvOS. This format highlights possible mistakes when not enabling
a feature on some platforms in an easier to understand way.

  • wtf/PlatformEnableCocoa.h:

(ENABLE_AIRPLAY_PICKER): List platforms that do *not* enable this.
(ENABLE_APPLE_PAY): All except Mac Catalyst, watchOS, tvOS.
Not sure why disabled in Mac Catalyst, but replicates FeatureDefines.xcconfig.
(ENABLE_APPLE_PAY_REMOTE_UI): List platforms that do *not* enable this.
(ENABLE_AUTOCAPITALIZE): List platforms that do *not* enable this.
(ENABLE_AUTOCORRECT): List platforms that do *not* enable this.
(ENABLE_CONTENT_FILTERING): All except older watchOS simulator and tvOS.
(ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER): Re-sorted this.
(ENABLE_CSS_CONIC_GRADIENTS): All except older macOS and tvOS. The tvOS
exception seems questionable, so added a FIXME.
(ENABLE_DARK_MODE_CSS): All except watchOS and tvOS.
(ENABLE_DATA_INTERACTION): All except macOS, watchOS, and tvOS.
(ENABLE_DATA_DETECTION): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_EDITABLE_REGION): Only iOS.
(ENABLE_ENCRYPTED_MEDIA): All except older macOS and Mac Catalyst.
(ENABLE_FULLSCREEN_API): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_FULL_KEYBOARD_ACCESS): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_GAMEPAD): All except watchOS.
(ENABLE_INPUT_TYPE_DATE): All except macOS, Mac Catalyst, and tvOS.
(ENABLE_INPUT_TYPE_DATETIMELOCAL): Ditto.
(ENABLE_INPUT_TYPE_MONTH): Ditto.
(ENABLE_INPUT_TYPE_TIME): Ditto.
(ENABLE_INPUT_TYPE_WEEK): Ditto.
(ENABLE_MEDIA_CAPTURE): All except macOS.
(ENABLE_MEDIA_SOURCE): All except Mac Catalyst, watchOS, tvOS, and
all simulators.
(ENABLE_MEDIA_STREAM): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_NAVIGATOR_STANDALONE): All iOS family. (Considered writing as
all except macOS, but left like this to match some .cpp code for now.)
(ENABLE_OVERFLOW_SCROLLING_TOUCH): All iOS family.
(ENABLE_PICTURE_IN_PICTURE_API): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_SPEECH_SYNTHESIS): All except Mac Catalyst.
(ENABLE_REVEAL): All except older macOS, watchOS, and tvOS.
(ENABLE_SIGILL_CRASH_ANALYZER): All except macOS and watchOS.
(ENABLE_TAKE_UNBOUNDED_NETWORKING_ASSERTION): All except macOS, watchOS, and tvOS.
(ENABLE_VIDEO_PRESENTATION_MODE): All except simulators and tvOS.
(ENABLE_WEBGPU): All except older macOS, Mac Catalyst, and simulators.
(ENABLE_WEB_API_STATISTICS): Re-sorted this.
(ENABLE_WEB_AUTHN): All except Mac Catalyst, watchOS, and tvOS.
(ENABLE_WEB_RTC): All except Mac Catalyst, watchOS, and tvOS.

2:32 PM Changeset in webkit [263947] by Darin Adler
  • 14 edits in trunk

[Cocoa] Remove all features from FeatureDefines.xcconfig that are already mentioned in PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=213962

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

(ENABLE_DRAG_SUPPORT): Before, this was enabled for iOS, iOS simulator, and Mac Catalyst in the
FeatureDefines.xcconfig file, but then disabled for any other iOS family platform here, then enabled
by default in PlatformEnable.h, which covered Mac. Instead, disable here only for watchOS and tvOS,
which gives the same result in a more straightforward way.
(ENABLE_GEOLOCATION): Before, this was enabled for iOS, iOS simulator, Mac Catalyst, and Mac in the
FeatureDefines.xcconfig file, then enabled for any other iOS family platform here. Instead, just
enable here for all Cocoa platforms, which gives the same result in a more straightforward way.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned

in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

2:17 PM Changeset in webkit [263946] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][BFC] Move PositiveAndNegativeVerticalMargin to UsedVerticalMargin
https://bugs.webkit.org/show_bug.cgi?id=213963

Reviewed by Antti Koivisto.

Now that UsedVerticalMargin is not used in Display::Box, we can merged these 2 layout structures.

  • layout/MarginTypes.h:

(WebCore::Layout::UsedVerticalMargin::PositiveAndNegativePair::Values::isNonZero const):
(WebCore::Layout::PositiveAndNegativeVerticalMargin::Values::isNonZero const): Deleted.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingState.h:

(WebCore::Layout::BlockFormattingState::hasUsedVerticalMargin const):
(WebCore::Layout::BlockFormattingState::setPositiveAndNegativeVerticalMargin): Deleted.
(WebCore::Layout::BlockFormattingState::hasPositiveAndNegativeVerticalMargin const): Deleted.
(WebCore::Layout::BlockFormattingState::positiveAndNegativeVerticalMargin const): Deleted.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::computedPositiveAndNegativeMargin const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginValue const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):

  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeMarginBefore const):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

2:09 PM Changeset in webkit [263945] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] Remove redundant out-of-flow height-and-margin handling
https://bugs.webkit.org/show_bug.cgi?id=213959

Reviewed by Antti Koivisto.

We will never end up here with an out-of-flow box.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

1:06 PM Changeset in webkit [263944] by Alexey Shvayka
  • 5 edits
    3 adds in trunk

%TypedArray%.prototype.{indexOf,lastIndexOf} are not spec-perfect
https://bugs.webkit.org/show_bug.cgi?id=213715

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/array-prototype-indexOf-empty.js: Added.
  • microbenchmarks/typed-array-indexOf-empty.js: Added.
  • stress/array-indexof-tointeger-order.js: Added.
  • test262/expectations.yaml: Mark 10 test cases as passing.

Source/JavaScriptCore:

This patch:

  1. Implements step 3 of {Array,%TypedArray%}.prototype.indexOf [1] and %TypedArray%.prototype.lastIndexOf [2] since it is observable when second argument is an object with userland toString() or valueOf() method. Advances provided microbenchmark by 100% for Array and by 25% for %TypedArray%.
  1. Removes argument count check from %TypedArray%.prototype.{indexOf,lastIndexOf}, allowing these methods to be invoked w/o arguments. The spec treats missing arguments as undefined, always returning -1 for typed arrays.

Both changes align JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-array.prototype.indexof
[2]: https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

1:06 PM Changeset in webkit [263943] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

[LFC][BFC] Store used vertical margin values in the formatting state
https://bugs.webkit.org/show_bug.cgi?id=213958

Reviewed by Antti Koivisto.

Layout related vertical margin values (collapsed vs. non-collapsed) should all go to the FormattingState, while
Display::Box should only have the final values.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):

  • layout/MarginTypes.h:

(WebCore::Layout::marginBefore):
(WebCore::Layout::marginAfter):
(WebCore::Layout::UsedVerticalMargin::before const): Deleted.
(WebCore::Layout::UsedVerticalMargin::after const): Deleted.
(WebCore::Layout::UsedVerticalMargin::isCollapsedThrough const): Deleted.
(WebCore::Layout::UsedVerticalMargin::nonCollapsedValues const): Deleted.
(WebCore::Layout::UsedVerticalMargin::collapsedValues const): Deleted.
(WebCore::Layout::UsedVerticalMargin::hasCollapsedValues const): Deleted.
(WebCore::Layout::UsedVerticalMargin::setCollapsedValues): Deleted.
(WebCore::Layout::UsedVerticalMargin::UsedVerticalMargin): Deleted.

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockFormattingState.h:

(WebCore::Layout::BlockFormattingState::setUsedVerticalMargin):
(WebCore::Layout::BlockFormattingState::usedVerticalMargin const):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):
(WebCore::Display::Box::nonCollapsedMarginBox const): Deleted.

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::rectWithMargin const):
(WebCore::Display::Box::setHasValidVerticalMargin):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::marginBefore const):
(WebCore::Display::Box::marginAfter const):
(WebCore::Display::Box::VerticalMargin::before const): Deleted.
(WebCore::Display::Box::VerticalMargin::after const): Deleted.
(WebCore::Display::Box::VerticalMargin::isCollapsedThrough const): Deleted.
(WebCore::Display::Box::VerticalMargin::nonCollapsedValues const): Deleted.
(WebCore::Display::Box::VerticalMargin::collapsedValues const): Deleted.
(WebCore::Display::Box::VerticalMargin::hasCollapsedValues const): Deleted.
(WebCore::Display::Box::VerticalMargin::setCollapsedValues): Deleted.
(WebCore::Display::Box::hasCollapsedThroughMargin const): Deleted.
(WebCore::Display::Box::setHasValidVerticalNonCollapsedMargin): Deleted.
(WebCore::Display::Box::VerticalMargin::VerticalMargin): Deleted.
(WebCore::Display::Box::VerticalMargin::NonCollapsedValues::NonCollapsedValues): Deleted.
(WebCore::Display::Box::VerticalMargin::CollapsedValues::CollapsedValues): Deleted.
(WebCore::Display::Box::nonCollapsedMarginBefore const): Deleted.
(WebCore::Display::Box::nonCollapsedMarginAfter const): Deleted.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):
(WebCore::Layout::TableFormattingContext::layoutCell):

12:21 PM Changeset in webkit [263942] by Darin Adler
  • 12 edits in trunk

[Cocoa] Remove unconditional features from FeatureDefines.xcconfig, making sure they are covered in PlatformEnableCocoa.h
https://bugs.webkit.org/show_bug.cgi?id=212418

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,

or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
PlatformEnableCocoa.h.

12:20 PM Changeset in webkit [263941] by weinig@apple.com
  • 45 edits
    1 delete in trunk

Part 1 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=213948

Reviewed by Darin Adler.

Source/WebCore:

Begin converging SimpleColor and SRGBA<uint8_t>, starting with removing usages that
were getting SimpleColors to access or operate on the color's components.

  • Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>
  • Replace toSRGBALossy() with toSRGBALossy<float>().
  • Remove direct color component accessors from SimpleColor.
  • Add new ARGB type to support explicit conversion from packed ARGB bits to a color type.
  • Update premulitplication functions to operate on SRGBA<uint8_t> and rename them to match existing function operating on SRGBA<float>.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Removes SimpleColor.cpp

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::colorValue const):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::colorValue const):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • css/DeprecatedCSSOMRGBColor.h:

Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::lightness const):
(WebCore::Color::luminance const):
(WebCore::Color::semanticColor const):
(WebCore::Color::toSRGBASimpleColorLossy const): Deleted.
(WebCore::Color::toSRGBALossy const): Deleted.

  • platform/graphics/Color.h:

Remove toSRGBASimpleColorLossy() and templatize toSRGBALossy() to support both
lossy conversion to byte based components as well.

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendSourceOver):
(WebCore::blendWithWhite):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

(WebCore::blend):
(WebCore::blendWithoutPremultiply):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>. Adopt new premultipliedCeiling
and unpremultiplied functions that operate on SRGBA<uint8_t> (rather than SimpleColor) and
clamping conversion to SRGBA<uint8_t> via convertToComponentBytes<SRGBA>. premultipliedCeiling
now works correctly for 0 alpha, so no workaround is needed anymore.

  • platform/graphics/ColorTypes.h:

(WebCore::asARGB):
(WebCore::asSRGBA):
Add new type of color struct representing a format packing. The initial one is ARGB to support
the few places using SimpleColor to manipulate ARGB pixel data.

  • platform/graphics/ColorUtilities.cpp:

(WebCore::unpremultiplied):
(WebCore::premultipliedFlooring):
(WebCore::premultipliedCeiling):
(WebCore::unpremultipliedComponentByte):

  • platform/graphics/ColorUtilities.h:

(WebCore::convertToComponentBytes):
(WebCore::convertToComponentFloats):
Move remaining premultiplication functions here (from SimpleColor.h/cpp) and reimplement
to operate on SRGBA<uint8_t>. Also slightly rename, premultiply -> premultiplied, to
match existing premultiplied functions. While moving them, also fix the premultiplied
functions to better support 0 alpha to avoid workarounds in callers.

Additional, this adds convertToComponentBytes/convertToComponentFloats helper functions
which convert to/from uint8_t/float based color types, and support creating color types
from values potentially outside of their supported value range. Right now, that value
range is always considerer to be 0-255 for uint8_t and 0-1 for float, but that can be
chnaged in the future by allowing color type structs to indicate their supported ranges.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::toSRGBAFloatComponentsLossy const):
(WebCore::ExtendedColor::toSRGBALossy const): Deleted.

  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::toSRGBALossy const):
Rename existing toSRGBALossy() to toSRGBAFloatComponentsLossy() and replace templatize
toSRGBALossy(), with the uint8_t case just down converting via new convertToComponentBytes.

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::fillRect):
(WebCore::ImageBackingStore::setPixel):
(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):
Replace usage of SimpleColor with new ARGB type for conversion from ARGB to SRGBA<uint8_t>.
Update to use new premulitplication functions. Also, update the interface to take pixel
components as uint8_t, rather than unsigned, as that is what the callers are passing anyway,
and it avoids us having to clamp/cast manually all over the case.

  • platform/graphics/SimpleColor.cpp: Removed.
  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::alphaComponent const):
(WebCore::SimpleColor::asSRGBA const):
(WebCore::SimpleColor::redComponent const):
(WebCore::SimpleColor::greenComponent const):
(WebCore::SimpleColor::blueComponent const):
(WebCore::operator==):
(WebCore::makeSimpleColor):
Simplify interface, making red, green and blue component accessors private and having
callers all use SRGBA directly. Remove premultiplication functions in favor of new ones
in ColorUtilities.

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

(PlatformCAAnimationWin::setFromValue):
(PlatformCAAnimationWin::setToValue):
(PlatformCAAnimationWin::setValues):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::setSourceRGBAFromColor):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::addColorStopRGBA):
(WebCore::setCornerColorRGBA):
(WebCore::interpolateColorStop):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:

(WebCore::ImageBufferCairoImageSurfaceBackend::platformTransformColorSpace):
Replace usage of SimpleColor with new ARGB type for conversion from ARGB to SRGBA<uint8_t>.
Update to use new premulitplication functions.

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::nativeImageSinglePixelSolidColor):
Replace usage of SimpleColor with new ARGB type for conversion from ARGB to SRGBA<uint8_t>.
Update to use new premulitplication functions.

  • platform/graphics/cpu/arm/filters/FELightingNEON.h:

(WebCore::FELighting::platformApplyNeon):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::operator GdkRGBA const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawNumber):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::clearColor):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::operator D2D1_COLOR_F const):
(WebCore::Color::operator D2D1_VECTOR_4F const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::generateGradient):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawDotsForDocumentMarker):
Replace direct usage component access from SimpleColor with usage of accessed SRGBA<uint8_t>.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::colorWithGlobalAlpha const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::disabledTextColor const):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • rendering/RenderThemeIOS.mm:

(WebCore::shouldUseConvexGradient):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • rendering/TextPaintStyle.cpp:

(WebCore::textColorIsLegibleAgainstBackgroundColor):
Replace toSRGBALossy() with toSRGBALossy<float>().

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationColorFunction::animate):
Replace toSRGBASimpleColorLossy() with toSRGBALossy<uint8_t>.

Source/WebKit:

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorFillFromWebCoreColor):

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::beginSwipeGesture):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::animationValueFromKeyframeValue):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::getDocumentBackgroundColor):
Adapt to use templatized toSRGBALossy<float/uint8_t>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Adapt tests to use templatized toSRGBALossy<float/uint8_t>.

12:17 PM Changeset in webkit [263940] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Remove redundant Display::Box::HorizontalMargin c'tors
https://bugs.webkit.org/show_bug.cgi?id=213957

Reviewed by Antti Koivisto.

Let's just have a very simple Display::Box:HorizontalMargin struct.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::HorizontalMargin::HorizontalMargin): Deleted.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):

11:56 AM Changeset in webkit [263939] by svillar@igalia.com
  • 4 edits in trunk

[Flatpak SDK] Require OpenXR 1.0.9
https://bugs.webkit.org/show_bug.cgi?id=213930

Reviewed by Philippe Normand.

.:

Require version 1.0.9 because is the first one that include EGL support for Monado.

  • Source/cmake/OptionsWPE.cmake:

Tools:

  • buildstream/elements/sdk/openxr.bst:
11:37 AM Changeset in webkit [263938] by Alan Bujtas
  • 16 edits in trunk/Source/WebCore

[LFC] Do not cache computed horizontal margin values
https://bugs.webkit.org/show_bug.cgi?id=213956

Reviewed by Antti Koivisto.

Outside of the width + margin computation, computed horizontal margin values are only required by
float positioning. Let's just re-computed them on demand (which is basically just a style.marginStart/end resolve).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layout):

  • layout/LayoutUnits.h:
  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin):

  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

  • layout/displaytree/DisplayBox.cpp:

(WebCore::Display::Box::Box):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::setHasValidVerticalNonCollapsedMargin):
(WebCore::Display::Box::setHasValidHorizontalComputedMargin): Deleted.
(WebCore::Display::Box::ComputedHorizontalMargin::ComputedHorizontalMargin): Deleted.
(WebCore::Display::Box::setHorizontalComputedMargin): Deleted.
(WebCore::Display::Box::computedMarginStart const): Deleted.
(WebCore::Display::Box::computedMarginEnd const): Deleted.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::computedHorizontalMargin):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):

  • layout/floats/FloatingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):
(WebCore::Layout::TableFormattingContext::layoutCell):

10:18 AM Changeset in webkit [263937] by Darin Adler
  • 2 edits in trunk/Tools

Make generate-unified-sources.sh not depend on features being listed in FEATURE_DEFINES environment variable
https://bugs.webkit.org/show_bug.cgi?id=212420

  • Scripts/generate-unified-sources.sh: Removed --feature-flags from the

arguments passed to generate-unified-source-bundles.rb. Also removed many
unneeded quotes.

9:43 AM Changeset in webkit [263936] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][WPE][GTK] Garden post update failures

Unreviewed test gardening.

9:41 AM Changeset in webkit [263935] by Darin Adler
  • 16 edits
    1 add in trunk

Make generate-unified-sources.sh not depend on features being listed in FEATURE_DEFINES environment variable
https://bugs.webkit.org/show_bug.cgi?id=212420

Reviewed by Don Olmstead.

.:

  • Source/cmake/WebKitCommon.cmake: Removed call to SET_CONFIGURATION_FOR_UNIFIED_SOURCE_LISTS.
  • Source/cmake/WebKitFeatures.cmake: Removed SET_CONFIGURATION_FOR_UNIFIED_SOURCE_LISTS.
  • Source/cmake/WebKitMacros.cmake: Removed use of "--feature-flags" when invoking the

generate-unified-source-bundles.rb, which also means no longer depending on the
UNIFIED_SOURCE_LIST_ENABLED_FEATURES variable, which was set by the
SET_CONFIGURATION_FOR_UNIFIED_SOURCE_LISTS function.

Source/JavaScriptCore:

  • Scripts/generate-unified-sources.sh: Removed many unneeded quote marks from the

invocation of generate-unified-source-bundles.rb.

Source/WebCore:

  • Scripts/generate-unified-sources.sh: Added code to include sources from

SourcesCocoaInternalSDK.txt, only if USE_INTERNAL_SDK is YES. Removed --feature-flags
argument from invocation of generate-unified-source-bundles.rb. Removed many
unnecessary quotes.

  • SourcesCocoa.txt: Removed the names of the files from the internal SDK.
  • SourcesCocoaInternalSDK.txt: Added. Moved those names here.
  • html/MediaElementSession.cpp: Added some includes, apparently needed because of different

groupings of unified sources.

Source/WebKit:

  • Scripts/generate-unified-sources.sh: Removed --feature-flags from the

arguments passed to generate-unified-source-bundles.rb. Also removed many
unneeded quotes.

Source/WebKitLegacy:

  • scripts/generate-unified-sources.sh: Removed --feature-flags from the

arguments passed to generate-unified-source-bundles.rb. Also removed many
unneeded quotes.

Source/WTF:

  • Scripts/generate-unified-source-bundles.rb: Removed the --feature-flags

command line option along with the code that implements it.

9:33 AM Changeset in webkit [263934] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Used dedicated paint margin structures
https://bugs.webkit.org/show_bug.cgi?id=213955

Reviewed by Antti Koivisto.

This is in preparation for having only final margin values in Display::Box.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::VerticalMargin::before const):
(WebCore::Display::Box::VerticalMargin::after const):
(WebCore::Display::Box::VerticalMargin::isCollapsedThrough const):
(WebCore::Display::Box::VerticalMargin::nonCollapsedValues const):
(WebCore::Display::Box::VerticalMargin::collapsedValues const):
(WebCore::Display::Box::VerticalMargin::hasCollapsedValues const):
(WebCore::Display::Box::VerticalMargin::setCollapsedValues):
(WebCore::Display::Box::VerticalMargin::VerticalMargin):
(WebCore::Display::Box::VerticalMargin::NonCollapsedValues::NonCollapsedValues):
(WebCore::Display::Box::VerticalMargin::CollapsedValues::CollapsedValues):
(WebCore::Display::Box::ComputedHorizontalMargin::ComputedHorizontalMargin):
(WebCore::Display::Box::HorizontalMargin::HorizontalMargin):
(WebCore::Display::Box::setHorizontalMargin):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setHorizontalComputedMargin):
(WebCore::Display::Box::verticalMargin const):
(WebCore::Display::Box::horizontalMargin const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::FloatItem::horizontalMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

9:04 AM Changeset in webkit [263933] by Lauro Moura
  • 2 edits in trunk/Tools

[WebDriver][WPE] Allow running Selenium tests with the WPE WebDriver
https://bugs.webkit.org/show_bug.cgi?id=213500

Reviewed by Carlos Garcia Campos.

Add missing method used to discover the selenium name of
the WPE webdriver.

Proper gardening/triaging of failures will come in following commits.

  • Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py:

(WebDriverWPE.selenium_name):

6:32 AM Changeset in webkit [263932] by Darin Adler
  • 12 edits in trunk

Update comment in FeatureDefines.xcconfig since PlatformEnableCocoa.h should be used instead
https://bugs.webkit.org/show_bug.cgi?id=213952

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig: Updated comment.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig: Updated comment.
2:18 AM Changeset in webkit [263931] by youenn@apple.com
  • 13 edits in trunk/Source

Enable VTB required low latency code path
https://bugs.webkit.org/show_bug.cgi?id=210609
<rdar://problem/61890332>

Reviewed by Darin Adler.

Source/ThirdParty/libwebrtc:

Enable low latency mode for latest MacOS and iOS versions.
Add a boolean controlling whether to opt in that code path.
Export the setter to that boolean so that it can be controlled by a WebCore runtime flag.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(webrtc::setH264LowLatencyEncoderEnabled):
(webrtc::isH264LowLatencyEncoderEnabled):

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

Source/WebCore:

Add new runtime flag for the low latency code path.
Call webrtc newly introduced setter whenever creating a new encoder factory.
Manually tested.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCH264LowLatencyEncoderEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCH264LowLatencyEncoderEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

Source/WebKit:

Add a runtime flag to enable/disable the low latency code path.

  • Shared/WebPreferences.yaml:

Jul 3, 2020:

11:42 PM Changeset in webkit [263930] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Promise should check whether a user-provided function is set by using @isUndefinedOrNull
https://bugs.webkit.org/show_bug.cgi?id=213951

Reviewed by Ross Kirsling.

JSTests:

  • stress/masquerader-as-function-in-promise.js: Added.

Source/JavaScriptCore:

If a user-provided function is masquerade-as-undefined value, if (!xxx.@onRejected) returns wrong
value since this function object is considered as undefined in this context. We should use @isUndefinedOrNull
here instead since this if-branch is checking whether this property is null/undefined actually.
And if (@isUndefinedOrNull(...)) is efficient since we have jundefined_or_null / jnundefined_or_null bytecodes.

  • builtins/PromiseOperations.js:

(globalPrivate.promiseReactionJob):

11:38 PM Changeset in webkit [263929] by Wenson Hsieh
  • 2 edits in trunk/Tools

[macOS] Tests that show system menu popups may fail when run concurrently
https://bugs.webkit.org/show_bug.cgi?id=213950
<rdar://problem/64551566>

Reviewed by Darin Adler.

Make it possible to run tests that present system modal popups simultaneously, without the possibility of these
tests interfering with each other. Examples include context menus, select menus, and the DOM paste popup. To do
this, we swizzle out codepaths for showing and dimissing popups, and instead dispatch notifications and the
appropriate NSMenuDelegate methods ourselves.

This change has the side effect of fixing several layout tests that are currently timing out only on arm64e
macOS, due to reasons detailed in <rdar://problem/65084503>.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::setSwizzledPopUpMenu):
(WTR::swizzledPopUpContextMenu):
(WTR::swizzledPopUpMenu):
(WTR::swizzledCancelTracking):
(WTR::TestController::platformInitialize):

10:15 PM Changeset in webkit [263928] by youenn@apple.com
  • 25 edits
    3 copies
    23 adds in trunk

MediaRecorder should support peer connection remote video tracks
https://bugs.webkit.org/show_bug.cgi?id=213924

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Resync to WPT ToT.

  • resources/resource-files.json:
  • web-platform-tests/mediacapture-record/BlobEvent-constructor.html:
  • web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-creation.https-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-creation.https.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-detached-context-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-detached-context.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-disabled-tracks.https-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-disabled-tracks.https.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-error.html:
  • web-platform-tests/mediacapture-record/MediaRecorder-events-and-exceptions-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-events-and-exceptions.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-mimetype-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-mimetype.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-no-sink.https-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-no-sink.https.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https-expected.txt: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https.html: Added.
  • web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-stop.html:
  • web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
  • web-platform-tests/mediacapture-record/idlharness.window.js:
  • web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https-expected.txt: Added.
  • web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https.html: Added.
  • web-platform-tests/mediacapture-record/passthrough/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mediacapture-record/w3c-import.log.
  • web-platform-tests/mediacapture-record/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mediacapture-record/w3c-import.log.
  • web-platform-tests/mediacapture-record/utils/peerconnection.js: Added.

(async exchangeOfferAnswer):
(setTransceiverCodecPreference):
(async startConnection):
(async waitForReceivedFrames):
(async waitForReceivedCodec):

  • web-platform-tests/mediacapture-record/utils/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/mediacapture-record/w3c-import.log.
  • web-platform-tests/mediacapture-record/w3c-import.log:

Source/WebCore:

Previsouly we were checking whether width and height are given for a video track.
This is not always available, for instance for remote tracks.
And this can change over time.
Instead, pass a simple boolean (whether there is a video track or not).
Minor simplifications to stop storing unneeded members.

Tests: imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https.html

imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-creation.https.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-detached-context.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-disabled-tracks.https.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-events-and-exceptions.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-mimetype.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-no-sink.https.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-pause-resume.html
imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https.html
imported/w3c/web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https.html

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::create):
(WebCore::MediaRecorderPrivateAVFImpl::MediaRecorderPrivateAVFImpl):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::create):

Source/WebKit:

Pass a boolean instead of width/height for the video track.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::create):

  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp:

(WebKit::RemoteMediaRecorderManager::createRecorder):

  • GPUProcess/webrtc/RemoteMediaRecorderManager.h:
  • GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::startRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

9:56 PM Changeset in webkit [263927] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/PAL

Fix a build error by forward declaring _NSHTTPAlternativeServicesStorage
https://bugs.webkit.org/show_bug.cgi?id=213911

Patch by Saagar Jha <saagar@saagarjha.com> on 2020-07-03
Reviewed by Darin Adler.

The public 10.16 SDK does not define _NSHTTPAlternativeServicesStorage, and the interface
declaration comes after it is used. Forward declare it to fix the error.

  • pal/spi/cf/CFNetworkSPI.h: Forward declare _NSHTTPAlternativeServicesStorage.
7:33 PM Changeset in webkit [263926] by Darin Adler
  • 3 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove all remaining #if (ENABLE_WEBGL and ENABLE_WEBXR)
https://bugs.webkit.org/show_bug.cgi?id=213946

Reviewed by Sam Weinig.

  • CMakeLists.txt: Move IDL-related ENABLE_WEBGL and ENABLE_WEBXR items out of if blocks.

Longer term, I think our direction should be to remove most feature conditionals from
CMakeLists.txt too, just like I am doing for Sources.txt. But for now, doing just enough
of this to keep the build working. Someone can tidy this later as desired.

  • Sources.txt: Remove all remaining #if, and sort files, getting rid of paragraphing

per directory to just turn this into three sorted lists of filenames (separate ones for
derived sources and generated bindings at the end). The source files themselves have the
appropriate conditionals and soon we will not need to support #if in Sources.txt files.

7:07 PM Changeset in webkit [263925] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GStreamer] Garden media/vp9.html failure

Unreviewed test gardening.

  • platform/glib/TestExpectations:
6:51 PM Changeset in webkit [263924] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Rebaseline imported dom/idlharness tests after r263903

Unreviewed test gardening.

  • platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
5:42 PM Changeset in webkit [263923] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed stack-overflow crash fix for r263890
https://bugs.webkit.org/show_bug.cgi?id=213912
<rdar://problem/65069686>

Renamed mimeTypeForExtension to mimeTypeForExtensionFromRegistry.

  • platform/win/MIMETypeRegistryWin.cpp:

(WebCore::mimeTypeForExtensionFromRegistry):
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
(WebCore::mimeTypeForExtension): Deleted.

5:30 PM Changeset in webkit [263922] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix for r263913
https://bugs.webkit.org/show_bug.cgi?id=213939
<rdar://problem/65084185>

  • CMakeLists.txt: Process encrypted media IDL files even if ENABLE_ENCRYPTED_MEDIA is off.
5:16 PM Changeset in webkit [263921] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.20.3

Tag Safari-610.1.20.3.

5:12 PM Changeset in webkit [263920] by Kocsen Chung
  • 2 edits in branches/safari-610.1.20-branch/Source/WebKit

Revert r263781. rdar://problem/65085169

5:12 PM Changeset in webkit [263919] by Kocsen Chung
  • 3 edits in branches/safari-610.1.20-branch/Source/WebKit

Revert r263793. rdar://problem/65085169

4:56 PM Changeset in webkit [263918] by Darin Adler
  • 4 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_WIRELESS_PLAYBACK_TARGET
https://bugs.webkit.org/show_bug.cgi?id=213945

Reviewed by Sam Weinig.

  • CMakeLists.txt: Moved items from the pictureinpicture and remoteplayback module here

from PlatformMac.cmake. Even if these are currently only implemented on Mac, they are
not intrinsically Mac-specific, so they belong here.

  • PlatformMac.cmake: Ditto.
  • Sources.txt: Remove #if ENABLE_WIRELESS_PLAYBACK_TARGET and sort files in with the others.

The source files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

4:51 PM Changeset in webkit [263917] by Kocsen Chung
  • 8 edits in branches/safari-610.1.20-branch/Source

Versioning.

WebKit-610.1.20.3

4:43 PM Changeset in webkit [263916] by weinig@apple.com
  • 32 edits
    2 deletes in trunk

Remove support for ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE
https://bugs.webkit.org/show_bug.cgi?id=213932

Reviewed by Darin Adler.

Removes support for non-standard <input type="datetime">, currently being
guarded by the macro ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE. This macro, was
added back in 2013 as a temporary measure to support some engines who shipped
support for <input type="datetime">. It is currently not enabled for any
ports so now seems like as good a time as any to remove it.

.:

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/html.css:

(#endif):

  • html/DateTimeInputType.cpp: Removed.
  • html/DateTimeInputType.h: Removed.
  • html/InputType.cpp:

(WebCore::createInputTypeFactoryMap):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::inputTypeDateTimeEnabled const): Deleted.
(WebCore::RuntimeEnabledFeatures::setInputTypeDateTimeEnabled): Deleted.

  • platform/DateComponents.cpp:

(WebCore::DateComponents::setMillisecondsSinceEpochForDateTimeLocal):
(WebCore::DateComponents::millisecondsSinceEpoch const):
(WebCore::DateComponents::toString const):
(WebCore::DateComponents::fromParsingDateTime): Deleted.
(WebCore::DateComponents::parseDateTime): Deleted.
(WebCore::DateComponents::fromMillisecondsSinceEpochForDateTime): Deleted.
(WebCore::DateComponents::setMillisecondsSinceEpochForDateTime): Deleted.

  • platform/DateComponents.h:
  • platform/text/PlatformLocale.cpp:

(WebCore::Locale::formatDateTime):

  • platform/text/ios/LocalizedDateCache.mm:

(WebCore::LocalizedDateCache::createFormatterForType):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/PlatformEnable.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:25 PM Changeset in webkit [263915] by Darin Adler
  • 3 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_USER_MESSAGE_HANDLERS
https://bugs.webkit.org/show_bug.cgi?id=213944

Reviewed by Sam Weinig.

  • CMakeLists.txt: Move IDL-related ENABLE_USER_MESSAGE_HANDLERS items out of if blocks.

Longer term, I think our direction should be to remove most feature conditionals from
CMakeLists.txt too, just like I am doing for Sources.txt. But for now, doing just enough
of this to keep the build working. Someone can tidy this later as desired.

  • Sources.txt: Remove #if ENABLE_USER_MESSAGE_HANDLERS and sort files in with the others.

The source files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

4:23 PM Changeset in webkit [263914] by Darin Adler
  • 2 edits in trunk/Source/WebCore

WebCore/SourcesCocoa.txt: Remove #if ENABLE_APPLE_PAY
https://bugs.webkit.org/show_bug.cgi?id=213943

Reviewed by Sam Weinig.

  • SourcesCocoa.txt: Remove #if ENABLE_APPLE_PAY and sort files in with the others.

The source files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.
Also, sort the files and remove the separate per-directory paragraphs, making this closer
to just a sorted list of filenames with less "editorial" content. Also added comments
about the USE_INTERNAL_SDK part of the file.

3:17 PM Changeset in webkit [263913] by Darin Adler
  • 2 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_ENCRYPTED_MEDIA
https://bugs.webkit.org/show_bug.cgi?id=213939

Reviewed by Sam Weinig.

  • CMakeLists.txt: Move IDL-related ENABLE_ENCRYPTED_MEDIA items out of if blocks.

Longer term, I think our direction should be to remove most feature conditionals from
CMakeLists.txt too, just like I am doing for Sources.txt. But for now, doing just enough
of this to keep the build working. Someone can tidy this later as desired.

  • Sources.txt: Remove #if ENABLE_LEGACY_ENCRYPTED_MEDIA and sort files in with the others.

The IDL files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

2:50 PM Changeset in webkit [263912] by Darin Adler
  • 3 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_LEGACY_ENCRYPTED_MEDIA
https://bugs.webkit.org/show_bug.cgi?id=213937

Reviewed by Sam Weinig.

  • CMakeLists.txt: Move IDL-related ENABLE_LEGACY_ENCRYPTED_MEDIA items out of if blocks.

Longer term, I think our direction should be to remove most feature conditionals from
CMakeLists.txt too, just like I am doing for Sources.txt. But for now, doing just enough
of this to keep the build working. Someone can tidy this later as desired.

  • Sources.txt: Remove #if ENABLE_LEGACY_ENCRYPTED_MEDIA and sort files in with the others.

The IDL files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

2:45 PM Changeset in webkit [263911] by Darin Adler
  • 3 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_QUOTA
https://bugs.webkit.org/show_bug.cgi?id=213941

Reviewed by Sam Weinig.

  • CMakeLists.txt: Move IDL-related ENABLE_QUOTA items out of "if (ENABLE_QUOTA)".

Longer term, I think our direction should be to remove most feature conditionals from
CMakeLists.txt too, just like I am doing for Sources.txt. But for now, doing just enough
of this to keep the build working. Someone can tidy this later as desired.

  • Sources.txt: Remove #if ENABLE_QUOTA and sort files in with the others.

The source files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

2:43 PM Changeset in webkit [263910] by Darin Adler
  • 3 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_GAMEPAD
https://bugs.webkit.org/show_bug.cgi?id=213936

Reviewed by Sam Weinig.

  • CMakeLists.txt: Move IDL-related ENABLE_GAMEPAD items out of "if (ENABLE_GAMEPAD)".

Longer term, I think our direction should be to remove most feature conditionals from
CMakeLists.txt too, just like I am doing for Sources.txt. But for now, doing just enough
of this to keep the build working. Someone can tidy this later as desired.

  • Sources.txt: Remove #if ENABLE_GAMEPAD and sort files in with the others.

The IDL files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

2:40 PM Changeset in webkit [263909] by Darin Adler
  • 2 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_MEDIA_SOURCE
https://bugs.webkit.org/show_bug.cgi?id=213940

Reviewed by Sam Weinig.

  • Sources.txt: Remove #if ENABLE_MEDIA_SOURCE and sort files in with the others.

The IDL files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

2:27 PM Changeset in webkit [263908] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

[WPE] Fix build with clang after r263898
https://bugs.webkit.org/show_bug.cgi?id=213942

Unreviewed build fix.

  • loader/appcache/ApplicationCacheManifestParser.cpp:
2:16 PM Changeset in webkit [263907] by Darin Adler
  • 2 edits in trunk/Source/WebCore

WebCore/Sources.txt: Remove #if ENABLE_APPLICATION_MANIFEST
https://bugs.webkit.org/show_bug.cgi?id=213935

Reviewed by Sam Weinig.

  • Sources.txt: Remove #if ENABLE_APPLICATION_MANIFEST and sort files in with the others.

The source files themselves have conditionals, we don't need conditionals in Sources.txt,
and we are moving towards removing the capability for #if ENABLE in the Sources.txt file.

1:30 PM Changeset in webkit [263906] by weinig@apple.com
  • 17 edits in trunk/Source

Add "-Wliteral-conversion" warning to Xcode based builds and fix the issues it finds
https://bugs.webkit.org/show_bug.cgi?id=213931

Reviewed by Darin Adler.

  • Configurations/Base.xcconfig:

Add -Wliteral-conversion.
Source/WebCore:

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
Fix error due to passing a double when a uint8_t was expected. This probably means
that the debug borders looked wrong for a little bit, but should now be back to
their transparent splendor.

1:06 PM Changeset in webkit [263905] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Add exception checks before and after viewWithUnderlyingString
https://bugs.webkit.org/show_bug.cgi?id=213923
<rdar://problem/65068473>

Reviewed by Sam Weinig.

JSTests:

  • stress/exception-checks-before-and-after-viewwithunderlyingstring.js: Added.

(shouldThrow):

Source/JavaScriptCore:

This patch inserts missing exception checks before and after viewWithUnderlyingString.

  • jsc.cpp:

(printInternal):
(functionDebug):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncParseFloat):

  • runtime/JSONObject.cpp:

(JSC::JSONProtoFuncParse):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncCharAt):
(JSC::stringProtoFuncCharCodeAt):

12:59 PM Changeset in webkit [263904] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Unreviewed, reverting r263882.
https://bugs.webkit.org/show_bug.cgi?id=213933

Broke the build

Reverted changeset:

"Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
replace _WKProcessPoolConfiguration.hstsStorageDirectory"
https://bugs.webkit.org/show_bug.cgi?id=213048
https://trac.webkit.org/changeset/263882

11:54 AM Changeset in webkit [263903] by Chris Dumez
  • 48 edits
    5 copies
    3 moves
    29 adds
    9 deletes in trunk/LayoutTests

Resync web-platform-tests/html/dom & web-platform-tests/html/infrastructure from upstream
https://bugs.webkit.org/show_bug.cgi?id=213908

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/dom & web-platform-tests/html/infrastructure from upstream 145839c323ba1ec8b.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/dom/*: Updated.
  • web-platform-tests/html/infrastructure/*: Updated.

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
11:32 AM Changeset in webkit [263902] by Alan Bujtas
  • 10 edits
    3 adds in trunk

[LFC][TFC][Quirk] Inflow child box quirk vertical margins should collapse with table cell.
https://bugs.webkit.org/show_bug.cgi?id=213926

Reviewed by Antti Koivisto.

Source/WebCore:

The BFC rootd (table cell box in this case) nornally do not collapse their margins with the first/last inflow child.
However in quirks mode, cell boxes collapse their (non-existing)margins with inflow quirk margins.

<table><tr><td><p>text content</td></tr></table> <- <p> box's top position is at 0px in quirks mode, while at 16px (1em) in strict mode.

This patch ensures that we collapse the quirk margins and take them into account when computing the cell's content height.

Test: fast/layoutformattingcontext/table-quirk-vertical-margin-simple.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::shouldCollapseMarginBeforeWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::Quirks::shouldCollapseMarginAfterWithParentMarginAfter const):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):

  • layout/tableformatting/TableFormattingContext.h:

(WebCore::Layout::TableFormattingContext::Quirks::Quirks):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):

  • layout/tableformatting/TableFormattingContextQuirks.cpp: Added.

(WebCore::Layout::TableFormattingContext::Quirks::shouldIgnoreChildContentVerticalMargin const):

LayoutTests:

  • fast/layoutformattingcontext/table-quirk-vertical-margin-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-quirk-vertical-margin-simple.html: Added.
9:55 AM Changeset in webkit [263901] by weinig@apple.com
  • 22 edits
    2 copies in trunk

Split color conversion functions out of ColorUtilities.h/cpp into their own file.
https://bugs.webkit.org/show_bug.cgi?id=213803

Reviewed by Simon Fraser.

Source/WebCore:

Moves color conversion functions (both between color spaces like toDisplayP3(const SRGBA&)
and between different representations like toHSLA(const SRGBA&)) to their own files.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • css/parser/CSSPropertyParserHelpers.cpp:
  • editing/cocoa/DataDetection.mm:
  • html/canvas/CanvasRenderingContext2DBase.cpp:
  • html/canvas/CanvasStyle.cpp:

Add include of ColorConversion.h

  • platform/graphics/ColorConversion.cpp: Added.
  • platform/graphics/ColorConversion.h: Added.
  • platform/graphics/ColorUtilities.cpp:
  • platform/graphics/ColorUtilities.h:

Move functions to the new files.

  • platform/graphics/ExtendedColor.cpp:
  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:
  • platform/graphics/filters/FELighting.cpp:

Add include of ColorConversion.h, remove unncessary include of ColorUtilities.h

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
  • platform/graphics/filters/FEDisplacementMap.cpp:
  • platform/graphics/filters/FEMorphology.cpp:
  • platform/graphics/filters/FilterOperations.cpp:

Remove unncessary include of ColorUtilities.h

  • platform/graphics/filters/FilterOperation.cpp:

Add include of ColorConversion.h and ColorTypes.h, remove unncessary include of ColorUtilities.h.

  • platform/graphics/gtk/ColorGtk.cpp:
  • platform/graphics/win/ColorDirect2D.cpp:

Remove unncessary include of ColorUtilities.h. Update to use standard float -> SimpleColor idiom
using SRGBA<float>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

Update to include ColorConversion.h and ColorTypes.h rather than ColorUtilities.h

9:45 AM Changeset in webkit [263900] by weinig@apple.com
  • 21 edits in trunk/Source/WebCore

Convert DateComponents parsing code to use Optional based return values rather than out-parameters
https://bugs.webkit.org/show_bug.cgi?id=213440

Reviewed by Darin Adler.

Rework DateComponents and Date/Time related InputTypes to use Optional based programming
for parsing results. Also take the opportunity to remove unicode upconversion from
DateComponent parsing and instead separate UChar and LChar variants via templates.

  • html/BaseDateAndTimeInputType.cpp:
  • html/BaseDateAndTimeInputType.h:
  • html/DateInputType.cpp:
  • html/DateInputType.h:
  • html/DateTimeInputType.cpp:
  • html/DateTimeInputType.h:
  • html/DateTimeLocalInputType.cpp:
  • html/DateTimeLocalInputType.h:
  • html/HTMLInputElement.cpp:
  • html/HTMLInputElement.h:
  • html/InputType.cpp:
  • html/InputType.h:
  • html/MonthInputType.cpp:
  • html/MonthInputType.h:
  • html/TimeInputType.cpp:
  • html/TimeInputType.h:
  • html/WeekInputType.cpp:
  • html/WeekInputType.h:
    • Removes parseToDateComponentsInternal. No need it and parseToDateComponents.
    • Makes parseToDateComponents pure virtual. The old code had a default implementations down in InputType, but it had no callers.
    • Remove iOS vs. non-iOS difference for dateType(). It is now available on InputType on all platforms.
    • Make setMillisecondToDateComponents and parseToDateComponents return an Optional.
  • platform/DateComponents.cpp:
  • platform/DateComponents.h:
    • Replace member function based interfaces for parsing/setting explicit time offsets with new factory functions that return Optional<DateComponents>.
    • These factories are implemented using the existing member functions, which are now private.
    • Make max/min constants constexpr.
    • Make parse* member functions templates to allow factory parse functions to call them without upconverting.
    • Replace header guard with #pragma once.
8:19 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
8:09 AM Changeset in webkit [263899] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Bubblewrap sandbox should not attempt to bind empty paths
https://bugs.webkit.org/show_bug.cgi?id=202880

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-03
Reviewed by Carlos Garcia Campos.

If an empty path is set in LD_LIBRARY_PATH (e.g. /foo::/bar), we wind up passing
--ro-bind-try --ro-bind-try to bwrap, where the second --ro-bind-try is treated as the
source path to mount, and the next flag we pass gets treated as the destination path. The
web process crashes with this confusing error:

bwrap: Can't create file at /.flatpak-info: Read-only file system

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindIfExists):

8:01 AM Changeset in webkit [263898] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Cleanup ApplicationCacheManifestParser.h/cpp
https://bugs.webkit.org/show_bug.cgi?id=213844

Reviewed by Alex Christensen.

Address some post review comments.

  • loader/appcache/ApplicationCacheManifestParser.cpp:

(WebCore::parseApplicationCacheManifest):
Fix typos: manfest -> manifest.

  • loader/appcache/ApplicationCacheManifestParser.h:

Stop including ApplicationCache.h, and only include / declare what's needed.

8:00 AM Changeset in webkit [263897] by clopez@igalia.com
  • 2 edits in trunk/Tools

[WPE][webkitpy] Use headless driver instead of wayland driver
https://bugs.webkit.org/show_bug.cgi?id=213914

Reviewed by Philippe Normand.

WPE now supports running tests completely headless, but we are
still using the webkitpy WaylandDriver to run the tests.
This causes an error if the environment doesn't have defined the
WAYLAND_DISPLAY or WAYLAND_SOCKET environment variables.
Switch the driver to HeadlessDriver.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort._driver_class):

7:55 AM Changeset in webkit [263896] by youenn@apple.com
  • 7 edits in trunk

Support MediaRecorder.onstart
https://bugs.webkit.org/show_bug.cgi?id=213720

Reviewed by Darin Adler.

Source/WebCore:

Fire start event if MediaRecorder.start is successful.
Do some WebIDL clean-up, in particular change timeSlice from long to unsigned long, as per spec.
Covered by added test.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::startRecording):

  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorder.idl:

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-start-timeSlice-expected.txt:
  • http/wpt/mediarecorder/MediaRecorder-start-timeSlice.html:
7:31 AM Changeset in webkit [263895] by Carlos Garcia Campos
  • 4 edits in trunk

REGRESSION(r261779): [GTK][WPE] http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral.html is failing
https://bugs.webkit.org/show_bug.cgi?id=212017

Reviewed by Michael Catanzaro.

Tools:

Use the ephemeral data store when useEphemeralSession option is enabled.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::platformInitializeDataStore):

LayoutTests:

Remove expectations for tests that are now passing.

  • platform/gtk/TestExpectations:
7:21 AM Changeset in webkit [263894] by youenn@apple.com
  • 20 edits
    1 copy
    4 adds in trunk

Allow registering VP9 as a VT decoder
https://bugs.webkit.org/show_bug.cgi?id=213837
<rdar://problem/64984881>

Reviewed by Jer Noble.

Source/ThirdParty/libwebrtc:

Implement a method that registers VP9 as a VT decoder.
Implement the binding code between VP9DecoderImpl and VT pluggable codec API.
Restrict this to internal SDK for now.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createPixelBufferPool):

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp: Added.

(webrtc::registerWebKitVP9Decoder):
(webrtc::createWebKitVP9Decoder):
(webrtc::invalidateVP9Decoder):
(webrtc::finalizeVP9Decoder):
(webrtc::copyVP9DecoderDebugDescription):
(webrtc::webKitVP9DecoderFromVTDecoder):
(webrtc::startVP9DecoderSession):
(webrtc::decodeVP9DecoderFrameFromContiguousBlock):
(webrtc::decodeVP9DecoderFrame):
(webrtc::WebKitVP9DecoderReceiver::WebKitVP9DecoderReceiver):
(webrtc::WebKitVP9DecoderReceiver::~WebKitVP9DecoderReceiver):
(webrtc::WebKitVP9DecoderReceiver::decoderFailed):
(webrtc::WebKitVP9DecoderReceiver::Decoded):

  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.h: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebKit:

Add a runtime flag to enable registration of VP9 as a VT decoder.
Register conditionally this decoder on creation of page based on this flag.

Test: media/vp9.html

  • Scripts/GeneratePreferences.rb:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPreferences.yaml:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::enableVP9Decoder):

  • WebProcess/WebProcess.h:

LayoutTests:

  • media/content/bipbop-vp9.mp4: Added.
  • media/vp9-expected.txt: Added.
  • media/vp9.html: Added.
6:12 AM Changeset in webkit [263893] by Lauro Moura
  • 81 edits
    1 copy
    3 adds
    5 deletes in trunk/WebDriverTests

[WebDriver][WPE] Update imported selenium to a version that enables WPE WebDriver tests
https://bugs.webkit.org/show_bug.cgi?id=213916

Reviewed by Carlos Garcia Campos.

Also updated the importer.json file with more paths to be skipped.

  • imported/selenium/common/.classpath: Removed.
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-icons_222222_256x240.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-icons_228ef1_256x240.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-icons_ef8c08_256x240.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-icons_ffd27a_256x240.png:
  • imported/selenium/common/src/web/css/ui-lightness/images/ui-icons_ffffff_256x240.png:
  • imported/selenium/common/src/web/css/ui-lightness/jquery-ui-1.12.1.min.css: Added.
  • imported/selenium/common/src/web/css/ui-lightness/jquery-ui-1.8.10.custom.css: Removed.
  • imported/selenium/common/src/web/draggableLists.html:
  • imported/selenium/common/src/web/droppableItems.html:
  • imported/selenium/common/src/web/jquery-1.3.2.js: Removed.
  • imported/selenium/common/src/web/js/jquery-1.4.4.min.js: Removed.
  • imported/selenium/common/src/web/js/jquery-3.5.1.min.js: Added.
  • imported/selenium/common/src/web/js/jquery-ui-1.12.1.min.js: Added.
  • imported/selenium/common/src/web/js/jquery-ui-1.8.10.custom.min.js: Removed.
  • imported/selenium/common/src/web/mousePositionTracker.html:
  • imported/selenium/common/src/web/selectableItems.html:
  • imported/selenium/importer.json:
  • imported/selenium/py/conftest.py:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/webdriver/init.py:
  • imported/selenium/py/selenium/webdriver/common/action_chains.py:
  • imported/selenium/py/selenium/webdriver/common/actions/action_builder.py:
  • imported/selenium/py/selenium/webdriver/common/actions/pointer_actions.py:
  • imported/selenium/py/selenium/webdriver/common/actions/pointer_input.py:
  • imported/selenium/py/selenium/webdriver/common/desired_capabilities.py:
  • imported/selenium/py/selenium/webdriver/common/html5/application_cache.py:
  • imported/selenium/py/selenium/webdriver/common/keys.py:
  • imported/selenium/py/selenium/webdriver/common/options.py:
  • imported/selenium/py/selenium/webdriver/common/service.py:
  • imported/selenium/py/selenium/webdriver/common/timeouts.py:
  • imported/selenium/py/selenium/webdriver/common/window.py:
  • imported/selenium/py/selenium/webdriver/remote/file_detector.py:
  • imported/selenium/py/selenium/webdriver/remote/remote_connection.py:
  • imported/selenium/py/selenium/webdriver/remote/switch_to.py:
  • imported/selenium/py/selenium/webdriver/remote/webdriver.py:
  • imported/selenium/py/selenium/webdriver/remote/webelement.py:
  • imported/selenium/py/selenium/webdriver/support/color.py:
  • imported/selenium/py/selenium/webdriver/support/event_firing_webdriver.py:
  • imported/selenium/py/selenium/webdriver/support/expected_conditions.py:
  • imported/selenium/py/selenium/webdriver/support/relative_locator.py:
  • imported/selenium/py/selenium/webdriver/support/select.py:
  • imported/selenium/py/selenium/webdriver/support/wait.py:
  • imported/selenium/py/selenium/webdriver/wpewebkit/options.py:
  • imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/api_example_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/appcache_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/children_finding_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/clear_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/click_scrolling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/cookie_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/correct_event_firing_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/driver_element_finding_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/element_attribute_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/executing_async_javascript_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/executing_javascript_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/form_handling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/frame_switching_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/google_one_box.py:
  • imported/selenium/py/test/selenium/webdriver/common/implicit_waits_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/interactions_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/page_loading_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/position_and_size_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/repr_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/results_page.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/stale_reference_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/takes_screenshots_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/text_handling_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/timeout_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/typing_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/visibility_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/w3c_interaction_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py:
  • imported/selenium/py/test/selenium/webdriver/common/window_tests.py:
  • imported/selenium/py/test/selenium/webdriver/remote/remote_hub_connection.py: Copied from WebDriverTests/imported/selenium/py/selenium/webdriver/common/window.py.
  • imported/selenium/py/test/selenium/webdriver/safari/launcher_tests.py:
  • imported/selenium/py/test/selenium/webdriver/support/event_firing_webdriver_tests.py:
  • imported/selenium/py/test/selenium/webdriver/support/relative_by_tests.py:
5:58 AM Changeset in webkit [263892] by youenn@apple.com
  • 4 edits
    2 adds in trunk

MediaRecorder.start() Method is Ignoring the "timeslice" Parameter
https://bugs.webkit.org/show_bug.cgi?id=202233
<rdar://problem/55720555>

Reviewed by Eric Carlson.

Source/WebCore:

Use a timer to implement timeSlice parameter.
Schedule timer either when start is called or as part of requestData callback.
This should ensure that, if requestData is called by the application, the timer will be rescheduled appropriately.

Test: http/wpt/mediarecorder/MediaRecorder-start-timeSlice.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::startRecording):
(WebCore::MediaRecorder::requestData):

  • Modules/mediarecorder/MediaRecorder.h:

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-start-timeSlice-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-start-timeSlice.html: Added.
5:01 AM Changeset in webkit [263891] by youenn@apple.com
  • 16 edits
    2 adds in trunk

MediaRecorder stopRecorder() returns empty Blob after first use
https://bugs.webkit.org/show_bug.cgi?id=212274
<rdar://problem/63601298>

Reviewed by Eric Carlson.

Source/WebCore:

Refactor code to create/destroy MediaRecorderPrivate on MediaRecorder start/stop.
This allows reusing a MediaRecorder after a stop and restarting with a clean state.

We introduce MediaRecorderPrivate::startRecording to do the initialization,
which allows to fix a potential ref cycle as part of the error callback handling.

Make some improvements to the platform implementation, in particular add default initialization to all fields.
Align the code using AudioConverterRef to what is done in AudioSampleDataSource.
Also call VTCompressionSessionInvalidate when destroying the VideoSampleBufferCompressor.

Test: http/wpt/mediarecorder/MediaRecorder-multiple-start-stop.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::startRecording):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::requestData):

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData):

  • platform/mediarecorder/MediaRecorderPrivate.h:

(WebCore::MediaRecorderPrivate::startRecording):

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):
(WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):
(WebCore::AudioSampleBufferCompressor::attachPrimingTrimsIfNeeded):
(WebCore::AudioSampleBufferCompressor::gradualDecoderRefreshCount):
(WebCore::AudioSampleBufferCompressor::sampleBufferWithNumPackets):
(WebCore::AudioSampleBufferCompressor::processSampleBuffersUntilLowWaterTime):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::stopRecording):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):

Source/WebKit:

Update implementation to do initialization as part of startRecording.

  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp:

(WebKit::RemoteMediaRecorderManager::releaseRecorder):
Remove ASSERT as recorder creation in WebProcess is always ok while creation in GPUProcess may fail and m_recorders may not be populated.

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::startRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-multiple-start-stop-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-multiple-start-stop.html: Added.
2:35 AM Changeset in webkit [263890] by commit-queue@webkit.org
  • 28 edits in trunk/Source

Change the names of MIMETypeRegistry methods to comply with webkit naming style
https://bugs.webkit.org/show_bug.cgi?id=213912

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-03
Reviewed by Youenn Fablet.

Source/WebCore:

Remove the verb 'get' from the name of some of the methods of MIMETypeRegistry.

  • editing/cocoa/WebArchiveResourceFromNSAttributedString.mm:

(WebCore::if):

  • fileapi/File.cpp:

(WebCore::File::computeNameAndContentType):

  • html/HTMLPlugInElement.cpp:

(WebCore::pluginReplacementForType):

  • loader/mac/LoaderNSURLExtras.mm:

(suggestedFilenameWithMIMEType):

  • platform/MIMETypeRegistry.cpp:

(WebCore::commonMimeTypesMap):
(WebCore::MIMETypeRegistry::mediaMIMETypeForExtension):
(WebCore::MIMETypeRegistry::mimeTypeForPath):
(WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
(WebCore::MIMETypeRegistry::normalizedMIMEType):
(WebCore::MIMETypeRegistry::appendFileExtensionIfNecessary):
(WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): Deleted.
(WebCore::MIMETypeRegistry::getMediaMIMETypesForExtension): Deleted.
Delete this function since it is not used.

(WebCore::MIMETypeRegistry::getMIMETypeForPath): Deleted.
(WebCore::MIMETypeRegistry::getNormalizedMIMEType): Deleted.

  • platform/MIMETypeRegistry.h:
  • platform/cocoa/MIMETypeRegistryCocoa.mm:

(WebCore::MIMETypeRegistry::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::extensionsForMIMEType):
(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):
(WebCore::MIMETypeRegistry::getMIMETypeForExtension): Deleted.
(WebCore::MIMETypeRegistry::getExtensionsForMIMEType): Deleted.
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): Deleted.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):

  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::filenameExtension const):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::invokeDidReceiveResponseForFile):

  • platform/playstation/MIMETypeRegistryPlayStation.cpp:

(WebCore::MIMETypeRegistry::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):
(WebCore::MIMETypeRegistry::extensionsForMIMEType):
(WebCore::MIMETypeRegistry::getMIMETypeForExtension): Deleted.
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): Deleted.
(WebCore::MIMETypeRegistry::getExtensionsForMIMEType): Deleted.

  • platform/win/MIMETypeRegistryWin.cpp:

(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):
(WebCore::MIMETypeRegistry::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::extensionsForMIMEType):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): Deleted.
(WebCore::MIMETypeRegistry::getMIMETypeForExtension): Deleted.
(WebCore::MIMETypeRegistry::getExtensionsForMIMEType): Deleted.

  • platform/xdg/MIMETypeRegistryXdg.cpp:

(WebCore::MIMETypeRegistry::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::preferredExtensionForMIMEType):
(WebCore::MIMETypeRegistry::extensionsForMIMEType):
(WebCore::MIMETypeRegistry::getMIMETypeForExtension): Deleted.
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): Deleted.
(WebCore::MIMETypeRegistry::getExtensionsForMIMEType): Deleted.

Source/WebKit:

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::didSendRequest):

  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::mimeTypeInferredFromFileExtension):
(API::Attachment::setFileWrapperAndUpdateContentType):

  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:

(-[WKOpenPanelParameters _allowedFileExtensions]):

  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::fileCanBeAcceptedForUpload):

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::PluginInfoStore::findPlugin):

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel presentWithParameters:resultListener:]):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::objectContentType):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebMIMETypeRegistry.mm:

(+[WebMIMETypeRegistry mimeTypeForExtension:]):
(+[WebMIMETypeRegistry preferredExtensionForMIMEType:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::MIMETypeForExtension):

2:18 AM Changeset in webkit [263889] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Add exception checks in JSStringBuilder and Array#join
https://bugs.webkit.org/show_bug.cgi?id=213915
<rdar://problem/64878225>

Reviewed by Saam Barati and Mark Lam.

JSTests:

  • stress/out-of-memory-handle-in-join.js: Added.

(shouldThrow):

Source/JavaScriptCore:

This patch adds missing exception checks into Array#join's certain place and JSStringBuilder.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::append):

2:06 AM Changeset in webkit [263888] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK4] Enable threaded rendering by default
https://bugs.webkit.org/show_bug.cgi?id=213883

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-07-03
Reviewed by Adrian Perez de Castro.

When building with GTK4 we no longer use the cairo context to render directly, so we can always enable the
threaded rendering. In WPE port threaded rendering is only enabled when env var WEBKIT_NICOSIA_PAINTING_THREADS
is present. This patch changes a bit the meaning of the env var, so that when 0 is passed the feature is
disabled too, instead of setting the number of threads to 4.

  • platform/graphics/nicosia/NicosiaPaintingEngine.cpp:

(Nicosia::PaintingEngine::create):

1:37 AM Changeset in webkit [263887] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

[GTK4] Support kinetic scrolling
https://bugs.webkit.org/show_bug.cgi?id=213791

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-07-03
Reviewed by Carlos Garcia Campos.

GtkEventControllerScroll skips the last event and exposes it in a separate signal.
Normally one would add the KINETIC flag and listen to decelerate signal, but since
WebKit already has code for calculating the velocity for GTK3, just use the same
code path as scroll signal handler.

  • Shared/gtk/NativeWebWheelEventGtk.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseScrollEnd):
(webkitWebViewBaseConstructed):

12:42 AM Changeset in webkit [263886] by Diego Pino Garcia
  • 25 edits
    6 adds
    4 deletes in trunk/LayoutTests

Unreviewed test gardening. Update test expectations and baselines after r263858.

Baselines need to be updated after r263856. Some PNG images moved to
GLIB as their text output was on GLIB as well.

Filed a test crashing after r263858.

  • platform/glib/TestExpectations:
  • platform/glib/fast/css/percentage-non-integer-expected.png: Added.
  • platform/glib/fast/css/percentage-non-integer-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug100334-expected.png: Added.
  • platform/glib/tables/mozilla/bugs/bug100334-expected.txt:
  • platform/glib/tables/mozilla/bugs/bug3037-1-expected.png: Added.
  • platform/glib/tables/mozilla/bugs/bug3037-1-expected.txt:
  • platform/glib/tables/mozilla_expected_failures/other/empty_cells-expected.png: Added.
  • platform/glib/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/percentage-non-integer-expected.png: Removed.
  • platform/gtk/fast/dynamic/insert-before-table-part-in-continuation-expected.png:
  • platform/gtk/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/gtk/fast/repaint/table-cell-move-expected.png:
  • platform/gtk/fast/repaint/table-cell-move-expected.txt:
  • platform/gtk/fast/table/cell-absolute-child-expected.png:
  • platform/gtk/fast/table/cell-absolute-child-expected.txt:
  • platform/gtk/fast/table/empty-cells-expected.png:
  • platform/gtk/fast/table/empty-cells-expected.txt:
  • platform/gtk/fast/table/prepend-in-anonymous-table-expected.png:
  • platform/gtk/fast/table/prepend-in-anonymous-table-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug100334-expected.png: Removed.
  • platform/gtk/tables/mozilla/bugs/bug10633-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug10633-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1302-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug1302-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug16012-expected.png:
  • platform/gtk/tables/mozilla/bugs/bug16012-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug222336-expected.png: Added.
  • platform/gtk/tables/mozilla/bugs/bug222336-expected.txt: Added.
  • platform/gtk/tables/mozilla/bugs/bug3037-1-expected.png: Removed.
  • platform/gtk/tables/mozilla_expected_failures/other/empty_cells-expected.png: Removed.
12:21 AM Changeset in webkit [263885] by Fujii Hironori
  • 3 edits in trunk/Source/JavaScriptCore

Builtin internal wrapper implementation files wrap static global initialization code with incorrect guards
https://bugs.webkit.org/show_bug.cgi?id=213792

Reviewed by Youenn Fablet.

Streams API hadn't worked since r263700 for AppleWin and WinCairo
ports. r263700 removed the unused ENABLE_STREAMS_API.

Before r263700, the static global initialization code was wrapped

by "ENABLE(WEB_RTC)
ENABLE(STREAMS_API)". After r263700, it was

wrapped by "ENABLE(WEB_RTC)". AppleWin and WinCairo doesn't turn
on ENABLE_WEB_RTC. So, builtins for Streams API weren't properly
initialized for them.

  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result: Rebaselined.
  • Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_initialize_method):
Removed calling wrap_with_guard for the value of _generate_initialize_static_globals().

12:15 AM Changeset in webkit [263884] by Fujii Hironori
  • 7 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/fast/css/acid2-expected.txt:
  • platform/wincairo/fast/css/acid2-pixel-expected.txt:
  • platform/wincairo/fast/css/percentage-non-integer-expected.txt:
  • platform/wincairo/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/wincairo/http/tests/misc/acid2-expected.txt:
  • platform/wincairo/http/tests/misc/acid2-pixel-expected.txt:

Jul 2, 2020:

10:51 PM Changeset in webkit [263883] by mark.lam@apple.com
  • 7 edits in trunk/Source/WebCore

ReadableStream::create() should handle any exceptions that may be thrown during construction.
https://bugs.webkit.org/show_bug.cgi?id=213819

Reviewed by Youenn Fablet and Yusuke Suzuki.

Win EWS detected that ReadableStream::create() can throw exceptions, and we were
failing to handle it. This patch fixes that.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::put):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::readableStream):
(WebCore::FetchBodyOwner::createReadableStream):

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::clone):

  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::create):

  • bindings/js/ReadableStream.h:
9:17 PM Changeset in webkit [263882] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
https://bugs.webkit.org/show_bug.cgi?id=213048

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-02
Reviewed by Youenn Fablet.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

This uses CFNetwork SPI introduced in rdar://problem/50109631 to allow HSTS storage per NSURLSession.
To be complete, I also deprecated our UI process HSTS state removal attempt SPIs, WKContextResetHSTSHosts and
WKContextResetHSTSHostsAddedAfterDate, which had their last use removed in rdar://problem/64220838.

I manually verified that this new SPI puts HSTS data in the specified location, and I also verified that HSTS
state querying and removal works with the new CFNetwork SPI as it did with the old one.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::hostNamesWithHSTSCache const):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
(WebKit::NetworkProcess::clearHSTSCache):
(WebKit::NetworkProcess::getHostNamesWithHSTSCache): Deleted.

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::hstsStorage const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::hostNamesWithHSTSCache const):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
(WebKit::NetworkProcess::clearHSTSCache):
(WebKit::NetworkProcess::getHostNamesWithHSTSCache): Deleted.

  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextResetHSTSHosts):
(WKContextResetHSTSHostsAddedAfterDate):

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

(-[_WKWebsiteDataStoreConfiguration hstsStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setHSTSStorageDirectory:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::privateBrowsingSession): Deleted.
(WebKit::WebProcessPool::resetHSTSHosts): Deleted.
(WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedHSTSStorageDirectory const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

Source/WTF:

  • wtf/PlatformHave.h:
8:40 PM Changeset in webkit [263881] by achristensen@apple.com
  • 13 edits in trunk

Update Mac CMake build

.:

  • Source/cmake/OptionsMac.cmake:

Source/JavaScriptCore:

  • PlatformMac.cmake:

Source/WebCore:

  • PlatformMac.cmake:

Source/WebKit:

  • PlatformMac.cmake:

Source/WebKitLegacy:

  • PlatformMac.cmake:

Tools:

  • DumpRenderTree/PlatformMac.cmake:
  • WebKitTestRunner/PlatformMac.cmake:
8:19 PM Changeset in webkit [263880] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

MIMETypeRegistry::getExtensionsForMIMEType() needs to handle wildcard MIME types
https://bugs.webkit.org/show_bug.cgi?id=213826

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-02
Reviewed by Darin Adler.

Addressing post commit review comments for r263832.

  • platform/cocoa/MIMETypeRegistryCocoa.mm:

(WebCore::extensionsForMIMETypeMap):

7:01 PM Changeset in webkit [263879] by commit-queue@webkit.org
  • 8 edits in trunk

Add testing infrastructure and SPI declaration for HTTP/2 ping
https://bugs.webkit.org/show_bug.cgi?id=213913

Patch by Alex Christensen <achristensen@webkit.org> on 2020-07-02
Reviewed by Jer Noble.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WTF:

This is work towards rdar://problem/64495827

  • wtf/PlatformHave.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:

(-[SessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(TestWebKitAPI::pingPong):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::H2::Frame::Frame):
(TestWebKitAPI::H2::Frame::type const):
(TestWebKitAPI::H2::Frame::flags const):
(TestWebKitAPI::H2::Frame::streamID const):
(TestWebKitAPI::H2::Frame::payload const):
(TestWebKitAPI::H2::Connection::create):
(TestWebKitAPI::H2::Connection::Connection):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::listenerParameters):
(TestWebKitAPI::dataFromVector):
(TestWebKitAPI::vectorFromData):
(TestWebKitAPI::HTTPServer::request const):
(TestWebKitAPI::Connection::receiveBytes const):
(TestWebKitAPI::Connection::receiveHTTPRequest const):
(TestWebKitAPI::Connection::send const):
(TestWebKitAPI::H2::Connection::send const):
(TestWebKitAPI::H2::Connection::receive const):

6:05 PM Changeset in webkit [263878] by beidson@apple.com
  • 3 edits
    3 adds in trunk/Source/WebCore

GameController.framework soft linking refactoring
https://bugs.webkit.org/show_bug.cgi?id=213909

Reviewed by Tim Horton.

No new tests (No behavior changes)

  • WebCore.xcodeproj/project.pbxproj:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::startMonitoringGamepads):

  • platform/gamepad/cocoa/GameControllerSPI.h: Added.
  • platform/gamepad/cocoa/GameControllerSoftLink.h: Added.
  • platform/gamepad/cocoa/GameControllerSoftLink.mm: Added.
5:22 PM Changeset in webkit [263877] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.20.2

Tag Safari-610.1.20.2.

5:17 PM Changeset in webkit [263876] by Kocsen Chung
  • 16 edits
    2 deletes in branches/safari-610.1.20-branch

Cherry-pick r263854. rdar://problem/65048370

Unreviewed, reverting r263633, r263651, and r263671.

Still seeing MediaRecorder test crashes after re-landing
r263633

Reverted changesets:

"MediaRecorder stopRecorder() returns empty Blob after first
use"
https://bugs.webkit.org/show_bug.cgi?id=212274
https://trac.webkit.org/changeset/263633

"MediaRecorder.start() Method is Ignoring the "timeslice"
Parameter"
https://bugs.webkit.org/show_bug.cgi?id=202233
https://trac.webkit.org/changeset/263651

"Support MediaRecorder.onstart"
https://bugs.webkit.org/show_bug.cgi?id=213720
https://trac.webkit.org/changeset/263671

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

5:08 PM Changeset in webkit [263875] by Kocsen Chung
  • 8 edits in branches/safari-610.1.20-branch/Source

Versioning.

WebKit-610.1.20.2

4:15 PM Changeset in webkit [263874] by Kate Cheney
  • 8 edits in trunk

Custom URL schemes should be treated as app-bound
https://bugs.webkit.org/show_bug.cgi?id=213889
<rdar://problem/64804671>

Reviewed by Brent Fulgham.

Source/WebKit:

For applications which opt-in to App-Bound Domains, allow
specification of app-bound custom URL schemes. All content loaded
using an app-bound scheme will have access to otherwise restricted
APIs. A custom scheme is specified by a colon at the end of a string
in the WKAppBoundDomains list. Custom schemes are included in the
count of 10 app-bound domains.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _appBoundSchemes:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

SPI for testing.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::appBoundSchemes):
(WebKit::WebsiteDataStore::initializeAppBoundDomains):
Change variable name from appBoundDomains to appBoundData now that
more than domains can be specified in the Info.plist.

(WebKit::WebsiteDataStore::ensureAppBoundDomains const):
Return both domains and schemes to avoid code duplication, at the expense
of occasionally returning an unused parameter if only domains or only
schemes are needed.

(WebKit::WebsiteDataStore::beginAppBoundDomainCheck):
(WebKit::WebsiteDataStore::getAppBoundDomains const):
(WebKit::WebsiteDataStore::getAppBoundSchemes const):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Added custom schemes to TestWebKitAPI's Info.plist for testing
duplicate values and the max of 10 domains/schemes. Added
two API tests to check that schemes are properly read from the
Info.plist and that content loaded using a specified app-bound scheme
has restricted API use.

  • TestWebKitAPI/Info.plist:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

3:50 PM Changeset in webkit [263873] by Alan Coon
  • 1 copy in tags/Safari-610.1.20.1

Tag Safari-610.1.20.1.

3:49 PM Changeset in webkit [263872] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow selecting text of Response (DOM Tree)
https://bugs.webkit.org/show_bug.cgi?id=213617

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom.non-selectable):

3:49 PM Changeset in webkit [263871] by Alan Coon
  • 3 edits in branches/safari-610.1.20-branch/Source/ThirdParty/libwebrtc

Apply patch. rdar://problem/64901603

3:44 PM Changeset in webkit [263870] by Alan Coon
  • 1 delete in tags/Safari-610.1.20.1

Delete tag.

3:43 PM Changeset in webkit [263869] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Crash in +[UIViewController _viewControllerForFullScreenPresentationFromView:] when WKContentView is deallocated
https://bugs.webkit.org/show_bug.cgi?id=213867

Patch by Austin Blackwood <ablackwoood@apple.com> on 2020-07-02
Reviewed by Darin Adler.

+[UIViewController _viewControllerForFullScreenPresentationFromView:]
asserts that the view parameter is non-nil. WKFileUploadPanel
passes its view (a weak pointer to the WKContentView), which may
have already been nil'd out when the content view tries to dismiss
the panel in its own dealloc.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel dismiss]):
Check for nil.

3:42 PM Changeset in webkit [263868] by Alan Coon
  • 3 edits in branches/safari-610.1.20-branch/Source/ThirdParty/libwebrtc

Revert r263828. rdar://problem/64901603

3:37 PM Changeset in webkit [263867] by Alan Coon
  • 1 copy in tags/Safari-610.1.20.1

Tag Safari-610.1.20.1.

3:36 PM Changeset in webkit [263866] by Alan Coon
  • 3 edits in branches/safari-610.1.20-branch/Source/ThirdParty/libwebrtc

Cherry-pick r263828. rdar://problem/64901603

Fix the arm64 iOS simulator build
https://bugs.webkit.org/show_bug.cgi?id=213868
<rdar://problem/64901603>

  • Configurations/libvpx.xcconfig:
  • Configurations/libwebrtc.xcconfig:

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

3:31 PM Changeset in webkit [263865] by Alan Coon
  • 8 edits in branches/safari-610.1.20-branch/Source

Versioning.

WebKit-610.1.20.1

3:31 PM Changeset in webkit [263864] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-flexbox/overflow-auto-008.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=213896

Unreviewed test gardening.

Added prefix with bug

Patch by Karl Rackler <Karl Rackler> on 2020-07-02

  • platform/mac-wk1/TestExpectations:
3:30 PM Changeset in webkit [263863] by Alan Coon
  • 16 edits
    2 adds in branches/safari-610.1.20-branch

Revert r263854. rdar://problem/65048370

2:38 PM Changeset in webkit [263862] by Alan Coon
  • 1 copy in tags/Safari-610.1.20

Tag Safari-610.1.20.

2:11 PM Changeset in webkit [263861] by Alan Coon
  • 16 edits
    2 deletes in branches/safari-610.1.20-branch

Cherry-pick r263854. rdar://problem/65048370

Unreviewed, reverting r263633, r263651, and r263671.

Still seeing MediaRecorder test crashes after re-landing
r263633

Reverted changesets:

"MediaRecorder stopRecorder() returns empty Blob after first
use"
https://bugs.webkit.org/show_bug.cgi?id=212274
https://trac.webkit.org/changeset/263633

"MediaRecorder.start() Method is Ignoring the "timeslice"
Parameter"
https://bugs.webkit.org/show_bug.cgi?id=202233
https://trac.webkit.org/changeset/263651

"Support MediaRecorder.onstart"
https://bugs.webkit.org/show_bug.cgi?id=213720
https://trac.webkit.org/changeset/263671

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

2:08 PM Changeset in webkit [263860] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION(r260276): menu items in footer of https://salo.ai are invisible until you hover or resize
https://bugs.webkit.org/show_bug.cgi?id=213712
<rdar://problem/64893190>

Reviewed by Zalan Bujtas.

Source/WebCore:

A negative z-index child triggers a foreground layer inside overflow scroll. This foreground layer
gets the PaintingOverflowContents flag but not the PaintingCompositingScrollingPhase flag, but we still need
to avoid the clip check that happens in RenderBlock::paint(), so change RenderLayer::paintLayerContents()
to just check for isPaintingOverflowContents.

Test: compositing/scrolling/async-overflow-scrolling/foreground-layer-paint-phase.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

LayoutTests:

  • compositing/scrolling/async-overflow-scrolling/foreground-layer-paint-phase-expected.html: Added.
  • compositing/scrolling/async-overflow-scrolling/foreground-layer-paint-phase.html: Added.
1:35 PM Changeset in webkit [263859] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-flexbox/overflow-auto-008.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=213896

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-02

  • platform/mac-wk1/TestExpectations:
1:35 PM Changeset in webkit [263858] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

visualViewport.addEventListener("scroll"* fires permanently after zoom or orientation change
https://bugs.webkit.org/show_bug.cgi?id=211522
<rdar://problem/62939371>

Reviewed by Simon Fraser.

Source/WebCore:

Correctly set the flag indicating that a scroll event has been dispatched on the visual viewport.

Test: fast/visual-viewport/scroll-event-fired-during-scroll-alone.html

  • dom/Document.cpp:

(WebCore::Document::runScrollSteps):

LayoutTests:

Add a test that checks that after a call to scrollTo() no further "scroll" events are dispatched on window.visualViewport.

  • fast/visual-viewport/scroll-event-fired-during-scroll-alone-expected.txt: Added.
  • fast/visual-viewport/scroll-event-fired-during-scroll-alone.html: Added.
1:26 PM Changeset in webkit [263857] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

FloatingPointEnvironment::saveMainThreadEnvironment() is not called for macOS Catalyst apps on Apple Silicon
https://bugs.webkit.org/show_bug.cgi?id=213897
<rdar://problem/64607098>

Reviewed by Darin Adler.

FloatingPointEnvironment::saveMainThreadEnvironment() is not called for macOS Catalyst apps on Apple Silicon
This causes crashes because FloatingPointEnvironment::propagateMainThreadEnvironment() is called for worker
threads for such apps on this platform.

  • Shared/ios/AuxiliaryProcessIOS.mm:

(WebKit::AuxiliaryProcess::initializeSandbox):
Drop some dead code for PLATFORM(MACCATALYST) since the whole file is protected with !PLATFORM(MACCATALYST).
Mac Catalyst uses AuxiliaryProcessMac.mm instead.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::platformInitialize):
Call FloatingPointEnvironment::saveMainThreadEnvironment() on AuxiliaryProcessMac.mm since this
platformInitialize() is used for Mac Catalyst and Catalyst apps may now run on Apple Silicon / ARM.
Note that FloatingPointEnvironment::saveMainThreadEnvironment() is a no-op on platforms where it is
not needed.

12:54 PM Changeset in webkit [263856] by Chris Dumez
  • 54 edits
    2 copies
    43 adds in trunk/LayoutTests

Resync web-platform-tests/html/browsers from upstream
https://bugs.webkit.org/show_bug.cgi?id=213892

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/browsers from upstream 145839c323ba1ec8b9737.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/browsers/*: Updated.

LayoutTests:

  • tests-options.json:
12:45 PM Changeset in webkit [263855] by Alan Bujtas
  • 58 edits in trunk

Overlapping content on earny.co
https://bugs.webkit.org/show_bug.cgi?id=213864
<rdar://problem/61011802>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-writing-modes/orthogonal-parent-shrink-to-fit-001-expected.txt:
  • web-platform-tests/css/css-writing-modes/orthogonal-parent-shrink-to-fit-001q-expected.txt:
  • web-platform-tests/css/css-writing-modes/orthogonal-parent-shrink-to-fit-001r-expected.txt:
  • web-platform-tests/css/css-writing-modes/orthogonal-parent-shrink-to-fit-001u-expected.txt:
  • web-platform-tests/css/css-writing-modes/orthogonal-parent-shrink-to-fit-001v-expected.txt:

Source/WebCore:

Do not use a 1px value for initial min/max content width.

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
(WebCore::AutoTableLayout::layout): I found 2 places where we rely on the initial 1px value for min/max width. This might cause some "regression".

LayoutTests:

Progressions. Some of them are visually observable and they match Chrome/FF.

  • css2.1/20110323/abspos-containing-block-initial-004e-expected.txt:
  • css2.1/20110323/abspos-containing-block-initial-004f-expected.txt:
  • fast/table/auto-100-percent-width-expected.txt:
  • fast/table/large-shrink-wrapped-width.html:
  • fast/table/table-section-split-with-after-content-expected.txt:
  • platform/mac/fast/css/acid2-expected.txt:
  • platform/mac/fast/css/acid2-pixel-expected.txt:
  • platform/mac/fast/css/percentage-non-integer-expected.txt:
  • platform/mac/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/mac/fast/repaint/table-cell-move-expected.txt:
  • platform/mac/fast/table/cell-absolute-child-expected.txt:
  • platform/mac/fast/table/empty-cells-expected.txt:
  • platform/mac/fast/table/prepend-in-anonymous-table-expected.txt:
  • platform/mac/fast/table/table-cell-split-expected.txt:
  • platform/mac/fast/table/table-insert-before-non-anonymous-block-expected.txt:
  • platform/mac/http/tests/misc/acid2-expected.txt:
  • platform/mac/http/tests/misc/acid2-pixel-expected.txt:
  • platform/mac/http/tests/misc/acid3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug100334-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug10633-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1302-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug16012-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug222336-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug3037-1-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/other/empty_cells-expected.txt:
12:34 PM Changeset in webkit [263854] by Ryan Haddad
  • 17 edits
    4 deletes in trunk

Unreviewed, reverting r263633, r263651, and r263671.

Still seeing MediaRecorder test crashes after re-landing
r263633

Reverted changesets:

"MediaRecorder stopRecorder() returns empty Blob after first
use"
https://bugs.webkit.org/show_bug.cgi?id=212274
https://trac.webkit.org/changeset/263633

"MediaRecorder.start() Method is Ignoring the "timeslice"
Parameter"
https://bugs.webkit.org/show_bug.cgi?id=202233
https://trac.webkit.org/changeset/263651

"Support MediaRecorder.onstart"
https://bugs.webkit.org/show_bug.cgi?id=213720
https://trac.webkit.org/changeset/263671

12:26 PM adenilson_webkit_contributors_2019.pdf attached to zliboptimizationsforARM by cavalcantii@gmail.com
11:56 AM Changeset in webkit [263853] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION: Comments section at dpreview has overlapping names with comment on phone
https://bugs.webkit.org/show_bug.cgi?id=213890
Source/WebCore:

<rdar://problem/64693599>

Reviewed by Simon Fraser.

Test: fast/text-autosizing/ios/float-miscomputed-line-height.html

  • rendering/TextAutoSizing.cpp:

(WebCore::TextAutoSizingValue::adjustTextNodeSizes):

Negative value is used to indicate unset line-height. We shouldn't make adjustments in this case.
This matches Style::BuilderCustom code.

LayoutTests:

Reviewed by Simon Fraser.

  • fast/text-autosizing/ios/float-miscomputed-line-height-expected.html: Added.
  • fast/text-autosizing/ios/float-miscomputed-line-height.html: Added.
11:45 AM Changeset in webkit [263852] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Crash under WebKit::NetworkProcessProxy::updateProcessAssertion()
https://bugs.webkit.org/show_bug.cgi?id=213891
<rdar://problem/65017909>

Reviewed by Alex Christensen.

The crash was due to NetworkProcessProxy::updateProcessAssertion() re-entering while
in the middle of the m_activityFromWebProcesses = nullptr; assignment. Calling
the ProcessThrottler::BackgroundActivity destructor, could cause updateProcessAssertion()
to get called again, in which case we may dereference m_activityFromWebProcesses and
crash. To address the issue, use std::exchange(m_activityFromWebProcesses, nullptr);
instead, so that m_activityFromWebProcesses becomes null BEFORE the BackgroundActivity
destructor gets called. updateProcessAssertion() will still re-enter but
m_activityFromWebProcesses will be nullptr and updateProcessAssertion() will do the
right thing.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::updateProcessAssertion):

10:56 AM Changeset in webkit [263851] by Chris Dumez
  • 1 edit
    8 deletes in trunk/LayoutTests/imported/w3c

Unreviewed, drop some outdated tests in WebCrypto API.

Those tests failed to get removed during the recent re-sync from upstream in r263598.
They are actually still present but under different names so we have duplicate
copies right now.

  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/getRandomValues.js: Removed.
  • web-platform-tests/WebCryptoAPI/getRandomValues.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/getRandomValues.worker.html: Removed.
  • web-platform-tests/WebCryptoAPI/getRandomValues.worker.js: Removed.
  • web-platform-tests/WebCryptoAPI/test_getRandomValues-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/test_getRandomValues.html: Removed.
10:30 AM Changeset in webkit [263850] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/canvas/canvas-radial-gradient-spreadMethod.html as it is passing. Added back imported/w3c/canvas/2d.gradient.radial.cone.bottom.html as it is failing.
https://bugs.webkit.org/show_bug.cgi?id=213840

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-02

  • platform/ios/TestExpectations:
10:17 AM Changeset in webkit [263849] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, mark JSTests/test262/test/intl402/NumberFormat/prototype/format/numbering-systems.js fail since it requires ICU 66
https://bugs.webkit.org/show_bug.cgi?id=213872

This test in test262 requires ICU 66 while Catalina bot is using ICU 64.

  • test262/config.yaml:
9:31 AM Changeset in webkit [263848] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r263625): run-minibrowser fails on mac
https://bugs.webkit.org/show_bug.cgi?id=213876

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-02
Reviewed by Darin Adler.

  • Scripts/webkitpy/port/base.py:

(Port.run_minibrowser): _run_script() expects a string as first argument. Command-line args
are passed through a keyword.

9:17 AM Changeset in webkit [263847] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip most webaudio WPT tests in Debug.

7:52 AM Changeset in webkit [263846] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][BFC] Remove redundant margin-border-padding when computing the intrinsic width
https://bugs.webkit.org/show_bug.cgi?id=213882

Reviewed by Antti Koivisto.

Source/WebCore:

The child intrinsic width already includes the margin-border-padding values.

Test: fast/layoutformattingcontext/table-with-margin-content-simple.html

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):

LayoutTests:

  • fast/layoutformattingcontext/table-with-margin-content-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-with-margin-content-simple.html: Added.
7:52 AM Changeset in webkit [263845] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Use <tr> computed height as minimum height for the row
https://bugs.webkit.org/show_bug.cgi?id=213880

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-fixed-row-height-simple.html

  • layout/tableformatting/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):

LayoutTests:

  • fast/layoutformattingcontext/table-fixed-row-height-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-fixed-row-height-simple.html: Added.
7:05 AM Changeset in webkit [263844] by youenn@apple.com
  • 11 edits
    2 adds in trunk

getUserMedia returns OverConstrained on Jitsi
https://bugs.webkit.org/show_bug.cgi?id=210932
<rdar://problem/64403675>

Reviewed by Philippe Normand.

Source/WebCore:

We compute the max width, max height and max frame rate across all presets.
In case a preset for the max resolution is different from the preset for the max frame rate,
we were selecting capture parameters that no preset can match.

To fix the issue, in case the frame rate constraint is not mandatory, and we do not find a preset
when starting to capture, we remove the frame rate constraint, pick the preset and choose the max frame rate from that preset.

Update mock sources to have a high resolution preset with low frame rate to enable writing a test.

Test: fast/mediastream/get-user-media-ideal-constraints.html

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):

  • platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::bestSupportedSizeAndFrameRate):
(WebCore::RealtimeVideoCaptureSource::setSizeAndFrameRate):

  • platform/mediastream/VideoPreset.h:

(WebCore::VideoPreset::maxFrameRate const):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices):

LayoutTests:

We bumped the max width/height for mock sources and have to update existing tests according to that.

  • fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
  • fast/mediastream/apply-constraints-advanced-expected.txt:
  • fast/mediastream/apply-constraints-advanced.html:
  • fast/mediastream/apply-constraints-video-expected.txt:
  • fast/mediastream/apply-constraints-video.html:
  • fast/mediastream/get-user-media-ideal-constraints-expected.txt: Added.
  • fast/mediastream/get-user-media-ideal-constraints.html: Added.
5:41 AM Changeset in webkit [263843] by Carlos Garcia Campos
  • 8 edits in trunk

Unreviewed. Fix GTK4 build

Source/WebCore:

  • platform/gtk/GtkVersioning.h:

(gtk_scrolled_window_new):

Source/WebKit:

  • UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:

(webkitScriptDialogImplConstructed):

  • UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp:

(WebKit::WebDataListSuggestionsDropdownGtk::WebDataListSuggestionsDropdownGtk):

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::createPopupMenu):

Tools:

  • MiniBrowser/gtk/BrowserSettingsDialog.c:

(browser_settings_dialog_init):

5:40 AM Changeset in webkit [263842] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

Remove expectation for fast/events/input-events-forecolor-data.html and fast/events/input-events-ime-composition.html and fast/events/input-events-selection-forecolor-data.html and fast/events/input-events-spell-checking-datatransfer.html and fast/events/offsetX-offsetY.html and fast/events/scale-and-scroll-iframe-body.html and fast/events/scale-and-scroll-iframe-window.html and fast/events/scroll-to-anchor-vertical-lr-writing-mode.html and fast/events/scroll-to-anchor-vertical-writing-mode.html and fast/forms/range/slider-transformed.html and fast/forms/range/slider-zoomed.html and fast/frames/content-opacity-1.html and fast/frames/content-opacity-2.html and fast/frames/iframe-text-contents.html and fast/frames/onlyCommentInIFrame.html and fast/frames/paint-iframe-background.html and fast/frames/sandboxed-iframe-close-top-noclose.html and fast/hidpi/image-srcset-invalid-descriptor.html and fast/hidpi/image-srcset-png-canvas.html and fast/html/listing.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213863

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-02

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
5:38 AM Changeset in webkit [263841] by commit-queue@webkit.org
  • 9 edits
    2 adds
    3 deletes in trunk

Fragment navigation involving fragment identifiers does not match specification
https://bugs.webkit.org/show_bug.cgi?id=83930

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

LayoutTests/imported/w3c:

Update improved test results and import scroll-frag-non-utf8-encoded-document.html.

  • web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding-2-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-non-utf8-encoded-document-expected.txt: Added.
  • web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-non-utf8-encoded-document.html: Added.
  • web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-anchor-name-expected.txt:

Source/WebCore:

Implement step 5 and 6 of [1] to allow fragment identifier lookup
using percent-decoding, after normal lookup failed.

Behavior matches Chrome and Firefox.

[1] https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-indicated-part-of-the-document

Tests: imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-anchor-name.html

imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding-2.html
imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/fragment-and-encoding.html
imported/w3c/web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-non-utf8-encoded-document.html

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFragmentInternal):

LayoutTests:

Replace anchor-frames-gbk.html by scroll-frag-non-utf8-encoded-document.html.

  • http/tests/navigation/anchor-frames-gbk-expected.txt: Removed.
  • http/tests/navigation/anchor-frames-gbk.html: Removed.
  • http/tests/navigation/resources/frame-with-anchor-gbk.html: Removed.
  • platform/ios-wk1/TestExpectations:
  • platform/ios-wk2/TestExpectations:
3:40 AM Changeset in webkit [263840] by eocanha@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK multimedia gardening
https://bugs.webkit.org/show_bug.cgi?id=213877

Crashes in media/context-menu-actions.html are flaky instead of always reproducible.

  • platform/gtk/TestExpectations:
2:26 AM Changeset in webkit [263839] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools

[Flatpak SDK] Add perl-term-readkey
https://bugs.webkit.org/show_bug.cgi?id=213787

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-02
Reviewed by Adrian Perez de Castro.

This is yet another git-svn runtime dependency.

  • buildstream/elements/sdk-platform.bst:
  • buildstream/elements/sdk/perl-term-readkey.bst: Added.
2:19 AM Changeset in webkit [263838] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GTK] Kinetic scrolling is still triggered if you wait before lifting fingers
https://bugs.webkit.org/show_bug.cgi?id=213789

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-07-02
Reviewed by Carlos Garcia Campos.

The intended behavior for kinetic scrolling is that it's possible to not trigger it by
stopping moving fingers before lifting them, as opposed to doing a fling/swipe. However,
right now it's broken and trying to do this triggers kinetic scrolling as well.

Currently, the last scroll event with (0, 0) deltas isn't added to the scroll history for
kinetic scrolling. However, this is wrong, because the last event, or rather the timespan
between it and the previous scroll event, actually determines the kinetic scrolling velocity:
if this event follows the previous one quickly, the velocity is large, but if there was a long
pause, the velocity would be close to 0.

See https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1902 and
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1903 for the equivalent GTK fixes.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::handleWheelEvent):

1:47 AM Changeset in webkit [263837] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Configure option-offered numberingSystem in Intl.NumberFormat through locale
https://bugs.webkit.org/show_bug.cgi?id=213872

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-numberformat-nu.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/JavaScriptCore:

We need to pass numberingSystem option to ICU through locale when constructing UNumberFormat.
We are passing it when we get "en-US-u-nu-hanidec" locale, but we are not passing it when
we are getting new Intl.NumberFormat("en-US", { numberingSystem: "hanidec" }).

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

1:20 AM Changeset in webkit [263836] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer] Rewrite mediastreamsrc element
https://bugs.webkit.org/show_bug.cgi?id=213777

Reviewed by Xabier Rodriguez-Calvar.

The underlying functionality remains the same, design-wise. This is mostly a refactoring
switching to smart pointers as much as possible and trying to comply with WebKit code style
guidelines.

The previous version of this element was leaking pad templates and sticky stream-start
events (in webkitMediaStreamSrcTrackEnded).

The LIBWEBRTC ifdef guards were removed as well, because there's no actual libwebrtc
dependency involved in this code.

No new tests, existing webrtc and fast/mediastream tests cover this patch.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(mediaStreamTrackPrivateGetTags):
(webkitMediaStreamNew):
(WebKitMediaStreamTrackObserver::WebKitMediaStreamTrackObserver):
(WebKitMediaStreamObserver::WebKitMediaStreamObserver):
(InternalSource::InternalSource):
(InternalSource::~InternalSource):
(InternalSource::src const):
(InternalSource::pushSample):
(webkitMediaStreamSrcUriGetType):
(webkitMediaStreamSrcUriGetProtocols):
(webkitMediaStreamSrcUriGetUri):
(webkitMediaStreamSrcUriSetUri):
(webkitMediaStreamSrcUriHandlerInit):
(webkitMediaStreamSrcSetProperty):
(webkitMediaStreamSrcGetProperty):
(webkitMediaStreamSrcConstructed):
(stopObservingTracks):
(webkitMediaStreamSrcFinalize):
(webkitMediaStreamSrcChangeState):
(webkit_media_stream_src_class_init):
(webkitMediaStreamSrcChain):
(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):
(webkitMediaStreamSrcPostStreamCollection):
(webkitMediaStreamSrcAddTrack):
(webkitMediaStreamSrcRemoveTrackByType):
(webkitMediaStreamSrcSetStream):
(webkitMediaStreamSrcPushVideoSample):
(webkitMediaStreamSrcPushAudioSample):
(webkitMediaStreamSrcTrackEnded):
(webkitMediaStreamSrcNew):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
1:14 AM Changeset in webkit [263835] by eocanha@igalia.com
  • 5 edits in trunk/LayoutTests

[GTK] Layout test media/context-menu-actions.html is failing
https://bugs.webkit.org/show_bug.cgi?id=183611

Reviewed by Xabier Rodriguez-Calvar.

Changing to fullscreen is an async operation, so we now use testExpectedEventually() to wait for
the final value.
Simply setting an event handler on video.onwebkitfullscreenchange wouldn't have been enough, since the
event is triggered before the fullscreen operation has been completed and checking for
video.webkitDisplayingFullscreen == true would still fail by then.
Using the 'webkitbeginfullscreen' event isn't possible either, because it's never triggered when
FULLSCREEN_API is enabled.

  • media/context-menu-actions.html: Use asynchronous testing.
  • media/video-test.js:

(testExpectedEventually): Add an optional "timeout" parameter to avoid a test timeout (all the output
would be lost) in case we wait forever for the comparison to evaluate to the expected value.
(reportExpected): Add an optional "explanation" parameter for extra reporting.

  • platform/gtk-wayland/TestExpectations: Unskipped the test.
  • platform/gtk/TestExpectations: Ditto.
12:20 AM Changeset in webkit [263834] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Skip AX tests added in r263823 as they're timing out.

  • platform/glib/TestExpectations:
Note: See TracTimeline for information about the timeline view.