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

Timeline



May 1, 2022:

10:46 PM Changeset in webkit [293659] by Said Abou-Hallawa
  • 15 edits in trunk/Source

REGRESSION(r282117): RemoteRenderingBackend::willDestroyImageBuffer() can crash if the RemoteRenderingBackend has already been destroyed
https://bugs.webkit.org/show_bug.cgi?id=239107
rdar://91608298

Reviewed by Darin Adler.

Source/WebCore:

-- IOSurfacePool will be RefCounted.

-- ImageBufferIOSurfaceBackend::create() will pass the surfacePool

of the CreationContext to ImageBufferIOSurfaceBackend constructor.

-- ImageBufferIOSurfaceBackend will hold a RefPtr<IOSurfacePool>.

-- ImageBufferIOSurfaceBackend destructor will call IOSurface::moveToPool()

to return its surface to the IOSurfacePool if it was set.

  • platform/graphics/ConcreteImageBuffer.h:
  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::releaseGraphicsContext):
(WebCore::ImageBufferBackend::releaseBufferToPool): Deleted.

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::create):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::create):
(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::~ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::releaseBufferToPool): Deleted.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

After r282117, the assumption that RemoteRenderingBackend will outlive
all its RemoteImageBuffers became wrong. The RemoteRenderingBackend can
get destroyed under GPUConnectionToWebProcess::didClose() before the
callOnMainThread() of the ThreadSafeRefcounted image buffers have run.

This solution is to make the ImageBufferIOSurfaceBackend be responsible
of returning its IOSurface to the IOSurfacePool. So no need to call
willDestroyImageBuffer() from the RemoteImageBuffer destructor.

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteImageBuffer.h:

(WebKit::RemoteImageBuffer::RemoteImageBuffer):
(WebKit::RemoteImageBuffer::m_renderingResourcesRequest):
(WebKit::RemoteImageBuffer::~RemoteImageBuffer):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::willDestroyImageBuffer): Deleted.

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::ioSurfacePool const):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::Buffer::discard):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

6:48 PM Changeset in webkit [293658] by Devin Rousso
  • 4 edits in trunk/Source/WebCore

[Modern Media Controls] the overflow button sometimes flickers
https://bugs.webkit.org/show_bug.cgi?id=239921
<rdar://problem/91329468>

Reviewed by Eric Carlson.

There are two things that control the visibility of the OverflowButton:

  1. whether any of the "default" actions (e.g. playback speed, chapters, etc.) are possible
  2. if any other buttons that have contextMenuOptions are dropped (i.e. there's not enough

room for it because the <video> is narrow or there are already too many buttons)

(1) is recalculated for most JS media events (e.g. whenever tracks are changed, if
the readyState changes, etc.).

(2) is recalculated in layout of MediaControls, which is (relatively) less frequent.

In the case that the only contextmenu options are provided by (2) (i.e. none of the "default"
actions are possible), the frequent recalculation of (1) will combined with the fact that
layout uses a requestAnimationFrame to delay/batch work will cause there to be a short
period of time after the recalculation of (1) and before the recalculation of (2) where
there are no contextmenu options, resulting in the OverflowButton being hidden.

  • Modules/modern-media-controls/controls/overflow-button.js:

(OverflowButton):
(OverflowButton.prototype.set visible):
(OverflowButton.prototype.set visible.isEmpty): Added.
(OverflowButton.prototype.get contextMenuOptions):
(OverflowButton.prototype.addExtraContextMenuOptions): Renamed from addContextMenuOptions.
(OverflowButton.prototype.clearExtraContextMenuOptions): Renamed from clearContextMenuOptions.
(OverflowButton.prototype.set defaultContextMenuOptions):

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype.layout):

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls.prototype.layout):
Instead of having a single _contextMenuOptions that is modified by both (1) and (2), have
a separate member variable for each. This way, the recalculation of (1) doesn't also clear
the state left over from the last time (2) was calculated (which will be recalculated by (2)
shortly thereafter). Use both member variables to decide whether the OverflowButton should
be visible, allowing (1) and (2) to update independent of eachother.

6:17 PM Changeset in webkit [293657] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Revive JSC's guard against speculation collection
https://bugs.webkit.org/show_bug.cgi?id=239939

Reviewed by Mark Lam.

r288815 dropped JSC's guard against structures in speculation collection, but this is wrong.
This patch reverts it back.

  • Source/JavaScriptCore/bytecode/SpeculatedType.cpp:

(JSC::speculationFromCell):

  • Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp:

(JSC::StructureMemoryManager::StructureMemoryManager):
(JSC::StructureMemoryManager::tryMallocStructureBlock):
(JSC::StructureMemoryManager::freeStructureBlock):
(JSC::StructureAlignedMemoryAllocator::initializeStructureAddressSpace):

  • Source/JavaScriptCore/runtime/JSCConfig.h:
  • Source/JavaScriptCore/runtime/StructureID.h:

(JSC::StructureID::tryDecode const):

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

5:17 PM Changeset in webkit [293656] by Chris Dumez
  • 178 edits in trunk/Source

Prepare the rest of WebCore for making the AtomString(const String&) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=239917

Reviewed by Darin Adler.

Prepare the rest of WebCore for making the AtomString(const String&) constructor explicit.
This helps find suboptimal patterns in our code base, where we may be doing unnecessary
String allocations.

  • Source/WebCore/PAL/pal/FileSizeFormatter.cpp:

(PAL::fileSizeDescription):

  • Source/WebCore/PAL/pal/FileSizeFormatter.h:
  • Source/WebCore/PAL/pal/cocoa/FileSizeFormatterCocoa.mm:

(PAL::fileSizeDescription):

  • Source/WebCore/Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
  • Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl:
  • Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl:
  • Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl:
  • Source/WebCore/Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl:
  • Source/WebCore/Modules/mediarecorder/MediaRecorderErrorEvent.idl:
  • Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl:
  • Source/WebCore/Modules/mediastream/OverconstrainedErrorEvent.idl:
  • Source/WebCore/Modules/mediastream/RTCErrorEvent.idl:
  • Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl:
  • Source/WebCore/Modules/mediastream/RTCPeerConnectionIceEvent.idl:
  • Source/WebCore/Modules/mediastream/RTCRtpSFrameTransformErrorEvent.idl:
  • Source/WebCore/Modules/mediastream/RTCTrackEvent.idl:
  • Source/WebCore/Modules/mediastream/RTCTransformEvent.idl:
  • Source/WebCore/Modules/notifications/NotificationEvent.idl:
  • Source/WebCore/Modules/paymentrequest/MerchantValidationEvent.idl:
  • Source/WebCore/Modules/paymentrequest/PaymentMethodChangeEvent.idl:
  • Source/WebCore/Modules/paymentrequest/PaymentRequestUpdateEvent.idl:
  • Source/WebCore/Modules/speech/SpeechRecognitionErrorEvent.idl:
  • Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl:
  • Source/WebCore/Modules/speech/SpeechSynthesisEvent.idl:
  • Source/WebCore/Modules/webxr/XRInputSourceEvent.idl:
  • Source/WebCore/Modules/webxr/XRInputSourcesChangeEvent.idl:
  • Source/WebCore/Modules/webxr/XRReferenceSpaceEvent.idl:
  • Source/WebCore/Modules/webxr/XRSessionEvent.idl:
  • Source/WebCore/bindings/IDLTypes.h:

(WebCore::IDLString::isNullValue):

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

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

  • Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GetAnnotatedIDLType):

  • Source/WebCore/bindings/scripts/test/TestPromiseRejectionEvent.idl:
  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSComputedStyleDeclaration::getPropertyValue):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/DOMCSSCustomPropertyDescriptor.h:
  • Source/WebCore/css/DOMCSSCustomPropertyDescriptor.idl:
  • Source/WebCore/css/MediaQueryExpression.cpp:

(WebCore::consumeFirstValue):

  • Source/WebCore/css/MediaQueryListEvent.idl:
  • Source/WebCore/css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::setCustomProperty):

  • Source/WebCore/css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences):

  • Source/WebCore/css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):

  • Source/WebCore/css/parser/CSSPropertyParser.h:
  • Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeFamilyNameRaw):

  • Source/WebCore/dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocumentType):
(WebCore::DOMImplementation::createDocument):

  • Source/WebCore/dom/DOMImplementation.h:
  • Source/WebCore/dom/DOMImplementation.idl:
  • Source/WebCore/dom/Document+HTMLObsolete.idl:
  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::createElementNS):
(WebCore::Document::formElementsState const):
(WebCore::Document::setStateForNewFormElements):
(WebCore::Document::parseQualifiedName):
(WebCore::Document::createAttributeNS):
(WebCore::Document::getCachedLocale):
(WebCore::Document::setBgColor):
(WebCore::Document::setFgColor):
(WebCore::Document::setAlinkColor):
(WebCore::Document::setLinkColorForBindings):
(WebCore::Document::setVlinkColor):

  • Source/WebCore/dom/Document.h:
  • Source/WebCore/dom/Document.idl:
  • Source/WebCore/dom/Element.cpp:

(WebCore::Element::toggleAttribute):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didModifyAttribute):
(WebCore::Element::didRemoveAttribute):

  • Source/WebCore/dom/KeyboardEvent.idl:
  • Source/WebCore/dom/MutationObserver.h:
  • Source/WebCore/dom/MutationObserver.idl:
  • Source/WebCore/dom/QualifiedName.h:

(WebCore::QualifiedName::toAtomString const):

  • Source/WebCore/dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • Source/WebCore/editing/ApplyStyleCommand.cpp:

(WebCore::joinWithSpace):

  • Source/WebCore/editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::inputEventTypeName const):

  • Source/WebCore/editing/CompositeEditCommand.h:
  • Source/WebCore/editing/CreateLinkCommand.cpp:

(WebCore::CreateLinkCommand::doApply):

  • Source/WebCore/editing/EditCommand.cpp:

(WebCore::inputTypeNameForEditingAction):

  • Source/WebCore/editing/EditCommand.h:
  • Source/WebCore/editing/EditingStyle.cpp:

(WebCore::StyleChange::extractTextStyles):

  • Source/WebCore/editing/EditingStyle.h:

(WebCore::StyleChange::fontColor):
(WebCore::StyleChange::fontFace):
(WebCore::StyleChange::fontSize):

  • Source/WebCore/editing/Editor.cpp:

(WebCore::Editor::applyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::Editor::insertAttachment):
(WebCore::Editor::styleForSelectionStart):

  • Source/WebCore/editing/Editor.h:
  • Source/WebCore/editing/EditorCommand.cpp:

(WebCore::executeFormatBlock):
(WebCore::executeInsertHorizontalRule):
(WebCore::executeInsertImage):

  • Source/WebCore/editing/MarkupAccumulator.cpp:

(WebCore::shouldAddNamespaceElement):
(WebCore::MarkupAccumulator::generateUniquePrefix):

  • Source/WebCore/editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

  • Source/WebCore/editing/TypingCommand.cpp:

(WebCore::TypingCommand::inputEventTypeName const):

  • Source/WebCore/editing/TypingCommand.h:
  • Source/WebCore/editing/WebContentReader.h:
  • Source/WebCore/editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::createFragmentAndAddResources):
(WebCore::sanitizeMarkupWithArchive):
(WebCore::attachmentForFilePath):
(WebCore::attachmentForData):
(WebCore::WebContentReader::readURL):
(WebCore::WebContentReader::readDataBuffer):

  • Source/WebCore/editing/markup.cpp:

(WebCore::AttributeChange::AttributeChange):
(WebCore::completeURLs):
(WebCore::replaceSubresourceURLs):
(WebCore::StyledMarkupAccumulator::appendCustomAttributes):
(WebCore::createFragmentForImageAndURL):

  • Source/WebCore/history/HistoryItem.cpp:

(WebCore::HistoryItem::setDocumentState):
(WebCore::HistoryItem::documentState const):

  • Source/WebCore/history/HistoryItem.h:
  • Source/WebCore/html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::createTDForFilename):

  • Source/WebCore/html/FileInputType.cpp:

(WebCore::FileInputType::saveFormControlState const):

  • Source/WebCore/html/FormController.cpp:

(WebCore::StringVectorReader::consumeString):
(WebCore::StringVectorReader::consumeSubvector):
(WebCore::appendSerializedFormControlState):
(WebCore::FormController::formElementsState const):
(WebCore::FormController::setStateForNewFormElements):
(WebCore::FormController::parseStateVector):
(WebCore::FormController::referencedFilePaths):

  • Source/WebCore/html/FormController.h:
  • Source/WebCore/html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • Source/WebCore/html/HTMLAreaElement.idl:
  • Source/WebCore/html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::setFile):
(WebCore::HTMLAttachmentElement::updateAttributes):
(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

  • Source/WebCore/html/HTMLAttachmentElement.h:
  • Source/WebCore/html/HTMLBaseElement.idl:
  • Source/WebCore/html/HTMLButtonElement.idl:
  • Source/WebCore/html/HTMLCollection.cpp:

(WebCore::HTMLCollection::isSupportedPropertyName):

  • Source/WebCore/html/HTMLCollection.h:
  • Source/WebCore/html/HTMLFormControlElementWithState.h:
  • Source/WebCore/html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::namedItemOrItems const):

  • Source/WebCore/html/HTMLFormControlsCollection.h:
  • Source/WebCore/html/HTMLFormElement.idl:
  • Source/WebCore/html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):

  • Source/WebCore/html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::shouldLoadFrameLazily):

  • Source/WebCore/html/HTMLIFrameElement.idl:
  • Source/WebCore/html/HTMLImageElement.idl:
  • Source/WebCore/html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):

  • Source/WebCore/html/HTMLInputElement.idl:
  • Source/WebCore/html/HTMLMapElement.cpp:

(WebCore::HTMLMapElement::parseAttribute):

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setPreload):

  • Source/WebCore/html/HTMLMediaElement.h:
  • Source/WebCore/html/HTMLMediaElement.idl:
  • Source/WebCore/html/HTMLOrForeignElement.idl:
  • Source/WebCore/html/HTMLSelectElement.idl:
  • Source/WebCore/html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::saveFormControlState const):

  • Source/WebCore/html/HTMLTextAreaElement.idl:
  • Source/WebCore/html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::HTMLVideoElement):

  • Source/WebCore/html/HiddenInputType.cpp:

(WebCore::HiddenInputType::saveFormControlState const):
(WebCore::HiddenInputType::restoreFormControlState):
(WebCore::HiddenInputType::setValue):

  • Source/WebCore/html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

  • Source/WebCore/html/InputType.cpp:

(WebCore::InputType::saveFormControlState const):

  • Source/WebCore/html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • Source/WebCore/html/ModelDocument.cpp:

(WebCore::ModelDocumentParser::createDocumentStructure):

  • Source/WebCore/html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):

  • Source/WebCore/html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createAutoFillButton):
(WebCore::TextFieldInputType::updateAutoFillButton):

  • Source/WebCore/html/canvas/WebGLContextEvent.idl:
  • Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::processMeta):
(WebCore::HTMLMetaCharsetParser::encodingFromMetaAttributes):

  • Source/WebCore/html/parser/HTMLMetaCharsetParser.h:
  • Source/WebCore/html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • Source/WebCore/html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

  • Source/WebCore/html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldCancelButtonElement::create):

  • Source/WebCore/html/track/AudioTrack.cpp:

(WebCore::AudioTrack::updateKindFromPrivate):

  • Source/WebCore/html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack):
(WebCore::LoadableTextTrack::create):

  • Source/WebCore/html/track/LoadableTextTrack.h:
  • Source/WebCore/html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::setId):

  • Source/WebCore/html/track/TextTrackCue.h:

(WebCore::TextTrackCue::id const):

  • Source/WebCore/html/track/TextTrackCue.idl:
  • Source/WebCore/html/track/TrackEvent.idl:
  • Source/WebCore/html/track/VideoTrack.cpp:

(WebCore::VideoTrack::updateKindFromPrivate):

  • Source/WebCore/html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::collectWebVTTBlock):
(WebCore::WebVTTParser::collectCueId):
(WebCore::WebVTTParser::resetCueValues):

  • Source/WebCore/html/track/WebVTTParser.h:
  • Source/WebCore/inspector/DOMEditor.cpp:

(WebCore::DOMEditor::setAttribute):
(WebCore::DOMEditor::removeAttribute):

  • Source/WebCore/inspector/DOMEditor.h:
  • Source/WebCore/inspector/InspectorAuditAccessibilityObject.cpp:

(WebCore::InspectorAuditAccessibilityObject::getComputedProperties):

  • Source/WebCore/inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawRulers):

  • Source/WebCore/inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheetForInlineStyle::setStyleText):

  • Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::setAttributeValue):
(WebCore::InspectorDOMAgent::setAttributesAsText):
(WebCore::InspectorDOMAgent::removeAttribute):
(WebCore::InspectorDOMAgent::setNodeName):
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

  • Source/WebCore/inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::interceptWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):

  • Source/WebCore/loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadPostRequest):

  • Source/WebCore/loader/HistoryController.cpp:

(WebCore::FrameLoader::HistoryController::recursiveSetProvisionalItem):

  • Source/WebCore/loader/PolicyChecker.cpp:

(WebCore::FrameLoader::PolicyChecker::checkNewWindowPolicy):

  • Source/WebCore/loader/PolicyChecker.h:
  • Source/WebCore/page/PageSerializer.cpp:

(WebCore::isCharsetSpecifyingNode):

  • Source/WebCore/platform/Pasteboard.h:

(WebCore::PasteboardWebContentReader::readDataBuffer):

  • Source/WebCore/platform/graphics/InbandGenericCue.h:

(WebCore::GenericCueData::GenericCueData):
(WebCore::GenericCueData::decode):
(WebCore::InbandGenericCue::id const):
(WebCore::InbandGenericCue::setId):

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

(WebCore::InbandChapterTrackPrivateAVFObjC::processChapters):

  • Source/WebCore/platform/graphics/iso/ISOVTTCue.cpp:

(WebCore::ISOWebVTTCue::ISOWebVTTCue):
(WebCore::ISOWebVTTCue::parse):

  • Source/WebCore/platform/graphics/iso/ISOVTTCue.h:
  • Source/WebCore/platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::read):

  • Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:

(WebCore::RealtimeVideoCaptureSource::RealtimeVideoCaptureSource):

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

(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):

  • Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
  • Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSourceMac::createForMockDisplayCapturer):
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac):

  • Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockDisplayCapturer::MockDisplayCapturer):

  • Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):

  • Source/WebCore/platform/mock/MockRealtimeVideoSource.h:
  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertStringOrAutoAtom):
(WebCore::Style::BuilderConverter::convertStringOrNoneAtom):

  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueContent):

  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::shadowPseudoId):
(WebCore::Internals::setShadowPseudoId):
(WebCore::Internals::formControlStateOfPreviousHistoryItem):
(WebCore::Internals::setFormControlStateOfPreviousHistoryItem):
(WebCore::Internals::openDummyInspectorFrontend):
(WebCore::Internals::highlightPseudoElementColor):

  • Source/WebCore/testing/Internals.h:
  • Source/WebCore/testing/Internals.idl:
  • Source/WebCore/testing/MockCDMFactory.cpp:

(WebCore::MockCDMFactory::setSupportedRobustness): Deleted.

  • Source/WebCore/testing/MockCDMFactory.h:

(WebCore::MockCDMFactory::setSupportedRobustness):

  • Source/WebCore/testing/MockCDMFactory.idl:

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

1:16 PM Changeset in webkit [293655] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Update test expectations. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=239945

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-05-01

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
8:08 AM Changeset in webkit [293654] by zan@falconsigh.net
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Implement MacroAssembler::probe(), ctiMasmProbeTrampoline
https://bugs.webkit.org/show_bug.cgi?id=239938

Reviewed by Yusuke Suzuki.

Implement MacroAssembler::probe() for RISCV64, along with the
ctiMasmProbeTrampoline operation. The implementation follows the process
of implementations for other platforms, with incoming, outgoing and
return-address-restoration records used to store register values during
setup and breakdown of the probe.

Going into the probe and back out of it, the general-purpose and
floating-point registers are stored, with the exception of global and
thread registers (x3 and x4). After the probe, if the probe state on the
stack is broken, the complete state is re-established before the
registers are reloaded, with the stack pointer and return address
registers set up last.

Covered by probing-related unit tests in testmasm.

  • assembler/MacroAssemblerRISCV64.cpp:

(JSC::MacroAssembler::probe):

8:05 AM Changeset in webkit [293653] by zan@falconsigh.net
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Enable testmasm execution
https://bugs.webkit.org/show_bug.cgi?id=239937

Reviewed by Yusuke Suzuki.

In testmasm, enable some additional sets of tests for RISCV64 that cover
already-functioning behavior. In isSpecialGPR(), the function returns
true under CPU(RISCV64) for the appropriate registers.

In invoke(), when targeting RISCV64 and invoking JIT-produced code whose
return type is a 32-bit integer, the resulting value is manually
sign-extended to paper over the mismatch between zero-extended 32-bit
values that are used and produced in JSC JIT and the sign-extended
32-bit values that are expected in the RV64 calling convention.

  • assembler/testmasm.cpp:

(JSC::isSpecialGPR):
(JSC::invoke):
(JSC::testProbePreservesGPRS):
(JSC::testLoadBaseIndex):
(JSC::testStoreBaseIndex):

7:18 AM Changeset in webkit [293652] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/LayoutTests

[GStreamer] tests gardening
https://bugs.webkit.org/show_bug.cgi?id=239943

Patch by Philippe Normand <pnormand@igalia.com> on 2022-05-01
Unreviewed, update a couple media-recorder and media-capabilities expectations.

  • platform/glib/TestExpectations:
  • platform/wpe/http/wpt/mediarecorder/MediaRecorder-dataavailable-expected.txt: Removed.
  • platform/wpe/http/wpt/mediarecorder/MediaRecorder-mock-dataavailable-expected.txt: Removed.

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

1:51 AM Changeset in webkit [293651] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE][GTK] Built product archives include old library files
https://bugs.webkit.org/show_bug.cgi?id=239928

Patch by Philippe Normand <pnormand@igalia.com> on 2022-05-01
Reviewed by Adrian Perez de Castro.

  • CISupport/built-product-archive: Exclude old WPE/GTK files from built product zip archives.

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

Apr 30, 2022:

7:42 PM Changeset in webkit [293650] by Andres Gonzalez
  • 15 edits in trunk/Source/WebCore

Code cleanup in preparation for refactoring of computing relationships between AXObjects.
https://bugs.webkit.org/show_bug.cgi?id=239848
<rdar://problem/92455544>

Reviewed by Chris Fleizach and Tyler Wilcock.

No new functionality.

AccessibilityObject::ariaElementsFromAttribute() and
ariaElementsReferencedByAttribute() are the methods that currently
compute the relationships between objects. These methods now return a
vector of the related objects instead of taking an out parameter.
In addition, all ariaXXXElements and ariaXXXReferencingElements methods
are renamed to better reflect the relationships they retrieve. Note that
the prefix aria is removed from all method names because ARIA is one way
of establishing relationships between objects, but not necessarily the
only way. These changes make the code more concise and clearer.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::textUnderElement const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeRows):
(WebCore::AccessibilityObject::ariaElementsFromAttribute const):
(WebCore::AccessibilityObject::ariaElementsReferencedByAttribute const):
(WebCore::AccessibilityObject::isActiveDescendantOfFocusedContainer const):
(WebCore::AccessibilityObject::activeDescendantOfObjects const):
(WebCore::AccessibilityObject::controlledObjects const):
(WebCore::AccessibilityObject::controllers const):
(WebCore::AccessibilityObject::describedByObjects const):
(WebCore::AccessibilityObject::descriptionForObjects const):
(WebCore::AccessibilityObject::detailedByObjects const):
(WebCore::AccessibilityObject::detailsForObjects const):
(WebCore::AccessibilityObject::errorMessageObjects const):
(WebCore::AccessibilityObject::errorMessageForObjects const):
(WebCore::AccessibilityObject::flowToObjects const):
(WebCore::AccessibilityObject::flowFromObjects const):
(WebCore::AccessibilityObject::labelledByObjects const):
(WebCore::AccessibilityObject::labelForObjects const):
(WebCore::AccessibilityObject::ownedObjects const):
(WebCore::AccessibilityObject::owners const):
(WebCore::AccessibilityObject::ariaActiveDescendantReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaControlsElements const): Deleted.
(WebCore::AccessibilityObject::ariaControlsReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaDescribedByElements const): Deleted.
(WebCore::AccessibilityObject::ariaDescribedByReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaDetailsElements const): Deleted.
(WebCore::AccessibilityObject::ariaDetailsReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaErrorMessageElements const): Deleted.
(WebCore::AccessibilityObject::ariaErrorMessageReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaFlowToElements const): Deleted.
(WebCore::AccessibilityObject::ariaFlowToReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaLabelledByElements const): Deleted.
(WebCore::AccessibilityObject::ariaLabelledByReferencingElements const): Deleted.
(WebCore::AccessibilityObject::ariaOwnsElements const): Deleted.
(WebCore::AccessibilityObject::ariaOwnsReferencingElements const): Deleted.

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

(WebCore::AccessibilityRenderObject::linkedUIElements const):
(WebCore::AccessibilityRenderObject::targetElementForActiveDescendant const):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::ariaOwnedByParent const):

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::addChildren):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::relationMap const):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::activeDescendantOfObjects const):
(WebCore::AXIsolatedObject::controllers const):
(WebCore::AXIsolatedObject::describedByObjects const):
(WebCore::AXIsolatedObject::descriptionForObjects const):
(WebCore::AXIsolatedObject::detailsForObjects const):
(WebCore::AXIsolatedObject::errorMessageForObjects const):
(WebCore::AXIsolatedObject::flowFromObjects const):
(WebCore::AXIsolatedObject::labelledByObjects const):
(WebCore::AXIsolatedObject::labelForObjects const):
(WebCore::AXIsolatedObject::owners const):
(WebCore::AXIsolatedObject::ariaActiveDescendantReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaControlsReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaDescribedByElements const): Deleted.
(WebCore::AXIsolatedObject::ariaDescribedByReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaDetailsReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaErrorMessageReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaFlowToReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaLabelledByElements const): Deleted.
(WebCore::AXIsolatedObject::ariaLabelledByReferencingElements const): Deleted.
(WebCore::AXIsolatedObject::ariaOwnsReferencingElements const): Deleted.

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

9:57 AM Changeset in webkit [293649] by commit-queue@webkit.org
  • 3 edits in trunk

[WPE][GTK] Enable MEDIA_SESSION by default
https://bugs.webkit.org/show_bug.cgi?id=239931

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-30
Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

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

9:50 AM Changeset in webkit [293648] by commit-queue@webkit.org
  • 6 edits in trunk

REGRESSION(r283437) a number of media tests fail/timeout on the test bots
https://bugs.webkit.org/show_bug.cgi?id=231811
<rdar://problem/84552871>

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-30
Reviewed by Michael Catanzaro.

Disable DBus MPRIS notifications when running the tests, these leak to the host when running
on desktop and trigger timeouts on under-powered bots.

  • platform/audio/glib/MediaSessionGLib.cpp:

(WebCore::MediaSessionGLib::create):
(WebCore::MediaSessionGLib::MediaSessionGLib):
(WebCore::MediaSessionGLib::emitPositionChanged):
(WebCore::MediaSessionGLib::updateNowPlaying):
(WebCore::MediaSessionGLib::playbackStatusChanged):

  • platform/audio/glib/MediaSessionManagerGLib.h:

(WebCore::MediaSessionManagerGLib::setDBusNotificationsEnabled):
(WebCore::MediaSessionManagerGLib::areDBusNotificationsEnabled const):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

LayoutTests:

  • platform/glib/TestExpectations: Unflag tests now passing.

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

9:30 AM Changeset in webkit [293647] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Only stretch the percent height <body> when it is the document element's child
https://bugs.webkit.org/show_bug.cgi?id=239932
<rdar://92257660>

Reviewed by Antti Koivisto.

This IE quirk should only be applied to when the body is actually the document element's child (stretching case).

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::parentBox const):

8:30 AM Changeset in webkit [293646] by Alan Bujtas
  • 5 edits
    2 adds in trunk

ASSERTION FAILED: *trailingRunIndex >= overflowingRunIndex in WebCore::Layout::InlineContentBreaker::tryBreakingNextOverflowingRuns
https://bugs.webkit.org/show_bug.cgi?id=239838
<rdar://problem/92455051>

Reviewed by Antti Koivisto.

Source/WebCore:

Take partial text overflow into account when computing intrinsic width.

Test: fast/inline/overflowing-content-inside-inline-box-crash.html

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::computedIntrinsicWidth):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

LayoutTests:

  • fast/inline/overflowing-content-inside-inline-box-crash-expected.txt: Added.
  • fast/inline/overflowing-content-inside-inline-box-crash.html: Added.
6:11 AM Changeset in webkit [293645] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Introduce LineBuilder::PartialContent
https://bugs.webkit.org/show_bug.cgi?id=239886

Reviewed by Antti Koivisto.

This patch is in preparation for adding partial content support for intrinsic width computation.

  1. Use a dedicated PartialContent structure to store partial overflowing information (output of current line breaking, input to next line).
  2. Decouple partial overflowing width (see above) and the "let's not measure the wrapped content again on the next line as leading content" cached value.
  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::initialize):

  • layout/formattingContexts/inline/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::PartialContent::PartialContent):

6:01 AM Changeset in webkit [293644] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Do not wrap </span> to the next line when it is preceded by overflowing text
https://bugs.webkit.org/show_bug.cgi?id=239879
<rdar://problem/92497176>

Reviewed by Antti Koivisto.

Source/WebCore:

This patch makes sure that inline content run(s) ("X") followed by inline box end run(s) (</span></span>)
don't get separated when they overflow the line (e.g. width: 0px).

Test: fast/inline/overflowing-content-inside-inline-box.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):

LayoutTests:

  • fast/inline/overflowing-content-inside-inline-box-expected.html: Added.
  • fast/inline/overflowing-content-inside-inline-box.html: Added.
12:26 AM Changeset in webkit [293643] by jer.noble@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

[Mac] VTVideoDecoderClass object pointers can become unaligned on x86
https://bugs.webkit.org/show_bug.cgi?id=239916
<rdar://92445366>

Reviewed by Eric Carlson.

Both the base class and the derived class must be 4-byte aligned on x86, or there
is a chance that a pointer member of that struct will cross a page boundary, and
dereferencing that pointer will fail.

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:
Note: See TracTimeline for information about the timeline view.