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

Timeline



Apr 23, 2022:

10:49 PM Changeset in webkit [293302] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r293301.

  • bindings/js/JSDOMConvertStrings.h:

(WebCore::Converter<IDLAtomStringAdaptor<IDLByteString>>::convert):

9:48 PM Changeset in webkit [293301] by Chris Dumez
  • 12 edits in trunk/Source

[IDL] Add support for [AtomString] with USVString & ByteString types
https://bugs.webkit.org/show_bug.cgi?id=239695

Reviewed by Cameron McCormack.

Add support for [AtomString] with USVString and ByteString types in our WebIDL
bindings. This is needed to mark the AtomString(const String&) constructor
explicit.

  • Source/WTF/wtf/text/AtomString.cpp:

(WTF::replaceUnpairedSurrogatesWithReplacementCharacterInternal):
(WTF::replaceUnpairedSurrogatesWithReplacementCharacter):

  • Source/WTF/wtf/text/AtomString.h:
  • Source/WTF/wtf/text/WTFString.cpp:

(WTF::replaceUnpairedSurrogatesWithReplacementCharacter): Deleted.

  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/Modules/fetch/FetchResponse.h:
  • Source/WebCore/Modules/fetch/FetchResponse.idl:
  • Source/WebCore/bindings/js/JSDOMConvertStrings.cpp:

(WebCore::throwIfInvalidByteString):
(WebCore::identifierToByteString):
(WebCore::valueToByteString):
(WebCore::valueToByteAtomString):
(WebCore::valueToUSVAtomString):
(WebCore::stringToByteString): Deleted.

  • Source/WebCore/bindings/js/JSDOMConvertStrings.h:

(WebCore::Converter<IDLAtomStringAdaptor<T>>::convert):
(WebCore::Converter<IDLAtomStringAdaptor<IDLUSVString>>::convert):
(WebCore::Converter<IDLAtomStringAdaptor<IDLByteString>>::convert):
(WebCore::JSConverter<IDLAtomStringAdaptor<T>>::convert):
(WebCore::JSConverter<IDLAtomStringAdaptor<IDLUSVString>>::convert):
(WebCore::JSConverter<IDLAtomStringAdaptor<IDLByteString>>::convert):

  • Source/WebCore/html/HTMLAnchorElement.idl:
  • Source/WebCore/html/HTMLAreaElement.idl:
  • Source/WebCore/platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::httpStatusText const):
(WebCore::ResourceResponseBase::setHTTPStatusText):

  • Source/WebCore/platform/network/ResourceResponseBase.h:

Canonical link: https://commits.webkit.org/249926@main

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

[Win] Unreviewed build fix.

  • Headers.cmake:
8:45 PM Changeset in webkit [293299] by Wenson Hsieh
  • 28 edits
    1 delete in trunk/Source

Remove the PreferInlineTextSelectionInImages internal feature flag
https://bugs.webkit.org/show_bug.cgi?id=234849

Reviewed by Sam Weinig.

Source/WebCore:

See WebKit/ChangeLog for more details.

  • en.lproj/Localizable.strings:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::contextMenuItemTagQuickLookImage): Deleted.
(WebCore::contextMenuItemTagQuickLookImageForTextSelection): Deleted.
(WebCore::contextMenuItemTagQuickLookImageForVisualSearch): Deleted.

Source/WebKit:

This patch reverts r279164, which introduced an internal feature to avoid Live Text analysis when hovering over
images, and instead added a new context menu item to reveal selectable text in the image by launching the
QuickLook panel in Live Text mode.

This alternate Live Text experience was originally devised as a way to mitigate the power and performance impact
of passively triggering Live Text analysis when hovering over images on pre-M1 devices, but this mitigation was
ultimately deemed unnecessary in macOS 12.

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

  • UIProcess/Cocoa/QuickLookPreviewActivity.h: Removed.
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::computeHasVisualSearchResults):
(WebKit::WebViewImpl::computeHasImageAnalysisResults): Deleted.

  • UIProcess/PageClient.h:

(WebKit::PageClient::computeHasVisualSearchResults):
(WebKit::PageClient::computeHasImageAnalysisResults): Deleted.

  • UIProcess/WebContextMenuProxy.h:

(WebKit::WebContextMenuProxy::quickLookPreviewActivity const): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::computeHasVisualSearchResults):
(WebKit::WebPageProxy::computeHasImageAnalysisResults): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::computeHasVisualSearchResults):
(WebKit::PageClientImpl::computeHasImageAnalysisResults): Deleted.

  • UIProcess/mac/WKQuickLookPreviewController.h:
  • UIProcess/mac/WKQuickLookPreviewController.mm:
  • UIProcess/mac/WebContextMenuProxyMac.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
(WebKit::WebContextMenuProxyMac::insertOrUpdateQuickLookImageItem): Deleted.
(WebKit::WebContextMenuProxyMac::updateQuickLookContextMenuItemTitle): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuLookUpImage):
(WebKit::WebPageProxy::handleContextMenuQuickLookImage): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

See WebKit/ChangeLog for more details.

  • WebView/WebHTMLView.mm:

(toTag):

Source/WTF:

See WebKit/ChangeLog for more details.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
7:27 PM Changeset in webkit [293298] by Andres Gonzalez
  • 11 edits in trunk/Source/WebCore

Code cleanup in preparation for optimizing use of AccessibilityObject::elementsFromAttribute.
https://bugs.webkit.org/show_bug.cgi?id=239664
<rdar://problem/92180286>

Reviewed by Chris Fleizach.

No new functionality.

AccessibilityObject::elementsFromAttribute now returns a vector as
opposed to taking an out parameter. This makes the code more concise
and possibly more efficient.
Removed this method from the AXCoreObject interface, since this method
should not be exposed to an AT client. The Inspector is an exception
that accesses AccessibilityObjects directly and not through the
AXCoreObject interface.
All these changes are entirely code cleanup and modernization, no change
in functionality.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::ariaLabeledByText const):
(WebCore::AccessibilityNodeObject::textUnderElement const):
(WebCore::AccessibilityNodeObject::descriptionForElements const):
(WebCore::AccessibilityNodeObject::ariaDescribedByAttribute const):
(WebCore::AccessibilityNodeObject::ariaLabeledByAttribute const):
(WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements const): Renamed.
(WebCore::AccessibilityNodeObject::ariaLabeledByElements const): Deleted.

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaElementsFromAttribute const):
(WebCore::AccessibilityObject::elementsFromAttribute const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isTabItemSelected const):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::elementsFromAttribute const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • inspector/InspectorAuditAccessibilityObject.cpp:

(WebCore::accessiblityObjectForNode):
(WebCore::InspectorAuditAccessibilityObject::getControlledNodes):
(WebCore::InspectorAuditAccessibilityObject::getFlowedNodes):
(WebCore::InspectorAuditAccessibilityObject::getMouseEventNode):
(WebCore::InspectorAuditAccessibilityObject::getOwnedNodes):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

4:03 PM Changeset in webkit [293297] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[FFC][Integration] Add integration API to FlexFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=239692

Reviewed by Antti Koivisto.

The integration codepath needs dedicated (and temporary)APIs on the formatting contexts.
(This is exactly how inline layout has been integrated.)

  • layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntergration):
(WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraintsForIntegration):

  • layout/formattingContexts/flex/FlexFormattingContext.h:
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContentForIntergration):
(WebCore::Layout::InlineFormattingContext::lineLayoutForIntergration): Deleted.

  • layout/formattingContexts/inline/InlineFormattingContext.h:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):
(WebCore::LayoutIntegration::FlexLayout::computeIntrinsicWidthConstraints):
(WebCore::LayoutIntegration::FlexLayout::layout):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h:

(WebCore::LayoutIntegration::FlexLayout::rootLayoutBox const):
(WebCore::LayoutIntegration::FlexLayout::rootLayoutBox):

  • layout/integration/inline/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

3:26 PM Changeset in webkit [293296] by beidson@apple.com
  • 30 edits
    3 copies
    1 add in trunk

Add WKNotification and WKWebsiteDataStore SPI for handling click/close of persistent notifications
https://bugs.webkit.org/show_bug.cgi

Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing tests with WKTR changes.

In Cocoa, expose the dictionary representation of a notification as an NSDictionary,
as it is meant to be used as an NSUserNotification userInfo value.

  • Modules/notifications/NotificationData.h:
  • Modules/notifications/NotificationDataCocoa.mm: Added.

(WebCore::NotificationData::fromDictionary):
(WebCore::NotificationData::dictionaryRepresentation const):

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::processNotificationEvent):

  • workers/service/server/SWServer.h:

Source/WebKit:

For notifications that are persistent, add WKWebsiteDataStore SPI to handle click/close operations,
as the WKNotificationManager's runtime record of such notifications might be gone.

WebKitTestRunner exercises this new SPI in existing tests.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processNotificationEvent):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • SourcesCocoa.txt:
  • UIProcess/API/C/WKNotification.cpp:

(WKNotificationGetIsPersistent):

  • UIProcess/API/C/WKNotification.h:
  • UIProcess/API/C/mac/WKNotificationPrivateMac.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.
  • UIProcess/API/C/mac/WKNotificationPrivateMac.mm: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownloadInternal.h.

(WKNotificationCopyDictionaryRepresentation):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _processPersistentNotificationClick:completionHandler:]):
(-[WKWebsiteDataStore _processPersistentNotificationClose:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKDownload.mm:
  • UIProcess/API/Cocoa/_WKDownloadInternal.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processNotificationEvent):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Notifications/WebNotification.cpp:
  • UIProcess/Notifications/WebNotification.h:
  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Teach WKTR to use the new SPI by keeping a set of notifications that are persistent.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::showWebNotification):
(WTR::WebNotificationProvider::closeWebNotification):
(WTR::WebNotificationProvider::reset):

  • WebKitTestRunner/WebNotificationProvider.h:
  • WebKitTestRunner/cocoa/WebNotificationProviderCocoa.mm:

(WTR::WebNotificationProvider::simulateWebNotificationClickForServiceWorkerNotifications):

2:47 PM Changeset in webkit [293295] by Justin Michaud
  • 2 edits in trunk/Source/WebCore

Fix build error caused by LTO + Unified Sources
https://bugs.webkit.org/show_bug.cgi?id=239679

Reviewed by Alex Christensen.

This hopefully fixes the following build error:
Undefined symbols for architecture x86_64:

"JSC::GenericTypedArrayView<JSC::Uint8ClampedAdaptor>::tryCreateUninitialized(unsigned long)", referenced from:

WebCore::FEGaussianBlurSoftwareApplier::apply(WebCore::Filter const&, WTF::Vector<WTF::Ref<WebCore::FilterImage, WTF::RawPtrTraits<WebCore::FilterImage> >, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, WebCore::FilterImage&) const in lto.o

ld: symbol(s) not found for architecture x86_64

  • platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:
2:13 PM Changeset in webkit [293294] by Elliott Williams
  • 3 edits in trunk/Tools

[buildbot] Increase the EWS compile timeout to account for delayed output from clang/XCBuild
https://bugs.webkit.org/show_bug.cgi?id=239455

Reviewed by Ryan Haddad.

Same as https://commits.webkit.org/249737@main, needed to work around
delayed output bugs in Xcode/XCBuild.

  • Tools/CISupport/ews-build/steps.py:

(CompileWebKit.init):

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/249919@main

1:25 PM Changeset in webkit [293293] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[FFC][Integration] Construct and update the layout tree for the flex items
https://bugs.webkit.org/show_bug.cgi?id=239684

Reviewed by Antti Koivisto.

This patch implements the usual flow of preparing a subtree for integration layout.

  1. Take the direct children of a RenderFlexibleBox (flex items) and construct Layout::ContainerBox objects.
  2. Run layout on the direct children (RenderBlocks) first and update the associated Layout::ContainerBoxes' geometries.
  3. Call LayoutIntegration::FlexLayout::layout (not yet implemented) to run flex layout on the flex items.
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTreeForFlexContent):

  • layout/integration/LayoutIntegrationBoxTree.h:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):
(WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

  • rendering/RenderFlexibleBox.h:
10:36 AM Changeset in webkit [293292] by Chris Dumez
  • 123 edits in trunk/Source

Start preparing the code base for making the AtomString(const String&) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=239658

Reviewed by Darin Adler.

Start preparing the code base for making the AtomString(const String&) constructor explicit.
This helps us find cases where we atomize unnecessarily or not early enough, thus causing
unnecessary String allocations.

  • Source/JavaScriptCore/runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToAtomString const):

  • Source/WebKit/WebProcess/Plugins/Plugin.h:
  • Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createPlugin):

  • Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • Source/WebKitLegacy/mac/DOM/DOMCustomXPathNSResolver.h:
  • Source/WebKitLegacy/mac/DOM/DOMCustomXPathNSResolver.mm:

(DOMCustomXPathNSResolver::lookupNamespaceURI):

  • Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm:

(parameterValue):
(WebFrameLoaderClient::createPlugin):

  • Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::createPlugin):

  • Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h:
  • Source/WTF/wtf/persistence/PersistentCoders.cpp:

(WTF::Persistence::Coder<AtomString>::decode):

  • Source/WTF/wtf/text/StringBuilder.h:

(WTF::StringBuilder::toAtomString const):

  • Source/WTF/wtf/text/StringConcatenate.h:

(WTF::tryMakeAtomStringFromAdapters):

  • Source/WTF/wtf/text/StringView.cpp:

(WTF::convertASCIILowercaseAtom):

  • Source/WebCore/Modules/gamepad/GamepadEvent.idl:
  • Source/WebCore/Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::requestImageResource):

  • Source/WebCore/Modules/plugins/PluginReplacement.h:

(WebCore::ReplacementPlugin::create const):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::create):
(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::youTubeURL):
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.h:
  • Source/WebCore/Modules/websockets/CloseEvent.idl:
  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleLiveRegionCreated):

  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsLiveRegion const):
(WebCore::AccessibilityObject::tagName const):

  • Source/WebCore/accessibility/AccessibilityObject.h:
  • Source/WebCore/accessibility/AccessibilityObjectInterface.h:
  • Source/WebCore/accessibility/AccessibilityRole.idl:
  • Source/WebCore/accessibility/AriaAttributes.idl:
  • Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeProperties):

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • Source/WebCore/animation/KeyframeEffect.cpp:

(WebCore::IDLAttributeNameToAnimationPropertyName):
(WebCore::KeyframeEffect::copyPropertiesFromSource):
(WebCore::KeyframeEffect::updateBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSTransitionBlendingKeyframes):

  • Source/WebCore/animation/KeyframeEffect.h:
  • Source/WebCore/animation/WebAnimation.cpp:

(WebCore::WebAnimation::commitStyles):

  • Source/WebCore/bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::setAttributeChangedCallback):

  • Source/WebCore/bindings/js/JSCustomElementInterface.h:
  • Source/WebCore/bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • Source/WebCore/bindings/js/JSExtendableMessageEventCustom.cpp:

(WebCore::constructJSExtendableMessageEvent):

  • Source/WebCore/css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

  • Source/WebCore/dom/Attr.cpp:

(WebCore::Attr::setNodeValue):

  • Source/WebCore/dom/ClipboardEvent.idl:
  • Source/WebCore/dom/CompositionEvent.idl:
  • Source/WebCore/dom/CustomElementRegistry.idl:
  • Source/WebCore/dom/CustomEvent.idl:
  • Source/WebCore/dom/Document+HTML.idl:
  • Source/WebCore/dom/DragEvent.idl:
  • Source/WebCore/dom/Element.idl:
  • Source/WebCore/dom/ErrorEvent.idl:
  • Source/WebCore/domjit/DOMJITIDLConvert.h:

(WebCore::DOMJIT::DirectConverter<IDLAtomStringAdaptor<IDLDOMString>>::directConvert):
(WebCore::DOMJIT::DirectConverter<IDLRequiresExistingAtomStringAdaptor<IDLDOMString>>::directConvert):

  • Source/WebCore/editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::createElementForImageOverlay):

  • Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentForImageAttachment):

  • Source/WebCore/html/HTMLAnchorElement.h:
  • Source/WebCore/html/HTMLAnchorElement.idl:
  • Source/WebCore/html/HTMLAreaElement.idl:
  • Source/WebCore/html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::parametersForPlugin):
(WebCore::HTMLEmbedElement::updateWidget):

  • Source/WebCore/html/HTMLEmbedElement.h:
  • Source/WebCore/html/HTMLObjectElement.cpp:

(WebCore::mapDataParamToSrc):
(WebCore::HTMLObjectElement::parametersForPlugin):
(WebCore::HTMLObjectElement::updateWidget):

  • Source/WebCore/html/HTMLObjectElement.h:
  • Source/WebCore/html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::name const):
(WebCore::HTMLParamElement::value const):

  • Source/WebCore/html/HTMLParamElement.h:
  • Source/WebCore/html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::requestObject):

  • Source/WebCore/html/HTMLPlugInElement.h:
  • Source/WebCore/html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::requestObject):

  • Source/WebCore/html/HTMLPlugInImageElement.h:
  • Source/WebCore/html/track/TextTrack.h:

(WebCore::TextTrack::inBandMetadataTrackDispatchType const):

  • Source/WebCore/loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::createPlugin):

  • Source/WebCore/loader/EmptyFrameLoaderClient.h:
  • Source/WebCore/loader/FrameLoaderClient.h:
  • Source/WebCore/loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::requestPlugin):
(WebCore::FrameLoader::SubframeLoader::requestObject):
(WebCore::FrameLoader::SubframeLoader::loadPlugin):

  • Source/WebCore/loader/SubframeLoader.h:
  • Source/WebCore/platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::language const):

  • Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::supportsConfiguration const):

  • Source/WebCore/platform/graphics/avfoundation/objc/InbandChapterTrackPrivateAVFObjC.h:
  • Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::rendererWasAutomaticallyFlushed):

  • Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::settings):
(WebCore::AVVideoCaptureSource::capabilities):

  • Source/WebCore/platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::decode):

  • Source/WebCore/platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::stripLeadingAndTrailingDoubleQuote):
(WebCore::ResourceResponse::platformLazyInit):

  • Source/WebCore/platform/text/PlatformLocale.h:

(WebCore::Locale::createDefault):

  • Source/WebCore/plugins/DOMMimeTypeArray.idl:
  • Source/WebCore/plugins/DOMPlugin.idl:
  • Source/WebCore/plugins/DOMPluginArray.idl:
  • Source/WebCore/rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):

  • Source/WebCore/style/PropertyCascade.h:

(WebCore::Style::PropertyCascade::hasCustomProperty const):
(WebCore::Style::PropertyCascade::customProperty const):

  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertFontPalette):
(WebCore::Style::BuilderConverter::convertContainerName):

  • Source/WebCore/svg/SVGFEBlendElement.h:
  • Source/WebCore/svg/SVGFEColorMatrixElement.h:
  • Source/WebCore/svg/SVGFEComponentTransferElement.h:
  • Source/WebCore/svg/SVGFECompositeElement.h:
  • Source/WebCore/svg/SVGFEConvolveMatrixElement.h:
  • Source/WebCore/svg/SVGFEDiffuseLightingElement.h:
  • Source/WebCore/svg/SVGFEDisplacementMapElement.h:
  • Source/WebCore/svg/SVGFEDropShadowElement.h:
  • Source/WebCore/svg/SVGFEGaussianBlurElement.h:
  • Source/WebCore/svg/SVGFEMorphologyElement.h:
  • Source/WebCore/svg/SVGFEOffsetElement.h:
  • Source/WebCore/svg/SVGFESpecularLightingElement.h:
  • Source/WebCore/svg/SVGFETileElement.h:
  • Source/WebCore/svg/SVGScriptElement.h:
  • Source/WebCore/svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::buildFilterExpression):

  • Source/WebCore/xml/CustomXPathNSResolver.cpp:

(WebCore::CustomXPathNSResolver::lookupNamespaceURI):

  • Source/WebCore/xml/CustomXPathNSResolver.h:
  • Source/WebCore/xml/CustomXPathNSResolver.idl:
  • Source/WebCore/xml/NativeXPathNSResolver.cpp:

(WebCore::NativeXPathNSResolver::lookupNamespaceURI):

  • Source/WebCore/xml/NativeXPathNSResolver.h:
  • Source/WebCore/xml/XPathGrammar.cpp:
  • Source/WebCore/xml/XPathNSResolver.h:
  • Source/WebCore/xml/XPathNSResolver.idl:
  • Source/WebCore/xml/XPathParser.cpp:

(WebCore::XPath::Parser::expandQualifiedName):

  • Source/WebCore/xml/XPathParser.h:
  • Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):

Canonical link: https://commits.webkit.org/249917@main

9:30 AM Changeset in webkit [293291] by Andres Gonzalez
  • 15 edits in trunk

AX ITM: Table row objects should return a non-null unignored parent even when a table object is not found in its ancestry.
https://bugs.webkit.org/show_bug.cgi?id=239606
<rdar://problem/92094205>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-expanded-supported-roles.html.
In addition, fixed test accessibility/mac/heading-clickpoint.html.

AccessibilityARIAGridRow::parentObjectUnignored was returning nullptr
if there was no table ancestor. This caused problems in isolated tree
mode where only the root object should have a null parent. With this
patch this method will return the table ancestor if one exists, its
parent in the AX tree otherwise.
Changed all classes in the AXObject hierarchy to return an AXObject for
the parentObjectUnignored method instead of an AXCoreObject.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedObjectForPage):
Removed unnecessary downcast.

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::parentObjectUnignored const):
(WebCore::AccessibilityARIAGridRow::parentTable const):
Rewrote this method using Accessibility::findAncestor.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::parentObjectUnignored const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::parentObjectUnignored const):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::parentObjectUnignored const):

  • accessibility/AccessibilityTableCell.h:

LayoutTests:

  • accessibility/aria-expanded-supported-roles.html:
  • accessibility/mac/heading-clickpoint-expected.txt:
  • accessibility/mac/heading-clickpoint.html:
  • platform/mac/accessibility/aria-expanded-supported-roles-expected.txt:
8:09 AM Changeset in webkit [293290] by Devin Rousso
  • 4 edits in trunk/Source/WebCore

fix a few ObjC memory management issues after r291361
https://bugs.webkit.org/show_bug.cgi?id=239686
<rdar://problem/91008058>

Reviewed by Eric Carlson.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::mediaSelectionOptions):

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVMediaSelectionOption localizedDisplayName]): Added.
(-[WebAVMediaSelectionOption dealloc]): Deleted.

1:10 AM Changeset in webkit [293289] by commit-queue@webkit.org
  • 5 edits
    1 delete in trunk

[ATSPI] WTR: add implementation for AccessibilityUIElement::domIdentifier
https://bugs.webkit.org/show_bug.cgi?id=239598

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-04-23
Reviewed by Andres Gonzalez.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::domIdentifier const): Deleted.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):

  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:

(WTR::AccessibilityUIElement::domIdentifier const):

LayoutTests:

  • platform/glib/accessibility/table-add-remove-row-expected.txt: Removed.

Apr 22, 2022:

11:44 PM Changeset in webkit [293288] by cathiechen
  • 8 edits
    4 adds in trunk

The layout is not updated when style.contain is changed from "size"/"inline-size" to empty string
https://bugs.webkit.org/show_bug.cgi?id=239489

Reviewed by Rob Buis.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/contain-inline-size-removed-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-inline-size-removed.html: Added.
  • web-platform-tests/css/css-contain/contain-size-removed-expected.html: Added.
  • web-platform-tests/css/css-contain/contain-size-removed.html: Added.
  • web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-004-expected.txt:
  • web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-005-expected.txt:

Source/WebCore:

Unlike "layout", "paint" and "style" containment, being a "size" and "inline-size" containment or not affects the layout size of the element.
So it should require layout when a normal element becomes a "size"/"inline-size" containment, vice versa.

Tests: imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-removed.html

imported/w3c/web-platform-tests/css/css-contain/contain-size-removed.html

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::effectiveContainment const): Deleted. Moved to StyleRareNonInheritedData.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::effectiveContainment const):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::effectiveContainment const):

  • rendering/style/StyleRareNonInheritedData.h:
11:27 PM Changeset in webkit [293287] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Should never be reached failure in WebCore::RenderElement::visibleInViewportStateChanged
https://bugs.webkit.org/show_bug.cgi?id=191824

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-22
Reviewed by Eric Carlson.

Source/WebCore:

Provide an empty visibleInViewportStateChanged implementation
for RenderMedia to prevent hitting the ASSERT.

Test: media/audio-viewport-state-change-crash.html

  • rendering/RenderMedia.h:

LayoutTests:

  • media/audio-viewport-state-change-crash-expected.txt: Added.
  • media/audio-viewport-state-change-crash.html: Added.
9:40 PM Changeset in webkit [293286] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Crash under AsyncScrollingCoordinator::scrollingThreadAddedPendingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=239683
<rdar://92198272>

Reviewed by Alan Bujtas.

Crash data suggest that m_page can be null in
AsyncScrollingCoordinator::scheduleRenderingUpdate(), which does seem possible because
scheduleRenderingUpdate() is a dispatch from the scrolling thread, and
ScrollingCoordinator::pageDestroyed() may have run before it runs.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scheduleRenderingUpdate):

9:21 PM Changeset in webkit [293285] by Chris Dumez
  • 88 edits
    2 copies in trunk

Move global AtomStrings to a common header to promote reuse
https://bugs.webkit.org/show_bug.cgi?id=239585

Reviewed by Geoff Garen and Darin Adler.

Source/WebCore:

  • Headers.cmake:
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::getType):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::contentHint const):
(WebCore::MediaStreamTrack::setContentHint):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEffect.cpp:

(WebCore::AnimationEffect::getTiming const):
(WebCore::AnimationEffect::updateTiming):

  • animation/EffectTiming.h:
  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::isValidCSSSelector):

  • css/CSSStyleSheet.h:
  • css/FontFace.cpp:

(WebCore::FontFace::display const):

  • css/MediaFeatureNames.cpp:

(WebCore::MediaFeatureNames::init):

  • dom/DataTransfer.cpp:

(WebCore::normalizeType):
(WebCore::DataTransfer::setDataFromItemList):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::dropEffect const):

  • dom/Document.cpp:

(WebCore::Document::designMode const):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::isValidCSSContentType):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • dom/mac/ImageControlsMac.cpp:
  • editing/FontShadow.cpp:

(WebCore::serializationForCSS):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):

  • editing/cocoa/DataDetection.mm:
  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::propertyValueForNode):
(HTMLConverter::computedAttributesForElement):
(HTMLConverter::_enterElement):
(HTMLConverter::_processElement):

  • editing/markup.cpp:

(WebCore::createFragmentForTransformToFragment):

  • html/Autocapitalize.cpp:

(WebCore::stringForAutocapitalizeType):

  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::saveFormControlState const):
(WebCore::BaseCheckableInputType::restoreFormControlState):
(WebCore::BaseCheckableInputType::fallbackValue const):

  • html/EnterKeyHint.cpp:

(WebCore::attributeValueForEnterKeyHint):

  • html/HTMLAudioElement.cpp:

(WebCore::HTMLAudioElement::createForLegacyFactoryFunction):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::formControlType const):

  • html/HTMLElement.cpp:

(WebCore::toValidDirValue):
(WebCore::HTMLElement::contentEditable const):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::setAutocorrect):
(WebCore::plaintextOnlyName): Deleted.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::autocomplete const):

  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::loadingForBindings const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::decoding const):
(WebCore::HTMLImageElement::loadingForBindings const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::preload const):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::directionString):

  • html/InputMode.cpp:

(WebCore::InputModeNames::none):
(WebCore::InputModeNames::text):
(WebCore::InputModeNames::tel):
(WebCore::InputModeNames::url):
(WebCore::InputModeNames::email):
(WebCore::InputModeNames::search):

  • html/InputTypeNames.cpp:

(WebCore::InputTypeNames::email):
(WebCore::InputTypeNames::reset):
(WebCore::InputTypeNames::search):
(WebCore::InputTypeNames::submit):
(WebCore::InputTypeNames::telephone):
(WebCore::InputTypeNames::text):
(WebCore::InputTypeNames::url):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerTextElement::updateInnerTextElementEditabilityImpl):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::isValidKind const):
(WebCore::AudioTrack::updateKindFromPrivate):
(WebCore::AudioTrack::alternativeKeyword): Deleted.
(WebCore::AudioTrack::mainKeyword): Deleted.
(WebCore::AudioTrack::commentaryKeyword): Deleted.

  • html/track/AudioTrack.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::isValidKindKeyword):
(WebCore::TextTrack::kindKeyword const):
(WebCore::TextTrack::subtitlesKeyword): Deleted.
(WebCore::captionsKeyword): Deleted.

  • html/track/TextTrack.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCue::positionAlign const):
(WebCore::VTTCue::setPositionAlign):
(WebCore::VTTCue::toJSON const):
(WebCore::autoKeyword): Deleted.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::isValidKind const):
(WebCore::VideoTrack::updateKindFromPrivate):
(WebCore::VideoTrack::alternativeKeyword): Deleted.
(WebCore::VideoTrack::captionsKeyword): Deleted.
(WebCore::VideoTrack::mainKeyword): Deleted.
(WebCore::VideoTrack::subtitlesKeyword): Deleted.
(WebCore::VideoTrack::commentaryKeyword): Deleted.

  • html/track/VideoTrack.h:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::WebVTTParser):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::Attributes::parseEncodingType):

  • loader/NavigationScheduler.cpp:
  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::textFromUTF8):

  • loader/archive/mhtml/MHTMLParser.cpp:

(WebCore::MHTMLParser::addResourceToArchive):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):

  • mathml/MathMLPresentationElement.cpp:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::addAudioTrackKindDisplayNameIfNeeded):

  • page/EventSource.cpp:

(WebCore::EventSource::EventSource):

  • page/Page.cpp:

(WebCore::Page::userStyleSheet const):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeCSSStyleSheet):

  • page/PrintContext.cpp:

(WebCore::PrintContext::pageProperty):

  • page/ProcessWarming.cpp:

(WebCore::ProcessWarming::initializeNames):

  • platform/CommonAtomStrings.cpp: Added.

(WebCore::initializeCommonAtomStrings):

  • platform/CommonAtomStrings.h: Added.

(WebCore::alternativeAtom):
(WebCore::autoAtom):
(WebCore::captionsAtom):
(WebCore::commentaryAtom):
(WebCore::cssContentTypeAtom):
(WebCore::eagerAtom):
(WebCore::emailAtom):
(WebCore::falseAtom):
(WebCore::lazyAtom):
(WebCore::mainAtom):
(WebCore::noneAtom):
(WebCore::offAtom):
(WebCore::onAtom):
(WebCore::plaintextOnlyAtom):
(WebCore::resetAtom):
(WebCore::searchAtom):
(WebCore::submitAtom):
(WebCore::subtitlesAtom):
(WebCore::telAtom):
(WebCore::textAtom):
(WebCore::textPlainContentTypeAtom):
(WebCore::trueAtom):
(WebCore::urlAtom):

  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::isSafeTypeForDOMToReadAndWrite):

  • platform/StaticPasteboard.cpp:

(WebCore::StaticPasteboard::writePlainText):

  • platform/animation/Animation.cpp:

(WebCore::Animation::initialName const):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):
(WebCore::textPlain): Deleted.

  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread):

  • platform/network/HTTPParsers.cpp:
  • platform/network/ios/WebCoreURLResponseIOS.h:

(WebCore::shouldUseQuickLookForMIMEType):

  • style/Styleable.cpp:

(WebCore::Styleable::animationListContainsNewlyValidAnimation const):
(WebCore::Styleable::updateCSSAnimations const):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::rotateMode const):

  • svg/SVGAnimationElement.cpp:

(WebCore::sumAtom):
(WebCore::SVGAnimationElement::isAdditive const):
(WebCore::SVGAnimationElement::isAccumulated const):

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

(WebCore::SVGPropertyTraits<EdgeModeType>::toString):
(WebCore::SVGPropertyTraits<EdgeModeType>::fromString):

  • svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::fromString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::toString):
(WebCore::SVGPropertyTraits<SVGMarkerOrientType>::autoString): Deleted.

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::type const):

  • svg/SVGTextPathElement.h:

(WebCore::SVGPropertyTraits<SVGTextPathSpacingType>::toString):
(WebCore::SVGPropertyTraits<SVGTextPathSpacingType>::fromString):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::indefiniteAtom):
(WebCore::SVGSMILElement::parseClockValue):
(WebCore::SVGSMILElement::repeatCount const):

  • svg/properties/SVGPropertyTraits.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::m_notificationClient):

  • xml/XPathValue.cpp:

Source/WebKit:

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::ContentRuleListStore::compileContentRuleList):

Source/WebKitLegacy/win:

  • WebKitGraphics.cpp:

(makeFont):

Source/WTF:

  • wtf/text/AtomString.cpp:

(WTF::AtomString::init):

  • wtf/text/AtomString.h:

(WTF::xmlnsAtom):
(WTF::trueAtom): Deleted.
(WTF::falseAtom): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::makeBackend):

8:28 PM Changeset in webkit [293284] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.1-branch/Source/WebCore/page/Page.cpp

Unreviewed build fix. rdar://80544133

./page/Page.cpp:389:9: error: incomplete type 'WebCore::FontCache' named in nested name specifier

8:27 PM Changeset in webkit [293283] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.0-branch/Source/WebCore/page/Page.cpp

Unreviewed build fix. rdar://80544133

./page/Page.cpp:389:9: error: incomplete type 'WebCore::FontCache' named in nested name specifier

7:58 PM Changeset in webkit [293282] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source

Apply patch. rdar://problem/90968687

7:54 PM Changeset in webkit [293281] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.1-branch

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293269.

7:42 PM Changeset in webkit [293280] by Russell Epstein
  • 9 edits
    2 copies in branches/safari-614.1.10-branch/Source

Cherry-pick r293106. rdar://problem/91740931

[WebGPU] WebKit and WebKitLegacy shouldn't need to know about WebGPU.framework
https://bugs.webkit.org/show_bug.cgi?id=239528
<rdar://problem/91740931>

Unreviewed build fix.

Source/WebCore/PAL:

WebKit and WebKitLegacy create a WebGPU implementation from pal/graphics/WebGPU/Impl. This implementation
knows about WebGPU.framework. However, the create() function doesn't need to know about WebGPU.framework,
and its header doesn't need to include <WebGPU/WebGPU.h>. Only the .cpp files need to know about
<WebGPU/WebGPU.h>, and those .cpp files are invisible from WebKit and WebKitLegacy's points of view. So,
this patch splits the PAL header into:

  1. A header which includes a creation function, but doesn't know about WebGPU.framework, and
  2. A header which knows about WebGPU.framework, but doesn't hold the creation function used by WebKit or

WebKitLegacy.

This fixes one of Apple's internal builds.

  • PAL.xcodeproj/project.pbxproj:
  • pal/graphics/WebGPU/Impl/WebGPUCreateImpl.cpp: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.cpp. (PAL::WebGPU::create):
  • pal/graphics/WebGPU/Impl/WebGPUCreateImpl.h: Copied from Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUImpl.h.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: (PAL::WebGPU::GPUImpl::create): Deleted.
  • pal/graphics/WebGPU/Impl/WebGPUImpl.h:

Source/WebKit:

  • GPUProcess/graphics/WebGPU/RemoteGPU.cpp: (WebKit::RemoteGPU::workQueueInitialize):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::createGPUForWebGPU const):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.mm: (WebChromeClient::createGPUForWebGPU const):

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

7:23 PM Changeset in webkit [293279] by Diego Pino Garcia
  • 6 edits in trunk/Source

Unreviewed, non-unified build fixes after r293203

Source/JavaScriptCore:

  • jit/ScratchRegisterAllocator.h:

Source/WebCore:

  • page/PageConfiguration.h:

Source/WTF:

  • wtf/RobinHoodHashTable.h:
7:15 PM Changeset in webkit [293278] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Reduce sizeof(CSSNumericType)
https://bugs.webkit.org/show_bug.cgi?id=239680

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-22
Reviewed by Yusuke Suzuki.

  • bindings/IDLTypes.h:

(WebCore::IDLType::nullValue):
(WebCore::IDLType::isNullType):
(WebCore::IDLType::extractValueFromNullable):

  • css/typedom/numeric/CSSMathProduct.cpp:

(WebCore::multiplyTypes):

  • css/typedom/numeric/CSSNumericType.h:

(WebCore::CSSNumericType::valueForType):
(WebCore::CSSNumericType::valueForType const):

7:05 PM Changeset in webkit [293277] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.1-branch/Source/WebCore/page/SecurityOrigin.h

Unreviewed build fix. rdar://90511155

WebCore/page/SecurityOrigin.h:309:13: note: candidate function not viable: requires 2 arguments, but 4 were provided inline void add(Hasher& hasher, const SecurityOrigin& origin)

7:02 PM Changeset in webkit [293276] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.0-branch/Source/WebCore/page/SecurityOrigin.h

Unreviewed build fix. rdar://90511155

WebCore/page/SecurityOrigin.h:309:13: note: candidate function not viable: requires 2 arguments, but 4 were provided inline void add(Hasher& hasher, const SecurityOrigin& origin)

5:44 PM Changeset in webkit [293275] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.0-branch

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293258.

5:44 PM Changeset in webkit [293274] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.0-branch/Source/WebKit

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293259.

5:37 PM Changeset in webkit [293273] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.1-branch/Source/WebKit

Revert "Apply patch. rdar://problem/88904160"

This reverts commit r293270.

5:37 PM Changeset in webkit [293272] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source

Revert "Apply patch. rdar://problem/90968687"

This reverts commit r293271.

5:06 PM Changeset in webkit [293271] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source

Apply patch. rdar://problem/90968687

5:04 PM Changeset in webkit [293270] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.1-branch/Source/WebKit

Apply patch. rdar://problem/88904160

5:04 PM Changeset in webkit [293269] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/88904160

4:59 PM Changeset in webkit [293268] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.1-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

4:59 PM Changeset in webkit [293267] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.2.7.1-branch

Cherry-pick r292072. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_attachmentElementClient):
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.

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

4:39 PM Changeset in webkit [293266] by commit-queue@webkit.org
  • 37 edits
    5 copies
    24 adds in trunk

Revert "[WebAuthn] Clean up WebAuthenticationModern and WebAuthnProcess"

This reverts commit 6ced3b519689536e6e4d36b9e46e78be9e6f4706.

Unreviewed test gardening.

Canonical link: https://commits.webkit.org/249907@main

4:21 PM Changeset in webkit [293265] by dbezhetskov
  • 4 edits in trunk/Source/JavaScriptCore

[Refactoring] Reduce number of const and reinterpret casts
https://bugs.webkit.org/show_bug.cgi?id=239648

Reviewed by Yusuke Suzuki.

The statement
"reinterpret_cast<TypeDefinition*>(const_cast<char*>(functionType.m_payload)

  • sizeof(TypeDefinition))"

is dangerous and it produces warning on some platfroms.
There is way to avoid it and this patch is doint that.

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::doWasmCallIndirect):
(JSC::LLInt::doWasmCallRef):

  • wasm/WasmTypeDefinition.h:

(JSC::Wasm::FunctionSignature::operator== const):

  • wasm/WasmTypeDefinitionInlines.h:
4:19 PM Changeset in webkit [293264] by Patrick Angle
  • 9 edits in trunk

Web Inspector: Regression(r287684) Resources from the memory cache show empty content in Network, Sources, and Search tabs
https://bugs.webkit.org/show_bug.cgi?id=239667

Reviewed by Devin Rousso.

Source/WebCore:

Updated tests:

  • http/tests/inspector/network/resource-response-source-disk-cache.html
  • http/tests/inspector/network/resource-response-source-memory-cache.html

r287684 introduced a subtle bug when calling InspectorInstrumentation::didReceiveData. We rely
on there being a difference between real, but empty, data buffer and not having a data buffer,
but after r287684 an empty SharedBuffer would be passed in the later case. Instead, we should
continue to pass nullptr if there is no buffer so that InspectorNetworkAgent::didReceiveData
can distiguish between the two.

The bug is the result of having a non-nullptr data in InspectorNetworkAgent::didReceiveData,
which causes us to call maybeAddResourceData, which means by the time
InspectorNetworkAgent::getResponseBody is called, the ResourceData for the request will have
an empty, not non-existant, content(), which means we will return the empty content instead,
since we believe the response had actual content.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didReceiveDataImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didReceiveData):

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):

LayoutTests:

Add test steps to ensure that the resource has content, and that the base64Encoded value matches our
expectations. While only the memory cache was affected by this regression, add the test steps to both
the memory and disk caches to defend this functionality.

  • http/tests/inspector/network/resource-response-source-memory-cache-expected.txt:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-response-source-disk-cache-expected.txt:
  • http/tests/inspector/network/resource-response-source-disk-cache.html:
4:06 PM Changeset in webkit [293263] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.0-branch

Cherry-pick r292274. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_contentSecurityPolicyModeForExtension): (WebCore::Page::firstTimeInitialization):
  • page/Page.h:
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

Tools:

Make TestRunner::dumpResourceLoadStatistics() clear any currently-recorded statistics.
This avoids the problem where spurious layouts during the time when the page has been created but
before the test has begun record irrelevant statistics.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp: (WTR::InjectedBundle::beginTesting): (WTR::InjectedBundle::clearResourceLoadStatistics):
  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::dumpResourceLoadStatistics):

LayoutTests:

  • TestExpectations:
  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

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

4:06 PM Changeset in webkit [293262] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-613.2.7.0-branch

Cherry-pick r292072. rdar://problem/80544133

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp: (WebCore::m_attachmentElementClient):
  • platform/graphics/FontCache.cpp: (WebCore::Function<void): (WebCore::FontCache::registerFontCacheInvalidationCallback): (WebCore::FontCache::invalidateAllFontCaches):
  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.

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

4:02 PM Changeset in webkit [293261] by Russell Epstein
  • 20 edits
    4 adds in branches/safari-613.2.7.1-branch

Cherry-pick r291589. rdar://problem/90511155

LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

Import web-platform-tests test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:

Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/BroadcastChannel.cpp: (WebCore::shouldPartitionOrigin): (WebCore::BroadcastChannel::MainThreadBridge::registerChannel): (WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel): (WebCore::BroadcastChannel::MainThreadBridge::postMessage):
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:
  • page/PartitionedSecurityOrigin.h: Added. (WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin): (WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const): (WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const): (WebCore::operator==): (WTF::add): (WTF::PartitionedSecurityOriginHash::hash): (WTF::PartitionedSecurityOriginHash::equal): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):

Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp: (WebKit::toClientOrigin): (WebKit::WebBroadcastChannelRegistry::registerChannel): (WebKit::WebBroadcastChannelRegistry::unregisterChannel): (WebKit::WebBroadcastChannelRegistry::postMessage): (WebKit::WebBroadcastChannelRegistry::postMessageLocally): (WebKit::WebBroadcastChannelRegistry::postMessageToRemote): (WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121

Reviewed by Yusuke Suzuki.

  • PlatformMac.cmake:

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

3:52 PM Changeset in webkit [293260] by Simon Fraser
  • 7 edits
    2 adds in trunk

Focusing scroll container before scrolling breaks smooth scrolling
https://bugs.webkit.org/show_bug.cgi?id=239605

Reviewed by Wenson Hsieh.

Source/WebCore:

If script calls focus() and then scrollTo({ behavior: smooth }) in the same runloop, the
scrollToFocusedElementInternal() that happens on a zero-delay timer in FrameView will stop
the animated scroll.

Fix by having programmatic scrolls on Element and DOMWindow cancel any pending focus-related
scroll.

Test: fast/scrolling/programmatic-smooth-scroll-after-focus.html

  • dom/Element.cpp:

(WebCore::Element::scrollTo):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::scrollTo const):

  • page/FrameView.cpp:

(WebCore::FrameView::maintainScrollPositionAtAnchor):
(WebCore::FrameView::setScrollPosition):
(WebCore::FrameView::cancelScheduledScrollToFocusedElement):
(WebCore::FrameView::scrollToAnchor):
(WebCore::FrameView::setWasScrolledByUser):

  • page/FrameView.h:

LayoutTests:

  • fast/scrolling/programmatic-smooth-scroll-after-focus-expected.txt: Added.
  • fast/scrolling/programmatic-smooth-scroll-after-focus.html: Added.
  • platform/win/TestExpectations:
3:45 PM Changeset in webkit [293259] by Russell Epstein
  • 5 edits in branches/safari-613.2.7.0-branch/Source/WebKit

Apply patch. rdar://problem/88904160

3:45 PM Changeset in webkit [293258] by Russell Epstein
  • 18 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/88904160

3:05 PM Changeset in webkit [293257] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613.2.7.0-branch

Cherry-pick r291724. rdar://problem/91975589

Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168

Reviewed by Chris Fleizach.

Source/WebKit:

Given this markup:

<iframe src="/path/to/paystub.pdf">

An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.

This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.

Test: accessibility/mac/iframe-pdf.html

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin):

LayoutTests:

  • accessibility/mac/iframe-pdf-expected.txt: Added.
  • accessibility/mac/iframe-pdf.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test as it always times out in WK1 (similar to accessibility/mac/basic-embed-pdf-accessibility.html)

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

2:56 PM Changeset in webkit [293256] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.0-branch/Source

Apply patch. rdar://problem/90968687

2:53 PM Changeset in webkit [293255] by Russell Epstein
  • 20 edits
    3 adds in branches/safari-613.2.7.0-branch

Cherry-pick r291589. rdar://problem/90511155

LayoutTests/imported/w3c:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

Import web-platform-tests test coverage.

  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin-expected.txt: Added.
  • web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html: Added.
  • web-platform-tests/webmessaging/broadcastchannel/w3c-import.log:

Source/WebCore:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

Test: imported/w3c/web-platform-tests/webmessaging/broadcastchannel/opaque-origin.html

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/BroadcastChannel.cpp: (WebCore::shouldPartitionOrigin): (WebCore::BroadcastChannel::MainThreadBridge::registerChannel): (WebCore::BroadcastChannel::MainThreadBridge::unregisterChannel): (WebCore::BroadcastChannel::MainThreadBridge::postMessage):
  • dom/BroadcastChannelRegistry.h:
  • loader/EmptyClients.cpp:
  • page/PartitionedSecurityOrigin.h: Added. (WebCore::PartitionedSecurityOrigin::PartitionedSecurityOrigin): (WebCore::PartitionedSecurityOrigin::isHashTableDeletedValue const): (WebCore::PartitionedSecurityOrigin::isHashTableEmptyValue const): (WebCore::operator==): (WTF::add): (WTF::PartitionedSecurityOriginHash::hash): (WTF::PartitionedSecurityOriginHash::equal): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::emptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::constructEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::isEmptyValue): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::peek): (WTF::HashTraits<WebCore::PartitionedSecurityOrigin>::take):

Source/WebKit:
BroadcastChannel instances in distinct opaque origins can communicate
https://bugs.webkit.org/show_bug.cgi?id=238090
<rdar://problem/90511155>

Reviewed by Alex Christensen.

The issue is that we would use a ClientOrigin to distinguish origins for BroadcastChannel,
which relies on SecurityOriginData internally. A unique/opaque SecurityOrigin becomes an empty
SecurityOriginData upon conversion. As a result, when comparing ClientOrigin objects from
unique SecurityOrigins, they would compare as equal.

To address the issue, I introduced a new PartitionedSecurityOrigin type which is similar
to ClientOrigin but stores SecurityOrigin objects internally, instead of SecurityOriginData
objects. PartitionedSecurityOrigin's operator==() is such that different SecurityOrigins
would not be equal but the same unique SecurityOrigin would be. I then used this new
PartitionedSecurityOrigin type as key in our HashMap on the WebProcess side instead of
ClientOrigin. This allows communication between several BroadcastChannels from the same
unique origin, while preventing communication between distinct opaque origins.

When the PartitionedSecurityOrigin contains an opaque security origin, we don't involve
the Network Process at all since the destination can only be in the same WebProcess.

  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.cpp: (WebKit::toClientOrigin): (WebKit::WebBroadcastChannelRegistry::registerChannel): (WebKit::WebBroadcastChannelRegistry::unregisterChannel): (WebKit::WebBroadcastChannelRegistry::postMessage): (WebKit::WebBroadcastChannelRegistry::postMessageLocally): (WebKit::WebBroadcastChannelRegistry::postMessageToRemote): (WebKit::WebBroadcastChannelRegistry::networkProcessCrashed):
  • WebProcess/WebCoreSupport/WebBroadcastChannelRegistry.h:

Source/WebKitLegacy:
Dust off Mac CMake build
https://bugs.webkit.org/show_bug.cgi?id=238121

Reviewed by Yusuke Suzuki.

  • PlatformMac.cmake:

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

2:24 PM Changeset in webkit [293254] by Matteo Flores
  • 2 edits
    1 copy in trunk/LayoutTests

REBASLINE: [ Monterey ] fast/text/khmer-lao-font.html is a constant text failure

https://bugs.webkit.org/show_bug.cgi?id=238917

Unreviewed test gardening.

  • platform/mac-bigsur/fast/text/khmer-lao-font-expected.txt: Copied from LayoutTests/platform/mac/fast/text/khmer-lao-font-expected.txt.
  • platform/mac/fast/text/khmer-lao-font-expected.txt:

Canonical link: https://commits.webkit.org/249903@main

2:08 PM Changeset in webkit [293253] by commit-queue@webkit.org
  • 2 edits in trunk

Add my github account name
https://bugs.webkit.org/show_bug.cgi?id=239671

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-22
Reviewed by Chris Dumez.

  • metadata/contributors.json:
1:58 PM Changeset in webkit [293252] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC]Throw consistent exceptions for memory.init and memory.copy
https://bugs.webkit.org/show_bug.cgi?id=239592

Patch by Geza Lore <Geza Lore> on 2022-04-22
Reviewed by Yusuke Suzuki.

For a trapping Wasm memory.init and memory.copy instruction, the LLInt
used to throw OutOfBoundsMemoryAccess, but BBQ/OMG used to throw
OutOfBoundsTableAccess.

Changed BBQ/OMG to throw OutOfBoundsMemoryAccess as well.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):

1:48 PM Changeset in webkit [293251] by Alan Bujtas
  • 5 edits
    3 adds in trunk/Source/WebCore

[LFC][Integration] Add blank LayoutIntegration::FlexLayout
https://bugs.webkit.org/show_bug.cgi?id=239663

Reviewed by Antti Koivisto.

This is in preparation for adding flex formatting context integration.

  • CMakeLists.txt:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/integration/flex/LayoutIntegrationFlexLayout.cpp: Added.

(WebCore::LayoutIntegration::FlexLayout::FlexLayout):
(WebCore::LayoutIntegration::FlexLayout::updateFormattingRootGeometryAndInvalidate):
(WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions):
(WebCore::LayoutIntegration::FlexLayout::updateStyle):
(WebCore::LayoutIntegration::FlexLayout::computeIntrinsicWidthConstraints):
(WebCore::LayoutIntegration::FlexLayout::layout):
(WebCore::LayoutIntegration::FlexLayout::paint):
(WebCore::LayoutIntegration::FlexLayout::hitTest):
(WebCore::LayoutIntegration::FlexLayout::collectOverflow):
(WebCore::LayoutIntegration::FlexLayout::contentLogicalHeight const):

  • layout/integration/flex/LayoutIntegrationFlexLayout.h: Added.
1:43 PM Changeset in webkit [293250] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch/Source/WebCore

Cherry-pick r292878. rdar://problem/90248865

ScriptDisallowedScope::isEventAllowedInMainThread assert failure when activating AudioSession
https://bugs.webkit.org/show_bug.cgi?id=239343

Reviewed by Eric Carlson.

As part of HTMLMediaElement::clearMediaPlayer we call PlatformMediaSession::canProduceAudioChanged
which can result in activating the AudioSession when the page is capturing audio.

This sends a synchronous IPC message to the GPU process. As part of IPC::Connection::waitForSyncReply,
we also end up dispatching enqueued messages, including a WebPage_EndPrinting message that
fires an event listener on the main thread.

This patch will instead queue the PlatformMediaSession::canProduceAudioChanged as a task to avoid
firing the event listener on the main thread, which results in assertion failure.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::clearMediaPlayer):

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

1:43 PM Changeset in webkit [293249] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.0-branch/Source/WebCore

Cherry-pick r292878. rdar://problem/90248865

ScriptDisallowedScope::isEventAllowedInMainThread assert failure when activating AudioSession
https://bugs.webkit.org/show_bug.cgi?id=239343

Reviewed by Eric Carlson.

As part of HTMLMediaElement::clearMediaPlayer we call PlatformMediaSession::canProduceAudioChanged
which can result in activating the AudioSession when the page is capturing audio.

This sends a synchronous IPC message to the GPU process. As part of IPC::Connection::waitForSyncReply,
we also end up dispatching enqueued messages, including a WebPage_EndPrinting message that
fires an event listener on the main thread.

This patch will instead queue the PlatformMediaSession::canProduceAudioChanged as a task to avoid
firing the event listener on the main thread, which results in assertion failure.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::clearMediaPlayer):

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

1:39 PM Changeset in webkit [293248] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/91446317

1:39 PM Changeset in webkit [293247] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.1-branch

Revert "Cherry-pick r291606. rdar://problem/91446317"

This reverts commit r293072.

1:39 PM Changeset in webkit [293246] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.1-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

Revert "Unreviewed build fix. rdar://91446317"

This reverts commit r293144.

1:35 PM Changeset in webkit [293245] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/91446317

1:35 PM Changeset in webkit [293244] by Russell Epstein
  • 6 edits in branches/safari-613.2.7.0-branch

Revert "Cherry-pick r291606. rdar://problem/91446317"

This reverts commit r293072.

1:35 PM Changeset in webkit [293243] by Russell Epstein
  • 1 edit in branches/safari-613.2.7.0-branch/Source/WebKit/UIProcess/WebPageProxy.cpp

Revert "Unreviewed build fix. rdar://91446317"

This reverts commit r293144.

1:18 PM Changeset in webkit [293242] by Chris Dumez
  • 2 edits in trunk

Unreviewed, add Geoff's github username to contributors.json so he can review patches

  • metadata/contributors.json:
1:14 PM Changeset in webkit [293241] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/91288849

1:14 PM Changeset in webkit [293240] by Russell Epstein
  • 10 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/91288849

1:08 PM Changeset in webkit [293239] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.1-branch

Apply patch. rdar://problem/91590827

1:08 PM Changeset in webkit [293238] by Russell Epstein
  • 2 edits in branches/safari-613.2.7.0-branch

Apply patch. rdar://problem/91590827

12:58 PM Changeset in webkit [293237] by Chris Dumez
  • 5 edits in trunk/Source

Modernize Text::replaceWholeText() https://bugs.webkit.org/show_bug.cgi?id=239637

Reviewed by Ryosuke Niwa.

Modernize Text::replaceWholeText():

  • Drop unnecessary return value.
  • Ref the Text node at call sites instead of using an internal protectedThis variable.
  • Use node instead of n for variable name.
  • Use modern template deduction for Ref / RefPtr.
  • Source/WebKitLegacy/mac/DOM/DOMText.mm:

(-[DOMText replaceWholeText:]):

  • Source/WebCore/dom/Text.cpp:

(WebCore::Text::replaceWholeText):

  • Source/WebCore/dom/Text.h:
  • Source/WebCore/html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::updateVisibleValue):

Canonical link: https://commits.webkit.org/249898@main

12:02 PM Changeset in webkit [293236] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-613.2.7.1-branch

Cherry-pick r291724. rdar://problem/91975589

Expose the AX tree of PDFs loaded via iframes on the Mac
https://bugs.webkit.org/show_bug.cgi?id=238168

Reviewed by Chris Fleizach.

Source/WebKit:

Given this markup:

<iframe src="/path/to/paystub.pdf">

An accessibility tree is built for paystub.pdf, but we don't expose it
to AX clients, making the PDF entirely inaccessible.

This happens because we were setting the AX parent to be the webpage
for full-frame PDF plugins (which an iframe with this markup is).
This behavior is correct only for main-frame (i.e. not iframe)
full-frame plugins, so this patch adds an extra condition to that logic.

Test: accessibility/mac/iframe-pdf.html

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::PDFPlugin):

LayoutTests:

  • accessibility/mac/iframe-pdf-expected.txt: Added.
  • accessibility/mac/iframe-pdf.html: Added.
  • platform/mac-wk1/TestExpectations: Skip new test as it always times out in WK1 (similar to accessibility/mac/basic-embed-pdf-accessibility.html)

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

11:46 AM Changeset in webkit [293235] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.1

11:46 AM Changeset in webkit [293234] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.0-branch/Source

Versioning.

WebKit-7613.2.7.0.1

11:25 AM Changeset in webkit [293233] by Alan Bujtas
  • 7 edits in trunk/Source

[LFC][Integration] Add FlexFormattingContextIntegrationEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=239654

Reviewed by Antti Koivisto.

Source/WebCore:

This is in preparation for supporting flex formatting context through integration.

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFlexLayout):

  • layout/integration/LayoutIntegrationCoverage.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutFlexItems):
(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

  • rendering/RenderFlexibleBox.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
11:02 AM Changeset in webkit [293232] by Brandon
  • 5 edits in trunk/Source/WebCore

Store StyleScope during CSSStyleSheet Creation
https://bugs.webkit.org/show_bug.cgi?id=239659

Reviewed by Antti Koivisto.

To ensure that we can always access the style scope, we shall ensure we store the style scope
at CSSStyleSheet creation time. It was possible before that a style sheet could become disconnected
and then a rule would later be mutated. This resulted in the unfortunate side effect of being unable to find
the style scope.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::CSSStyleSheet):
(WebCore::CSSStyleSheet::styleScope):

  • css/CSSStyleSheet.h:
  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectResolverScopes):

  • style/StyleScope.h:
10:46 AM Changeset in webkit [293231] by Aditya Keerthi
  • 12 edits in trunk

[iOS] Add find interaction API to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=239612
rdar://88442918

Reviewed by Alex Christensen.

Source/WebKit:

Promote the _findInteraction and _findInteractionEnabled SPI to
findInteraction and findInteractionEnabled API.

In order to make this change, new UIKit objects and protocols must be
adopted. Existing (deprecated) protocol conformance is kept around to
avoid breaking internal clients.

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView findInteractionEnabled]):
(-[WKWebView setFindInteractionEnabled:]):
(-[WKWebView findInteraction]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Declare conformance to three protocols: _UITextSearching, UITextSearching, UIFindInteractionDelegate.

_UITextSearching: Conformance is kept around to avoid breaking internal clients.
UITextSearching: Conformance is declared for clients to migrate off of _UITextSearching.
UIFindInteractionDelegate: Conformance is necessary to begin a UIFindSession.

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didCommitLoadForMainFrame]):

The "searchable object" does not need to be reset anymore, as UIKit
will do that in -[WKWebView findInteraction:sessionForView:] the next
time a find session begins.

(-[WKWebView _searchableObject]):
(-[WKWebView _setFindInteractionEnabled:]):
(-[WKWebView _findInteraction]):

It is safe to cast between the SPI and API version of this object. UIKit
has guaranteed compatibility.

(-[WKWebView offsetFromPosition:toPosition:inDocument:]):
(-[WKWebView compareFoundRange:toRange:inDocument:]):
(-[WKWebView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKWebView replaceFoundTextInRange:inDocument:withText:]):
(-[WKWebView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKWebView scrollRangeToVisible:inDocument:]):
(-[WKWebView findInteraction:sessionForView:]):
(-[WKWebView findInteraction:didBeginFindSession:]):

Custom content views do not need to be aware that a find session has
begun, as they do not draw an overlay.

(-[WKWebView findInteraction:didEndFindSession:]):

Custom content views do not need to be aware that a find session has
begun, as they do not draw an overlay.

  • UIProcess/ios/WKContentViewInteraction.h:

Declare the old _UITextSearching methods explicitly, as we need to
maintain support for internal clients.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKContentView replaceFoundTextInRange:inDocument:withText:]):
(-[WKContentView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKContentView scrollRangeToVisible:inDocument:]):
(-[WKContentView offsetFromPosition:toPosition:inDocument:]):
(-[WKContentView compareFoundRange:toRange:inDocument:]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView compareFoundRange:toRange:inDocument:]):
(-[WKPDFView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKPDFView decorateFoundTextRange:inDocument:usingStyle:]):

Tools:

Augment an existing API test to use the new API, in addition to the
existing SPI.

The find-and-replace test is updated to account for the fact that a
find interaction no longer exposes a searchableObject. Instead, use
test-only SPI on WKWebView to perform the replace.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(TEST):

10:28 AM Changeset in webkit [293230] by Wenson Hsieh
  • 9 edits in trunk

[iOS] -selectWordForReplacement should select dictation alternatives that span multiple words
https://bugs.webkit.org/show_bug.cgi?id=239622
rdar://91416535

Reviewed by Aditya Keerthi.

Source/WebKit:

Currently, -selectWordForReplacement (which is invoked by UIKit when the tapping on spelling corrections and
dictation alternatives to reveal the callout bar with text suggestions) handles multi-word dictation ranges by
only selecting one of the words (i.e., whichever word is closest to the tapped location). This makes it
impossible to handle dictation ranges that span multiple words, since only part of the range is replaced with
the chosen alternative.

To address this, instead of using the existing extendSelection method (which is still exercised when tapping
the "Select" action in the callout bar with a caret selection), we add extendSelectionForReplacement, which
extends the selection to include any dictation alternative range that encompasses the selection (and otherwise
falls back to selecting the current word).

Test: SelectionTests.SelectWordForReplacementWithDictationAlternative

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView selectWordForReplacement]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::extendSelectionForReplacement):

Add a new IPC message, WebPage::ExtendSelectionForReplacement, and use it to implement `-[WKContentView
selectWordForReplacement]`.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::extendSelectionForReplacement):

Add logic to select the enclosing dictation alternative marker range (if it exists), or the current word at the
start of the selection if there is no enclosing marker range. Note that we first grab a Vector of all the marker
ranges instead of creating them as we iterate through the list of RenderedDocumentMarker*, since creating
visible position ranges from each marker range triggers layout, and each RenderedDocumentMarker* is not
ref-counted, so it's possible that a reentrant call to update the document marker controller during layout could
destroy the next RenderedDocumentMarker* during iteration.

(WebKit::WebPage::extendSelection):
(WebKit::WebPage::setSelectedRangeDispatchingSyntheticMouseEventsIfNeeded):

Pull out logic for dispatching synthetic mouse events when selecting text into a separate helper method, which
is now called from both extendSelection and extendSelectionForReplacement.

Tools:

Add an API test to exercise the change.

  • TestWebKitAPI/Tests/ios/SelectionByWord.mm:

(TEST):

9:44 AM Changeset in webkit [293229] by Russell Epstein
  • 9 edits in branches/safari-614.1.10-branch/Source

Versioning.

WebKit-7614.1.10.6

9:36 AM Changeset in webkit [293228] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore/PAL

Adjust SPI headers to fix build with non-internal SDK
https://bugs.webkit.org/show_bug.cgi?id=239626

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-22
Reviewed by Chris Dumez.

  • pal/spi/cocoa/PassKitSPI.h:
  • pal/spi/mac/ScreenCaptureKitSPI.h:
9:33 AM Changeset in webkit [293227] by Alan Coon
  • 1 copy in branches/safari-613.2.7.3-branch

New branch.

9:33 AM Changeset in webkit [293226] by Alan Coon
  • 1 copy in branches/safari-613.2.7.2-branch

New branch.

9:33 AM Changeset in webkit [293225] by Alan Coon
  • 1 copy in branches/safari-613.2.7.1-branch

New branch.

9:33 AM Changeset in webkit [293224] by Alan Coon
  • 1 copy in branches/safari-613.2.7.0-branch

New branch.

9:11 AM Changeset in webkit [293223] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS wk2 arm64 ] imported/w3c/web-platform-tests/infrastructure/reftest-wait.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=230488

Unreviewed test gardening.

Updated text expectations in include Monterey wk2 arm64

  • LayoutTests/platform/mac-wk2/TestExpectations:

Canonical link: https://commits.webkit.org/249892@main

8:57 AM Changeset in webkit [293222] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] BoxTree should be able to build non-inline content tree
https://bugs.webkit.org/show_bug.cgi?id=239653

Reviewed by Antti Koivisto.

This is in preparation for supporting non-IFC content (e.g. flex).

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::rootBoxFirstLineStyle):
(WebCore::LayoutIntegration::BoxTree::BoxTree):
(WebCore::LayoutIntegration::BoxTree::buildTreeForInlineContent):
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):
(WebCore::LayoutIntegration::BoxTree::buildTree): Deleted.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::rootRenderer const):
(WebCore::LayoutIntegration::BoxTree::rootRenderer):
(WebCore::LayoutIntegration::BoxTree::flow const): Deleted.
(WebCore::LayoutIntegration::BoxTree::flow): Deleted.

  • layout/integration/inline/LayoutIntegrationLineLayout.h:

(WebCore::LayoutIntegration::LineLayout::flow const):
(WebCore::LayoutIntegration::LineLayout::flow):

8:13 AM Changeset in webkit [293221] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS Release arm64 ] imported/w3c/web-platform-tests/resource-timing/resource_timing.worker.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223472

Unreviewed test gardening.

Updated test expectation [ Release arm64 ]

  • LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/249890@main

7:03 AM Changeset in webkit [293220] by mark.lam@apple.com
  • 7 edits in trunk/Source

Apply purifyNaN in more places.
https://bugs.webkit.org/show_bug.cgi?id=239619
<rdar://problem/91924480>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::toJSValue):

Source/WebCore:

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS):

  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readTerminal):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertObjcValueToValue):

6:29 AM Changeset in webkit [293219] by Andres Gonzalez
  • 9 edits in trunk

Fix for accessibility/aria-grid-with-aria-owns-rows.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=239498
<rdar://problem/91961398>

Reviewed by Chris Fleizach and Tyler Wilcock.

Source/WebCore:

Test: accessibility/aria-grid-with-aria-owns-rows.html.

When creating AXIsolatedObjects, we were passing the object ID of the
parent to the constructor in a parent to child traversal, and storing
that parent ID in the object. This assumed that all AX objects have a
parent-child reflexive relationship, i.e., if A is a child of B, B is
the parent of A. But that is not true in several cases in the
accessibility hierarchy.
One example where the parent-child relationship is not reflexive is for table cells, where a cell can be the child of an object with role column, but its parent is an object with role row.
Another case is when aria-owns is used.
This patch fixes the problem by letting the live object determine its
own parent, instead of having the traversal algorithm pass the parent ID
to the AXIsolatedObject constructor.
A previous attempt to fix this problem was made in
https://bugs.webkit.org/show_bug.cgi?id=236156.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::initializeAttributeData): Renamed.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueRemovalsAndUnresolvedChanges):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::updateChildren):
(WebCore::AXIsolatedTree::parentIDForObject): Deleted.

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::initializePlatformProperties):

LayoutTests:

  • accessibility/aria-grid-with-aria-owns-rows-expected.txt:
  • accessibility/aria-grid-with-aria-owns-rows.html:
6:27 AM Changeset in webkit [293218] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Book content is clipped at page boundary when displaying list with bullet points
https://bugs.webkit.org/show_bug.cgi?id=239638
<rdar://89257768>

Reviewed by Antti Koivisto.

Source/WebCore:

Table cell content needs special handling when does not fit the page.

When a table cell's first line does not fit the page, instead of the normal, "let's add a flow level pagination strut"
we have to handle it as a line level strut (not sure why it is implemted this way but this is the expected behavior).
-also implment LineBoxIteratorModernPath::isFirstAfterPageBreak.

Test: fast/multicol/pagination/table-cell-one-line-pagination.html

  • layout/integration/inline/InlineIteratorLineBoxModernPath.h:

(WebCore::InlineIterator::LineBoxIteratorModernPath::isFirstAfterPageBreak const):

  • layout/integration/inline/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::isFirstAfterPageBreak const):

  • layout/integration/inline/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::setPageBreakForLine): According to RenderBlockFlow::adjustLinePositionForPagination, we
have to call setPageBreak, even when the first line does not fit.
(WebCore::LayoutIntegration::makeAdjustedContent):
(WebCore::LayoutIntegration::adjustLinePositionsForPagination):

LayoutTests:

  • fast/multicol/pagination/table-cell-one-line-pagination-expected.html: Added.
  • fast/multicol/pagination/table-cell-one-line-pagination.html: Added.
5:02 AM Changeset in webkit [293217] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Bail out from text decoration computation if none is requested
https://bugs.webkit.org/show_bug.cgi?id=239641

Reviewed by Tim Nguyen.

  • rendering/TextDecorationPainter.cpp:

(WebCore::collectStylesForRenderer):

Also avoid resolving colors unnecessarily.

(WebCore::TextDecorationPainter::stylesForRenderer):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:

Remove unused 'None' value.

4:40 AM Changeset in webkit [293216] by eocanha@igalia.com
  • 5 edits in trunk/Source/WebCore

[MSE] Improve SourceBuffer memory cost reporting
https://bugs.webkit.org/show_bug.cgi?id=238948

Reviewed by Xabier Rodriguez-Calvar.

Properly implementing the memoryCost() API in SourceBuffer would improve memory
awareness when garbage collecting.

This patch extends the SourceBuffer interface with the ReportExtraMemoryCost
attribute, implements memoryCost() method for the interface and fixes
calculations for removed buffers. It distinguishes the amount of memory
increases reported (extraMemoryCostDelta, what was reported until now, can
only grow) from the total amount of memory reported (can grow and shrink).

This patch is co-authored by Andrzej Surdej (https://github.com/asurdej-comcast)
See: https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/827

  • Modules/mediasource/SourceBuffer.cpp: Implement memoryCost() interface and hold the absolute memory consumed as m_extraMemoryCost, keeping the original m_reportedExtraMemoryCost behaviour.
  • Modules/mediasource/SourceBuffer.h: Added memoryCost() and m_extraMemoryCost.
  • Modules/mediasource/SourceBuffer.idl: Require the ReportExtraMemoryCost feature.
  • platform/graphics/SourceBufferPrivate.cpp: Also report the memory change to SourceBuffer when evicting frames (memory reduction).
4:08 AM Changeset in webkit [293215] by zan@falconsigh.net
  • 2 edits in trunk/Source/WebKit

[GLib] Make WebKitSettings XSS auditor functions no-op
https://bugs.webkit.org/show_bug.cgi?id=239651

Reviewed by Adrian Perez de Castro.

With the XSS auditor feature being deprecated and removed, and the
preference entries removed in r293199, the GLib API for this feature
has to be adjusted as well. In both getter and setter, a warning is
printed out when invoked.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_get_enable_xss_auditor):
(webkit_settings_set_enable_xss_auditor):

12:25 AM Changeset in webkit [293214] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.36.1

WPE WebKit 2.36.1

12:22 AM Changeset in webkit [293213] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.36

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.36.1 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.36.1.
12:02 AM Changeset in webkit [293212] by Tyler Wilcock
  • 5 edits in trunk

AX: The isolated tree is not updated after role changes in AccessibilityRenderObject::updateRoleAfterChildrenCreation()
https://bugs.webkit.org/show_bug.cgi?id=239549

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

In AccessibilityRenderObject::updateRoleAfterChildrenCreation(), if the objects role changes,
we need to inform the cache via AXObjectCache::handleRoleChange which in turn will
update the isolated tree.

Fixes accessibility/mac/invalid-menu-role-does-not-send-notification.html in isolated tree mode.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):

LayoutTests:

  • accessibility/mac/invalid-menu-role-does-not-send-notification-expected.txt:
  • accessibility/mac/invalid-menu-role-does-not-send-notification.html:

Update test to use async-await to actually wait for changes to happen,
which is required to make the test pass in isolated tree mode.

Note: See TracTimeline for information about the timeline view.