⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

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.

Note: See TracTimeline for information about the timeline view.