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

Timeline



Jan 31, 2022:

11:44 PM Changeset in webkit [288868] by mmaxfield@apple.com
  • 59 edits in trunk/Source

Rename FontCascade::fontMetrics() and RenderStyle::fontMetrics() to fontMetricsOfPrimaryFont()
https://bugs.webkit.org/show_bug.cgi?id=235938

Reviewed by Alan Bujtas.

Source/WebCore:

It's probably good to remind people that when they call this function,
they might not be getting what they might think they're getting.

No new tests because there is no behavior change.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
(WebCore::CSSPrimitiveValue::equalForLengthResolution):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintBoxContent):

  • display/css/DisplayStyle.h:

(WebCore::Display::Style::fontMetricsOfPrimaryFont const):
(WebCore::Display::Style::fontMetrics const): Deleted.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::createInnerTextStyle):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::FontProxy::fontMetricsOfPrimaryFont const):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
(WebCore::CanvasRenderingContext2DBase::measureTextInternal):
(WebCore::CanvasRenderingContext2DBase::textOffset):
(WebCore::CanvasRenderingContext2DBase::FontProxy::fontMetrics const): Deleted.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawRulers):
(WebCore::InspectorOverlay::drawElementTitle):
(WebCore::expectedSizeForLayoutLabel):
(WebCore::drawLayoutLabel):

  • layout/formattingContexts/inline/InlineFormattingQuirks.cpp:

(WebCore::Layout::InlineFormattingQuirks::initialLineHeight const):

  • layout/formattingContexts/inline/InlineLevelBox.h:

(WebCore::Layout::m_style):
(WebCore::Layout::InlineLevelBox::preferredLineHeight const):
(WebCore::Layout::InlineLevelBox::primaryfontMetricsOfPrimaryFont const):
(WebCore::Layout::InlineLevelBox::primaryFontMetrics const): Deleted.

  • layout/formattingContexts/inline/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):

  • layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForLineBreakBox const):
(WebCore::Layout::LineBoxBuilder::setInitialVerticalGeometryForInlineBox const):

  • layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:

(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
(WebCore::Layout::LineBoxVerticalAligner::alignInlineLevelBoxes const):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::floatWidthForSimpleText const):
(WebCore::FontCascade::floatWidthForComplexText const):

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::fontMetricsOfPrimaryFont const):
(WebCore::FontCascade::fontMetrics const): Deleted.

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForEmptyElement):
(WebCore::computeCaretRectForBox):

  • rendering/LegacyEllipsisBox.cpp:

(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::paintMarkupBox):
(WebCore::LegacyEllipsisBox::nodeAtPoint):

  • rendering/LegacyInlineBox.cpp:

(WebCore::LegacyInlineBox::logicalHeight const):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::placeChildInlineBoxesInBlockDirection):
(WebCore::LegacyInlineFlowBox::placeBoxesInBlockDirection):

  • rendering/LegacyLineLayout.cpp:

(WebCore::setLogicalWidthForTextRun):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSnapAdjustment const):
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::inlineBlockBaseline const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustInitialLetterPosition):
(WebCore::RenderBlockFlow::firstLineBaseline const):
(WebCore::RenderBlockFlow::inlineBlockBaseline const):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintReplaced):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::setImageSizeForAltText):
(WebCore::RenderImage::paintReplaced):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):
(WebCore::RenderInline::baselinePosition const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::baselinePosition const):

  • rendering/RenderListBox.cpp:

(WebCore::itemOffsetForAlignment):
(WebCore::RenderListBox::itemHeight const):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::relativeMarkerRect):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::layoutBlock):

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForeground):
(WebCore::TextBoxPainter::paintCompositionUnderline):
(WebCore::TextBoxPainter::calculateDocumentMarkerBounds):
(WebCore::TextBoxPainter::textOriginFromPaintRect const):

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintBackgroundDecorations):
(WebCore::TextDecorationPainter::paintForegroundDecorations):
(WebCore::TextDecorationPainter::paintLineThrough):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):

  • rendering/line/LineInlineHeaders.h:

(WebCore::requiresLineBoxForContent):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::axisHeight):
(WebCore::toUserUnits):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::verticalParameters):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::verticalParameters const):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::verticalParameters const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::fontMetricsOfPrimaryFont const):
(WebCore::RenderStyle::computeLineHeight const):
(WebCore::RenderStyle::fontMetrics const): Deleted.

  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::positionForPoint):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::selectionRectForTextFragment const):
(WebCore::SVGInlineTextBox::paintDecorationWithStyle):
(WebCore::SVGInlineTextBox::paintTextWithShadows):
(WebCore::SVGInlineTextBox::calculateBoundaries const):
(WebCore::SVGInlineTextBox::nodeAtPoint):

  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift const):
(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphAdvanceAndOrientation const):

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::SVGTextMetrics):

  • rendering/svg/SVGTextQuery.cpp:

(WebCore::calculateGlyphBoundaries):

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::styleForFirstLetter):

  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

  • style/StyleResolveForFontRaw.cpp:

(WebCore::Style::resolveForFontRaw):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::convertValueFromUserUnitsToEXS const):
(WebCore::SVGLengthContext::convertValueFromEXSToUserUnits const):

Source/WebKit:

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::dictionaryPopupInfoForRange):

Source/WebKitLegacy/mac:

  • WebView/WebImmediateActionController.mm:

(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):

9:47 PM Changeset in webkit [288867] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

Fix handling of access key events
https://bugs.webkit.org/show_bug.cgi?id=234147
<rdar://problem/86320218>

Reviewed by David Kilzer.

Improve focus handling for HTMLElement-based elements to ensure accessKey events
are properly dispatched.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press): Ensure correct object is used after 'accessKeyAction'
is invoked.

  • dom/EventDispatcher.cpp:

(WebCore::callDefaultEventHandlersInBubblingOrder) Protect element during default
event bubbling.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::reportValidity): Ensure correct element is
used after focus event.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleAccessKey): Ensure correct object is used after
'accessKeyAction' is invoked.

8:32 PM Changeset in webkit [288866] by ddkilzer@apple.com
  • 2 edits in trunk/Source/bmalloc

[libpas] get_num_free_bytes_for_each_heap_callback() is called with arg pointing to uninitialized stack memory
<https://webkit.org/b/235931>
<rdar://problem/88303899>

Reviewed by Yusuke Suzuki.

  • libpas/src/libpas/pas_all_heaps.c:

(pas_all_heaps_get_num_free_bytes):

  • Initialize result stack variable to zero.
6:57 PM Changeset in webkit [288865] by Said Abou-Hallawa
  • 26 edits in trunk

[GPU Process] Pattern should hold SourceImage which can be converted to a NativeImage only when needed
https://bugs.webkit.org/show_bug.cgi?id=232411
<rdar://problem/84998738>

Reviewed by Darin Adler.

Source/WebCore:

Make Pattern hold a SourceImage and add getters to retrieve a NativeImage
and an ImageBuffer. In these getters the SourceImage will either return
the current image source or get one from the other if needed.

  • html/canvas/CanvasPattern.cpp:

(WebCore::CanvasPattern::create):
(WebCore::CanvasPattern::CanvasPattern):

  • html/canvas/CanvasPattern.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createPattern):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildArrayForCanvasPattern):

  • platform/graphics/NativeImage.h:

Make NativeImage a thread-safe RefCounted and make its destruction happen
on the main thread. This is similar to what we do for ImageBuffer. And
the reason for this is the message handler in the GPUProcess may create
NativeImages on the main thread as the SourceImages for the Patterns of
the SetState item. These NativeImages will be deleted in the replaying
thread after applying the SetState item.

  • platform/graphics/Pattern.cpp:

(WebCore::Pattern::create):
(WebCore::Pattern::Pattern):

  • platform/graphics/Pattern.h:

(WebCore::Pattern::encode const):
(WebCore::Pattern::decode):
Add encoding and decoding mehods for Pattern which will be called from
SetState::encode() and SetState::decode().

  • platform/graphics/SourceImage.cpp:

(WebCore::SourceImage::nativeImage const):
(WebCore::SourceImage::imageBuffer const):
(WebCore::SourceImage::size const):
(WebCore::SourceImage::nativeImage): Deleted.
(WebCore::SourceImage::imageBuffer): Deleted.

  • platform/graphics/SourceImage.h:

Make SourceImage keep the image source it was created with. Get a temporary
image source if it is different from what is stored in m_imageVariant.

  • platform/graphics/cairo/PatternCairo.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/cg/PatternCG.cpp:

(WebCore::Pattern::createPlatformPattern const):

  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::SetState::SetState):
(WebCore::DisplayList::SetState::apply):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::stateChange):
(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):
(WebCore::DisplayList::SetState::strokePatternParameters const): Deleted.
(WebCore::DisplayList::SetState::fillPatternParameters const): Deleted.
(WebCore::DisplayList::SetState::strokePatternImageIdentifier const): Deleted.
(WebCore::DisplayList::SetState::fillPatternImageIdentifier const): Deleted.
Simplify SetState by deleting the PatternData members. Replace these members
by the strokePattern and fillPattern since these patterns can be encoded
and decoded.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applySetStateItem):

  • platform/graphics/displaylists/DisplayListResourceHeap.h:

Add the helper LocalResourceHeap::getSourceImage() to be used by
applySetStateItem().

  • platform/graphics/filters/software/FETileSoftwareApplier.cpp:

(WebCore::FETileSoftwareApplier::apply const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::patternForDescription):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::buildPattern):

Source/WebKit:

Add the helpers QualifiedResourceHeap::getSourceImage() and
RemoteResourceCache::cachedSourceImage() which will be used by
RemoteDisplayListRecorder::setState() to replace the
RenderingResourceIdentifier of the pattern's tileImage by an actual
SourceImage.

  • GPUProcess/graphics/QualifiedResourceHeap.h:

(WebKit::QualifiedResourceHeap::getSourceImage const):

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::setState):
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
(WebKit::RemoteDisplayListRecorder::setStateWithQualifiedIdentifiers): Deleted.

  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cachedSourceImage const):

  • GPUProcess/graphics/RemoteResourceCache.h:

LayoutTests:

Unskip layout tests for gpu process because they are fixed by this change.

  • gpu-process/TestExpectations:
6:43 PM Changeset in webkit [288864] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] Don't register undo actions in undoManager overridden by WKWebView client
https://bugs.webkit.org/show_bug.cgi?id=235928
<rdar://problem/87192657>

Patch by Matt Gilligan <matthew_gilligan@apple.com> on 2022-01-31
Reviewed by Tim Horton.

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::registerEditCommand):
Use -[WKContentView undoManagerForWebView] rather than -undoManager to prevent registering
actions in an undo manager overridden by a WKWebView subclass. This ensures that all
actions are registered in the same manager. If the client has disabled groupsByEvent on the
overridden undoManager, this prevents an exception from being thrown due to registering
actions outside of an undo group.

5:57 PM Changeset in webkit [288863] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.2

Tag Safari-614.1.1.2.

5:56 PM Changeset in webkit [288862] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.2

5:30 PM Changeset in webkit [288861] by Robert Jenner
  • 2 edits in trunk/LayoutTests

REGRESSION(288052?): editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html makes subsequent test fail, as DumpRenderTree compares to wrong expected result
https://bugs.webkit.org/show_bug.cgi?id=235733

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Disabling test to verify cause of test failures.
5:19 PM Changeset in webkit [288860] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Clean up some issues in the 'com.apple.WebKit.adattributiond.sb' sandbox
https://bugs.webkit.org/show_bug.cgi?id=235929
<rdar://88081007>

Patch by Brent Fulgham <Brent Fulgham> on 2022-01-31
Reviewed by Alex Christensen.

Revise a few syntax issues in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb:
5:10 PM Changeset in webkit [288859] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Add to AXLogger the ability to log only from the specified thread.
https://bugs.webkit.org/show_bug.cgi?id=235843
<rdar://problem/88211205>

Reviewed by Chris Fleizach.

No change in functionality, debugging code.

Determine whether to log messages for the invoking thread based on the
value of a static hardcoded variable. It makes figuring out the flow of
method calls and messages when you can log only from the main thread,
off the main thread, or the combination.

  • accessibility/AXLogger.cpp:

(WebCore::shouldLog):
(WebCore::AXLogger::AXLogger):
(WebCore::AXLogger::~AXLogger):
(WebCore::AXLogger::log):
(WebCore::AXLogger::add):
(WebCore::operator<<):

  • accessibility/AXLogger.h:
4:31 PM Changeset in webkit [288858] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.1.1

Tag Safari-613.1.16.1.1.

4:31 PM Changeset in webkit [288857] by Russell Epstein
  • 1 copy in tags/Safari-613.1.16.0.1

Tag Safari-613.1.16.0.1.

4:30 PM Changeset in webkit [288856] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Add remaining MacroAssemblerRISCV64 branching operations
https://bugs.webkit.org/show_bug.cgi?id=235886

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-31
Reviewed by Yusuke Suzuki.

Provide MacroAssemblerRISCV64 implementations for the remaining
branching operations. When branching on non-overlow conditions, the
implementations remain pretty trivial. For the overflow condition,
a helper method is provided to cover different-sized operations as well
as operation-specific instruction sequences.

  • assembler/MacroAssemblerRISCV64.h:

(JSC::MacroAssemblerRISCV64::branchAdd32):
(JSC::MacroAssemblerRISCV64::branchAdd64):
(JSC::MacroAssemblerRISCV64::branchSub32):
(JSC::MacroAssemblerRISCV64::branchSub64):
(JSC::MacroAssemblerRISCV64::branchMul32):
(JSC::MacroAssemblerRISCV64::branchMul64):
(JSC::MacroAssemblerRISCV64::branchNeg32):
(JSC::MacroAssemblerRISCV64::branchNeg64):
(JSC::MacroAssemblerRISCV64::branchForArithmeticOverflow):

4:02 PM Changeset in webkit [288855] by Russell Epstein
  • 2 edits in branches/safari-614.1.2-branch/Source/JavaScriptCore

Cherry-pick r288854. rdar://problem/88299213

Try-reserving Structure heap after reserving all the other heaps including JIT heap
https://bugs.webkit.org/show_bug.cgi?id=235922

Reviewed by Saam Barati.

Structure heap should be reserved after reserving all the other heaps including JIT heap.

  • runtime/InitializeThreading.cpp: (JSC::initialize):

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

3:50 PM Changeset in webkit [288854] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Try-reserving Structure heap after reserving all the other heaps including JIT heap
https://bugs.webkit.org/show_bug.cgi?id=235922

Reviewed by Saam Barati.

Structure heap should be reserved after reserving all the other heaps including JIT heap.

  • runtime/InitializeThreading.cpp:

(JSC::initialize):

3:29 PM Changeset in webkit [288853] by Russell Epstein
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r288829. rdar://problem/87402815

LineLayout::collectOverflow() should null check m_inlineContent
https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::collectOverflow):

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

3:29 PM Changeset in webkit [288852] by Russell Epstein
  • 8 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288652. rdar://problem/87169406

[WebAuthn] We should pass extensions to ASC if possible
https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (authenticationExtensionsClientInputs):
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::toNSString): (WebKit::toASCExtensions): (WebKit::configureRegistrationRequestContext): (WebKit::configurationAssertionRequestContext):
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

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

3:29 PM Changeset in webkit [288851] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r288095. rdar://problem/88286876

[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
https://bugs.webkit.org/show_bug.cgi?id=235286

Reviewed by Antti Koivisto.

Source/WebCore:

When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").

Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): (WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts at the beginning of the run and ends right before at the last character.

LayoutTests:

  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
  • platform/ios/fast/text/basic/015-expected.txt: Progressions.
  • platform/mac/fast/text/basic/015-expected.txt:

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

3:17 PM Changeset in webkit [288850] by Robert Jenner
  • 2 edits in branches/safari-613-branch/LayoutTests

Unreviewed test gardening, fix a bad merge (r288843)

  • platform/mac-wk2/TestExpectations:
3:11 PM Changeset in webkit [288849] by Megan Gardner
  • 4 edits in trunk

Collapsed ranges return zero rects in DocumentContext
https://bugs.webkit.org/show_bug.cgi?id=235844

Reviewed by Tim Horton.

Source/WebKit:

Test: DocumentEditingContext.RectsRequestInContentEditableWithDivBreaks

When getting the DocumentContext for a line, followed by a blank line, the blank link will
be represented by a collapsed range. This is a result of the emitCharacter call from representNodeOffsetZero.
This possibly a bug, but rather than try and fix this issue within TextIterator itself, we are
mitigating this issue by instead of using the collapsed range and the resulting non-existent character rect,
using the caret bounding rect. This gives us a more accurate bounding rect for situations like
this that result in collapsed ranges. And this would cover all other situations that might result in
a collapsed range from TextIterator.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

3:04 PM Changeset in webkit [288848] by Patrick Angle
  • 2 edits in trunk/Source/WebKit

Web Inspector: [Cocoa] Crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange
https://bugs.webkit.org/show_bug.cgi?id=235842

Reviewed by Timothy Hatcher.

Speculatively fix an occasional crash in WebKit::WebInspectorUIProxy::attachmentViewDidChange by ensuring that
the WebInspectorUIProxy still exists before calling attachmentViewDidChange.

Currently we are sometimes crashing while attempting to m_objCAdapter.get(), which is the first use of a
member variable in WebInspectorUIProxy::attachmentViewDidChange. This retain pointer should never be able to
not exists, since it storing nil is a valid state. This points to the WebInspectorUIProxy itself no longer
existing. The fix is to check that we actually have a WebInspectorUIProxy before calling
attachmentViewDidChange. This is also just good practice since WebPageProxy::inspector() is also able to
return nullptr under certain circumstances, and all other calls to it are guarded to check if the
WebInspectorUIProxy is still around first.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setInspectorAttachmentView):

2:52 PM Changeset in webkit [288847] by Said Abou-Hallawa
  • 12 edits in trunk/Source/WebKit

[GPU Process] Remove the resource use counters from the remote resource cache
https://bugs.webkit.org/show_bug.cgi?id=235636

Reviewed by Simon Fraser.

The display list items and the resource management messages are both
communicated from the WebProcess and the GPUProcess through the stream
connection. The resources will be sent to the GPUProcess, consumed by
the display items and then released in the right order. So there is no
need anymore for the resource use counters.

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::setStateWithQualifiedIdentifiers):
(WebKit::RemoteDisplayListRecorder::clipToImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawGlyphsWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawImageBufferWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawNativeImageWithQualifiedIdentifier):
(WebKit::RemoteDisplayListRecorder::drawPatternWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::releaseRemoteResource):
(WebKit::RemoteRenderingBackend::releaseRemoteResourceWithQualifiedIdentifier):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
  • GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheImageBuffer):
(WebKit::RemoteResourceCache::cacheNativeImage):
(WebKit::RemoteResourceCache::cacheFont):
(WebKit::RemoteResourceCache::releaseRemoteResource):
(WebKit::RemoteResourceCache::ensureResourceUseCounter): Deleted.
(WebKit::RemoteResourceCache::maybeRemoveResource): Deleted.
(WebKit::RemoteResourceCache::recordResourceUse): Deleted.
(WebKit::RemoteResourceCache::updateHasActiveDrawables): Deleted.

  • GPUProcess/graphics/RemoteResourceCache.h:

(WebKit::RemoteResourceCache::hasActiveDrawables const):
(): Deleted.

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
(WebKit::RemoteRenderingBackendProxy::recordNativeImageUse): Deleted.
(WebKit::RemoteRenderingBackendProxy::recordFontUse): Deleted.
(WebKit::RemoteRenderingBackendProxy::recordImageBufferUse): Deleted.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::cacheImageBuffer):
(WebKit::RemoteResourceCacheProxy::cachedImageBuffer const):
(WebKit::RemoteResourceCacheProxy::releaseImageBuffer):
(WebKit::RemoteResourceCacheProxy::recordImageBufferUse):
(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
(WebKit::RemoteResourceCacheProxy::recordFontUse):
(WebKit::RemoteResourceCacheProxy::releaseNativeImage):
(WebKit::RemoteResourceCacheProxy::clearNativeImageMap):
(WebKit::RemoteResourceCacheProxy::releaseAllRemoteFonts):
(WebKit::RemoteResourceCacheProxy::finalizeRenderingUpdateForFonts):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
2:36 PM Changeset in webkit [288846] by Robert Jenner
  • 2 edits in trunk/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://problem/86037417

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Temporarily disabling this test.
2:24 PM Changeset in webkit [288845] by Robert Jenner
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

Revert "WindowServer returned not alive with context:,unresponsive work processor(s)"

This reverts commit ce81b19378b9a6f103bd3b4a8d126f9a10e49db1.

2:13 PM Changeset in webkit [288844] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=235901
<rdar://88241768>

Reviewed by Brent Fulgham.

  • WebProcess/com.apple.WebProcess.sb.in:
2:06 PM Changeset in webkit [288843] by Robert Jenner
  • 2 edits in branches/safari-613-branch/LayoutTests

WindowServer returned not alive with context:,unresponsive work processor(s)
rdar://86037417

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2022-01-25

  • platform/mac-wk2/TestExpectations: Temporarily disabling test.
2:02 PM Changeset in webkit [288842] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.0-branch/Source/WebCore

Cherry-pick r288829. rdar://problem/87402815

LineLayout::collectOverflow() should null check m_inlineContent
https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::collectOverflow):

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

2:01 PM Changeset in webkit [288841] by Russell Epstein
  • 2 edits in branches/safari-613.1.16.1-branch/Source/WebCore

Cherry-pick r288829. rdar://problem/87402815

LineLayout::collectOverflow() should null check m_inlineContent
https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp: (WebCore::LayoutIntegration::LineLayout::collectOverflow):

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

1:37 PM Changeset in webkit [288840] by rniwa@webkit.org
  • 8 edits
    2 deletes in trunk

Delete runtime flag for subresource integrity
https://bugs.webkit.org/show_bug.cgi?id=235876

Reviewed by Darin Adler.

Source/WebCore:

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • html/HTMLLinkElement.idl:
  • html/HTMLScriptElement.idl:

Source/WTF:

Deleted the runtime flag.

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

Deleted the test which was testing the behavior of WebKit when subresource integrity is disabled.

  • http/tests/subresource-integrity/sri-disabled-with-setting-expected.txt: Removed.
  • http/tests/subresource-integrity/sri-disabled-with-setting.html: Removed.
1:17 PM Changeset in webkit [288839] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.3

1:15 PM Changeset in webkit [288838] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Fix offlineasm lowering of arithmetic branch instructions with address destinations
https://bugs.webkit.org/show_bug.cgi?id=235887

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-31
Reviewed by Yusuke Suzuki.

Fix lowering of baddi* and bsubi* instructions in the riscv64 offlineasm
backend. Node.riscCloneWithOperandsLowered() doesn't do the job properly
when the result of the arithmetic operation has to be stored back into
memory. In that case, right now these instructions are lowered into a
sequence that loads from memory, performs the arithmetic operation,
sets up the branch and only then stores the result back into memory,
which means the result never gets written back if the branch is taken.
Most prominently this breaks the execution counter through which JIT
entry is decided.

The riscv64LowerMisplacedAddresses() pass is specialized to cover
baddi* and bsubi* instructions whose destination operand is an address.
A manual sequence is constructed, loading, adding/subtracting, storing
and only then branching on the given condition.

  • offlineasm/riscv64.rb:
1:01 PM Changeset in webkit [288837] by Russell Epstein
  • 1 copy in branches/safari-614.1.2-branch

New branch.

12:51 PM Changeset in webkit [288836] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Revert pull request when retrying
https://bugs.webkit.org/show_bug.cgi?id=235825
<rdar://problem/88187688>

Reviewed by Aakash Jain.

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

(UnApplyPatch.doStepIf): Only run if 'patch_id' is defined.
(UnApplyPatch.hideStepIf): Hide step if we aren't doing it.
(RevertPullRequestChanges): Clean checkout and checkout base hash if
'github.base.sha' is define.
(CompileWebKit.evaluateCommand): Add RevertPullRequestChanges step.
(RunJavaScriptCoreTests.evaluateCommand): Ditto.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunWebKitTestsRedTree.evaluateCommand): Ditto.
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.

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

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

12:43 PM Changeset in webkit [288835] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

[Mac] Fix TestWebKitAPI build
https://bugs.webkit.org/show_bug.cgi?id=235906

Reviewed by Tim Horton.

/usr/include/cups/cups.h has this:
# define UniversalPrint 1

And Source/ThirdParty/gtest/include/gtest/gtest-printers.h has this:
void UniversalPrint(const T& value, ::std::ostream* os);

  • TestWebKitAPI/config.h:
12:40 PM Changeset in webkit [288834] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613.1.16.1-branch

Cherry-pick r288095. rdar://problem/88286876

[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
https://bugs.webkit.org/show_bug.cgi?id=235286

Reviewed by Antti Koivisto.

Source/WebCore:

When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").

Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): (WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts at the beginning of the run and ends right before at the last character.

LayoutTests:

  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
  • platform/ios/fast/text/basic/015-expected.txt: Progressions.
  • platform/mac/fast/text/basic/015-expected.txt:

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

12:39 PM Changeset in webkit [288833] by Russell Epstein
  • 8 edits in branches/safari-613.1.16.1-branch/Source/WebKit

Cherry-pick r288652. rdar://problem/87169406

[WebAuthn] We should pass extensions to ASC if possible
https://bugs.webkit.org/show_bug.cgi?id=235533
rdar://87169406

Reviewed by Brent Fulgham.

This patch starts passing WebAuthn extensions to ASC if possible,
in order to support the googleLegacyAppidSupport extension, which
is required to register security keys on google.com. It also starts
passing the attestationPreference option, which was not being passed before.

Tested manually. Previous version of patch contained
TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialRequestOptionsASC
and TestWebKitAPI.WebAuthenticationPanel.PublicKeyCredentialCreationOptionsASC,
but were removed due to difficulty softlinking from tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/API/Cocoa/_WKAuthenticationExtensionsClientInputs.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (authenticationExtensionsClientInputs):
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::toNSString): (WebKit::toASCExtensions): (WebKit::configureRegistrationRequestContext): (WebKit::configurationAssertionRequestContext):
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

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

12:39 PM Changeset in webkit [288832] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-613.1.16.0-branch

Cherry-pick r288095. rdar://problem/88286876

[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
https://bugs.webkit.org/show_bug.cgi?id=235286

Reviewed by Antti Koivisto.

Source/WebCore:

When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").

Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp: (WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const): (WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts at the beginning of the run and ends right before at the last character.

LayoutTests:

  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
  • fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
  • platform/ios/fast/text/basic/015-expected.txt: Progressions.
  • platform/mac/fast/text/basic/015-expected.txt:

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

12:32 PM Changeset in webkit [288831] by Aditya Keerthi
  • 4 edits in trunk/Source

[iOS] SharePlay is shown prominently for system-provided Share Sheets
https://bugs.webkit.org/show_bug.cgi?id=235895
rdar://88268450

Reviewed by Wenson Hsieh.

Source/WebKit:

Content shared using the Web Share API should not display a SharePlay action.

  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithShareDataArray:inRect:]):

Use -[UIActivityViewController setExcludedActivityTypes:] to ensure
a SharePlay action is not displayed.

Source/WTF:

  • wtf/PlatformHave.h:
12:31 PM Changeset in webkit [288830] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.1-branch/Source

Versioning.

WebKit-7613.1.16.1.1

12:29 PM Changeset in webkit [288829] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

LineLayout::collectOverflow() should null check m_inlineContent
https://bugs.webkit.org/show_bug.cgi?id=235902
rdar://87402815

Reviewed by Alan Bujtas.

Speculative fix but it can be null.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::collectOverflow):

12:29 PM Changeset in webkit [288828] by Russell Epstein
  • 9 edits in branches/safari-613.1.16.0-branch/Source

Versioning.

WebKit-7613.1.16.0.1

12:08 PM Changeset in webkit [288827] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Source/WebCore:
Changed playbackRate and defaultPlaybackRate from unrestricted double
to double.
https://bugs.webkit.org/show_bug.cgi?id=235174
rdar://problem/87815745

Patch by Takeshi Sone <takeshi.sone@gmail.com> on 2022-01-31
Reviewed by Eric Carlson.

Test: media/video-playbackrate-undefined.html

  • html/HTMLMediaElement.idl:

LayoutTests:
Added a test to verify that setting undefined to video.playbackRate
raises an exception.
https://bugs.webkit.org/show_bug.cgi?id=235174
rdar://problem/87815745

Patch by Takeshi Sone <takeshi.sone@gmail.com> on 2022-01-31
Reviewed by Eric Carlson.

  • media/video-playbackrate-undefined-expected.txt: Added.
  • media/video-playbackrate-undefined.html: Added.
11:51 AM Changeset in webkit [288826] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS][WP] Restrict image decoders
https://bugs.webkit.org/show_bug.cgi?id=234175
<rdar://problem/86650455>

Unreviewed, addressing additional review comments.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
11:36 AM Changeset in webkit [288825] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[WP] Remove PostScript conversion code
https://bugs.webkit.org/show_bug.cgi?id=235892
<rdar://88172449>

Reviewed by Brent Fulgham.

The WebContent process no longer has access to the PostScript conversion service, so there is no need to keep this code.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::streamDidFinishLoading):
(WebKit::PDFPlugin::manualStreamDidFinishLoading):
(WebKit::PDFPlugin::convertPostScriptDataIfNeeded): Deleted.

11:29 AM Changeset in webkit [288824] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.3-branch

New branch.

11:29 AM Changeset in webkit [288823] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.2-branch

New branch.

11:29 AM Changeset in webkit [288822] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.1-branch

New branch.

11:29 AM Changeset in webkit [288821] by Russell Epstein
  • 1 copy in branches/safari-613.1.16.0-branch

New branch.

11:04 AM Changeset in webkit [288820] by commit-queue@webkit.org
  • 37 edits
    1 delete in trunk

Fix handling of module script errors in WebCore
https://bugs.webkit.org/show_bug.cgi?id=218284

Patch by Asumu Takikawa <asumu@igalia.com> on 2022-01-31
Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

Set test expectations to PASS for fixed behavior in module tests.
For import assertion tests, set different error behavior from
load errors getting dispatched.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/charset-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/content-type-checking-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/cors-crossorigin-requests-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-basic-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/integrity-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/load-error-events-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/empty-assertion-clause-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/invalid-type-assertion-error-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/unsupported-assertion-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/cors-crossorigin-requests-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/integrity-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/load-error-events-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/compilation-error-1-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/compilation-error-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/specifier-error-expected.txt:

Source/WebCore:

According to the HTML spec, script fetch errors get dispatched to the
script (with no error value), but load errors should get reported to
the global object and dispatched with an error value included.
This patch implements that behavior for module scripts.

In addition, reported errors from module scripts are never expected to
be muted. To implement this, we add a fromModule flag to suppress the
error muting in canIncludeErrorDetails.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::reportException):

  • bindings/js/JSDOMExceptionHandling.h:
  • bindings/js/ModuleFetchFailureKind.h:
  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::setupModuleScriptHandlers):
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::reportExceptionFromScriptError):

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::rejectWithFetchError):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::rejectPromise):
(WebCore::ScriptModuleLoader::notifyFinished):

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::error const):
(WebCore::LoadableClassicScript::notifyFinished):

  • dom/LoadableScript.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeScriptAndDispatchEvent):

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::canIncludeErrorDetails):
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::dispatchErrorEvent):

  • dom/ScriptExecutionContext.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):
(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):

LayoutTests:

Adjust tests expectations to match fixed script loading behvior.
Also add DumpJSConsoleLogInStdErr for flaky test (see bug 182177).
Changed a JS DOM test to match spec behavior.

  • TestExpectations:
  • js/dom/modules/module-incorrect-relative-specifier-expected.txt:
  • js/dom/modules/module-incorrect-relative-specifier.html:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/errorhandling-expected.txt: Removed.
10:11 AM Changeset in webkit [288819] by Russell Epstein
  • 1 copy in tags/Safari-614.1.1.1

Tag Safari-614.1.1.1.

10:05 AM Changeset in webkit [288818] by Russell Epstein
  • 9 edits in branches/safari-614.1.1-branch/Source

Versioning.

WebKit-7614.1.1.1

9:31 AM Changeset in webkit [288817] by pvollan@apple.com
  • 10 edits in trunk/Source

[iOS][WP] Restrict image decoders
https://bugs.webkit.org/show_bug.cgi?id=234175

Reviewed by Brent Fulgham.

Source/WebCore:

Enable restriced decoding for images.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):

Source/WebCore/PAL:

Include WebKitAdditions soft link files.

  • pal/cf/VideoToolboxSoftLink.cpp:
  • pal/cf/VideoToolboxSoftLink.h:

Source/WebKit:

Restrict image decoders in order to enable further sandbox strengthening.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

8:55 AM Changeset in webkit [288816] by J Pascoe
  • 11 edits in trunk

[WebAuthn] Provide SPI to export/import local credentials
https://bugs.webkit.org/show_bug.cgi?id=234112
rdar://84822000

Reviewed by Brent Fulgham.

Source/WebCore:

This change adds SPI to _WKWebAuthenticationPanel to provide the ability
to import / export local credentials. Constants are used during serialization
as keys.

  • Modules/webauthn/WebAuthenticationConstants.h: constants for credential serialization

Source/WebKit:

Covered by new API tests.

This patch adds new SPI to _WKWebAuthenticationPanel.h to import and export local
webauthn credentials. CBOR is used for serialization. WKErrors are used to differentiate
between malformed vs duplicate keys during import.

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

(localizedDescriptionForErrorCode):

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

(+[_WKWebAuthenticationPanel importLocalAuthenticatorCredential:error:]):
(+[_WKWebAuthenticationPanel exportLocalAuthenticatorCredentialWithID:error:]):

Tools:

Add tests for SPI to import / export local webauthn credentials.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST): New tests for import/export

8:05 AM Changeset in webkit [288815] by keith_miller@apple.com
  • 108 edits
    3 copies
    2 adds
    2 deletes in trunk/Source

Reland StructureID overhaul
https://bugs.webkit.org/show_bug.cgi?id=235720

Reviewed by Yusuke Suzuki.

Changes since revert:

Source/JavaScriptCore:

Have StructureAlignedMemoryAllocator keep halving the size of VA
pool it will allocate from until it successfully reserves the
address space.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::AccessCase):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::canBeShared):

  • bytecode/AccessCase.h:

(JSC::AccessCase::structure const):
(JSC::AccessCase::newStructure const):
(JSC::AccessCase::hash const):
(JSC::AccessCase::AccessCase):

  • bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::computeUpdatedPrediction):

  • bytecode/ArrayProfile.h:
  • bytecode/CheckPrivateBrandStatus.cpp:

(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::stronglyVisitWeakReferences):

  • bytecode/GetByIdMetadata.h:

(JSC::GetByIdModeMetadata::GetByIdModeMetadata):
(JSC::GetByIdModeMetadata::clearToDefaultModeWithoutCache):

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeFromLLInt):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::rewireStubAsJumpInAccess):
(JSC::InlineAccess::resetStubAsJumpInAccess):

  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::offsetOfStructureID):
(JSC::InternalFunctionAllocationProfile::structure):
(JSC::InternalFunctionAllocationProfile::clear):
(JSC::InternalFunctionAllocationProfile::visitAggregate):
(JSC::InternalFunctionAllocationProfile::createAllocationStructureFromBase):
(JSC::InternalFunctionAllocationProfile::offsetOfStructure): Deleted.

  • bytecode/PolyProtoAccessChain.cpp:

(JSC::PolyProtoAccessChain::needImpurePropertyWatchpoint const):

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

(JSC::PolymorphicAccess::visitWeak const):

  • bytecode/PutByIdFlags.h:
  • bytecode/PutByStatus.cpp:

(JSC::PutByStatus::computeFromLLInt):
(JSC::PutByStatus::computeForStubInfo):

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromCell):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::inlineAccessBaseStructure):
(JSC::StructureStubInfo::offsetOfInlineAccessBaseStructureID):
(JSC::StructureStubInfo::offsetOfInlineAccessBaseStructure): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::branchWeakStructure):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalize):

  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):
(JSC::DFG::SpeculativeJIT::emitUntypedBranch):
(JSC::DFG::SpeculativeJIT::compile):

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

(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • heap/AbstractSlotVisitor.h:
  • heap/AbstractSlotVisitorInlines.h:

(JSC::AbstractSlotVisitor::append):
(JSC::AbstractSlotVisitor::appendHidden):

  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::runEndPhase):

  • heap/Heap.h:

(JSC::Heap::structureIDTable): Deleted.

  • heap/IsoAlignedMemoryAllocator.cpp:

(JSC::IsoAlignedMemoryAllocator::IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryMallocBlock):
(JSC::IsoAlignedMemoryAllocator::freeBlock):
(JSC::IsoAlignedMemoryAllocator::commitBlock):
(JSC::IsoAlignedMemoryAllocator::decommitBlock):
(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory): Deleted.
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory): Deleted.

  • heap/IsoAlignedMemoryAllocator.h:
  • heap/IsoMemoryAllocatorBase.cpp: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.cpp.

(JSC::IsoMemoryAllocatorBase::IsoMemoryAllocatorBase):
(JSC::IsoMemoryAllocatorBase::~IsoMemoryAllocatorBase):
(JSC::IsoMemoryAllocatorBase::releaseMemoryFromSubclassDestructor):
(JSC::IsoMemoryAllocatorBase::tryAllocateAlignedMemory):
(JSC::IsoMemoryAllocatorBase::freeAlignedMemory):

  • heap/IsoMemoryAllocatorBase.h: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
  • heap/IsoSubspace.cpp:

(JSC::IsoSubspace::IsoSubspace):
(JSC::IsoSubspace::tryAllocateFromLowerTier):

  • heap/IsoSubspace.h:
  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::tryCreateForLowerTier):
(JSC::PreciseAllocation::createForLowerTier): Deleted.

  • heap/PreciseAllocation.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendJSCellOrAuxiliary):

  • heap/SlotVisitor.h:
  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::append):
(JSC::SlotVisitor::appendHidden):

  • heap/StructureAlignedMemoryAllocator.cpp: Added.

(JSC::StructureAlignedMemoryAllocator::StructureAlignedMemoryAllocator):
(JSC::StructureAlignedMemoryAllocator::~StructureAlignedMemoryAllocator):
(JSC::StructureAlignedMemoryAllocator::dump const):
(JSC::StructureAlignedMemoryAllocator::tryAllocateMemory):
(JSC::StructureAlignedMemoryAllocator::freeMemory):
(JSC::StructureAlignedMemoryAllocator::tryReallocateMemory):
(JSC::StructureMemoryManager::StructureMemoryManager):
(JSC::StructureMemoryManager::tryMallocStructureBlock):
(JSC::StructureMemoryManager::freeStructureBlock):
(JSC::StructureAlignedMemoryAllocator::initializeStructureAddressSpace):
(JSC::StructureAlignedMemoryAllocator::tryMallocBlock):
(JSC::StructureAlignedMemoryAllocator::freeBlock):
(JSC::StructureAlignedMemoryAllocator::commitBlock):
(JSC::StructureAlignedMemoryAllocator::decommitBlock):

  • heap/StructureAlignedMemoryAllocator.h: Copied from Source/JavaScriptCore/heap/IsoAlignedMemoryAllocator.h.
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitStoreStructureWithTypeInfo):
(JSC::AssemblyHelpers::emitNonNullDecodeStructureID):
(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitLoadPrototype):
(JSC::AssemblyHelpers::emitRandomThunk):
(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchStructure):
(JSC::AssemblyHelpers::nukeStructureAndStoreButterfly):

  • jit/GCAwareJITStubRoutine.cpp:

(JSC::PolymorphicAccessJITStubRoutine::computeHash):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::generateGetByIdInlineAccess):
(JSC::JITPutByIdGenerator::generateBaselineDataICFastPath):
(JSC::JITInByIdGenerator::generateBaselineDataICFastPath):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_typeof_is_undefined):
(JSC::JIT::emit_op_jeq_null):
(JSC::JIT::emit_op_jneq_null):
(JSC::JIT::emit_op_eq_null):
(JSC::JIT::emit_op_neq_null):
(JSC::JIT::emit_op_get_prototype_of):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_property_enumerator):

  • jit/JITStubRoutine.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::performLLIntGetByID):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/BigIntPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/BooleanPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • runtime/DatePrototype.cpp:

(JSC::formateDateInstance):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
(JSC::ErrorInstance::sanitizedToString):

  • runtime/ErrorPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::visitChildrenImpl):

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

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::visitChildrenImpl):

  • runtime/FunctionRareData.h:
  • runtime/HasOwnPropertyCache.h:
  • runtime/InitializeThreading.cpp:

(JSC::initialize):

  • runtime/JSCConfig.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure const):
(JSC::JSValue::dumpForBacktrace const):

  • runtime/JSCell.cpp:

(JSC::JSCell::toObjectSlow const):

  • runtime/JSCell.h:

(JSC::JSCell::clearStructure):

  • runtime/JSCellInlines.h:

(JSC::JSCell::structure const):
(JSC::JSCell::setStructure):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::visitChildrenImpl):

  • runtime/JSGlobalObject.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::visitButterflyImpl):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::putDirectCustomGetterSetterWithoutTransition):
(JSC::JSObject::putDirectNonIndexAccessorWithoutTransition):

  • runtime/JSObject.h:

(JSC::JSObject::nukeStructureAndSetButterfly):
(JSC::JSObject::getPropertySlot):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
(JSC::JSObject::putDirectWithoutTransition):
(JSC::JSObject::putDirectInternal):

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::JSPropertyNameEnumerator):
(JSC::JSPropertyNameEnumerator::visitChildrenImpl):

  • runtime/JSPropertyNameEnumerator.h:
  • runtime/NumberPrototype.cpp:

(JSC::toThisNumber):

  • runtime/ObjectPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::objectPrototypeToString):

  • runtime/RegExpPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::~Structure):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::dump const):
(JSC::Structure::canCachePropertyNameEnumerator const):

  • runtime/Structure.h:

(JSC::Structure::id const):

  • runtime/StructureChain.cpp:

(JSC::StructureChain::create):
(JSC::StructureChain::visitChildrenImpl):

  • runtime/StructureID.h: Added.

(JSC::StructureID::nuke const):
(JSC::StructureID::isNuked const):
(JSC::StructureID::decontaminate const):
(JSC::StructureID::operator bool const):
(JSC::StructureID::operator== const):
(JSC::StructureID::operator!= const):
(JSC::StructureID::bits const):
(JSC::StructureID::StructureID):
(JSC::StructureID::isHashTableDeletedValue const):
(JSC::StructureID::decode const):
(JSC::StructureID::encode):
(JSC::StructureIDHash::hash):
(JSC::StructureIDHash::equal):

  • runtime/StructureIDBlob.h:
  • runtime/StructureIDTable.cpp: Removed.
  • runtime/StructureIDTable.h: Removed.
  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::StructureRareData):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::tryCachePropertyNameEnumeratorViaWatchpoint):

  • runtime/SymbolPrototype.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::processLogEntries):
(JSC::TypeProfilerLog::visit):

  • runtime/VM.h:

(JSC::VM::getStructure): Deleted.
(JSC::VM::tryGetStructure): Deleted.

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierStructureID::WriteBarrierStructureID):
(JSC::WriteBarrierStructureID::get const):
(JSC::WriteBarrierStructureID::operator* const):
(JSC::WriteBarrierStructureID::operator-> const):
(JSC::WriteBarrierStructureID::clear):
(JSC::WriteBarrierStructureID::operator bool const):
(JSC::WriteBarrierStructureID::operator! const):
(JSC::WriteBarrierStructureID::setWithoutWriteBarrier):
(JSC::WriteBarrierStructureID::unvalidatedGet const):
(JSC::WriteBarrierStructureID::value const):

  • runtime/WriteBarrierInlines.h:

(JSC::WriteBarrierStructureID::set):
(JSC::WriteBarrierStructureID::setMayBeNull):
(JSC::WriteBarrierStructureID::setEarlyValue):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::validateJSCell):

  • tools/Integrity.cpp:
  • tools/Integrity.h:
  • tools/IntegrityInlines.h:

(JSC::Integrity::auditStructureID):

  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::visitChildrenImpl):

  • tools/JSDollarVM.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • wasm/js/WebAssemblyGlobalPrototype.cpp:

(JSC::getGlobal):

Source/WTF:

Add a try version of reserveUncommitted and reserveAndCommit
so tryReserveUncommitted can call them if needed.

  • wtf/OSAllocator.h:
  • wtf/posix/OSAllocatorPOSIX.cpp:

(WTF::tryReserveAndCommit):
(WTF::tryReserveUncommitted):
(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::tryReserveUncommittedAligned):
(WTF::OSAllocator::reserveAndCommit):

  • wtf/win/OSAllocatorWin.cpp:

(WTF::OSAllocator::tryReserveUncommittedAligned):

7:14 AM Changeset in webkit [288814] by don.olmstead@sony.com
  • 7 edits
    1 copy
    2 moves
    1 add in trunk/Tools

Support additional WPEToolingBackend types
https://bugs.webkit.org/show_bug.cgi?id=235745

Reviewed by Adrian Perez de Castro.

Split up code specific to the fdo backend to allow for additional WPE backend types to be
used. Add some platform defines based on the underlying backend.

This is a precursor to landing a PlayStation variant.

  • wpe/backends/CMakeLists.txt:
  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessInstance::singleton): Deleted.
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend): Deleted.
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend): Deleted.
(WPEToolingBackends::HeadlessViewBackend::backend const): Deleted.
(WPEToolingBackends::HeadlessViewBackend::snapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::updateSnapshot): Deleted.
(WPEToolingBackends::HeadlessViewBackend::vsync): Deleted.

  • wpe/backends/HeadlessViewBackend.h:
  • wpe/backends/PlatformWPE.cmake:
  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::ViewBackend):

  • wpe/backends/ViewBackend.h:
  • wpe/backends/fdo/HeadlessViewBackendFdo.cpp: Copied from Tools/wpe/backends/HeadlessViewBackend.cpp.

(WPEToolingBackends::HeadlessInstance::singleton):
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::backend const):
(WPEToolingBackends::HeadlessViewBackend::snapshot):
(WPEToolingBackends::HeadlessViewBackend::updateSnapshot):
(WPEToolingBackends::HeadlessViewBackend::vsync):

  • wpe/backends/fdo/WindowViewBackend.cpp: Renamed from Tools/wpe/backends/WindowViewBackend.cpp.
  • wpe/backends/fdo/WindowViewBackend.h: Renamed from Tools/wpe/backends/WindowViewBackend.h.
6:56 AM Changeset in webkit [288813] by Antti Koivisto
  • 12 edits in trunk

[CSS Container Queries] Check for query containers when matching rules
https://bugs.webkit.org/show_bug.cgi?id=235881

Reviewed by Antoine Quint.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:

Source/WebCore:

Skip rules inside container queries when there are no container ancestors.

  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::containerQueryMatches):

Add the matching function.

This patch doesn't yet do any actual container query matching, it just checks
if we are inside a query container.

  • style/ElementRuleCollector.h:
  • style/RuleSet.h:

(WebCore::Style::RuleSet::containerQueryFor const):

  • style/SelectorMatchingState.h:

Add the container stack.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::popParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::TreeResolver::updateQueryContainer):

Maintain the container stack.

  • style/StyleTreeResolver.h:

LayoutTests:

6:16 AM Changeset in webkit [288812] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] WTR: use AXMenuItemSelected for menu item selection change with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235890

Reviewed by Adrian Perez de Castro.

ATSPI uses selection-changed signal for both combo box menus and list boxes, but layout tests expect then to be
different events AXMenuItemSelected and AXSelectedChildrenChanged.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::selectionChanged): Call notifyMenuSelectionChanged() for menus.
(WebCore::AccessibilityAtspi::notifyMenuSelectionChanged const): Emit AXMenuItemSelected.

  • accessibility/atspi/AccessibilityAtspi.h:
5:29 AM Changeset in webkit [288811] by aakash_jain@apple.com
  • 2 edits in trunk/Tools/CISupport/ews-build

[ews] Cleanup code by removing patchFailedToBuild and patchFailedTests properties
https://bugs.webkit.org/show_bug.cgi?id=235860

Reviewed by Ryan Haddad.

Cleanup code by removing patchFailedToBuild and patchFailedTests properties. Those were added in very early days of ews bringup, when corresponding steps (e.g.: UnApplyPatchIfRequired) were listed statically in factories.py. Later on we started invoking steps dynamically using addStepsAfterCurrentStep and UnApplyPatchIfRequired is no longer called in factories.py. We can just remove all these patchFailedToBuild and patchFailedTests properties logic.

Also rename UnApplyPatchIfRequired to UnApplyPatch since this step is run only when it is required

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

(UnApplyPatchIfRequired):
(CompileWebKit.evaluateCommand):
(RunJavaScriptCoreTests.evaluateCommand):
(ReRunWebKitTests.evaluateCommand):
(RunWebKitTestsRedTree.evaluateCommand):
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand):
(ReRunAPITests.evaluateCommand):
(UnApplyPatchIfRequired.doStepIf): Deleted.
(UnApplyPatchIfRequired.hideStepIf): Deleted.
(CompileWebKitWithoutPatch.doStepIf): Deleted.
(CompileWebKitWithoutPatch.hideStepIf): Deleted.

  • Tools/CISupport/ews-build/steps_unittest.py: Updated unit-tests.

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

4:46 AM Changeset in webkit [288810] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] No longer updating due to expired GPG key
https://bugs.webkit.org/show_bug.cgi?id=235869

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

Manually synchronize the SDK GPG key in case our local copy is detected as expired.

This patch includes a drive-by fix regarding toolchains updates. Those were always
regenerated when updating the SDK, because the zip path was assumed to be a host path,
whereas it is actually a path in the sandbox.

  • flatpak/flatpakutils.py:

(run_sanitized):
(FlatpakObject.flatpak):
(FlatpakObject.flatpak_update):
(FlatpakPackage.install):
(WebkitFlatpak._reset_repository):
(WebkitFlatpak.host_path_to_sandbox_path):
(WebkitFlatpak.sandbox_path_to_host_path):
(WebkitFlatpak.main):
(WebkitFlatpak.check_toolchains_generated):
(FlatpakPackage.update): Deleted.

4:16 AM WebKitGTK/2.34.x edited by Alexander Mikhaylenko
(diff)
4:13 AM Changeset in webkit [288809] by Alexander Mikhaylenko
  • 2 edits in trunk/Source/WebKit

REGRESSION(r288644): [GTK4] Criticals when using pinch zoom
https://bugs.webkit.org/show_bug.cgi?id=235883

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseZoomBegin):
Only cancel the click gesture on GTK3. We don't use g_object_set_data() on GTK4.

2:56 AM Changeset in webkit [288808] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK][a11y] Add support for password fields to ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235778

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification): Do not return early for password entries.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::effectiveRole const): Return PasswordText role for password fields.
(WebCore::AccessibilityObjectAtspi::effectiveRoleName const): Ditto.
(WebCore::AccessibilityObjectAtspi::effectiveLocalizedRoleName const): Ditto.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): Ignore text control inner text elements.

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textInserted): Expose the rendered text in case of password field.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.

Tools:

Add test cases for password inputs.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTextIterator):
(testTextSelections):
(testTextStateChanged):

12:48 AM Changeset in webkit [288807] by ysuzuki@apple.com
  • 16 edits
    1 add in trunk/Source

[WTF] Add GenericHashKey
https://bugs.webkit.org/show_bug.cgi?id=235872

Reviewed by Darin Adler.

Source/JavaScriptCore:

Use GenericHashKey and WTF::HashSet / WTF::HashMap.

  • dfg/DFGCommonData.h:
  • dfg/DFGGraph.h:
  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::RangeKey::Hash::hash):
(JSC::DFG::IntegerCheckCombiningPhase::RangeKey::Hash::equal):
(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::addressOfDoubleConstant):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • runtime/DeferredWorkTimer.cpp:
  • runtime/FunctionHasExecutedCache.cpp:

(JSC::FunctionHasExecutedCache::hasExecutedAtOffset):
(JSC::FunctionHasExecutedCache::insertUnexecutedRange):
(JSC::FunctionHasExecutedCache::removeUnexecutedRange):
(JSC::FunctionHasExecutedCache::getFunctionRanges):

  • runtime/FunctionHasExecutedCache.h:

(JSC::FunctionHasExecutedCache::FunctionRange::Hash::hash):
(JSC::FunctionHasExecutedCache::FunctionRange::Hash::equal):

  • runtime/TypeLocationCache.cpp:

(JSC::TypeLocationCache::getTypeLocation):

  • runtime/TypeLocationCache.h:

(JSC::TypeLocationCache::LocationKey::Hash::hash):
(JSC::TypeLocationCache::LocationKey::Hash::equal):

Source/WebCore:

No behavior change. We should use StdMap.
This should be StdMap since it requires ordered iterations by the key, so it should not be a HashMap.

  • platform/graphics/avfoundation/objc/QueuedVideoOutput.h:

Source/WTF:

This patch adds GenericHashKey<T>, which can represent any HashTable's key
even if Key does not have Empty / Deleted values. Previously we were using
StdUnorderedSet / StdUnorderedMap instead. But, (1) they are doing similar
thing to GenericHashKey to keep empty or deleted values, and (2) by using
GenericHashKey we can consistently use WTF::HashMap etc. for all possible
cases.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/GenericHashKey.h: Added.

Jan 30, 2022:

9:47 PM Changeset in webkit [288806] by commit-queue@webkit.org
  • 194 edits
    1 delete in trunk/LayoutTests

Update LayoutTests/resources/testharness.js to 2021-6-24 version
https://bugs.webkit.org/show_bug.cgi?id=235398
<rdar://problem/88126222>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-30
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Update tests to accommodate the API change:

  • assert_throws_js check that the exception is of a particular JS exception type
  • assert_throws_dom check that the exception is of a particular DOMException type from a particular global object.
  • assert_throws_exactly check that the exception is a specific object.
  • IndexedDB-private-browsing/close-in-upgradeneeded.html:
  • IndexedDB-private-browsing/idbcursor-advance-invalid.html:
  • IndexedDB-private-browsing/idbcursor_advance_index2.html:
  • IndexedDB-private-browsing/idbcursor_advance_index3.html:
  • IndexedDB-private-browsing/idbcursor_advance_index6.html:
  • IndexedDB-private-browsing/idbcursor_advance_index7.html:
  • IndexedDB-private-browsing/idbcursor_advance_index8.html:
  • IndexedDB-private-browsing/idbcursor_advance_index9.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore4.html:
  • IndexedDB-private-browsing/idbcursor_advance_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_continue_index2.html:
  • IndexedDB-private-browsing/idbcursor_continue_index3.html:
  • IndexedDB-private-browsing/idbcursor_continue_index4.html:
  • IndexedDB-private-browsing/idbcursor_continue_index7.html:
  • IndexedDB-private-browsing/idbcursor_continue_index8.html:
  • IndexedDB-private-browsing/idbcursor_continue_invalid.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore4.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_continue_objectstore6.html:
  • IndexedDB-private-browsing/idbcursor_delete_index2.html:
  • IndexedDB-private-browsing/idbcursor_delete_index3.html:
  • IndexedDB-private-browsing/idbcursor_delete_index4.html:
  • IndexedDB-private-browsing/idbcursor_delete_index5.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore4.html:
  • IndexedDB-private-browsing/idbcursor_delete_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_update_index2.html:
  • IndexedDB-private-browsing/idbcursor_update_index3.html:
  • IndexedDB-private-browsing/idbcursor_update_index4.html:
  • IndexedDB-private-browsing/idbcursor_update_index5.html:
  • IndexedDB-private-browsing/idbcursor_update_index6.html:
  • IndexedDB-private-browsing/idbcursor_update_index7.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore2.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore3.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore5.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore6.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore7.html:
  • IndexedDB-private-browsing/idbcursor_update_objectstore8.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore11.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore3.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore4.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore6.html:
  • IndexedDB-private-browsing/idbdatabase_createObjectStore9-invalidparameters.html:
  • IndexedDB-private-browsing/idbdatabase_deleteObjectStore2.html:
  • IndexedDB-private-browsing/idbdatabase_deleteObjectStore3.html:
  • IndexedDB-private-browsing/idbdatabase_deleteObjectStore4-not_reused.html:
  • IndexedDB-private-browsing/idbdatabase_transaction.html:
  • IndexedDB-private-browsing/idbdatabase_transaction3.html:
  • IndexedDB-private-browsing/idbdatabase_transaction4.html:
  • IndexedDB-private-browsing/idbdatabase_transaction5.html:
  • IndexedDB-private-browsing/idbfactory_cmp2.html:
  • IndexedDB-private-browsing/idbfactory_open9.html:
  • IndexedDB-private-browsing/idbindex-multientry-arraykeypath.html:
  • IndexedDB-private-browsing/idbindex_count4.html:
  • IndexedDB-private-browsing/idbindex_get5.html:
  • IndexedDB-private-browsing/idbindex_get6.html:
  • IndexedDB-private-browsing/idbindex_get7.html:
  • IndexedDB-private-browsing/idbindex_getKey5.html:
  • IndexedDB-private-browsing/idbindex_getKey6.html:
  • IndexedDB-private-browsing/idbindex_getKey7.html:
  • IndexedDB-private-browsing/idbindex_openCursor.html:
  • IndexedDB-private-browsing/idbindex_openCursor2.html:
  • IndexedDB-private-browsing/idbindex_openKeyCursor.html:
  • IndexedDB-private-browsing/idbindex_openKeyCursor2.html:
  • IndexedDB-private-browsing/idbindex_openKeyCursor3.html:
  • IndexedDB-private-browsing/idbkeyrange_incorrect.html:
  • IndexedDB-private-browsing/idbobjectstore_add10.html:
  • IndexedDB-private-browsing/idbobjectstore_add11.html:
  • IndexedDB-private-browsing/idbobjectstore_add12.html:
  • IndexedDB-private-browsing/idbobjectstore_add13.html:
  • IndexedDB-private-browsing/idbobjectstore_add15.html:
  • IndexedDB-private-browsing/idbobjectstore_add16.html:
  • IndexedDB-private-browsing/idbobjectstore_add9.html:
  • IndexedDB-private-browsing/idbobjectstore_clear3.html:
  • IndexedDB-private-browsing/idbobjectstore_clear4.html:
  • IndexedDB-private-browsing/idbobjectstore_count4.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex10.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex11.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex12.html:
  • IndexedDB-private-browsing/idbobjectstore_createIndex13.html:
  • IndexedDB-private-browsing/idbobjectstore_delete6.html:
  • IndexedDB-private-browsing/idbobjectstore_delete7.html:
  • IndexedDB-private-browsing/idbobjectstore_deleteIndex.html:
  • IndexedDB-private-browsing/idbobjectstore_deleted.html:
  • IndexedDB-private-browsing/idbobjectstore_get6.html:
  • IndexedDB-private-browsing/idbobjectstore_get7.html:
  • IndexedDB-private-browsing/idbobjectstore_openCursor_invalid.html:
  • IndexedDB-private-browsing/idbobjectstore_put10.html:
  • IndexedDB-private-browsing/idbobjectstore_put11.html:
  • IndexedDB-private-browsing/idbobjectstore_put12.html:
  • IndexedDB-private-browsing/idbobjectstore_put13.html:
  • IndexedDB-private-browsing/idbobjectstore_put15.html:
  • IndexedDB-private-browsing/idbobjectstore_put16.html:
  • IndexedDB-private-browsing/idbobjectstore_put9.html:
  • IndexedDB-private-browsing/key_invalid.html:
  • IndexedDB-private-browsing/keypath_invalid.html:
  • IndexedDB-private-browsing/transaction-create_in_versionchange.html:

LayoutTests:

Copy testharness.js from imported/w3c/web-platform-tests

Copy idlharness.js from imported/w3c/web-platform-tests because it uses
the new testharness.js APIs.

Copy webidl2.js from imported/w3c/web-platform-tests to resources/WebIDLParser.js
because idlharness uses new webidl2.js logic.

Delete testharness.css, it is now bundled in testharness.js.

Update tests to accommodate the API change:

  • assert_throws_js check that the exception is of a particular JS exception type
  • assert_throws_dom check that the exception is of a particular DOMException type from a particular global object.
  • assert_throws_exactly check that the exception is a specific object.

Previously assert_throws was used and it hid unexpected exception errors.

Same for promise_rejects_*

async_test(f) now warns if f is not a normal function.

Singl page tests need a setup function.

  • animations/animation-direction-normal.html:
  • animations/animation-direction-reverse.html:
  • animations/change-keyframes-name.html:
  • animations/play-state-paused.html:

async_test(async function {...}) is incorrect (async test expects normal
function that has asynchronous logic, not a function returning a promise.
Use correct form:
promise_test(async function { ... });

  • css-custom-properties-api/registerProperty.html:

Update exception expectation functions.

  • editing/pasteboard/datatransfer-idl-expected.txt:
  • editing/pasteboard/datatransfer-idl.html:

Update the datatransfer related idls from source, otherwise
tests fail (harness now tests for constructor).
Update the results.

  • editing/text-iterator/count-matches-in-frames.html:
  • editing/text-iterator/hidden-textarea-selection-quirk.html:
  • fast/canvas/webgl/webgl2/bindings.html:
  • fast/custom-elements/defined-pseudo-class.html:
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-construct.html:
  • fast/custom-elements/throw-on-dynamic-markup-insertion-counter-reactions.html:
  • fast/dom/document-all.html:
  • fast/dom/elementFromPoint-parameters.html:
  • fast/dom/replaceable-setter-throws-if-defineownproperty-fails.html:
  • fast/dom/window-opener-setter-throws-if-defineownproperty-fails-1.html:
  • fast/dom/window-opener-setter-throws-if-defineownproperty-fails-2.html:
  • fast/events/clipboard-event-constructor.html:
  • fast/files/workers/resources/worker-file-reader-sync-bad-parameter.js:
  • fast/files/xhr-blob-request.html:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-exceptions.html:
  • fast/mediasession/metadata/artworkdownload.html:
  • fast/mediastream/screencapture-user-gesture.html:
  • fetch/fetch-url-serialization.html:
  • http/tests/fetch/fetching-same-resource-with-different-options.html:
  • http/tests/fetch/redirectmode-and-preload.html:
  • http/tests/navigation/pushstate-at-unique-origin-denied.py:
  • http/tests/notifications/notification.html:
  • http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html:
  • http/tests/paymentrequest/payment-is-showing.https.html:
  • http/tests/paymentrequest/payment-request-abort-method.https.html:
  • http/tests/paymentrequest/payment-request-canmakepayment-method.https.html:
  • http/tests/paymentrequest/payment-request-merchant-validation.https.html:
  • http/tests/paymentrequest/payment-request-show-method.https.html:
  • http/tests/paymentrequest/payment-response-rejects-if-not-active.https.html:
  • http/tests/paymentrequest/payment-response-retry-method.https.html:
  • http/tests/paymentrequest/rejects_if_not_active.https.html:
  • http/tests/paymentrequest/updateWith-method-pmi-handling.https.html:
  • http/tests/security/bypassing-cors-checks-for-extension-urls.html:
  • http/tests/security/clean-origin-css-exposed-resource-timing.html:
  • http/tests/security/contentSecurityPolicy/1.1/frame-ancestors/frame-ancestors-overrides-xfo.html:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-default-src.html:
  • http/tests/security/contentSecurityPolicy/1.1/stylehash-default-src.html:
  • http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html:
  • http/tests/security/cross-origin-clean-css-resource-timing.html:
  • http/tests/security/cross-origin-css-resource-timing.html:
  • http/tests/subresource-integrity/sri-fetch.js:
  • http/tests/workers/service/service-worker-crossorigin-fetch.html:
  • http/tests/xmlhttprequest/set-bad-headervalue.html:
  • intersection-observer/intersection-observer-interface.html:
  • js/dom/dom-getters-type-check.html:
  • js/dom/legacy-platform-object-defineOwnProperty.html:
  • js/dom/post-message-symbol.html:
  • js/dom/queue-microtask-window.html:
  • media/track/opera/interfaces/TextTrackCue/vertical.html:
  • media/track/opera/resources/idlharness.js:
  • media/track/texttrackcue/texttrackcue-constructor.html:
  • media/track/w3c/interfaces/TextTrackCue/align.html:
  • pointerevents/ios/pointer-events-implicit-capture-release-exception.html:
  • pointerevents/ios/pointer-events-set-pointer-capture-exceptions.html:
  • pointerevents/pointer-id-crash.html:
  • resources/WebIDLParser.js:
  • resources/idlharness.js:

Update from wpt.

  • resources/testharness.css: Removed.
  • resources/testharness.js:

Update from wpt.

  • storage/websql/openDatabase-deprecation.html:
  • streams/readable-byte-stream-controller.js:
  • streams/readable-stream-byob-reader.js:
  • streams/readable-stream-byob-request.js:
  • streams/readable-stream-getReader.html:
  • streams/reference-implementation/bad-strategies.html:
  • streams/reference-implementation/bad-underlying-sinks.html:
  • streams/reference-implementation/transform-stream-expected.txt:
  • streams/reference-implementation/transform-stream.html:
  • webanimations/accelerated-animation-single-keyframe.html:
  • webanimations/frame-rate/animation-frame-rate.html:
  • webanimations/scheduling-of-animation-with-steps-timing-function-on-effect.html:
  • webanimations/scheduling-of-animation-with-steps-timing-function-on-keyframe.html:
  • webanimations/scheduling-of-css-animation-with-explicit-steps-timing-function-on-some-keyframes.html:
  • webanimations/scheduling-of-css-animation-with-implicit-steps-timing-function.html:
  • webaudio/webaudio-gc.html:
  • webrtc/calling-peerconnection-once-closed.html:
  • webrtc/certificates-indexeddb.html:
  • webrtc/datachannel/creation.html:
  • webrtc/datachannel/datachannel-event.html:
  • webrtc/datachannel/getStats-no-prflx-remote-candidate.html:
  • webrtc/disable-encryption.html:
  • webrtc/legacy-api-expected.txt:
  • webrtc/pc-detached-document.html:
  • webrtc/stun-server-filtering.html:
8:19 PM Changeset in webkit [288805] by Diego Pino Garcia
  • 2 edits in trunk/Source/WTF

[WinCairo] 'fileSystemRepresentation' identifier not found in URL.cpp
https://bugs.webkit.org/show_bug.cgi?id=235875

Unreviewed build fix.

Add missing header include.

  • wtf/URL.cpp:

(WTF::URL::fileSystemPath const):

7:58 PM Changeset in webkit [288804] by rniwa@webkit.org
  • 123 edits
    20 deletes in trunk

Source/WebCore:
Delete code for keygen element
https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto and Darin Adler.

Deleted most of code for keygen since it has been always disabled for a while but preserve
the HTML tree builder behavior for compatibility purposes as required by the HTML5 specification.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h: Also remove the entry for HTMLSlotElement which is no longer

used since the runtime flag for enabling shadow DOM had been removed.

  • css/html.css:
  • css/legacyFormControlsIOS.css:
  • css/themeWin.css:
  • editing/MarkupAccumulator.cpp:

(WebCore::elementCannotHaveEndTag):

  • html/HTMLKeygenElement.cpp: Removed.
  • html/HTMLKeygenElement.h: Removed.
  • html/HTMLKeygenElement.idl: Removed.
  • html/HTMLTagNames.in:
  • html/shadow/ShadowPseudoIds.cpp:

(WebCore::ShadowPseudoIds::webkitKeygenSelect): Deleted.

  • html/shadow/ShadowPseudoIds.h:
  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::isPhrasingContent):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setKeygenElementEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::keygenElementEnabled const): Deleted.

Source/WebKit:
Delete code for keygen element
https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto and Darin Adler.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRequestVideoFrameCallbackEnabled):
(WKPreferencesGetRequestVideoFrameCallbackEnabled):
(WKPreferencesSetKeygenElementEnabled):
(WKPreferencesGetKeygenElementEnabled):
(WKPreferencesGetXSSAuditorEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/Automation/atoms/ElementAttribute.js:

(isBooleanAttribute):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:

Source/WebKitLegacy/mac:
Delete runtime preference for enabling keygen element
https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

  • WebView/WebPreferences.mm:

(-[WebPreferences keygenElementEnabled]):
(-[WebPreferences setKeygenElementEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKitLegacy/win:
Delete runtime preference for enabling keygen element
https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::keygenElementEnabled):
(WebPreferences::setKeygenElementEnabled):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:
Delete code for keygen element
https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

LayoutTests:
Delete code for keygen element
https://bugs.webkit.org/show_bug.cgi?id=235867

Reviewed by Antti Koivisto.

Deleted the relevant keygen tests and rebaselined other tests.

Most of the tests that happens to test keygen elements along side other form control elements
have been updated to expect keygen to behave like HTMLUnknownElement as expected.

  • accessibility/content-changed-notification-causes-crash.html:
  • accessibility/contenteditable-table-check-causes-crash.html:
  • accessibility/duplicate-axrenderobject-crash-expected.txt:
  • accessibility/duplicate-axrenderobject-crash.html:
  • fast/block/float/float-not-removed-from-first-letter-expected.txt:
  • fast/block/float/float-not-removed-from-first-letter.html:
  • fast/block/float/split-inline-sibling-of-float-crash.html:
  • fast/css/pseudo-required-optional-unapplied.html:
  • fast/dom/HTMLFormElement/associated-elements-after-index-assertion-fail1.html:
  • fast/dom/HTMLKeygenElement/keygen-expected.txt: Removed.
  • fast/dom/HTMLKeygenElement/keygen-keytype-expected.txt: Removed.
  • fast/dom/HTMLKeygenElement/keygen-keytype.html: Removed.
  • fast/dom/HTMLKeygenElement/keygen.html: Removed.
  • fast/dom/adopt-node-crash-2-expected.txt:
  • fast/dom/adopt-node-crash-2.html:
  • fast/dom/attribute-set-before-element-in-tree.html:
  • fast/dom/domstring-attribute-reflection-expected.txt:
  • fast/dom/domstring-attribute-reflection.html:
  • fast/dom/set-custom-validity-with-too-few-arguments-expected.txt:
  • fast/dom/set-custom-validity-with-too-few-arguments.html:
  • fast/dom/tabindex-defaults-expected.txt:
  • fast/dom/tabindex-defaults.html:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/dynamic/insertAdjacentHTML-allowed-parents.html:
  • fast/flexbox/crash-button-keygen.html:
  • fast/forms/ValidityState-001-expected.txt:
  • fast/forms/ValidityState-001.html:
  • fast/forms/autofocus-keygen-expected.txt: Removed.
  • fast/forms/autofocus-keygen.html: Removed.
  • fast/forms/checkValidity-001-expected.txt:
  • fast/forms/checkValidity-001.html:
  • fast/forms/fieldset/fieldset-elements-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/fieldset/fieldset-elements.html:
  • fast/forms/form-associated-element-crash3.html:
  • fast/forms/form-attribute-expected.txt:
  • fast/forms/form-attribute.html:
  • fast/forms/form-collection-elements-expected.txt:
  • fast/forms/form-collection-elements-order-expected.txt:
  • fast/forms/form-collection-elements-order.html:
  • fast/forms/form-collection-elements.html:
  • fast/forms/form-collection-radio-node-list-expected.txt:
  • fast/forms/form-collection-radio-node-list.html:
  • fast/forms/label/labelable-elements-expected.txt:
  • fast/forms/label/labelable-elements.html:
  • fast/forms/label/labels-add-htmlFor-label-expected.txt:
  • fast/forms/label/labels-add-htmlFor-label.html:
  • fast/forms/label/labels-add-parent-label-expected.txt:
  • fast/forms/label/labels-add-parent-label.html:
  • fast/forms/label/labels-change-htmlFor-attribute-expected.txt:
  • fast/forms/label/labels-change-htmlFor-attribute.html:
  • fast/forms/label/labels-multiple-sibling-labels-expected.txt:
  • fast/forms/label/labels-multiple-sibling-labels.html:
  • fast/forms/label/labels-parent-and-sibling-labels-expected.txt:
  • fast/forms/label/labels-parent-and-sibling-labels.html:
  • fast/forms/label/labels-remove-htmlFor-attribute-expected.txt:
  • fast/forms/label/labels-remove-htmlFor-attribute.html:
  • fast/forms/label/labels-remove-htmlFor-label-expected.txt:
  • fast/forms/label/labels-remove-htmlFor-label.html:
  • fast/forms/label/labels-remove-parent-label-expected.txt:
  • fast/forms/label/labels-remove-parent-label.html:
  • fast/forms/large-parts.html:
  • fast/forms/resources/common.js:

(createFormControlDataSet): Removed keygen form the list of form control elements.

  • fast/forms/scrollheight-with-mutation-crash.html:
  • fast/forms/setCustomValidity-arguments-expected.txt:
  • fast/forms/setCustomValidity-arguments.html:
  • fast/forms/setCustomValidity-existence-expected.txt:
  • fast/forms/setCustomValidity-existence.html:
  • fast/forms/setCustomValidity-null-parameter-expected.txt:
  • fast/forms/setCustomValidity-null-parameter.html:
  • fast/forms/state-restore-skip-stateless.html:
  • fast/forms/update-form-owner-in-moved-subtree-assertion-failure.html:
  • fast/forms/validationMessage-expected.txt:
  • fast/forms/validationMessage.html:
  • fast/forms/willvalidate-expected.txt:
  • fast/forms/willvalidate.html:
  • fast/html/clone-keygen-expected.txt: Removed.
  • fast/html/clone-keygen.html: Removed.
  • fast/html/keygen.html: Removed.
  • fast/html/marquee-reparent-check.html:
  • fast/invalid/residual-style-expected.html:
  • fast/invalid/residual-style.html:
  • fast/multicol/span/positioned-child-not-removed-crash-expected.txt:
  • fast/multicol/span/positioned-child-not-removed-crash.html:
  • fast/ruby/float-object-doesnt-crash.html:
  • fast/shadow-dom/keygen-shadow-manipulation-expected.txt:
  • fast/shadow-dom/keygen-shadow-manipulation.html:
  • fast/table/crash-splitColumn-2.html:
  • fast/table/multiple-captions-crash3-expected.html:
  • fast/table/multiple-captions-crash3.html:
  • http/tests/misc/resources/check-keygen-post.py: Removed.
  • http/tests/misc/submit-post-keygen-expected.txt: Removed.
  • http/tests/misc/submit-post-keygen.html: Removed.
  • imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow-expected.html: Removed.
  • imported/blink/fast/dom/shadow/shadowdom-for-keygen-only-shadow.html: Removed.
  • imported/blink/fast/text/international-iteration-simple-text.html:
  • platform/glib/fast/html/keygen-expected.txt: Removed.
  • platform/gtk/fast/forms/label/labelable-elements-expected.txt:
  • platform/gtk/fast/html/keygen-expected.png: Removed.
  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/fast/forms/label/labelable-elements-expected.txt:
  • platform/ios/fast/html/keygen-expected.txt: Removed.
  • platform/mac-wk2/fast/forms/label/labelable-elements-expected.txt:
  • platform/mac/fast/html/keygen-expected.png: Removed.
  • platform/mac/fast/html/keygen-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/wincairo/fast/html/keygen-expected.txt: Removed.
  • svg/dom/css-animate-input-foucs-crash-expected.txt:
  • svg/dom/css-animate-input-foucs-crash.html:
3:24 PM Changeset in webkit [288803] by rniwa@webkit.org
  • 34 edits in trunk

Delete runtime preference for enabling input events
https://bugs.webkit.org/show_bug.cgi?id=235864

Reviewed by Wenson Hsieh.

Source/WebCore:

  • dom/InputEvent.idl:
  • editing/Editor.cpp:

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

LayoutTests:

Updated the tests.

  • fast/events/before-input-delete-empty-list-target-ranges.html:
  • fast/events/before-input-delete-text-target-ranges.html:
  • fast/events/before-input-events-different-start-end-elements.html:
  • fast/events/before-input-events-prevent-block-text-direction.html:
  • fast/events/before-input-events-prevent-default-in-textfield.html:
  • fast/events/before-input-events-prevent-default.html:
  • fast/events/before-input-events-prevent-drag-and-drop.html:
  • fast/events/before-input-events-prevent-insert-composition.html:
  • fast/events/before-input-events-prevent-recomposition.html:
  • fast/events/before-input-prevent-biu.html:
  • fast/events/before-input-prevent-cut.html:
  • fast/events/before-input-prevent-paste.html:
  • fast/events/before-input-prevent-typing.html:
  • fast/events/before-input-prevent-undo.html:
  • fast/events/before-input-replace-text-target-ranges.html:
  • fast/events/input-event-insert-link.html:
  • fast/events/input-events-drag-and-drop.html:
  • fast/events/input-events-fired-when-typing.html:
  • fast/events/input-events-forecolor-data.html:
  • fast/events/input-events-ime-composition.html:
  • fast/events/input-events-ime-recomposition.html:
  • fast/events/input-events-insert-by-drop.html:
  • fast/events/input-events-paste-data.html:
  • fast/events/input-events-paste-rich-datatransfer.html:
  • fast/events/input-events-selection-forecolor-data.html:
  • fast/events/input-events-spell-checking-datatransfer.html:
  • fast/events/input-events-typing-data.html:
  • fast/events/ios/input-events-fired-when-typing-in-contenteditable.html:
8:57 AM Changeset in webkit [288802] by commit-queue@webkit.org
  • 4 edits
    1 move
    1 add in trunk/LayoutTests

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

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

  • platform/glib/tables/mozilla/bugs/adforce_imgis_com-expected.txt: Renamed from LayoutTests/platform/wpe/tables/mozilla/bugs/adforce_imgis_com-expected.txt.
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt:
  • platform/gtk/css2.1/t1508-c527-font-08-b-expected.txt: Added.
  • platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt:
  • platform/wpe/accessibility/math-multiscript-attributes-expected.txt:
8:11 AM Changeset in webkit [288801] by Alan Bujtas
  • 8 edits
    2 adds in trunk

(REGRESSION)[IFC][RTL] wpt/css/css-text/white-space/trailing-space-and-text-alignment-rtl-003.html
https://bugs.webkit.org/show_bug.cgi?id=235823
<rdar://problem/88186663>

Reviewed by Antti Koivisto.

Source/WebCore:

Reset the trailing whitespace bidi level before handing them over to visual reordering.
see https://unicode.org/reports/tr9/#L1
"L1. On each line, reset the embedding level of the following characters to the paragraph embedding level:

...
Any sequence of whitespace characters ... at the end of the line."

It ensures that

<div style="width: 2ch; direction: rtl">AB C</div>

and

<div style="direction: rtl">AB </div>

both have the trailing whitespace positioned _visually_ as trailing (and not leading) content.

After the bidi paragraph processing "AB C" gets a uniform bidi level of 2, while "AB " is split into "AB" and " "
with bidi levels of 2 and 1 respectively.
In the latter case, the difference in bidi levels makes the runs flip visually at reordering.
It makes the trailing whitespace "pushed" to the left side of the "AB" making it _visually_ trailing (the content renders as " AB").
However in case of "AB C" with the line breaking position after " ", we would end up with a single run of "AB " with the bidi level of 2.
This run would render as "AB " turning the trailing whitespace into a _visually_ leading whitespace.

In this patch we ensure that the trailing (non-collapsible) whitespace runs

  1. are detached from their adjoining non-whitespace text runs and
  2. they get their bidi levels reset

Test: fast/text/rtl-pre-wrap-hanging-offset.html

  • layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:

(WebCore::Layout::InlineDisplayLineBuilder::build const):

LayoutTests:

  • fast/text/rtl-pre-wrap-hanging-offset-expected.html: Added.
  • fast/text/rtl-pre-wrap-hanging-offset.html: Added.
7:58 AM Changeset in webkit [288800] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Do not break content at an inline box boundary
https://bugs.webkit.org/show_bug.cgi?id=235868

Reviewed by Antti Koivisto.

Source/WebCore:

Handle nested inline boxes, when the breaking position is between at an inline box boundary.
e.g.

<div style="width: 1px"><span><span><span>this_content_overflow</span></span></span></div>

while the breaking position is between the 3rd <span> and the letter 't', we should not let the first
line have all the <span><span><span> content only, but instead find a more reasonable breaking position by
looking at the previous runs.
This patch expands "findTrailingRunIndex" to find multiple, subsequent (nested) inline boxes.

Test: fast/inline/nested-inline-box-with-word-break.html

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

(WebCore::Layout::findTrailingRunIndex):

LayoutTests:

  • fast/inline/nested-inline-box-with-word-break-expected.html: Added.
  • fast/inline/nested-inline-box-with-word-break.html: Added.
5:19 AM Changeset in webkit [288799] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] GstStructure to JSON serialization
https://bugs.webkit.org/show_bug.cgi?id=235760

Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-30
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

For GstWebRTC stats logging purposes JSON is a good payload format. As the stats are
initially notified via GstStructures we need a way to export those to JSON, using a new API
in GStreamerCommon.

Covered by API tests.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::structureValueToJSON):
(WebCore::parseStructureValue):
(WebCore::structureToJSON):
(WebCore::structureToJSONString):

  • platform/graphics/gstreamer/GStreamerCommon.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp:

(TestWebKitAPI::TEST_F):

Jan 29, 2022:

10:47 PM Changeset in webkit [288798] by Kocsen Chung
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.17

9:58 PM Changeset in webkit [288797] by rniwa@webkit.org
  • 18 edits in trunk/Source

Delete runtime preference for enabling request animation frame
https://bugs.webkit.org/show_bug.cgi?id=235866

Reviewed by Darin Adler.

Source/WebCore:

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::requestAnimationFrameEnabled const): Deleted.

  • dom/ScriptedAnimationController.h:

(WebCore::ScriptedAnimationController::clearDocumentPointer):

  • workers/WorkerAnimationController.cpp:

(WebCore::WorkerAnimationController::scheduleAnimation):
(WebCore::WorkerAnimationController::serviceRequestAnimationFrameCallbacks):

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetRequestAnimationFrameEnabled):
(WKPreferencesGetRequestAnimationFrameEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setRequestAnimationFrameEnabled:]):
(-[WKPreferences _requestAnimationFrameEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(-[WebPreferences requestAnimationFrameEnabled]):
(-[WebPreferences setRequestAnimationFrameEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKitLegacy/win:

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::setRequestAnimationFrameEnabled):
(WebPreferences::requestAnimationFrameEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
9:21 PM Changeset in webkit [288796] by Ben Nham
  • 2 edits
    1 add in trunk/Tools

Add web push message decryption routines
https://bugs.webkit.org/show_bug.cgi?id=233903

Reviewed by Brady Eidson.

Somehow the unit tests were left out of the original patch that was landed. Adding them back
in this patch.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/PushMessageCrypto.cpp: Added.

(TestWebKitAPI::mustBase64URLDecode):
(TestWebKitAPI::makeAES128GCMClientKeys):
(TestWebKitAPI::TEST):
(TestWebKitAPI::makeAESGCMClientKeys):

7:26 PM Changeset in webkit [288795] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

[WebIDL] Add a sensible error message for a primitive non-null EventListener
https://bugs.webkit.org/show_bug.cgi?id=235863

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-29
Reviewed by Darin Adler.

Source/WebCore:

This patch moves isObject() check to JSEventListener converter, aligning it with
callback interface converter and removing now unused create() overload, and makes
code generator pass an exception thrower with a user-friendly TypeError message.

Since JSEventListener is quite different from other callback interfaces, we can't
make IsCallbackInterface() recognize it just yet, thus the type name has to be
hard-coded if we want the error message to be consistent with other generated ones.

Test: fast/events/event-listener-not-an-object.html

  • bindings/js/JSDOMConvertEventListener.h:

(WebCore::Converter<IDLEventListener<T>>::convert):

  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSEventListener.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetArgumentExceptionFunction):

  • bindings/scripts/test/JS/*: Updated.
  • dom/EventTarget.idl:

Rename EventListener parameter to "listener" to match MDN / Chrome DevTools / matchMedia().

LayoutTests:

  • fast/events/event-listener-not-an-object-expected.txt: Added.
  • fast/events/event-listener-not-an-object.html: Added.
3:15 PM Changeset in webkit [288794] by rniwa@webkit.org
  • 6 edits
    1 delete in trunk/Source/WebCore

Delete EventQueue.h
https://bugs.webkit.org/show_bug.cgi?id=235862

Reviewed by Wenson Hsieh.

Deleted the useless header file.

  • Headers.cmake:
  • Modules/indexeddb/IDBDatabase.cpp:
  • Modules/indexeddb/IDBRequest.cpp:
  • Modules/indexeddb/IDBTransaction.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventQueue.h: Removed.
1:00 PM Changeset in webkit [288793] by rniwa@webkit.org
  • 27 edits
    3 deletes in trunk/Source/WebCore

Delete most code for beforeload event
https://bugs.webkit.org/show_bug.cgi?id=234804

Reviewed by Antti Koivisto.

Delete code for beforeload event as the event has been disabled successfully in r261946.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • dom/BeforeLoadEvent.cpp: Removed.
  • dom/BeforeLoadEvent.h: Removed.
  • dom/BeforeLoadEvent.idl: Removed.
  • dom/Document.cpp:

(WebCore::Document::addListenerTypeIfNeeded):

  • dom/Document.h:
  • dom/EventNames.in:
  • dom/Node.cpp:

(WebCore::Node::dispatchBeforeLoadEvent): Deleted.

  • dom/Node.h:
  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet): m_isHandlingBeforeLoad is never true.

  • dom/ProcessingInstruction.h:
  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestClassicScript): dispatchBeforeLoadEvent always returned true
when beforeload event is disabled, and the element is always connected here.
(WebCore::ScriptElement::requestModuleScript): Ditto.

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::updateWidget): Deleted the no-op code.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::shouldLoadLink):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::selectNextSourceChild):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::updateWidget):

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::guardedDispatchBeforeLoadEvent): Deleted.
(WebCore::HTMLPlugInElement::pluginWidget const): m_inBeforeLoadEventHandler is never true.

  • html/HTMLPlugInElement.h:
  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::canLoadURL):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader): Deleted the no-op code.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement): Document will never have beforeload event listener
but keep the call to dispatchPendingBeforeLoadEvent since we depend on it updating renderer.
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): Keep the only side effect left which is
to update the renderer.

  • loader/ImageLoader.h:
  • page/Settings.yaml: Deleted the option to enable beforeload event.
11:27 AM Changeset in webkit [288792] by Patrick Griffis
  • 14 edits in trunk

CSP: Properly block image content in object elements
https://bugs.webkit.org/show_bug.cgi?id=235837

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Update expectations with more passes.

  • web-platform-tests/content-security-policy/object-src/object-src-url-blocked-expected.txt:
  • web-platform-tests/content-security-policy/object-src/object-src-url-embed-blocked-expected.txt:
  • web-platform-tests/content-security-policy/object-src/object-src-url-redirect-blocked.sub-expected.txt:

Source/WebCore:

When an image is loaded through an object element it now passes through
the object-src directive check as the spec documents:
https://www.w3.org/TR/CSP3/#directive-object-src

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::loadedFromPluginElement):
(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::loadedFromOpaqueSource): Deleted.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowObjectFromSource const):

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2-expected.txt:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked3-expected.txt:
8:43 AM Changeset in webkit [288791] by Tyler Wilcock
  • 5 edits
    2 adds in trunk

AX: Isolated tree objects don't update their AXPropertyName::ElementRect or AXPropertyName::BoundingBoxRect in response to dynamic page changes
https://bugs.webkit.org/show_bug.cgi?id=235833

Reviewed by Chris Fleizach.

Source/WebCore:

Because isolated tree objects don't update their
AXPropertyName::ElementRect or AXPropertyName::BoundingBoxRect
anytime after AXIsolatedObject::initializeAttributeData,
any dynamic page change that causes the element to move or change
size will result in the isolated AX object holding out-of-date values
for these properties.

This patch remedies this deferring to the live, main-thread AX object
when serving elementRect and boundingBoxRect.

Test: accessibility/dynamic-changes-update-position.html

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
Stop caching the now removed properties AXPropertyName::ElementRect and AXPropertyName::BoundingBoxRect.
(WebCore::AXIsolatedObject::boundingBoxRect const):
(WebCore::AXIsolatedObject::elementRect const):
Retrieve these values from the main-thread instead of the now removed
AXPropertyName::ElementRect and AXPropertyName::BoundingBoxRect.

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

Remove AXPropertyName::ElementRect and AXPropertyName::BoundingBoxRect.

LayoutTests:

Add test reproducing this issue.

  • accessibility/dynamic-changes-update-position-expected.txt: Added.
  • accessibility/dynamic-changes-update-position.html: Added.
6:43 AM Changeset in webkit [288790] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[LibWebRTC] ifdef cleanups
https://bugs.webkit.org/show_bug.cgi?id=235858

Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-29
Reviewed by Youenn Fablet.

ENABLE(WEB_RTC) does not necessarily imply USE(LIBWEBRTC), so guard libwebrtc-specific files
with explicit USE(LIBWEBRTC) ifdefs.

  • Modules/mediastream/STUNMessageParsing.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCDtlsTransportBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCIceTransportBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCSctpTransportBackend.h:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h:
3:49 AM Changeset in webkit [288789] by commit-queue@webkit.org
  • 12 edits
    2 adds in trunk

Capturing WebGL canvas through peer connection shows the image flipped
https://bugs.webkit.org/show_bug.cgi?id=235600
<rdar://problem/88043325>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-29
Reviewed by Dean Jackson.

Source/WebCore:

Mirror and rotate the WebGL image at the source since WebRTC
does not support mirroring.

Test: webrtc/canvas-to-peer-connection.html

  • platform/graphics/cocoa/GraphicsContextGLCocoa.h:
  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLCocoa::paintCompositedResultsToMediaSample):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::setOwnershipIdentity):

  • platform/graphics/cv/CVUtilities.h:
  • platform/graphics/cv/CVUtilities.mm:

(WebCore::setOwnershipIdentityForCVPixelBuffer):

LayoutTests:

Test sending WebGL image through a peer connection to a local video
and assert that the image is as drawn.

  • platform/glib/TestExpectations:
  • webrtc/canvas-to-peer-connection-expected.txt: Added.
  • webrtc/canvas-to-peer-connection.html: Added.
  • webrtc/routines.js:
  • webrtc/video-replace-track.html:

Jan 28, 2022:

11:34 PM Changeset in webkit [288788] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

css/css-backgrounds/animations/box-shadow-composition.html has failures
https://bugs.webkit.org/show_bug.cgi?id=235773

Unreviewed sync with WPT upstream, our copy of this test was outdated and we in fact pass
all assertions.

  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition-expected.txt:
  • web-platform-tests/css/css-backgrounds/animations/box-shadow-composition.html:
11:32 PM Changeset in webkit [288787] by graouts@webkit.org
  • 3 edits
    17 adds
    6 deletes in trunk/LayoutTests

[WPT] Update CSS animation tests
https://bugs.webkit.org/show_bug.cgi?id=235759

Unreviewed manual WPT update.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-empty-no-draw-crash-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-non-empty-no-draw-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-removed-element-crash-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-removed-element-crash.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask-expected.txt: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask-ref.html: Added.
  • web-platform-tests/css/css-backgrounds/animations/background-color-animation-with-mask.html: Added.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2-expected.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-2.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3-expected-mismatch.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-3.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation-expected.html: Removed.
  • web-platform-tests/css/css-fonts/animations/font-palette-animation.html: Removed.
  • web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
  • web-platform-tests/css/css-fonts/animations/system-fonts.html: Added.
  • web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation-expected.txt: Added.
  • web-platform-tests/css/css-size-adjust/animations/text-size-adjust-interpolation.html: Added.

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
  • platform/ios/imported/w3c/web-platform-tests/css/css-fonts/animations/system-fonts-expected.txt: Added.
11:24 PM Changeset in webkit [288786] by Antti Koivisto
  • 51 edits in trunk

[CSS container Queries] Include container queries in RuleSets
https://bugs.webkit.org/show_bug.cgi?id=235763

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:

Source/WebCore:

Build the data structures in RuleSets. They are not yet used, all queries behave as if they match.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::addRule):

  • style/RuleSet.h:
  • style/RuleSetBuilder.cpp:

(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addStyleRule):

  • style/RuleSetBuilder.h:

LayoutTests:

9:33 PM Changeset in webkit [288785] by Diego Pino Garcia
  • 4 edits in trunk/Source

Source/JavaScriptCore:
[WPE] Unreviewed, fix non-unified build after r288758
https://bugs.webkit.org/show_bug.cgi?id=235853

  • wasm/WasmBranchHintsSectionParser.cpp:

Source/WebCore:
[WPE] Unreviewed, fix non-unified build after r288759
https://bugs.webkit.org/show_bug.cgi?id=235853

  • Modules/webaudio/AudioWorkletNode.cpp:
9:22 PM Changeset in webkit [288784] by Fujii Hironori
  • 29 edits
    1 delete in trunk

[WinCairo] WebKitTestRunner should support pixel dump for accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=215041

Reviewed by Don Olmstead.

Source/WebKit:

Windows WebKitTestRunner is using WM_PRINT message to get the
widonws content for the pixel dump support. However, in the
accelerated compositing mode, the compositor in the GPU process
directly renders to the HWND of UI process.

This change added the offscreen rendering mode for the compositor.
In this mode, the rendering results of the compositor are captured
by using glReadPixels in GPU process, and transferred it to UI
process via the non-AC mode code path.

Added WKViewSetUsesOffscreenRendering API to enable the offscreen
rendering mode.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createWCLayerTreeHost):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.cpp:

(WebKit::RemoteWCLayerTreeHost::create):
(WebKit::RemoteWCLayerTreeHost::RemoteWCLayerTreeHost):
(WebKit::RemoteWCLayerTreeHost::update):

  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.h:
  • GPUProcess/graphics/wc/RemoteWCLayerTreeHost.messages.in:
  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::WCScene):
(WebKit::WCScene::update):

  • GPUProcess/graphics/wc/WCScene.h:
  • PlatformWin.cmake:
  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/win/WKView.cpp:

(WKViewSetUsesOffscreenRendering):

  • UIProcess/API/C/win/WKView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/wc/DrawingAreaProxyWC.cpp:

(WebKit::DrawingAreaProxyWC::dispatchAfterEnsuringDrawing):

  • UIProcess/wc/DrawingAreaProxyWC.h:
  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::usesOffscreenRendering const):

  • UIProcess/win/PageClientImpl.h:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setUsesOffscreenRendering):
(WebKit::WebView::usesOffscreenRendering const):

  • UIProcess/win/WebView.h:
  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.cpp:

(WebKit::RemoteWCLayerTreeHostProxy::RemoteWCLayerTreeHostProxy):
(WebKit::RemoteWCLayerTreeHostProxy::ensureGPUProcessConnection):
(WebKit::RemoteWCLayerTreeHostProxy::disconnectGpuProcessIfNeeded):
(WebKit::RemoteWCLayerTreeHostProxy::gpuProcessConnectionDidClose):
(WebKit::RemoteWCLayerTreeHostProxy::update):
(WebKit::RemoteWCLayerTreeHostProxy::didUpdate): Deleted.

  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.h:
  • WebProcess/GPU/graphics/wc/RemoteWCLayerTreeHostProxy.messages.in: Removed.
  • WebProcess/WebPage/wc/DrawingAreaWC.cpp:

(WebKit::DrawingAreaWC::DrawingAreaWC):
(WebKit::DrawingAreaWC::setNeedsDisplay):
(WebKit::DrawingAreaWC::setNeedsDisplayInRect):
(WebKit::DrawingAreaWC::forceRepaintAsync):
(WebKit::DrawingAreaWC::sendUpdateAC):
(WebKit::DrawingAreaWC::didUpdate):

  • WebProcess/WebPage/wc/DrawingAreaWC.h:

Tools:

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::PlatformWebView):

8:44 PM Changeset in webkit [288783] by mmaxfield@apple.com
  • 7 edits
    2 adds in trunk

REGRESSION(r281687): Space widths have synthetic bold applied to them in the fast text codepath but not the complex text codepath
https://bugs.webkit.org/show_bug.cgi?id=235755
<rdar://problem/88052073>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-fonts/synthetic-bold-space-width-expected.html: Added.
  • web-platform-tests/css/css-fonts/synthetic-bold-space-width.html: Added.

Source/WebCore:

r281687 made Font::widthForGlyph() return the non-synthetically-expanded width,
instead of the synthetically-expanded width.

I think this is philosophically correct, because Font::widthForGlyph() is called before shaping,
and shaping requires the original width. If some custom code is asking for the width of specific
characters without going through WidthIterator or ComplexTextController, that code needs to
determine whether or not it's going to run shaping, and thus when it should be adding in the
synthetic offset.

adjustGlyphsAndAdvances() used to subtract out the synthetic offset because it was expecting
Font::widthForGlyph() to return the already-expanded width. So, the solution is just stop subtracting
the offset, because it hasn't been applied in the first place.

Test: imported/w3c/web-platform-tests/css/css-fonts/synthetic-bold-space-width.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

  • platform/graphics/Font.h:

LayoutTests:

  • platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
8:22 PM Changeset in webkit [288782] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WebKit

Implement CSS overscroll-behavior for iOS
https://bugs.webkit.org/show_bug.cgi?id=233788

Reviewed by Simon Fraser.

Add setting of ScrollView parameters based on overscroll-behavior values.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

7:29 PM Changeset in webkit [288781] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16

Tag Safari-613.1.16.

7:29 PM Changeset in webkit [288780] by Kocsen Chung
  • 1 delete in tags/Safari-613.1.16

Delete tag.

7:27 PM Changeset in webkit [288779] by Kocsen Chung
  • 21 edits
    1 move
    3 adds in branches/safari-613-branch/Source

Apply patch. rdar://problem/82627192

7:27 PM Changeset in webkit [288778] by Kocsen Chung
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r287961. rdar://problem/86282584

[Re-landing] Update hashThreadState() to exclude opaque_flags.
https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584

Reviewed by Keith Miller.

Source/JavaScriptCore:

Removed some unused code.

  • runtime/MachineContext.h: (JSC::MachineContext::stackPointer): (JSC::MachineContext::framePointer): (JSC::MachineContext::instructionPointer): (JSC::MachineContext::linkRegister): (JSC::MachineContext::setStackPointer): Deleted. (JSC::MachineContext::setFramePointer): Deleted. (JSC::MachineContext::setLinkRegister): Deleted.

Source/WTF:

The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the
opaque_flags field.

Also remove some unused code.

  • wtf/PlatformRegisters.h:
  • wtf/threads/Signals.cpp: (WTF::hashThreadState):

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

6:56 PM Changeset in webkit [288777] by Nikos Mouchtaris
  • 8 edits
    9 adds in trunk

Implement CSS overscroll-behavior for asynchronous scroll on Mac
https://bugs.webkit.org/show_bug.cgi?id=220139

Reviewed by Simon Fraser.

Source/WebCore:

Split up patch by Cathie Chen and Frederic Wang. Add function for blocking scroll chaining
and filtering scroll delta depending on the values of overscroll behavior for a scrolling
node. This patch is for asynchronous scrolling only.

Tests: fast/scrolling/mac/async-overscroll-behavior-element.html

fast/scrolling/mac/async-overscroll-behavior-iframe.html
fast/scrolling/mac/async-overscroll-behavior-unscrollable-element.html
fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldBlockScrollChainingWithNode):
(WebCore::ScrollingTree::handleWheelEventWithNode):

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

(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate):
(WebCore::RenderLayerCompositor::rootOrBodyStyleChanged):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRecompositeLayer const):

LayoutTests:

  • fast/scrolling/mac/async-overscroll-behavior-element-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-element.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-iframe-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-iframe.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-element-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-element.html: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe-expected.txt: Added.
  • fast/scrolling/mac/async-overscroll-behavior-unscrollable-iframe.html: Added.
  • fast/scrolling/resources/overscroll-behavior-support.js: Added.

(getDeltas):
(async mouseWheelScrollAndWait):

6:42 PM Changeset in webkit [288776] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS][WP] Temporarily add syscall to sandbox
https://bugs.webkit.org/show_bug.cgi?id=235841
<rdar://88197549>

Reviewed by Brent Fulgham.

Temporarily add syscall to sandbox in the WebContent process on macOS. This can be removed when <rdar://88210738> is fixed.

  • WebProcess/com.apple.WebProcess.sb.in:
6:15 PM Changeset in webkit [288775] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ BigSur+ Release wk1 arm64 ] Bots are flaky exiting testing after 500 layout-test failures (235733)
https://bugs.webkit.org/show_bug.cgi?id=235733

Uneviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skipping test for mac BigSur and later wk1 arm64 Release because it intermittently causes many tests to fail.
6:12 PM Changeset in webkit [288774] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: AccessibilitySlider::inputElement should check if the renderer has become null
https://bugs.webkit.org/show_bug.cgi?id=235827

Reviewed by Chris Fleizach.

After https://bugs.webkit.org/show_bug.cgi?id=235715, we no longer
call the update version of children() from logging. This has made
accessibility/mac/spinbutton-valuedescription.html a constant failure
in debug mode only, since the logging is trying to print an AX tree that
is out of sync with the DOM. This test uses JS to remove an <input>
renderer + node.

Fixes accessibility/mac/spinbutton-valuedescription.html in debug.

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::inputElement const):
Null check m_renderer before using it.
(WebCore::AccessibilitySlider::getAttribute const):
(WebCore::AccessibilitySlider::valueForRange const):
(WebCore::AccessibilitySlider::maxValueForRange const):
(WebCore::AccessibilitySlider::minValueForRange const):
Null check the result of inputElement() before dereferencing it.

5:23 PM Changeset in webkit [288773] by Aditya Keerthi
  • 14 edits in trunk

Add SPI to retrieve the rect of a found text range
https://bugs.webkit.org/show_bug.cgi?id=235830
rdar://88193004

Reviewed by Wenson Hsieh.

Source/WebKit:

Clients of found text ranges need a way to determine their position
in the web view. An asynchronous SPI is provided to support this need.
This information is not encoded in the text range itself, as the
position can change due to scrolling in sub-scrollable regions.
Consequently, the position must be obtained by communicating with the
WebProcess.

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

(-[WKWebView _requestRectForFoundTextRange:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestRectForFoundTextRange):

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

(-[WKContentView requestRectForFoundTextRange:completionHandler:]):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::requestRectForFoundTextRange):

  • WebProcess/WebPage/WebFoundTextRangeController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestRectForFoundTextRange):

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

Tools:

Added a test to verify the API works as expected.

The test uses an <iframe> to verify behavior for scrolled
<iframe>s.

  • TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(-[TestSearchAggregator initWithCompletionHandler:]):
(-[TestSearchAggregator foundRange:forSearchString:inDocument:]):
(-[TestSearchAggregator foundRanges]):
(-[TestSearchAggregator count]):
(TEST):

5:02 PM Changeset in webkit [288772] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Update CaptivePortal entitlements to support full GigaCage
https://bugs.webkit.org/show_bug.cgi?id=235834
<rdar://problem/88075019>

Reviewed by Chris Dumez.

The CaptivePortal process, which does not allow JIT, cannot enable GigaCage without
a new entitlement.

  • Scripts/process-entitlements.sh:
4:54 PM Changeset in webkit [288771] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.16

Tag Safari-613.1.16.

4:50 PM Changeset in webkit [288770] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288750. rdar://problem/88177392

[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Darin Adler.

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

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

4:50 PM Changeset in webkit [288769] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r287844. rdar://problem/87262730

[MacCatalyst] Add syscalls from iOS sandbox
https://bugs.webkit.org/show_bug.cgi?id=234970
<rdar://problem/87262730>

Reviewed by Darin Adler.

Add syscalls from iOS sandbox that are not in the MacCatalyst sandbox, since these are potentially
still needed on MacCatalyst.

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

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

4:39 PM Changeset in webkit [288768] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.6

Tag Safari-613.1.14.5.6.

4:38 PM Changeset in webkit [288767] by Russell Epstein
  • 4 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288766. rdar://problem/88207448

Catalyst builds for WebCore and WebKitLegacy don't create proper symlinks for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235839

Reviewed by Saam Barati.

Source/WebCore:

Fixed ALTERNATE_ROOT_PATH to have a proper path for Catalyst builds, but not for normal macOS builds
since they are under WebKit.framework.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy/mac:

Fixed ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH to have proper paths for Catalyst builds,
but not for normal macOS builds since they are under WebKit.framework.

  • Configurations/WebKitLegacy.xcconfig:

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

4:36 PM Changeset in webkit [288766] by msaboff@apple.com
  • 4 edits in trunk/Source

Catalyst builds for WebCore and WebKitLegacy don't create proper symlinks for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235839

Reviewed by Saam Barati.

Source/WebCore:

Fixed ALTERNATE_ROOT_PATH to have a proper path for Catalyst builds, but not for normal macOS builds
since they are under WebKit.framework.

  • Configurations/WebCore.xcconfig:

Source/WebKitLegacy/mac:

Fixed ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH to have proper paths for Catalyst builds,
but not for normal macOS builds since they are under WebKit.framework.

  • Configurations/WebKitLegacy.xcconfig:
4:25 PM Changeset in webkit [288765] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.6

4:14 PM Changeset in webkit [288764] by Kocsen Chung
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.16

4:05 PM Changeset in webkit [288763] by Alexey Shvayka
  • 8 edits in trunk

Remove showModalDialog-specific logic from JSDOMWindow::getOwnPropertySlot()
https://bugs.webkit.org/show_bug.cgi?id=234282

Reviewed by Yusuke Suzuki.

Source/WebCore:

This change removes showModalDialog-specific logic from JSDOMWindow::getOwnPropertySlot()
in favor of a setter-less CustomValue property on window, which returns a function only
if modals are allowed, and can be overriden by userland code.

Since we need to support setCanRunModal(true) being called after DOMWindow is initialized,
[EnabledByQuirk] and friends could not be used. However, once the function was exposed,
there is no point in hiding it, so the CustomValue getter replaces itself with a regular
data property to preserve function's identity (covered by fast/dom/wrapper-identity.html).

The patch makes JSDOMWindow's getOwnPropertySlot() consistent with its getOwnPropertyNames()
regarding the presence of "showModalDialog" property, and fixes JSDOMWindow::getOwnPropertySlot()
being ignored by LLInt when accessing "showModalDialog" from scope, which resulted in exposing
the function even if modals were disallowed.

Test: fast/dom/Window/forbid-showModalDialog.html

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMWindow::showModalDialog): Deleted.

  • bindings/js/JSDOMWindowCustom.h:
  • page/DOMWindow.idl:

LayoutTests:

  • fast/dom/Window/forbid-showModalDialog-expected.txt:
  • fast/dom/Window/forbid-showModalDialog.html:
3:12 PM Changeset in webkit [288762] by Aditya Keerthi
  • 9 edits in trunk/Source/WebKit

Migrate _UITextSearching implementation to be backed by WebFoundTextRangeController
https://bugs.webkit.org/show_bug.cgi?id=235693
rdar://88117303

Reviewed by Tim Horton.

Migrate _UITextSearching implementation to be backed by
WebFoundTextRangeController to support restoreable find results.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView scrollRangeToVisible:inDocument:]):
(-[WKWebView didBeginTextSearchOperation]):
(-[WKWebView didEndTextSearchOperation]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findTextRangesForStringMatches):
(WebKit::WebPageProxy::decorateTextRangeWithStyle):
(WebKit::WebPageProxy::scrollTextRangeToVisible):
(WebKit::WebPageProxy::clearAllDecoratedFoundText):
(WebKit::WebPageProxy::didBeginTextSearchOperation):
(WebKit::WebPageProxy::didEndTextSearchOperation):

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

(-[WKContentView offsetFromPosition:toPosition:]):
(-[WKContentView performTextSearchWithQueryString:usingOptions:resultAggregator:]):
(-[WKContentView decorateFoundTextRange:inDocument:usingStyle:]):
(-[WKContentView scrollRangeToVisible:inDocument:]):
(-[WKContentView clearAllDecoratedFoundText]):
(-[WKContentView didBeginTextSearchOperation]):
(-[WKContentView didEndTextSearchOperation]):
(+[WKFoundTextRange foundTextRangeWithWebFoundTextRange:]):
(-[WKFoundTextRange start]):
(-[WKFoundTextRange end]):
(-[WKFoundTextRange webFoundTextRange]):
(+[WKFoundTextPosition textPositionWithOffset:order:]):
(+[WKFoundTextRange foundTextRangeWithRect:index:]): Deleted.
(+[WKFoundTextPosition textPositionWithIndex:]): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::findTextRangesForStringMatches):
(WebKit::WebPage::decorateTextRangeWithStyle):
(WebKit::WebPage::scrollTextRangeToVisible):
(WebKit::WebPage::clearAllDecoratedFoundText):
(WebKit::WebPage::didBeginTextSearchOperation):
(WebKit::WebPage::didEndTextSearchOperation):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::foundTextRangeController):

  • WebProcess/WebPage/WebPage.messages.in:
3:06 PM Changeset in webkit [288761] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable wasm branch hinting
https://bugs.webkit.org/show_bug.cgi?id=235832

Reviewed by Saam Barati.

https://github.com/WebAssembly/branch-hinting is stage-3 wasm feature.
Flip the flag to enable it.

  • runtime/OptionsList.h:
1:46 PM Changeset in webkit [288760] by Aditya Keerthi
  • 4 edits in trunk/Source/WebKit

Add support for decorating and scrolling to ranges in WebFoundTextRangeController
https://bugs.webkit.org/show_bug.cgi?id=235692
rdar://88117232

Reviewed by Wenson Hsieh.

  • Shared/WebFoundTextRange.h:

(WTF::HashTraits<WebKit::WebFoundTextRange>::deletedValue):

The empty and deleted values should not be the same.

(WTF::HashTraits<WebKit::WebFoundTextRange>::constructDeletedValue):
(WTF::HashTraits<WebKit::WebFoundTextRange>::isDeletedValue):

  • WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::findTextRangesForStringMatches):

Cache the found ranges and their corresponding SimpleRange, to avoid
unnecessary tree traversal each time we want to decorate or scroll to
a found result.

(WebKit::WebFoundTextRangeController::decorateTextRangeWithStyle):

Found ranges can currently be decorated with 3 styles: "Normal",
"Found", and "Highlighted". The "Found" style is drawn using
document markers. The "Highlighted" style is drawn using a
TextIndicator.

(WebKit::WebFoundTextRangeController::scrollTextRangeToVisible):

Use TemporarySelectionChange to make the range visible.

(WebKit::WebFoundTextRangeController::clearAllDecoratedFoundText):
(WebKit::WebFoundTextRangeController::didBeginTextSearchOperation):
(WebKit::WebFoundTextRangeController::didEndTextSearchOperation):
(WebKit::WebFoundTextRangeController::willMoveToPage):
(WebKit::WebFoundTextRangeController::didMoveToPage):
(WebKit::WebFoundTextRangeController::drawRect):
(WebKit::WebFoundTextRangeController::rectsForTextMatchesInRect):
(WebKit::WebFoundTextRangeController::documentForFoundTextRange const):

Use the frame identifer of the WebFoundTextRange to retrieve the
corresponding Document, so that the range can be appropriately
mapped for decoration/scrolling.

(WebKit::WebFoundTextRangeController::simpleRangeFromFoundTextRange):

A helper method to cache WebFoundTextRanges and SimpleRanges.

  • WebProcess/WebPage/WebFoundTextRangeController.h:
12:56 PM Changeset in webkit [288759] by Chris Dumez
  • 14 edits
    1 copy in trunk/Source

ASSERTION FAILED: m_processCallback in WebCore::AudioWorkletProcessor::process
https://bugs.webkit.org/show_bug.cgi?id=235529

Reviewed by Geoffrey Garen and Darin Adler.

Source/WebCore:

m_processCallback stores the JS wrapper for the AudioWorkletProcessor and the crash
was due to that JS wrapper getting garbage collected while the AudioWorkletNode
was still rendering. The JS wrapper for AudioWorkletProcessor is actually created
by AudioWorkletGlobalScope::createProcessor() and the JavaScript does not usually
keep a reference to it.

To address the issue, I added a visitor to the AudioWorkletGlobalScope wrapper
which visits the processors that it created and that still have an associated
AudioWorkletNode owner.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::createProcessor):
(WebCore::AudioWorkletGlobalScope::processorIsNoLongerNeeded):
(WebCore::AudioWorkletGlobalScope::visitProcessors):

  • Modules/webaudio/AudioWorkletGlobalScope.h:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::~AudioWorkletNode):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setWrapper):
(WebCore::AudioWorkletProcessor::setProcessCallback): Deleted.

  • Modules/webaudio/AudioWorkletProcessor.h:

(WebCore::AudioWorkletProcessor::wrapper):
(WebCore::AudioWorkletProcessor::processCallbackWrapper): Deleted.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSAudioWorkletProcessorCustom.cpp:

(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):

Source/WTF:

Add template parameter to WeakHashSet to disable threading assertions. This is useful
when the call site is using locking.

  • wtf/WeakHashSet.h:
  • wtf/WeakPtr.h:
12:48 PM Changeset in webkit [288758] by commit-queue@webkit.org
  • 10 edits
    6 adds in trunk

[JSC] Add support for WASM branch hinting proposal
https://bugs.webkit.org/show_bug.cgi?id=235581

Patch by Tom Tartarin <tom@leaningtech.com> on 2022-01-28
Reviewed by Yusuke Suzuki.

JSTests:

Add test for branch hinting custom section

  • wasm.yaml:
  • wasm/branch-hints/branchHintsModule.wasm: Added.
  • wasm/branch-hints/branchHintsSection.js: Added.

(const.module):

Source/JavaScriptCore:

See the proposal for a more detailed description: https://github.com/WebAssembly/branch-hinting.

This allows parsing a "code_annotation.branch_hint" custom section,
as per the code annotation proposal: https://github.com/WebAssembly/annotations.
This section provides per function information about how likely a branch at a
given offset is to be taken. It is similar to branch weight metadata in LLVM.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/OptionsList.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addIf):
(JSC::Wasm::AirIRGenerator::addBranch):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addIf):
(JSC::Wasm::B3IRGenerator::addBranch):

  • wasm/WasmBranchHints.h: Added.

(JSC::Wasm::BranchHintMap::add):
(JSC::Wasm::BranchHintMap::getBranchHint const):
(JSC::Wasm::BranchHintMap::isValidKey const):
(JSC::Wasm::isValidBranchHint):

  • wasm/WasmBranchHintsSectionParser.cpp: Added.

(JSC::Wasm::BranchHintsSectionParser::parse):

  • wasm/WasmBranchHintsSectionParser.h: Added.

(JSC::Wasm::BranchHintsSectionParser::BranchHintsSectionParser):

  • wasm/WasmModuleInformation.h:

(JSC::Wasm::ModuleInformation::getBranchHint const):

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseCustom):

12:19 PM Changeset in webkit [288757] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.5.5

Tag Safari-613.1.14.5.5.

12:18 PM Changeset in webkit [288756] by Russell Epstein
  • 6 edits in branches/safari-613.1.14.5-branch/Source

Cherry-pick r288749. rdar://problem/87928380

Catalyst builds fail for WebCore, WebKi and WebKitLegacy for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235821

Reviewed by Saam Barati.

Source/WebCore:

The value of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR for Catalyst builds had the system content prefix
after the Catalyst prefix. I reversed them.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Eliminated the system content prefix from ALTERNATE_ROOT_PATH since it is the old location.
Changed the create symlink script to create the directory path leading up to the symlink because
it isn't created for Catalyst builds.

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebKit.xcodeproj/project.pbxproj:

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

12:09 PM Changeset in webkit [288755] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.5-branch/Source

Versioning.

WebKit-7613.1.14.5.5

11:52 AM Changeset in webkit [288754] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Ensure session is added in network process when it creates connection to web process
https://bugs.webkit.org/show_bug.cgi?id=235754

Reviewed by Chris Dumez.

In NetworkProcess::CreateNetworkConnectionToWebProcess, if the session that web process is using is not added
yet, WorkQueueMessageReceiver cannot be added to the connection and storage messages will be dropped. Usually
session is added in NetworkProcess::AddWebsiteDataStore, which is sent from UI process before
NetworkProcess::CreateNetworkConnectionToWebProcess; but CreateNetworkConnectionToWebProcess message has
DispatchMessageEvenWhenWaitingForSyncReply flag set, so it might get processed earlier.

To fix the issue, now we send set DispatchMessageEvenWhenWaitingForSyncReply flag on AddWebsiteDataStore message
too, so it's processed before CreateNetworkConnectionToWebProcess.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::addSession):

11:48 AM Changeset in webkit [288753] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

JSEventListener::replaceJSFunctionForAttributeListener() should not replace m_wrapper unconditionally
https://bugs.webkit.org/show_bug.cgi?id=235658

Unreviewed, follow-up to r288648 based on Geoff's feedback.

Assert that if replaceJSFunctionForAttributeListener() is invoked, m_wrapper is
alive and remains unchanged. Remove writeBarrier() as ensureJSFunction() sets it
up only for functions created from source code.

To meet the expectation for Window-reflecting event handlers, ensure that
setAttributeEventListener() is called with the correct wrapper, and also call it
directly on DOMWindow to improve readability.

Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-28

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::replaceJSFunctionForAttributeListener):

  • bindings/js/JSEventListener.h:

(WebCore::setWindowEventHandlerAttribute):

11:47 AM Changeset in webkit [288752] by Kocsen Chung
  • 1 edit in branches/safari-613-branch/Source/WTF/wtf/PlatformEnable.h

Apply patch. rdar://problem/88164014

11:29 AM Changeset in webkit [288751] by Kocsen Chung
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r288591. rdar://problem/87850345

[macOS][WP] Allow mach extension to service

https://bugs.webkit.org/show_bug.cgi?id=235599
<rdar://87850345>

Reviewed by Darin Adler.

Allow mach extension to a service in the WebContent process on macOS.

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

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

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

[macOS][WP] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=235828
<rdar://88177392>

Reviewed by Darin Adler.

  • WebProcess/com.apple.WebProcess.sb.in:
11:03 AM Changeset in webkit [288749] by msaboff@apple.com
  • 6 edits in trunk/Source

Catalyst builds fail for WebCore, WebKi and WebKitLegacy for builds with system content path
https://bugs.webkit.org/show_bug.cgi?id=235821

Reviewed by Saam Barati.

Source/WebCore:

The value of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR for Catalyst builds had the system content prefix
after the Catalyst prefix. I reversed them.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

Eliminated the system content prefix from ALTERNATE_ROOT_PATH since it is the old location.
Changed the create symlink script to create the directory path leading up to the symlink because
it isn't created for Catalyst builds.

  • Configurations/SDKVariant.xcconfig:
  • Configurations/WebKit.xcconfig:
  • Scripts/create-symlink-to-altroot.sh:
  • WebKit.xcodeproj/project.pbxproj:
11:01 AM Changeset in webkit [288748] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] YarrJIT optimization for character BM search
https://bugs.webkit.org/show_bug.cgi?id=235738

Reviewed by Saam Barati.

Add micro-optimization of BM search path. Since it is super hot path,
this small improvement offsers 1% in jquery-todomvc-regexp microbenchmark.

ToT Patched

jquery-todomvc-regexp 484.1399+-1.0527 479.0932+-1.0999 definitely 1.0105x faster

  • yarr/YarrJIT.cpp:
10:33 AM Changeset in webkit [288747] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Symbols not always properly hidden when using WebKitAdditions to introduce new API
https://bugs.webkit.org/show_bug.cgi?id=235674
<rdar://87999257>

Reviewed by Wenson Hsieh.

Follow-up to r288658 to address post commit feedback from Alexey Proskuryakov.

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • mac/replace-webkit-additions-includes.py:

(main):

10:28 AM Changeset in webkit [288746] by ntim@apple.com
  • 2 edits in trunk/Source/WTF

Enable inert attribute feature flag
https://bugs.webkit.org/show_bug.cgi?id=235668

Reviewed by Darin Adler.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
10:09 AM Changeset in webkit [288745] by jonlee@apple.com
  • 3 edits in trunk/LayoutTests

Add copy-to-clipboard button for fuzzy matching meta tag
https://bugs.webkit.org/show_bug.cgi?id=235665

Reviewed by Darin Adler.

  • fast/harness/image-diff-template.html: Add button which cycles through different versions of

the fuzzy match string to allow for both absolute values and a range. Add a button that copies
that text and inserts into meta tag string prior to copying to clipboard.

  • fast/harness/image-diff-template-expected.txt:
9:37 AM Changeset in webkit [288744] by Ryan Haddad
  • 3 edits in trunk/Tools/CISupport/build-webkit-org

Bring up additional test queues on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=235446

Reviewed by Jonathan Bedard.

  • CISupport/build-webkit-org/config.json:
  • CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

  • CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

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

9:29 AM Changeset in webkit [288743] by Patrick Angle
  • 2 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 15.4)
https://bugs.webkit.org/show_bug.cgi?id=235741

Reviewed by Devin Rousso.

  • UserInterface/Models/Animation.js:

(WI.Animation.prototype.requestEffectTarget):

  • Update compatibility comment to reflect that the change is not present in iOS 15.4 or earlier.
  • UserInterface/Protocol/Legacy/15.4/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-15.4.json: Added.
9:16 AM Changeset in webkit [288742] by commit-queue@webkit.org
  • 4 edits in trunk

[XCBuild] Small corrections to build-webkit and Makefile for workspace builds
https://bugs.webkit.org/show_bug.cgi?id=235747

Patch by Elliott Williams <Elliott Williams> on 2022-01-28
Reviewed by Alexey Proskuryakov.

.:

  • Makefile: Set SCRIPTS_PATH correctly from the root of the repo

Tools:

  • Scripts/build-webkit: When --use-workspace is passed, assume --xcbuild
8:09 AM Changeset in webkit [288741] by Tyler Wilcock
  • 2 edits in trunk/Source/WebKit

AX: Isolated tree object frames no longer encode content offsets, so hit testing should be updated accordingly
https://bugs.webkit.org/show_bug.cgi?id=235726

Reviewed by Chris Fleizach.

In -[WKAccessibilityWebPageObjectMac accessibilityHitTest], we have a special isolated tree case:

Isolated tree frames have the offset encoded into them so we don't need to undo here.
#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)

applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled();

#endif

The statement in the comment no longer seems to be true, as not applying this content offset results
in hit testing working incorrectly (the point given to WebCore is too small).

This is because isolated tree hit testing used to use relative frames:

https://github.com/WebKit/WebKit/blob/f5525921aac090ca9544cce2a3ac28e38f92c9ba/Source/WebCore/accessibility/isolatedtree/AXIsolatedTreeNode.cpp#L115

But now doesn't, instead deferring to the live, main-thread AX object, which doesn't use relative frames:

https://github.com/WebKit/WebKit/blob/4221a510fe4678cf1a03e5c06878cf2d3f0c1738/Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp#L814

This patch removes this isolated-tree-specific behavior.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

8:00 AM Changeset in webkit [288740] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Only make a single request to GitHub when validating PR
https://bugs.webkit.org/show_bug.cgi?id=235716
<rdar://problem/88133197>

Reviewed by Aakash Jain.

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

(GitHubMixin._is_pr_closed): Accept pr_json, do not make request.
(GitHubMixin._is_pr_obsolete): Ditto.
(ValidateChange.validate_github): Make request and pass json to functions.

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

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

7:27 AM Changeset in webkit [288739] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK][a11y] WTR: implement AccessibilityUIElement::isIgnored() for ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235761

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::isIgnored const):

  • accessibility/atspi/AccessibilityObjectAtspi.h:

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::isIgnored const):

7:25 AM Changeset in webkit [288738] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][a11y] Return the list of column/row headers from header cells too with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235711

Reviewed by Adrian Perez de Castro.

Source/WebCore:

We are only returning the list of column/row headers from cells that are not headers for consistency with
chromium. However, our layout tests don't expect that and firefox doesn't do it either.

  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):

Tools:

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(testTableBasic):

7:22 AM Changeset in webkit [288737] by graouts@webkit.org
  • 2 edits
    4 deletes in trunk/LayoutTests

[WPT] Remove outdated Web Animations expectations
https://bugs.webkit.org/show_bug.cgi?id=235767

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.

LayoutTests:

  • platform/glib/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
5:28 AM Changeset in webkit [288736] by Pablo Saavedra
  • 2 edits in trunk

[WPE] Build error with ACCESSIBILITY=OFF after r288731
https://bugs.webkit.org/show_bug.cgi?id=235764

Reviewed by Adrian Perez de Castro.

  • Source/cmake/OptionsWPE.cmake:
3:35 AM Changeset in webkit [288735] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/loadConfig.py

[ews] validate-change step fails while running for a try build
https://bugs.webkit.org/show_bug.cgi?id=235750

Reviewed by Jonathan Bedard.

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

(loadBuilderConfig):

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

Note: See TracTimeline for information about the timeline view.