Timeline



Jan 19, 2022:

10:01 PM Changeset in webkit [288272] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] Implement Temporal.Now.instant()
https://bugs.webkit.org/show_bug.cgi?id=234836

Reviewed by Ross Kirsling.

JSTests:

  • stress/temporal-now-instant.js: Added.

(shouldBe):

Source/JavaScriptCore:

This patch implements Temporal.Now.instant() since Temporal.Instant is now implemented.
It returns an instant which represents current wall time.

  • runtime/ISO8601.cpp:

(JSC::ISO8601::ExactTime::now):

  • runtime/ISO8601.h:
  • runtime/TemporalNow.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WTF:

Add currentTimeInNanoseconds implementation. Use clock_gettime for non Windows environment
since it is POSIX & it is supported in macOS after Sierra.

We also remove non-QueryPerformanceCounter path on Windows build since (1) it is supported in
all supported Windows versions now and (2) no ports are using that path.

  • wtf/CurrentTime.cpp:

(WTF::currentTimeInNanoseconds):
(WTF::currentTime):

  • wtf/PlatformUse.h:
  • wtf/WallTime.h:
8:54 PM Changeset in webkit [288271] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.12.1.11

Tag Safari-613.1.12.1.11.

8:46 PM Changeset in webkit [288270] by Kocsen Chung
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.11

8:09 PM Changeset in webkit [288269] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Grant access to GlobalPreferences and GlobalPreferences_m uniformly
https://bugs.webkit.org/show_bug.cgi?id=235387
<rdar://problem/86943871>

Reviewed by Per Arne Vollan.

We should allow access to GlobalPreferences_m.plist in the places where we currently
allow GlobalPreferences.plist. We are inconsistent about this in our sandboxes, and
telemetry shows that we need to provide access.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
8:03 PM Changeset in webkit [288268] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Fix non-JIT Windows LLInt
https://bugs.webkit.org/show_bug.cgi?id=235388

Reviewed by Mark Lam.

We should implement cCall3 which calls llint_link_call etc. from LLInt code.
This implementation needs to work on Windows too, so it requires stack modification.
While we do not have a problem on JIT Windows build, it is required for non JIT Windows
build. (If JIT is enabled, LLInt is fine. But if JIT is entirely disabled, this change
is required.)

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_link_call):
(JSC::LLInt::llint_virtual_call):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/cloop.rb:
  • offlineasm/instructions.rb:
7:53 PM Changeset in webkit [288267] by Simon Fraser
  • 6 edits in trunk

<dialog> with transformed ancestor asserts under RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=235194

Reviewed by Antti Koivisto.

Source/WebCore:

With this change we reparent the RenderLayers of top layer elements under the RenderView's
layer. This makes the RenderLayer hierarchy a closer match to the containing block
hierarchy, and means that all the existing RenderLayer tree walks that use
parent()/firstChild()/nextSibling() traverse the the "top layer" layers as children of the
RenderView. This in turn means that the various bits of RenderLayer state that track the
state of descendants (e.g. m_hasVisibleDescendant, m_hasSelfPaintingLayerDescendant,
m_hasNotIsolatedBlendingDescendants) reflect descendency in the top-layer-aware hierarchy.

Note that m_hasVisibleDescendant is about the inherited visibility property which follows
DOM order, but since we consult it during painting-related tree walks, we want this state to
reflect the top-layer-aware tree.

The patch adds top-layer-aware helpers on RenderElement to find the parent and next sibling,
and uses those when parenting layers.

In addition, when the top layer status changes for a RenderLayer, we unparent and
re-parent its layer (which in turn should toggle the relevant dirty bits).

  • rendering/RenderElement.cpp:

(WebCore::findNextLayer):
(WebCore::layerNextSiblingRespectingTopLayer):
(WebCore::addLayers):
(WebCore::RenderElement::layerParentRespectingTopLayer const):
(WebCore::RenderElement::layerNextSiblingRespectingTopLayer const):
(WebCore::RenderElement::insertedIntoTree):
(WebCore::RenderElement::willBeRemovedFromTree):
(WebCore::RenderElement::findNextLayer const): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::insertOnlyThisLayer):
(WebCore::RenderLayer::stackingContext const): No need for the explicit establishesTopLayer() check.
(WebCore::RenderLayer::setHasVisibleContent):
(WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus):
(WebCore::RenderLayer::setAncestorChainHasVisibleDescendant):
(WebCore::RenderLayer::enclosingAncestorForPosition const): No need for the explicit establishesTopLayer() check.
(WebCore::RenderLayer::paintLayerWithEffects): Ditto
(WebCore::RenderLayer::establishesTopLayerWillChange):
(WebCore::RenderLayer::establishesTopLayerDidChange):
(WebCore::RenderLayer::clipCrossesPaintingBoundary const): No need for the explicit establishesTopLayer() check.
(WebCore::RenderLayer::calculateClipRects const): Ditto

LayoutTests:

  • TestExpectations: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html

no longer asserts.

6:45 PM Changeset in webkit [288266] by Devin Rousso
  • 12 edits in trunk

Web Inspector: fully blackboxed stack traces don't show the right top call frame
https://bugs.webkit.org/show_bug.cgi?id=235381

Reviewed by Patrick Angle.

Source/WebInspectorUI:

  • UserInterface/Models/StackTrace.js:

(WI.StackTrace):
(WI.StackTrace.fromPayload):
(WI.StackTrace.prototype.get firstNonNativeNonAnonymousNotBlackboxedCallFrame):
Only assign to firstNonNativeNonAnonymousCallFrame once.
Drive-by: Don't re-fetch the blackbox data for the WI.SourceCode of the WI.CallFrame.
Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame):
(WI.CallFrame.fromDebuggerPayload):
(WI.CallFrame.fromPayload):

  • UserInterface/Views/ThreadTreeElement.js:

(WI.ThreadTreeElement.prototype.refresh):
Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Views/CallFrameTreeElement.js:

(WI.CallFrameTreeElement):
(WI.CallFrameTreeElement.prototype.onattach):

  • UserInterface/Views/CallFrameView.js:

(WI.CallFrameView):
Drive-by: Don't re-fetch the blackbox data for the WI.SourceCode of the WI.CallFrame.

LayoutTests:

  • inspector/model/stack-trace.html:
  • inspector/model/stack-trace-expected.txt:
  • inspector/debugger/resources/async-stack-trace-test.js:

(TestPage.registerInitializer.window.getAsyncStackTrace):

  • inspector/debugger/resources/log-active-stack-trace.js:

(TestPage.registerInitializer.window.getActiveStackTrace):

  • inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js:

(TestPage.registerInitializer.window.getAsyncStackTrace):
Drive-by: Adopt new WI.StackTrace constructor arguments format.

6:40 PM Changeset in webkit [288265] by ysuzuki@apple.com
  • 6 edits in trunk/Source/bmalloc

[libpas] Disable PAS_ASSERT on Darwin ARM64 (not in ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=235349

Reviewed by Saam Barati.

We have several weak devices which only have ARM64 (not ARM64E).
And in such a weak device, PAS_ASSERT affects on performance.
By disabling PAS_ASSERT, we got 0.5% improvement in PLT in iPhone 6S.

  • libpas/src/libpas/pas_config.h:
  • libpas/src/libpas/pas_config_prefix.h:
  • libpas/src/libpas/pas_internal_config.h:
  • libpas/src/libpas/pas_platform.h:
  • libpas/src/libpas/pas_utils.h:
6:05 PM Changeset in webkit [288264] by Chris Dumez
  • 27 edits in trunk

Align our qualified name validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=201699

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:

Rebaseline WPT tests now that more checks are passing.

Source/WebCore:

Align our qualified name validation with the latest specification:

No new tests, rebaselined existing tests.

  • dom/Document.cpp:

(WebCore::isValidNameStart):
(WebCore::isValidNamePart):

LayoutTests:

  • dom/xhtml/level3/core/canonicalform06-expected.txt:
  • dom/xhtml/level3/core/infoset06-expected.txt:
  • dom/xhtml/level3/core/infoset07-expected.txt:
  • dom/xhtml/level3/core/wellformed01-expected.txt:
  • dom/xhtml/level3/core/wellformed02-expected.txt:
  • dom/xhtml/level3/core/wellformed03-expected.txt:
  • dom/xhtml/level3/core/wellformed04-expected.txt:

Rebaseline outdated imported tests.

  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/createDocument-namespace-err.html:
  • fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
  • fast/dom/Document/createAttributeNS-namespace-err.html:
  • fast/dom/Document/createElement-invalid-names-expected.txt:
  • fast/dom/Document/createElement-invalid-names.html:
  • fast/dom/Document/createElementNS-namespace-err-expected.txt:
  • fast/dom/Document/createElementNS-namespace-err.html:
  • fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
  • fast/dom/Element/setAttributeNS-namespace-err.html:
  • fast/dom/dataset-expected.txt:
  • fast/dom/dataset-xhtml-expected.txt:
  • fast/dom/dataset-xhtml.xhtml:
  • fast/dom/dataset.html:

Update and rebaseline outdated WebKit tests.

6:05 PM Changeset in webkit [288263] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.14.1.4

Tag Safari-613.1.14.1.4.

5:53 PM Changeset in webkit [288262] by Kocsen Chung
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.4

5:39 PM Changeset in webkit [288261] by sbarati@apple.com
  • 21 edits
    1 move
    3 adds in trunk/Source

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=235192

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::~ARM64EHash):
(JSC::ARM64EHash::allocatePinForCurrentThreadAndInitializeHash):
(JSC::ARM64EHash::deallocatePinForCurrentThread):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::pin):
(JSC::ARM64EHash::currentHash):
(JSC::ARM64EHash::setUpdatedHash):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::arm64eHash):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::ARM64EHash::bitsForDiversifier): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::allocate):

  • assembler/SecureARM64EHashPins.cpp: Added.

(JSC::WriteToJITRegionScope::WriteToJITRegionScope):
(JSC::WriteToJITRegionScope::~WriteToJITRegionScope):
(JSC::ValidateNonReentrancyScope::ValidateNonReentrancyScope):
(JSC::ValidateNonReentrancyScope::~ValidateNonReentrancyScope):
(JSC::allocateInExecutableMemory):
(JSC::SecureARM64EHashPins::Page::Page):
(JSC::initializePage):
(JSC::SecureARM64EHashPins::metadata):
(JSC::SecureARM64EHashPins::initializeAtStartup):
(JSC::SecureARM64EHashPins::allocatePinForCurrentThreadImpl):
(JSC::SecureARM64EHashPins::allocatePinForCurrentThread):
(JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):

  • assembler/SecureARM64EHashPins.h: Added.

(JSC::SecureARM64EHashPins::firstPage):

  • assembler/SecureARM64EHashPinsInlines.h: Added.

(JSC::SecureARM64EHashPins::keyForCurrentThread):
(JSC::SecureARM64EHashPins::forEachPage):
(JSC::SecureARM64EHashPins::forEachEntry):
(JSC::SecureARM64EHashPins::findFirstEntry):
(JSC::SecureARM64EHashPins::pinForCurrentThread):

  • heap/MarkedBlock.h:
  • heap/MarkedSpace.h:
  • heap/SlotVisitor.h:
  • jit/BaselineJITPlan.cpp:

(JSC::BaselineJITPlan::BaselineJITPlan):
(JSC::BaselineJITPlan::compileInThreadImpl):

  • jit/ExecutableAllocator.cpp:
  • parser/Parser.h:
  • runtime/InitializeThreading.cpp:

(JSC::initialize):

  • runtime/IterationStatus.h: Removed.
  • runtime/JSCConfig.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompileB3):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::compileFunction):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bitmap.h:

(WTF::WordType>::set):
(WTF::WordType>::forEachSetBit const):

  • wtf/CMakeLists.txt:
  • wtf/IterationStatus.h: Added.
5:35 PM Changeset in webkit [288260] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r286049 - Nullptr crash in SimplifiedBackwardsTextIterator::range() via previousSentencePosition
https://bugs.webkit.org/show_bug.cgi?id=229282

Patch by Frédéric Wang <fwang@igalia.com> on 2021-11-18
Reviewed by Darin Adler.

Source/WebCore:

Constructors of TextIterator and SimplifiedBackwardsTextIterator update layout, which may
make HTMLObjectElement switch to fallback content and invalidate their renderer. As a
consequence their advance() method may incorrectly treat them as replaced elements. This
patch updates the layout at the beginning of FrameSelection::modify and disable post
resolution callbacks in order to prevent this kind of unaverted tree changes while browsing
the tree for selection update.

Test: editing/text-iterator/backward-textiterator-object-crash.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::modify): Update layout and disable post resolution callback, so that
all iterators used during the execution of the function handle <object>s consistently.

LayoutTests:

Add regression test.

  • editing/text-iterator/backward-textiterator-object-crash-expected.txt: Added.
  • editing/text-iterator/backward-textiterator-object-crash.html: Added.
5:34 PM Changeset in webkit [288259] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Merge r285877 - Crash under WebKit::WebPageProxy::commitProvisionalPage()
https://bugs.webkit.org/show_bug.cgi?id=233199
<rdar://57659921>

Reviewed by Youenn Fablet.

Source/WebKit:

In the event where the committed WebProcess would crash while a cross-site provisional load
is going on in a provisional page / WebProcess, we would do a null dereference of the page's
drawing area when trying to commit the provisional page later on. We would also hit various
assertions in debug since the page's state gets completely reset when its WebProcess crashes.

To address the issue, we now clear the provisional page if the page's WebProcess crashes.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
5:27 PM Changeset in webkit [288258] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r285813 - nullptr deref in CompositeEditCommand::insertNodeAt
https://bugs.webkit.org/show_bug.cgi?id=232837

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-15
Reviewed by Wenson Hsieh and Darin Adler.

Source/WebCore:

Check endingSelection is not orphan before inserting nodes at
the start position.

Test: fast/editing/editing-position-crash.html

  • editing/CreateLinkCommand.cpp:

(WebCore::CreateLinkCommand::doApply):

LayoutTests:

  • fast/editing/editing-position-crash-expected.txt: Added.
  • fast/editing/editing-position-crash.html: Added.
5:22 PM Changeset in webkit [288257] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.14.1.3

Tag Safari-613.1.14.1.3.

5:21 PM Changeset in webkit [288256] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.14.0.3

Tag Safari-613.1.14.0.3.

5:19 PM Changeset in webkit [288255] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r285232 - Return nullopt in aspect-ratio+intrinsic width case
https://bugs.webkit.org/show_bug.cgi?id=230769

Patch by Rob Buis <rbuis@igalia.com> on 2021-11-03
Reviewed by Javier Fernandez.

Source/WebCore:

Return nullopt in aspect-ratio+intrinsic width case, while
calculating preferred widths we do not know the container width yet,
so we can't determine the logical height reliably from it.

Test: fast/css-grid-layout/aspect-ratio-auto-repeat-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

LayoutTests:

  • fast/css-grid-layout/aspect-ratio-auto-repeat-crash-expected.txt: Added.
  • fast/css-grid-layout/aspect-ratio-auto-repeat-crash.html: Added.
5:06 PM Changeset in webkit [288254] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

Turn EUnicodeBidi into an enum class
https://bugs.webkit.org/show_bug.cgi?id=235379

Reviewed by Antti Koivisto.

  • WebCore.order:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator UnicodeBidi const):
(WebCore::CSSPrimitiveValue::operator EUnicodeBidi const): Deleted.

  • layout/formattingContexts/inline/InlineItemsBuilder.cpp:

(WebCore::Layout::handleEnterExitBidiContext):
(WebCore::Layout::buildBidiParagraph):
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxStart):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxEnd):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForStyle):

  • platform/text/UnicodeBidi.h:

(WebCore::isIsolated):
(WebCore::isOverride):
(): Deleted.

  • rendering/LegacyInlineIterator.h:

(WebCore::embedCharFromDirection):
(WebCore::notifyObserverEnteredObject):
(WebCore::notifyObserverWillExitObject):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::updateLogicalWidthForAlignment):
(WebCore::constructBidiRunsForSegment):
(WebCore::LegacyLineLayout::layoutRunsAndFloatsInRange):
(WebCore::LegacyLineLayout::determineStartPosition):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::computeMarkerStyle const):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::adjustInnerStyle):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::unicodeBidi const):
(WebCore::RenderStyle::setUnicodeBidi):
(WebCore::RenderStyle::initialUnicodeBidi):

4:51 PM Changeset in webkit [288253] by Jonathan Bedard
  • 9 edits in trunk/Tools

[git-webkit] pull-request command should print the pr url
https://bugs.webkit.org/show_bug.cgi?id=235358
<rdar://problem/87793470>

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Make created

and modified commits in tests have more issue-friendly titles.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): Print out PullRequest URL.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:

(PullRequest.init): Constructor may define printable URL.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:

(BitBucket.PRGenerator.PullRequest): Set printable URL.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.PRGenerator.PullRequest): Set printable URL.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:

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

4:22 PM Changeset in webkit [288252] by Adrian Perez de Castro
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r284792 - Source/WebCore:
ASSERT(node) triggered after surroundNodeRangeWithElement for node without editable style
https://bugs.webkit.org/show_bug.cgi?id=232133

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-25
Reviewed by Wenson Hsieh.

If the last styled node was not parent node of a current text node, but we
wish to style the text node, we will add a style span to surround the text node.
However, this requires the parent to have an editable style, or
we will not properly insert the span in the right location, which
later leads to a traversal into an invalid node. This change
makes it so we return early if the parent node does not have an
editable style, but modifying the existing
CompositeEditCommand::insertNodeBefore to return a boolean in the
early return case.

Test: fast/editing/apply-relative-font-style-change-crash-003.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeBefore):

  • editing/CompositeEditCommand.h:

LayoutTests:
ASSERT(node) triggered after surroundNodeRangeWithElement for node without editable style
https://bugs.webkit.org/show_bug.cgi?id=232133

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-25
Reviewed by Wenson Hsieh.

  • fast/editing/apply-relative-font-style-change-crash-003-expected.txt: Added.
  • fast/editing/apply-relative-font-style-change-crash-003.html: Added.
4:22 PM Changeset in webkit [288251] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r284754 - Null check in traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=230704

Patch by Rob Buis <rbuis@igalia.com> on 2021-10-23
Reviewed by Wenson Hsieh.

Source/WebCore:

Pass startNode by value instead of by pointer to
traverseNodesForSerialization.

Test: editing/pasteboard/copy-with-shadow-tree-crash.html

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

LayoutTests:

  • editing/pasteboard/copy-with-shadow-tree-crash-expected.txt: Added.
  • editing/pasteboard/copy-with-shadow-tree-crash.html: Added.
4:21 PM Changeset in webkit [288250] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r284739 - Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=232177
Check if start and end positions are still valid after updating them through mergeEndWithNextIfIdentical

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-22
Reviewed by Alan Bujtas.

We currently check if start and end positions are still valid after
updating them through mergeEndWithNextIfIdentical, but not through
mergeStartWithPreviousIfIdentical. Add this check to avoid trying to
deref a nullptr in ApplyStyleCommand::mergeEndWithNextIfIdentical.

Test: fast/editing/create-link-inline-style-change-crash-001.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyInlineStyle):

LayoutTests:
Check if start and end positions are still valid after updating them through mergeStartWithPreviousIfIdentical
https://bugs.webkit.org/show_bug.cgi?id=232177

Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-22
Reviewed by Alan Bujtas.

  • fast/editing/create-link-inline-style-change-crash-001-expected.txt: Added.
  • fast/editing/create-link-inline-style-change-crash-001.html: Added.
4:10 PM Changeset in webkit [288249] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after after r288183

  • platform/win/TestExpectations:
3:53 PM Changeset in webkit [288248] by Chris Dumez
  • 2 edits
    3 adds in trunk/LayoutTests

[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150
<rdar://problem/87524787>

Unreviewed, land iOS baseline and unskip. The behavior difference is expected as it involves mouse events.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/imported/w3c/dom/events/focus-event-document-move-expected.txt: Added.
3:40 PM Changeset in webkit [288247] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[LFC][IFC] imported/w3c/web-platform-tests/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html fails on EWS
https://bugs.webkit.org/show_bug.cgi?id=233393
<rdar://problem/85776836>

Unreviewed, unskip test as it appears it got fixed in r286928.

  • platform/mac/TestExpectations:
3:27 PM Changeset in webkit [288246] by Jonathan Bedard
  • 3 edits in trunk/Tools

[EWS] Report basic statuses to GitHub
https://bugs.webkit.org/show_bug.cgi?id=235210
<rdar://problem/87576183>

Reviewed by Aakash Jain.

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

(Events.sendDataToEWS): Renamed from sendData.
(Events.sendDataToGitHub): Post status for a commit to GitHub.
(Events.extractProperty): We need to extract more than patchID from
build properties.
(Events.buildFinishedGitHub): Report the pass/failed state of a build to GitHub.
(Events.buildFinished): Every time a build finishes, send data to GitHub.
(Events.stepStartedGitHub): Update GitHub with the current step being run,
and a failure status if that's already known.
(Events.stepStarted): Every time a new step starts, send data to GitHub.
(Events.stepFinished):
(Events.sendData): Deleted.
(Events.getPatchID): Deleted.

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

(GitHub.commit_status_url): Construct a status url for a commit in a repository.

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

3:13 PM Changeset in webkit [288245] by Sam Sneddon
  • 9 edits
    2 adds
    2 deletes in trunk

Limit the deprecated CSSOMPrimitiveValue to formerly standardized unit types
https://bugs.webkit.org/show_bug.cgi?id=233651
<rdar://problem/85878291>

Reviewed by Darin Adler.

Source/WebCore:

This removes support, and makes it clear that these deprecated APIs shouldn't be exposing
anything more modern than what is standardized in DOM Level 2 Style. Hopefully this avoids
others in future adding support for new units.

Other changes included as they are necessary to make improved test not assert.

Test: fast/css/CSSPrimitiveValue-modern-length.html

  • css/CSSUnits.cpp:

(WebCore::unitCategory): Ensure this is complete for all units.
(WebCore::canonicalUnitTypeForCategory): Ensure this is complete for all unit categories.

  • css/DeprecatedCSSOMPrimitiveValue.cpp:

(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const): Remove post-DOM Level 2 Style values.
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const): Remove post-DOM Level 2 Style values.
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const): Add comment.

  • css/DeprecatedCSSOMPrimitiveValue.h: Remove post-DOM Level 2 Style constants.
  • css/DeprecatedCSSOMPrimitiveValue.idl: Remove post-DOM Level 2 Style constants.
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.
(WebCore::CSSPrimitiveValue::doubleValueInternal const): Handle std::optional return.

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.

  • page/PrintContext.cpp:

(WebCore::PrintContext::computedPageMargin): Handle std::optional return.

LayoutTests:

Updated/moved test to cover all modern length units, not just ic.

  • fast/css/CSSPrimitiveValue-ic-expected.txt: Removed.
  • fast/css/CSSPrimitiveValue-ic.html: Removed.
  • fast/css/CSSPrimitiveValue-modern-length-expected.txt: Added.
  • fast/css/CSSPrimitiveValue-modern-length.html: Added.
2:43 PM Changeset in webkit [288244] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening of GPU Process bot

  • gpu-process/TestExpectations:
2:38 PM Changeset in webkit [288243] by Devin Rousso
  • 13 edits
    1 copy
    1 add in trunk/Source/WebInspectorUI

Web Inspector: blackboxed call frames should be grouped everywhere
https://bugs.webkit.org/show_bug.cgi?id=234648
<rdar://problem/87018103>

Reviewed by Patrick Angle.

  • UserInterface/Controllers/CallFrameTreeController.js:

(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames): Added.
(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames.displayable): Added.
(WI.CallFrameTreeController.prototype.set callFrames): Added.

  • UserInterface/Views/StackTraceView.js:

(WI.StackTraceView):

  • UserInterface/Views/ThreadTreeElement.js:

(WI.ThreadTreeElement.prototype.refresh):

  • UserInterface/Views/TimelineDataGrid.js:

(WI.TimelineDataGrid.prototype._createPopoverContent):
(WI.TimelineDataGrid.prototype._popoverCallStackTreeElementRemoved):
Centralize code for creating stack trace views so that the logic that groups blackboxed call
frames (and the associated WI.BlackboxedGroupTreeElement/WI.BlackboxedGroupView) can be
shared without duplication.

  • UserInterface/Views/BlackboxedGroupTreeElement.js:

(WI.BlackboxedGroupTreeElement):
(WI.BlackboxedGroupTreeElement.prototype.expand):
(WI.BlackboxedGroupTreeElement.prototype.customTitleTooltip): Added.
Add a parameter to control whether to remember when expanding blackboxed call frame groups
so that they can later be auto-expanded. This is needed because that feature is intended so
that stepping doesn't re-collapse previously expanded blackboxed call frame groups. A more
technical reason is that non-debugging call stacks can live (i.e. be shown) for a long time
and therefore there's no good way to clear the remembered state, and we probably don't want
to have a previous expansion in the Timelines Tab or Canvas Tab suddenly cause all matching
blackboxed call frame groups in the Sources Tab to always be expanded.
Drive-by: Override the tooltip to explain that clicking shows the blackboxed call frames.

  • UserInterface/Views/BlackboxedGroupView.js: Added.

(WI.BlackboxedGroupView):
(WI.BlackboxedGroupView.generateTitle):
(WI.BlackboxedGroupView.generateSubtitle):
(WI.BlackboxedGroupView.generateTooltip):

  • UserInterface/Views/BlackboxedGroupView.css: Added.

(.blackboxed-group):
(.blackboxed-group > *):
(.blackboxed-group .icon):
(.blackboxed-group .subtitle):
(.blackboxed-group .separator):
(@media (prefers-color-scheme: dark) .blackboxed-group .icon):
(@media (prefers-color-scheme: dark) .blackboxed-group .subtitle):
(@media (prefers-color-scheme: dark) .blackboxed-group .separator):
Add a non-tree UI class for showing blackboxed call frame groups (just like how there's
WI.CallFrameTreeElement for tree UIs and WI.CallFrameView for non-tree UIs). Also
centralize the UI strings for all blackboxed call frame group UIs as static methods.

  • UserInterface/Views/BlackboxedGroupTreeElement.css:

(.tree-outline .item.blackboxed-group.selected > *): Added.
(.tree-outline:not(:focus-within) .item.blackboxed-group.selected > *, body:is(.window-inactive, .window-docked-inactive) .tree-outline .item.blackboxed-group.selected > *): Added.
(.tree-outline .item.blackboxed-group): Deleted.
(.tree-outline .item.blackboxed-group:not(.selected) > *, .tree-outline:not(:focus-within) .item.blackboxed-group.selected > *, body:is(.window-inactive, .window-docked-inactive) .tree-outline .item.blackboxed-group.selected > *): Deleted.
(.tree-outline .item.blackboxed-group .icon): Deleted.
(@media (prefers-color-scheme: dark) .tree-outline .item.blackboxed-group .icon): Deleted.
Share styles from UserInterface/Views/BlackboxedGroupView.css since both share .blackboxed-group.

  • UserInterface/Views/CallFrameTreeElement.js:

Drive-by: Combine optional parameters into an options = {} for current code cleanliness

and greater flexibility for future changes.

  • UserInterface/Views/Variables.css:

(:root):

  • UserInterface/Views/CallFrameTreeElement.css:

(.tree-outline .item.call-frame.blackboxed:not(.selected)):

  • UserInterface/Views/CallFrameView.css:

(.call-frame.blackboxed > .title,):
Drive-by: Rename --blackboxed-tree-item-opacity since it's now also used outside trees.

  • UserInterface/Main.html:
  • Localizations/en.lproj/localizedStrings.js:
2:28 PM Changeset in webkit [288242] by Russell Epstein
  • 1 edit in branches/safari-613.1.14.0-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj

Apply patch. rdar://problem/86298747

2:20 PM Changeset in webkit [288241] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebKit::nsTextAlignmentFromTextAlignment() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234989
<rdar://problem/87273264>

Reviewed by Darin Adler.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::nsTextAlignmentFromTextAlignment):

1:38 PM Changeset in webkit [288240] by Said Abou-Hallawa
  • 10 edits in trunk/Source

[GPU Process] ImageBuffer::convertToLuminanceMask() and transformToColorSpace() should not access the backend in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=235305
rdar://83437815

Reviewed by Sam Weinig.

Source/WebCore:

When DOM rendering is handled in GPU Process, no backend access will be
allowed. So all the operations that require access to the backend should
be handled in GPU Process. The WebProcess will stream messages for these
operations to GPUProcess.

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorderImpl.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::convertToLuminanceMask):
(WebKit::RemoteDisplayListRecorder::transformToColorSpace):

  • GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::convertToLuminanceMask):
(WebKit::RemoteDisplayListRecorderProxy::transformToColorSpace):

  • WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
1:35 PM Changeset in webkit [288239] by ysuzuki@apple.com
  • 4 edits in trunk/Source

Do not use pas utils outside of libpas
https://bugs.webkit.org/show_bug.cgi?id=235275

Reviewed by Darin Adler.

Source/WebCore:

We should not use any utility functions from libpas outside of bmalloc.
libpas is designed to be self-contained and used outside of WebKit.
We cannot rely on non PAS_API functions.

If we need these utilities, we should define it in WTF.

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::parseHEVCCodecParameters):
(WebCore::createHEVCCodecParametersString):
(WebCore::reverseBits): Deleted.

Source/WTF:

  • wtf/MathExtras.h:

(WTF::reverseBits32):
(WTF::reverseBits64):

1:30 PM Changeset in webkit [288238] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234986
<rdar://problem/87272534>

Reviewed by Darin Adler.

Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::computeWebProcessAccessTypeForDataFetch):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):

1:24 PM Changeset in webkit [288237] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebKit::AuthenticatorPresenterCoordinator() constructor falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234991
<rdar://problem/87275093>

Reviewed by Darin Adler.

Drop unnecessary default: case in the switch statement since it handles all enum values already.

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):

1:18 PM Changeset in webkit [288236] by Adrian Perez de Castro
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r283868 - Remove scrollbars explicitly when destroying render tree
https://bugs.webkit.org/show_bug.cgi?id=229274

Patch by Rob Buis <rbuis@igalia.com> on 2021-10-09
Reviewed by Simon Fraser.

Source/WebCore:

Scrollbars in FrameViews that are hosted by RenderWidget need the RenderView
to exist because of RenderScrollbarPart. So when we are destroying the render tree
the RenderView will be destroyed too, so before that happens remove the scrollbars
and its RenderScrollbarParts.

Test: editing/inserting/insert-html-crash-02.html

  • page/FrameView.cpp:

(WebCore::FrameView::willBeDestroyed):

  • page/FrameView.h:
  • platform/Widget.h:

(WebCore::Widget::willBeDestroyed):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::willBeDestroyed):

LayoutTests:

  • editing/inserting/insert-html-crash-02-expected.txt: Added.
  • editing/inserting/insert-html-crash-02.html: Added.
1:17 PM Changeset in webkit [288235] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Speculative fix for a null pointer dereference in ByteCodeParser::handlePutByVal.
https://bugs.webkit.org/show_bug.cgi?id=231252
rdar://83310320

Reviewed by Yusuke Suzuki.

We're seeing a null pointer dereference in ByteCodeParser::handlePutByVal().
Adding a null check here as a speculative fix to mitigate crashes while we
investigate further.

  • dfg/DFGByteCodeParser.cpp:

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

12:43 PM Changeset in webkit [288234] by Adrian Perez de Castro
  • 4 edits
    6 adds in releases/WebKitGTK/webkit-2.34

Merge r283590 - ASSERT(m_callback->hasCallback()) under IntersectionObserver::notify()
https://bugs.webkit.org/show_bug.cgi?id=231235
<rdar://80837616>

Reviewed by Ryosuke Niwa.

Source/WebCore:

IntersectionObserver's JS callback stays alive as long as its JS wrapper and
its JS wrapper's lifetime relies on the IntersectionObserver::isReachableFromOpaqueRoots()
implementation. isReachableFromOpaqueRoots() keeps the wrapper alive as long
as the JS wrappers of observation / pending targets are alive. However, as per specification,
we always need to dispatch an observation for an observation target, even if that target
is not connected. Our code was already taking care of dispatching such observation. However,
there was nothing keeping the observation target alive in this case and thus nothing keeping
the JS callback alive either.

To address the issue, I am introducing a new m_targetsWaitingForFirstObservation data member
which holds a strong ref to the observation target until the next time we call notify().
This makes sure that the observation target (and its JS wrapper) stays alive long enough for
us to dispatch the first observation for it. I also updated isReachableFromOpaqueRoots() to
return true as long as m_targetsWaitingForFirstObservation is non-empty so that the
IntersectionObserver's JS wrapper (and thus the JS callback) stay alive long enough too.

Tests: intersection-observer/observe-disconnected-target-crash.html

intersection-observer/observe-disconnected-target.html

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::unobserve):
(WebCore::IntersectionObserver::removeAllTargets):
(WebCore::IntersectionObserver::notify):
(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):

  • page/IntersectionObserver.h:

LayoutTests:

Add layout test coverage both for the crash and the Web facing behavior.

  • intersection-observer/observe-disconnected-target-crash-expected.txt: Added.
  • intersection-observer/observe-disconnected-target-crash.html: Added.
  • intersection-observer/observe-disconnected-target-expected.txt: Added.
  • intersection-observer/observe-disconnected-target.html: Added.
12:42 PM Changeset in webkit [288233] by ntim@apple.com
  • 3 edits
    2 adds in trunk

Add visibility: visible to modal dialogs in UA sheet
https://bugs.webkit.org/show_bug.cgi?id=235369

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden.html

  • css/dialog.css:

(dialog:-internal-modal-dialog):

12:38 PM Changeset in webkit [288232] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebKit::DownloadProxy::publishProgress() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234975
<rdar://problem/87265153>

Reviewed by Darin Adler.

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::publishProgress):
Let's not send the IPC if we failed to create the handle since the recipient code early returns when the handle is
invalid.

12:26 PM Changeset in webkit [288231] by Russell Epstein
  • 1 edit in branches/safari-613.1.14.1-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj

Apply patch. rdar://problem/86298747

12:23 PM Changeset in webkit [288230] by aakash_jain@apple.com
  • 4 edits in trunk/Tools/CISupport/ews-build

[ews] Improve support for required changes for ews uat instance
https://bugs.webkit.org/show_bug.cgi?id=235355

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/events.py:
  • Tools/CISupport/ews-build/master.cfg:
  • Tools/CISupport/ews-build/send_email.py:
  • Tools/CISupport/ews-build/steps.py:

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

12:21 PM Changeset in webkit [288229] by Robert Jenner
  • 58 edits
    2 adds
    32 deletes in trunk

Unreviewed, reverting r288197.

Broke a test, slowing down EWS

Reverted changeset:

"Callback functions / interfaces should use global object of
its _value_ for errors and lifecycle"
https://bugs.webkit.org/show_bug.cgi?id=232387
https://commits.webkit.org/r288197

12:18 PM Changeset in webkit [288228] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.3

12:13 PM Changeset in webkit [288227] by Jonathan Bedard
  • 11 edits in trunk/Tools

[git-webkit] Improve setup usability
https://bugs.webkit.org/show_bug.cgi?id=235051
<rdar://problem/87367948>

Reviewed by Aakash Jain.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.credentials): Retry credential prompt if the user provides an email.

  • Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:

(credentials): Use Terminal's choosing function.
(delete_credentials): Delete credentials for a service.

  • Tools/Scripts/libraries/webkitcorepy/webkitcorepy/editor.py:

(Editor.vi): Add.
(Editor.programs): Add vi.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): SSH replacement applies to http and https remotes.
(Setup.main): Include explicit conclusion messages.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.credentials): Retry credential prompt if the user provides an email.

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

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

12:07 PM Changeset in webkit [288226] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Swap accelerated drawing flag between the two GPU Process iOS simulator bots
https://bugs.webkit.org/show_bug.cgi?id=235366

Patch by Jon Lee <jonlee554@gmail.com> on 2022-01-19
Reviewed by Alex Christensen.

  • CISupport/build-webkit-org/config.json: Turn the accelerated-drawing flag on the arm64 bot, since that

represents the configuration closest to actual hardware. Turn it off on the Intel bot for now so that we
can see differences in results with accelerated drawing off as we fix bugs in tests.

11:55 AM Changeset in webkit [288225] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.3

11:52 AM Changeset in webkit [288224] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Fix YarrJIT backtrackCharacterClassNonGreedy breakpoint
https://bugs.webkit.org/show_bug.cgi?id=235348

Reviewed by Michael Saboff.

JSTests:

  • stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:

Source/JavaScriptCore:

YarrJIT's backtrackCharacterClassNonGreedy breakpoint is actually reachable. We should subtract index (since it is already incremented),
and go to the normal nonGreedyFailures path.

  • yarr/YarrJIT.cpp:
11:48 AM Changeset in webkit [288223] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Assertion is not acquired in network process when setting database journal mode
https://bugs.webkit.org/show_bug.cgi?id=235340

Setting database journal mode requires lock, so network process needs to stay active by holding assertion.

Reviewed by Chris Dumez.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::useWALJournalMode):

11:47 AM Changeset in webkit [288222] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Improve pr push error message
https://bugs.webkit.org/show_bug.cgi?id=235299
<rdar://problem/87721181>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:

(PullRequest.main): If git push fails, provide the user with options
for resolution.

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

11:44 AM Changeset in webkit [288221] by Peng Liu
  • 1 edit
    2 adds in trunk/LayoutTests

Add a data URL resource loader performance test
https://bugs.webkit.org/show_bug.cgi?id=235325

Reviewed by Eric Carlson.

This patch is a follow-up of r287899. In local tests, the time taken
by a video element to load a data URL is about 2x of the time to load
the binary form of the media file.

  • media/video-src-blob-perf-expected.txt: Added.
  • media/video-src-blob-perf.html: Added.
11:41 AM Changeset in webkit [288220] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AX: Remove unnecessary isolated tree update for AXSelectedTextChanged node
https://bugs.webkit.org/show_bug.cgi?id=235343

Reviewed by Chris Fleizach.

When we get an AXSelectedTextChanged notification, we update the isolated tree with
the node that has gained selection. Sometimes this node is not yet part of the AX tree,
meaning its AXAncestorFlags are not initialized. This results in hitting this ASSERT in AXIsolatedObject::initializeAttributeData:

For all objects besides the root, the ancestry flags should've been set by now.

ASSERT(isRoot
object.ancestorFlagsAreInitialized());

Updating the isolated tree with the selection node was added here to fix accessibility/mac/search-text/search-text.html:

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

But the test passes in ITM with and without updating the isolated tree with this node.
Also, for text selection related operations, isolated tree objects currently defer to the main thread
(e.g. AXIsolatedObject::selectedText, AXIsolatedObject::selectedText).

This patch removes this update since it doesn't seem to be necessary.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::updateIsolatedTree):

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

[ResourceTiming] nextHopProtocol is exposed regardless of Timing-Allow-Origin
https://bugs.webkit.org/show_bug.cgi?id=235294

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

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https-expected.txt:

Source/WebCore:

Covered by an existing WPT test that starts passing.
This was recently fixed in Chromium in https://chromium-review.googlesource.com/c/chromium/src/+/3354335

  • page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::nextHopProtocol const):

11:32 AM Changeset in webkit [288218] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Merge r283283 - [ iOS Debug ] http/tests/xmlhttprequest/access-control-preflight-credential-sync.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=228305
<rdar://problem/81136891>

Reviewed by Alex Christensen.

Source/WebKit:

When a NetworkResourceLoader for a synchronous XHR gets aborted (e.g. because the connection to
the WebProcess was severed), NetworkResourceLoader::abort() would fail to call
sendReplyToSynchronousRequest() (sendReplyToSynchronousRequest was only called in didFailLoading() and
didFinishLoading()). As a result, we would hit the following assertion in the NetworkResourceLoader

destructor later on: ASSERT(!isSynchronous()
!m_synchronousLoadData->delayedReply)

No new tests, covered by existing test that I am unskipping.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::abort):

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/ios-wk2/TestExpectations:
11:13 AM Changeset in webkit [288217] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check player in taintsOrigin
https://bugs.webkit.org/show_bug.cgi?id=234257

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Youenn Fablet.

Source/WebCore:

Null check player in taintsOrigin.

Test: fast/media/createImageBitmap-from-video-crash.html

  • html/ImageBitmap.cpp:

(WebCore::taintsOrigin):

LayoutTests:

  • fast/media/createImageBitmap-from-video-crash-expected.txt: Added.
  • fast/media/createImageBitmap-from-video-crash.html: Added.
10:38 AM Changeset in webkit [288216] by commit-queue@webkit.org
  • 9 edits
    1 copy in trunk/Source

Allow experimental feature names to be hidden in WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=235163

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

Source/WebKit:

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:

Source/WebKitLegacy/mac:

  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:

Source/WTF:

  • Scripts/GeneratePreferences.rb:
  • Scripts/Preferences/WebPreferencesExperimental.yaml:
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/ExperimentalFeatureNames.h: Copied from Source/WebKitLegacy/mac/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb.
10:16 AM Changeset in webkit [288215] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null check m_progressTracker in clearProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=233063

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Alex Christensen.

Source/WebCore:

Null check m_progressTracker in clearProvisionalLoad.

Test: fast/frames/contentFrame-disconnecting-crash.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clearProvisionalLoad):

LayoutTests:

  • platform/mac/fast/frames/contentFrame-disconnecting-crash-expected.txt: Added.
  • platform/mac/fast/frames/contentFrame-disconnecting-crash.html: Added.
10:07 AM Changeset in webkit [288214] by achristensen@apple.com
  • 4 edits in trunk

Unreviewed, reverting r288147.
<rdar://87776311>

broke clean command line builds

Reverted changeset:

"Build WebKitSwift when building with make or build-webkit"
https://bugs.webkit.org/show_bug.cgi?id=235093
https://commits.webkit.org/r288147

9:45 AM Changeset in webkit [288213] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Unreviewed, skip new test max-typed-array-length-toString.js when memory-limited
https://bugs.webkit.org/show_bug.cgi?id=235217

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19

  • stress/max-typed-array-length-toString.js:
9:15 AM Changeset in webkit [288212] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r283176 - [MSE][GStreamer] Don't create MediaSourceTrackGStreamer objects twice for the same track
https://bugs.webkit.org/show_bug.cgi?id=230829

Reviewed by Xabier Rodriguez-Calvar.

The existing code in
SourceBufferPrivateGStreamer::didReceiveInitializationSegment()
was not checking if the track already existing, creating and
immediately destroying a MediaSourceTrackGStreamer, which then crashed
on an assertion (ASSERTION FAILED: m_isRemoved).

This fixes the following two tests which were crashing with the former
assertion when running in Debug:

  • media/media-source/media-mp4-h264-partial-abort.html
  • media/media-source/media-source-abort-resets-parser.html
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):

9:15 AM Changeset in webkit [288211] by Adrian Perez de Castro
  • 3 edits
    4 adds in releases/WebKitGTK/webkit-2.34

Merge r282260 - Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=229276

Patch by Frédéric Wang <fwang@igalia.com> on 2021-09-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

The loop in CompositeEditCommand::splitTreeToNode calls splitElement with the parent node as an
argument. This patch fixes a nullptr crash by following the rule of [1]: store the parent node as
a local smart pointer. Additionally, it ensures that editingIgnoresContent() returns false on the
parent so that the corresponding ASSERT in Position's constructor does not fail when
firstPositionInNode is called.

[1] https://lists.webkit.org/pipermail/webkit-dev/2020-September/031386.html

Tests: editing/execCommand/indent-input-in-image-crash.html

editing/execCommand/indent-input-in-image-editing-ignores-content-assert.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs): Store parent node in a smart pointer and exit loop
if it returns true for editingIgnoresContent.

LayoutTests:

Add regression tests for a crash and an assert in CompositeEditCommand::splitTreeToNode.

  • editing/execCommand/indent-input-in-image-crash-expected.txt: Added.
  • editing/execCommand/indent-input-in-image-crash.html: Added.
  • editing/execCommand/indent-input-in-image-editing-ignores-content-assert-expected.txt: Added.
  • editing/execCommand/indent-input-in-image-editing-ignores-content-assert.html: Added.
9:15 AM Changeset in webkit [288210] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore

Merge r282241 - Potential crash under CachedRawResource::didAddClient()
https://bugs.webkit.org/show_bug.cgi?id=230121
<rdar://82936913>

Reviewed by Alex Christensen.

In r280083, I tried to address this crash by holding a strong reference
to the SharedBuffer before calling forEachSegment() on it. However, the
crash is still happening after this fix.

My suspicion is that the SharedBuffer's internal m_segments vector gets
modified as we iterate over it. As a result, I am reverting r280083 and
iterating over a copy of m_segments in forEachSegment() instead.

No new tests, we haven't been able to reproduce.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::didAddClient):

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::forEachSegment const):

9:15 AM Changeset in webkit [288209] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r282174 - Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=230016
rdar://problem/80760179

Reviewed by Chris Dumez.

We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
and a new network process will be launched for getting connection. However, the new network process may get
stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
process connection.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to

RELEASE_LOG_ERROR as the message is not printed in non-debug build.
(WebKit::WebsiteDataStore::getNetworkProcessConnection):

9:14 AM Changeset in webkit [288208] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r282075 - Nullptr crash in DeleteSelectionCommand::removeNodeUpdatingStates
https://bugs.webkit.org/show_bug.cgi?id=229279

Patch by Rob Buis <rbuis@igalia.com> on 2021-09-07
Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix DeleteSelectionCommand::removeNodeUpdatingStates logic
to use m_endBlock rather than m_startBlock here.

Test: editing/deleting/delete-shadow-tree-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::removeNodeUpdatingStates):

LayoutTests:

  • editing/deleting/delete-shadow-tree-crash-expected.txt: Added.
  • editing/deleting/delete-shadow-tree-crash.html: Added.
9:14 AM Changeset in webkit [288207] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.34

Merge r282074 - Nullptr crash in CSSValue::cssText() via DeleteSelectionCommand::calculateTypingStyleAfterDelete
https://bugs.webkit.org/show_bug.cgi?id=229281

Patch by Rob Buis <rbuis@igalia.com> on 2021-09-07
Reviewed by Ryosuke Niwa.

Source/WebCore:

Null check the CSSValue in EditingStyle::init.

Test: editing/deleting/forward-delete-crash.html

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::init):

LayoutTests:

  • editing/deleting/forward-delete-crash-expected.txt: Added.
  • editing/deleting/forward-delete-crash.html: Added.
9:14 AM Changeset in webkit [288206] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.34

Merge r281964 - [ BigSur arm64 Debug EWS ] ASSERTION FAILED: m_uncommittedState.state == State::Provisional
https://bugs.webkit.org/show_bug.cgi?id=229769
<rdar://problem/82645706>

Reviewed by Alex Christensen.

Source/WebKit:

I am unable to reproduce the crash but we know that we're crashing when committing the load
after a process-swap, because the WebPageProxy doesn't know that a provisional load is going
on. One possible explanation for this, and the most likely one is that the WebPageProxy got
a DidFailProvisionalLoadForFrame IPC from the current process while the provisional load is
proceeding in the new provisional process. We had logic in WebPageProxy::didFailProvisionalLoadForFrame()
to try and discard such IPC but the check was relying on the navigationID and was therefore
fragile. I updated the check in didFailProvisionalLoadForFrame() to ignore all
DidFailProvisionalLoadForFrame IPCs for the main frame from the current process when there
is a ProvisionalPageProxy, without relying on the navigationID. This should be more robust
and will hopefully fix this flaky crash.

No new tests, unskipped existing tests.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):

  • UIProcess/WebPageProxy.h:

LayoutTests:

Unskip test that should no longer be flakily crashing in debug.

  • platform/mac-wk2/TestExpectations:
9:14 AM Changeset in webkit [288205] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Tools

Merge r288063 - Bug 234910 - jsc_fuz/wktr: crash with exotic settings
https://bugs.webkit.org/show_bug.cgi?id=234910

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-15
Reviewed by Michael Saboff.

ASAN release build of WebKitTestRunner and DumpRenderTree may crash when loading the file
with content "<script>'a'+Math.floor()+'a';</script>" when the ASAN option
detect_stack_use_after_return=1 is set and when the JSC option slowPathAllocsBetweenGCs takes
to specific values. This is because the 'TestRendered' string of WTR::sendTestRenderedEvent
can be garbage collected. This patch fixes that issue by protecting that string. The fix has
been verified for all slowPathAllocsBetweenGCs values from 1 to 100.

  • TestRunnerShared/ReftestFunctions.cpp:

(WTR::sendTestRenderedEvent): Protect "TestRendered" JSString from garbage collection until
the event is dispatched.

9:14 AM Changeset in webkit [288204] by Adrian Perez de Castro
  • 5 edits in releases/WebKitGTK/webkit-2.34/Source

Merge r287914 - Protect DocumentLoader when a reference to its members is used.
https://bugs.webkit.org/show_bug.cgi?id=233464

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-12
Reviewed by Brady Eidson.

Source/WebCore:

No new tests, due to our infra (bug 127676).

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_mainDocumentError is used.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadForFrame): If the navigationID is obsolete, skip update
of the page load state to avoid failure of debug ASSERT.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_request is used.

9:14 AM Changeset in webkit [288203] by Adrian Perez de Castro
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.34

Merge r287604 - Protect frame from destruction in HTMLMediaElement::setupAndCallJS
https://bugs.webkit.org/show_bug.cgi?id=234259

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-04
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/media/media-element-frame-destroyed-crash.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setupAndCallJS): Protect the frame before executing the JS code,
so that it is not destroyed before its associated ScriptController.

LayoutTests:

Add non-regression test, embedded in multiple iframes to make regression easily reproducible.

  • http/conf/mime.types: Ensure that ts files are served with MIME type video/mp2t as that's required

to make the non-regression test work properly.

  • http/tests/media/media-element-frame-destroyed-crash-expected.txt: Added.
  • http/tests/media/media-element-frame-destroyed-crash.html: Added.
  • http/tests/media/resources/empty.ts: Added.
  • http/tests/media/resources/media-element-frame-destroyed-crash-subframe.html: Added.
9:14 AM Changeset in webkit [288202] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.34

Merge r282365 - Crash under WebPage::runJavaScript()
https://bugs.webkit.org/show_bug.cgi?id=230223
<rdar://80172436>

Reviewed by Brady Eidson.

Source/WebKit:

The resolveFunction() was capturing frame = makeRef(frame) and then calling frame->coreFrame()->script().
This would lead to a null dereference crash in the case where the core frame gets destroyed before the JS
promise gets resolved. Protecting the WebFrame does not keep the core Frame alive as WebFrame::m_coreFrame
is merely a WeakPtr. To address the issue, the lambda now also protects the core frame and uses it to get
the script controller.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:

(-[AsyncJSUIDelegate initWithAlertHandler:]):
(-[AsyncJSUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):

9:12 AM Changeset in webkit [288201] by youenn@apple.com
  • 36 edits in trunk

Improve computation of service worker FetchEvent.resultingClientId
https://bugs.webkit.org/show_bug.cgi?id=235107

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/historical.https.any.serviceworker-expected.txt:

Source/WebCore:

We are now passing the reserved client ID generated by DocumentLoader to the generated document.
Previously, we would register a temporary ID that we would drop later on when creating a new document.
This allows to be closer to spec, though we need to handle the case of a document whose origin gets unique
due to CSP or sandboxing making a document origin unique.
We are also removing targetClientId, which was renamed in the spec to replacesClientId but is also not implemented in any browser yet.

Covered by existing tests.

  • dom/DOMImplementation.cpp:
  • dom/DOMImplementation.h:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • html/FTPDirectoryDocument.cpp:
  • html/HTMLDocument.cpp:
  • html/HTMLDocument.h:
  • html/ImageDocument.cpp:
  • html/MediaDocument.cpp:
  • html/ModelDocument.cpp:
  • html/PluginDocument.cpp:
  • html/TextDocument.cpp:
  • html/TextDocument.h:
  • inspector/DOMPatchSupport.cpp:
  • loader/DocumentLoader.cpp:
  • loader/DocumentLoader.h:
  • loader/DocumentWriter.cpp:
  • loader/DocumentWriter.h:
  • loader/SinkDocument.cpp:
  • workers/service/FetchEvent.cpp:
  • workers/service/FetchEvent.h:
  • workers/service/FetchEvent.idl:
  • workers/service/server/SWServer.cpp:
  • xml/XMLHttpRequest.cpp:

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:
  • WebProcess/Storage/WebSWClientConnection.cpp:
7:55 AM Changeset in webkit [288200] by commit-queue@webkit.org
  • 13 edits in trunk/Source

Fix -Wreturn-type and -Wunused-parameter warnings, January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235336

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19
Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

  • wasm/WasmCompilationMode.h:

(JSC::Wasm::isOSREntry):
(JSC::Wasm::isAnyBBQ):
(JSC::Wasm::isAnyOMG):

Source/WebCore:

  • Modules/push-api/PushCrypto.cpp:

(WebCore::PushCrypto::computeP256DHSharedSecret):

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • contentextensions/DFABytecodeCompiler.cpp:

(WebCore::ContentExtensions::toSizeT):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForAnimationDirection):
(WebCore::valueForAnimationFillMode):
(WebCore::valueForAnimationPlayState):

  • css/CSSPrimitiveValue.cpp:

(WebCore::lengthOfViewportPhysicalAxisForLogicalAxis):

  • platform/graphics/ColorInterpolation.cpp:

(WebCore::fixupHueComponentsPriorToInterpolation):

  • platform/graphics/ColorInterpolation.h:

(WebCore::interpolateColors):

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::createApplier const):

  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::createApplier const):

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::createApplier const):

7:46 AM Changeset in webkit [288199] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

libvpx firstpass.c is not needed
https://bugs.webkit.org/show_bug.cgi?id=235354

Reviewed by Alexey Proskuryakov.

  • libwebrtc.xcodeproj/project.pbxproj:
7:21 AM Changeset in webkit [288198] by commit-queue@webkit.org
  • 3 edits in trunk

[WPE][GTK] ENABLE_JOURNALD_LOG has weird value
https://bugs.webkit.org/show_bug.cgi?id=235339

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19
Reviewed by Philippe Normand.

Clean up the code that checks for journald.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
5:52 AM Changeset in webkit [288197] by Alexey Shvayka
  • 58 edits
    34 adds
    2 deletes in trunk

Callback functions / interfaces should use global object of its _value_ for errors and lifecycle
https://bugs.webkit.org/show_bug.cgi?id=232387

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32449.

The remaining failures are due to unrelated spec compat issue with calling cross-realm ProxyObject / JSBoundFunction.

  • web-platform-tests/dom/events/EventListener-handleEvent-cross-realm-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html: Added.
  • web-platform-tests/dom/events/resources/empty-document.html: Added.
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-expected.txt:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html:
  • web-platform-tests/dom/traversal/support/TreeWalker-acceptNode-filter-cross-realm-subframe.html: Removed.
  • web-platform-tests/dom/traversal/support/empty-document.html: Added.
  • web-platform-tests/domxpath/resolver-callback-interface-cross-realm-expected.txt: Added.
  • web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html: Added.
  • web-platform-tests/domxpath/resources: Added.
  • web-platform-tests/domxpath/resources/empty-document.html: Added.
  • web-platform-tests/domxpath/resources/invalid_namespace_test.js: Added.

Source/WebCore:

Before this change, _relevant_ global object was used a) to throw errors in when
invoking callback function / interface, which isn't correct [1], and b) to call
canInvokeCallback() on (lifecycle), which doesn't match other browsers and not
quite useful: _relevant_ event loop stops if document is detached.

This patch:

  1. Removes [SkipCallbackInvokeCheck] extended attribute, while ensuring DOM traversal doesn't crash, which aligns WebKit with other browsers.
  1. Invokes canInvokeCallback() on the global object of _value_, which matches

Gecko but not Blink, which uses _incumbent_ realm to determine if callback
can still be invoked (doesn't make much sense to me).

  1. Throws callback invocation errors (e.g. non-callable method, revoked Proxy) in the global object of _value_, which matches the spec [1] and Blink, but not Gecko, which uses _current_ realm (of the method that was passed callback's _value_) to throw TypeErrors in.

That doesn't make much sense to me either: "registering" a callback and invoking
it could happen in different realms.

The spec on this is worded quite trickily (yet I think I've figured it out):
ECMA's "throw a TypeError exception" uses "running execution context" [2]
to create an object in, which is switched to the realm of _value_ per [1].

AudioWorklet changes are unobservable as worklets can't acquire a cross-realm method.
It's also nicer not to pass JSCallbackDataStrong around.

[1] https://webidl.spec.whatwg.org/#ref-for-prepare-to-run-script
[2] https://tc39.es/ecma262/#sec-ecmascript-function-objects-call-thisargument-argumentslist (step 4)

Tests: fast/dom/callback-function-detached-frame-intersection-observer.html

fast/dom/callback-function-detached-frame-mutation-observer.html
fast/dom/callback-function-detached-frame-performance-observer.html
fast/dom/callback-function-detached-frame-raf.html
fast/dom/callback-function-detached-frame-resize-observer.html
fast/dom/callback-function-detached-frame-to-blob.html
fast/dom/callback-interface-detached-frame-node-filter.html
fast/dom/callback-interface-detached-frame-xpathnsresolver.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html
imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html
imported/w3c/web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):
(WebCore::AudioWorkletGlobalScope::createProcessor):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setProcessCallback):

  • Modules/webaudio/AudioWorkletProcessor.h:

(WebCore::AudioWorkletProcessor::processCallbackWrapper):

  • bindings/js/JSAudioWorkletProcessorCustom.cpp:

(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCallbackData.h:

(WebCore::JSCallbackData::~JSCallbackData):
(WebCore::JSCallbackDataStrong::JSCallbackDataStrong):
(WebCore::JSCallbackDataStrong::invokeCallback):
(WebCore::JSCallbackDataWeak::JSCallbackDataWeak):
(WebCore::JSCallbackDataWeak::invokeCallback):
(WebCore::JSCallbackData::globalObject): Deleted.
(WebCore::JSCallbackData::JSCallbackData): Deleted.

  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):

  • bindings/js/JSDOMConvertXPathNSResolver.h:

(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowInstanceFunction_openDatabaseBody):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(JSValueToNativeDOMConvertNeedsGlobalObject):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/*: Updated.
  • bindings/scripts/test/TestCallbackInterface.idl:
  • dom/NodeFilter.idl:
  • dom/Traversal.cpp:

(WebCore::NodeIteratorBase::acceptNode):

  • workers/WorkerOrWorkletGlobalScope.h:
  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

  • xml/CustomXPathNSResolver.idl:

LayoutTests:

  • fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
  • fast/dom/Geolocation/callback-to-deleted-context.html:
  • fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:

Aligns test assertions with behavior of Blink and Gecko.

  • fast/dom/Geolocation/disconnected-frame-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
  • fast/dom/Geolocation/disconnected-frame-permission-denied.html:
  • fast/dom/Geolocation/disconnected-frame.html:

Aligns tests assertions with their initial descriptions.
While other browsers don't call error callback for a disconnected frame,
it seems like a useful thing to do.

  • fast/events/detached-svg-parent-window-events-expected.txt:
  • fast/events/detached-svg-parent-window-events.html:

Aligns test assertion with other browsers.
There is no reason why eval() wouldn't throw an error given the <iframe> is connected.

  • fast/frames/resources/wrong-global-object.html: Removed.
  • fast/frames/frame-window-as-callback-expected.txt:
  • fast/frames/frame-window-as-callback.html:

Aligns test assertions with the spec and Blink / Gecko.

  • fast/dom/callback-function-detached-frame-intersection-observer-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-intersection-observer.html: Added.
  • fast/dom/callback-function-detached-frame-mutation-observer-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-mutation-observer.html: Added.
  • fast/dom/callback-function-detached-frame-performance-observer-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-performance-observer.html: Added.
  • fast/dom/callback-function-detached-frame-raf-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-raf.html: Added.
  • fast/dom/callback-function-detached-frame-resize-observer-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-resize-observer.html: Added.
  • fast/dom/callback-function-detached-frame-to-blob-expected.txt: Added.
  • fast/dom/callback-function-detached-frame-to-blob.html: Added.
  • fast/dom/callback-interface-detached-frame-node-filter-expected.txt: Added.
  • fast/dom/callback-interface-detached-frame-node-filter.html: Added.
  • fast/dom/callback-interface-detached-frame-xpathnsresolver-expected.txt: Added.
  • fast/dom/callback-interface-detached-frame-xpathnsresolver.html: Added.
  • fast/dom/resources/callback-function-detached-frame-common.js: Added.
  • fast/dom/resources/callback-function-detached-frame-intersection-observer-iframe.html: Added.
  • fast/dom/resources/callback-function-detached-frame-mutation-observer-iframe.html: Added.
  • fast/dom/resources/callback-function-detached-frame-performance-observer-iframe.html: Added.
  • fast/dom/resources/callback-function-detached-frame-raf-iframe.html: Added.
  • fast/dom/resources/callback-function-detached-frame-resize-observer-iframe.html: Added.
  • fast/dom/resources/callback-function-detached-frame-to-blob-iframe.html: Added.
  • fast/dom/resources/callback-interface-detached-frame-node-filter-iframe.html: Added.
  • fast/dom/resources/callback-interface-detached-frame-xpathnsresolver-iframe.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

IntersectionObserver / ResizeObserver are not enabled on these platforms.

5:43 AM Changeset in webkit [288196] by Antti Koivisto
  • 4 edits
    2 adds in trunk

[:has() pseudo-class] Compute specificity correctly
https://bugs.webkit.org/show_bug.cgi?id=235351

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-complexity.html:

Fix specificity used in this test.

  • web-platform-tests/css/selectors/has-specificity-expected.txt: Added.
  • web-platform-tests/css/selectors/has-specificity.html: Added.

Source/WebCore:

"The specificity of an ':is()', ':not()', or ':has()' pseudo-class is replaced by
the specificity of the most specific complex selector in its selector list argument."

https://www.w3.org/TR/selectors-4/#specificity-rules

Test: imported/w3c/web-platform-tests/css/selectors/has-specificity.html

  • css/CSSSelector.cpp:

(WebCore::simpleSelectorSpecificityInternal):

Compute :has() specificity like :is() and :not().

5:06 AM Changeset in webkit [288195] by Andres Gonzalez
  • 2 edits in trunk/LayoutTests

Enable accessibility/mac/selection-element-tabbing-to-link.html since it is not flaky any longer.
https://bugs.webkit.org/show_bug.cgi?id=235333

Reviewed by Darin Adler.

  • platform/mac/TestExpectations:
4:59 AM Changeset in webkit [288194] by Adrian Perez de Castro
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.34

Merge r288078 - database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open

UniqueIDBDatabases, only add them to the results list if their origins match.

  • page/ClientOrigin.h:

(WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.
4:59 AM Changeset in webkit [288193] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r284576 - We should watch isHavingABadTime if we read from the structureCache
https://bugs.webkit.org/show_bug.cgi?id=232019

Reviewed by Yusuke Suzuki.

We should lock the structure cache when we clear it, and the compiler thread should
watch isHavingABadTime in the case that the cache might get cleared.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::haveABadTime):

  • runtime/StructureCache.cpp:

(JSC::StructureCache::clear):

  • runtime/StructureCache.h:

(JSC::StructureCache::clear): Deleted.

4:59 AM Changeset in webkit [288192] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r284699 - canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>

Reviewed by Keith Miller.

Just reorder the checks for clarity.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::canDoFastSpread):

4:55 AM Changeset in webkit [288191] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r284506 - canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>

Reviewed by Keith Miller.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::canDoFastSpread):

4:53 AM Changeset in webkit [288190] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r284585 - [JSC] ArithAbs should care about INT32_MIN
https://bugs.webkit.org/show_bug.cgi?id=232051
rdar://84338648

Reviewed by Michael Saboff.

ArithAbs (without overflow check) can return negative value if the input is INT32_MIN with Int32Use.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
4:53 AM Changeset in webkit [288189] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r284573 - Add missing overflow checks to DFGIntegerRangeOptimizationPhase::isEquivalentTo()
https://bugs.webkit.org/show_bug.cgi?id=232024

Reviewed by Tadeu Zagallo.

Added overflow check before comparing for equality.

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
4:53 AM Changeset in webkit [288188] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r284467 - Wasm Table can take arbitrary default value
https://bugs.webkit.org/show_bug.cgi?id=231933
rdar://84327812

Reviewed by Robin Morisset.

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::grow):

4:53 AM Changeset in webkit [288187] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit

Merge r283386 - Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>

Reviewed by Alex Christensen.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while
policy handlers are run.

4:41 AM Changeset in webkit [288186] by Adrian Perez de Castro
  • 7 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore

Merge r285149 - [JSC] LLIntCallee should have two replacements
https://bugs.webkit.org/show_bug.cgi?id=228552
rdar://81217357

Reviewed by Saam Barati.

LLIntCallee can be used for signaling memory and bounds-checking memory.
Thus it should have two replacements for each mode.

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::work):

  • wasm/WasmCallee.h:

(JSC::Wasm::Callee::setOSREntryCallee):

  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::updateCallSitesToCallUs):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::WASM_SLOW_PATH_DECL):

3:38 AM Changeset in webkit [288185] by youenn@apple.com
  • 9 edits in trunk/Source

[Cocoa] Do not change preferred AudioSession buffer size when VPIO is running
https://bugs.webkit.org/show_bug.cgi?id=235317
<rdar://87709485>

Reviewed by Eric Carlson.

Source/WebCore:

Add infra to be notified when audio capture unit is stopped.
Add a check to return early with microphone sample callback if microphone samples are not to be processed.

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:
  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
  • platform/mediastream/mac/CoreAudioCaptureSource.h:

Source/WebKit:

When we stop capturing, we might still use the VPIO unit to render audio.
In that case, it might be problematic to increase the preferred buffer size as:

  • Audio unit might stop running, hence stopping audio rendering
  • Increasing the preferred buffer size might increase latency which is not a good thing in VPIO usecases.
  • GPUProcess/media/RemoteAudioSessionProxy.cpp:
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
  • GPUProcess/media/RemoteAudioSessionProxyManager.h:
1:28 AM Changeset in webkit [288184] by svillar@igalia.com
  • 4 edits in trunk

[css-flexbox] Add support for intrinsic sizes to the flex shorthand
https://bugs.webkit.org/show_bug.cgi?id=235314

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt: Replaced FAIL by PASS expectations.

Source/WebCore:

In r288113 we added support for intrinsic sizes in the flex-basis property. However the flex-basis property
can be also set via the flex shorthand. The flex shorthand was still not accepting the intrinsic sizes as
valid values. That's why the code that was checking idents in flex-basis was refactored so we do perform
now the very same test when parsing flex-basis and flex.

This allows WebKit to pass 8 additional WPT subtests.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::isFlexBasisIdent): Refactored from consumeFlexBasis. Checks whether a given ident is a valid keyword
for the flex-basis property.
(WebCore::consumeFlexBasis): Use isFlexBasisIdent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.

12:37 AM Changeset in webkit [288183] by Said Abou-Hallawa
  • 18 edits
    2 adds in trunk

filterRegion and outsets of referenced SVG filter are calculated incorrectly
https://bugs.webkit.org/show_bug.cgi?id=235338

Reviewed by Darin Adler.

Source/WebCore:

Calculate the filterRegion of the referenced SVGFilter by calling
SVGLengthContext::resolveRectangle() given the targetBoundingBox of the
CSSFilter.

There is no need to set the filterRegion of the referenced SVG filter
from CSSFilter::setFilterRegion() since its filterRegion is the union
of the filterRegions all its referenced SVGFilters.

Calculate the outsets of the SVGFilter by looping through its expression
of FilterEffects.

Test: css3/filters/reference-filter-outsets.html

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::outsets const):

  • platform/graphics/filters/FEDropShadow.h:
  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::outsets const):

  • platform/graphics/filters/FEGaussianBlur.h:
  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::outsets const):

  • platform/graphics/filters/FEOffset.h:
  • platform/graphics/filters/Filter.h:
  • platform/graphics/filters/FilterFunction.h:

(WebCore::FilterFunction::outsets const):

  • rendering/CSSFilter.cpp:

(WebCore::createSVGFilter):
(WebCore::CSSFilter::setFilterRegion):
(WebCore::CSSFilter::outsets const):

  • rendering/CSSFilter.h:
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::beginFilterEffect):

  • svg/graphics/filters/SVGFilter.cpp:

(WebCore::SVGFilter::create):
(WebCore::SVGFilter::outsets const):
(WebCore::SVGFilter::lastEffect const): Deleted.

  • svg/graphics/filters/SVGFilter.h:

LayoutTests:

  • css3/filters/reference-filter-outsets-expected.html: Added.
  • css3/filters/reference-filter-outsets.html: Added.
  • css3/filters/reference-filter-set-filter-regions-expected.html:
  • css3/filters/reference-filter-set-filter-regions.html:

The original expected page is wrong. To test the referenced SVG filter
correctly, the <div> element needs to move such that all its outsets are
not truncated.

  • platform/win/TestExpectations:

Jan 18, 2022:

11:51 PM Changeset in webkit [288182] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening of GPU Process bot tests.

  • gpu-process/TestExpectations:
9:15 PM Changeset in webkit [288181] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

ColorTypes are no longer constexpr in debug builds due to std::isnan() in range assertion
https://bugs.webkit.org/show_bug.cgi?id=235346

Unreviewed build fix.

Replace std::isnan() in color type range assertions with a constexpr variant using the x != x
construction for detection.

  • platform/graphics/ColorTypes.h:

(WebCore::constexprIsNaN):
(WebCore::assertInRange):

9:13 PM Changeset in webkit [288180] by Megan Gardner
  • 8 edits
    2 adds in trunk

Loupe sometimes flips to the bottom of the page when dragging the end of a selection to the top of a page with selection flipping.
https://bugs.webkit.org/show_bug.cgi?id=235220

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html

When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.

  • platform/graphics/FloatPoint.cpp:

(WebCore::FloatPoint::constrainedWithin const):

  • platform/graphics/FloatPoint.h:
  • platform/graphics/IntPoint.cpp:

(WebCore::IntPoint::constrainedWithin const):

  • platform/graphics/IntPoint.h:

Source/WebKit:

When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeForPointInRootViewCoordinates):

LayoutTests:

  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow-expected.txt: Added.
  • fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html: Added.
7:29 PM Changeset in webkit [288179] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Enable form.requestSubmit()
https://bugs.webkit.org/show_bug.cgi?id=235342

Reviewed by Darin Adler.

Enable form.requestSubmit(). This was fully implemented via Bug 197958 and it passes the WPT tests but
we never actually enabled it.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
7:11 PM Changeset in webkit [288178] by Wenson Hsieh
  • 14 edits
    2 adds in trunk

REGRESSION (r264352): Mail compose body field does not avoid the keyboard when scrolling after focus
https://bugs.webkit.org/show_bug.cgi?id=235331
rdar://79296770

Reviewed by Tim Horton.

Source/WebKit:

After r264352 added the call to _page->scheduleFullEditorStateUpdate(); during element focus, scrolling to
reveal the selection in the focused body field in Mail stopped working. This is because Mail:

  1. Sets firstResponderKeyboardAvoidanceEnabled to NO on the WKScrollView, which prevents automatic inset

adjustment logic in UIKit from taking effect and adding the keyboard height to the bottom system content
inset.

  1. Manually sets -contentScrollInset on the WKScrollView during a UIKeyboardDidShowNotification, which occurs

after we've already attempted to zoom to the selection.

...combined with the fact that without the call to scheduleFullEditorStateUpdate(), the next EditorState
would've arrived only after the keyboard animation finished.

The end result is that we don't end up avoiding the keyboard at all when focusing the body field in Mail
compose. While rdar://87733414 tracks refactoring logic in WebKit2 Mail compose to ensure that the content
scroll insets on WKScrollView are applied during UIKeyboardWillShowNotification instead of after the keyboard
has finished animating in, this patch provides a short-term workaround by restoring pre-r264352 behavior, with
respect to when the element is scrolled into view.

Test: editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html

  • Platform/spi/ios/UIKitSPI.h:

Add a declaration for the -firstResponderKeyboardAvoidanceEnabled SPI property on non-internal iOS SDKs.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _keyboardDidShow:]):

Plumb this through to the WKContentView, so we can zoom/scroll to the focused element if needed.

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

(-[WKContentView cleanUpInteraction]):
(-[WKContentView _keyboardDidShow]):

If we previously deferred the call to -_zoomToRevealFocusedElement due to the keyboard still animating in,
schedule a call to it now on a 0-delay timer; this delay is necessary to ensure that this zoom occurs *after*
Mail has already set the content inset, which also happens underneath a "KeyboardDidShow" notification.

(-[WKContentView _zoomToRevealFocusedElement]):

In the case where the (presumably internal) client has set firstResponderKeyboardAvoidanceEnabled to NO and
the keyboard is animating in, defer the actual call into the web view to -_zoomToRevealFocusedElement until
after the keyboard animation is finished. This ensures compatibility with existant logic in Mail for manually
setting the content scroll inset on the WKScrollView after the keyboard animation is complete.

(-[WKContentView resetShouldZoomToFocusRectAfterShowingKeyboard]):
(-[WKContentView _elementDidBlur]):

Tools:

Add support for a UIScriptController hook to override firstResponderKeyboardAvoidanceEnabled on WKScrollView.
See LayoutTests for more details.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::setScrollViewKeyboardAvoidanceEnabled):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::setScrollViewKeyboardAvoidanceEnabled):

LayoutTests:

Add a layout test that (at least) exercises the newly added codepath, where focusing an editor when the scroll
view has firstResponderKeyboardAvoidanceEnabled set to NO will still allow us to scroll to the selection.

  • editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled-expected.txt: Added.
  • editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setScrollViewKeyboardAvoidanceEnabled):

6:37 PM Changeset in webkit [288177] by Kocsen Chung
  • 1 copy in tags/Safari-613.1.14.0.2

Tag Safari-613.1.14.0.2.

6:34 PM Changeset in webkit [288176] by Kocsen Chung
  • 2 edits in branches/safari-613.1.14.0-branch/Source/WebKit

Revert r287997. rdar://problem/87274541

6:32 PM Changeset in webkit [288175] by Kocsen Chung
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.2

6:31 PM Changeset in webkit [288174] by Chris Dumez
  • 14 edits in trunk

When inserting a selected <option> in a <select> element, its selected state should remain
https://bugs.webkit.org/show_bug.cgi?id=235237

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/html/semantics/forms/the-select-element/inserted-or-removed-expected.txt:
  • web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:

Source/WebCore:

When inserting a selected <option> in a <select> element, its selected state should remain and other selected
options should be de-selected.

This is as per the specification [1] that says:
"""
If the multiple attribute is absent, whenever an option element in the select element's list of options has
its selectedness set to true, and whenever an option element with its selectedness set to true is added to
the select element's list of options, the user agent must set the selectedness of all the other option
elements in its list of options to false.
"""

Firefox and Chrome correctly implement this.

WebKit was trying to implement this logic from inside HTMLOptionElement::insertedIntoAncestor(). However,
there were several issues with that:

  1. It was checking m_isSelected after calling updateValidity(). updateValidity() would call recalcListItems(), which could update m_isSelected. This part could have been addressed by saving m_isSelected before calling updateValidity() but would not have addressed the following issues.
  2. In the case where an <optgroup> containing several <option> elements is inserted into a <select>, insertedIntoAncestor() gets called from each options being inserted. When calling insertedIntoAncestor() from the first <option> and if this <option> is selected, it would deselect all following <option> elements even though insertedIntoAncestor() has not yet been called for them. As a result, we would end up selecting the first inserted <option> that had the selected state, instead of the last one.
  3. When more than one <option> is inserted at once, the current implementation would be really inefficient as every <option> would dirty and recalc the item list from insertedIntoAncestor().

To address these issues, I got rid of HTMLOptionElement::insertedIntoAncestor(). Instead we now deal with
<option> insertion from inside HTMLSelectElement::childrenChanged() and HTMLOptGroupElement::childrenChanged().
Using the parent element's childrenChanged() is useful because it only gets called once when several <option>
elements are inserted at once. I added logic to those childrenChanged() functions to keep track of the last
selected <option> element being inserted. Then, after we recalc the item list (which may change <option>s'
selected state, I make sure to this <option> is selected. This is similar to the logic that was previously
in HTMLOptionElement::insertedIntoAncestor().

[1] https://html.spec.whatwg.org/multipage/form-elements.html#the-select-element

No new tests, rebaselined existing tests.

  • dom/CharacterData.cpp:

(WebCore::makeChildChange):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::makeChildChangeForRemoval):
(WebCore::makeChildChangeForInsertion):
(WebCore::ContainerNode::childrenChanged):
(WebCore::affectsElements): Deleted.

  • dom/ContainerNode.h:

(WebCore::ContainerNode::ChildChange::isInsertion const):
(WebCore::ContainerNode::ChildChange::affectsElements const):

  • Add 'siblingChanged' member to ChildChange in addition to the previous / next siblings. This is useful for HTMLOptGroupElement and HTMLSelectElement where we want to know if a newly inserted child is an HTMLOptionElement (and if it is selected).
  • Move affectsElements() to the header so that it can be reused by HTMLOptGroupElement and HTMLOptionElement.
  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::childrenChanged):

  • html/HTMLOptGroupElement.h:
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::insertedIntoAncestor): Deleted.

  • html/HTMLOptionElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::optionToSelectFromChildChangeScope): Added.
(WebCore::HTMLSelectElement::childrenChanged):

LayoutTests:

Rebaseline WPT test that is now passing.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
5:48 PM Changeset in webkit [288173] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.0.1

Tag Safari-613.1.14.0.1.

5:45 PM Changeset in webkit [288172] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.2

Tag Safari-613.1.14.1.2.

5:44 PM Changeset in webkit [288171] by Russell Epstein
  • 1 delete in tags/Safari-613.1.14.1.2

Remove tag.

5:43 PM Changeset in webkit [288170] by Russell Epstein
  • 1 edit in branches/safari-613.1.14.1-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj

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

This reverts commit r288142.

5:29 PM Changeset in webkit [288169] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.2

Tag Safari-613.1.14.1.2.

5:18 PM Changeset in webkit [288168] by don.olmstead@sony.com
  • 31 edits in trunk

Replace all uses of HAVE_ACCESSIBILITY with ENABLE_ACCESSIBILITY
https://bugs.webkit.org/show_bug.cgi?id=235335

Reviewed by Ross Kirsling.

Source/WTF:

Remove the setting of HAVE_ACCESSIBILITY. All code is now using ENABLE_ACCESSIBILITY
instead.

  • wtf/PlatformHave.h:

Tools:

Does a find/replace in Tools to move from HAVE_ACCESSIBILITY to ENABLE_ACCESSIBILITY. The
same is done with HAVE(ACCESSIBILITY) with instances replaced by ENABLE(ACCESSIBILITY).

  • DumpRenderTree/AccessibilityController.cpp:
  • DumpRenderTree/AccessibilityController.h:
  • DumpRenderTree/AccessibilityUIElement.cpp:
  • DumpRenderTree/AccessibilityUIElement.h:
  • MiniBrowser/wpe/main.cpp:

(main):

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):
(WTR::InjectedBundle::done):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didClearWindowForFrame):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
  • WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp:
  • WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
  • wpe/backends/PlatformWPE.cmake:
  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::dispatchInputKeyboardEvent):

  • wpe/backends/ViewBackend.h:
  • wpe/backends/atk/ViewBackendAtk.cpp:
  • wpe/backends/atk/WebKitAccessibleApplication.cpp:
  • wpe/backends/atk/WebKitAccessibleApplication.h:
5:18 PM Changeset in webkit [288167] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix -Wmultichar warnings in HEVCUtilities.cpp
https://bugs.webkit.org/show_bug.cgi?id=235337

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-18
Reviewed by Darin Adler.

  • platform/graphics/HEVCUtilities.cpp:

(WebCore::parseHEVCDecoderConfigurationRecord):

5:16 PM Changeset in webkit [288166] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.2.1

Tag Safari-613.1.14.2.1.

5:15 PM Changeset in webkit [288165] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.3.1

Tag Safari-613.1.14.3.1.

5:13 PM Changeset in webkit [288164] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, disable jit-heap on non Darwin

On Linux etc., they have completely different steps to allocate executable memory.
Thus, the current jit-heap implementation does not work well. Temporarily disable it
on non Darwin OSes.

  • wtf/PlatformUse.h:
4:50 PM Changeset in webkit [288163] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove Wasm::Table's m_mask
https://bugs.webkit.org/show_bug.cgi?id=235329

Reviewed by Mark Lam.

This patch removes m_mask in Wasm::Table.
The mask is removed in the other places, but forgot
removing that in Wasm::Table.

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::setLength):
(JSC::Wasm::Table::clear):
(JSC::Wasm::Table::set):
(JSC::Wasm::Table::get const):
(JSC::Wasm::FuncRefTable::setFunction):
(JSC::Wasm::FuncRefTable::function const):
(JSC::Wasm::FuncRefTable::instance const):

  • wasm/WasmTable.h:

(JSC::Wasm::Table::offsetOfLength):
(JSC::Wasm::Table::offsetOfMask): Deleted.
(JSC::Wasm::Table::mask const): Deleted.

4:27 PM Changeset in webkit [288162] by Chris Dumez
  • 12 edits in trunk

input.labels doesn't work inside shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=235326

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline test that now has one extra passing subtest. This subtest was already passing in both
Gecko and Blink.

  • web-platform-tests/html/semantics/forms/the-label-element/label-attributes.sub-expected.txt:

Source/WebCore:

HTMLCollection and LiveNodeList had the concept of "isRootedAtDocument" which meant that
we used the document as root when doing the traversal to find Nodes that belong to the
list/collection. However, when the list's owner is inside a shadow tree, this didn't
work as expected since we would traverse the main document's DOM tree instead of the
shadow tree. To address the issue, I now renamed "isRootedAtDocument" to
"isRootedAtTreeScope" and updated rootNode() to return the owner's tree scope's root
node, instead of the owner's document.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::registerNodeListForInvalidation):
(WebCore::Document::registerCollection):
(WebCore::Document::unregisterCollection):

  • dom/LiveNodeList.h:

(WebCore::LiveNodeList::rootNode const):

  • dom/NameNodeList.h:
  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::adoptDocument):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::rootTypeFromCollectionType):

  • html/HTMLCollection.h:

(WebCore::HTMLCollection::rootNode const):
(WebCore::HTMLCollection::isRootedAtTreeScope const):
(WebCore::HTMLCollection::isRootedAtDocument const): Deleted.

  • html/LabelsNodeList.h:
  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::RadioNodeList):

  • html/RadioNodeList.h:
4:25 PM Changeset in webkit [288161] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Unreviewed, reverting r288019.
https://bugs.webkit.org/show_bug.cgi?id=235341

Introduced debug assert

Reverted changeset:

"Inject Launch Services database before NSApplication is
initialized"
https://bugs.webkit.org/show_bug.cgi?id=235186
https://commits.webkit.org/r288019

4:15 PM Changeset in webkit [288160] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.3-branch/Source

Versioning.

WebKit-7613.1.14.3.1

4:13 PM Changeset in webkit [288159] by Alan Bujtas
  • 9 edits in trunk

[LFC][Integration] Use IFC for preferred width computation for inline boxes
https://bugs.webkit.org/show_bug.cgi?id=232620

Reviewed by Antti Koivisto.

Source/WebCore:

  • rendering/RenderBlockFlow.cpp:

LayoutTests:

  • fast/text/hanging-punctuation-variable-font-size-expected.html: Adjust incorrect expected result (Both Chrome and Firefox agree).
  • platform/ios/fast/css/word-space-extra-expected.txt: progression
  • platform/mac/fast/css/word-space-extra-expected.txt: progression (matching Chrome).
  • platform/mac/fast/text/international/003-expected.txt: progression (matching Chrome).
  • platform/mac/fast/text/wbr-expected.txt: progression.
4:11 PM Changeset in webkit [288158] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.2-branch/Source

Versioning.

WebKit-7613.1.14.2.1

4:00 PM Changeset in webkit [288157] by Russell Epstein
  • 1 copy in branches/safari-613.1.14.3-branch

New branch.

3:56 PM Changeset in webkit [288156] by ChangSeok Oh
  • 4 edits in trunk/Source

[GTK] Implement native form validation bubbles for GTK4
https://bugs.webkit.org/show_bug.cgi?id=235303

Reviewed by Carlos Garcia Campos.

The gtk port using gtk3 supports a native validation bubble for the form validation
since r288104. This change brings the same support for gtk4.
Source/WebCore:

The same features of ValidationBubble are implemented using gtk4 API.

No new tests since existing tests cover this change.

  • platform/gtk/ValidationBubbleGtk.cpp:

(WebCore::ValidationBubble::ValidationBubble):
(WebCore::ValidationBubble::invalidate):
(WebCore::ValidationBubble::showRelativeTo):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp: Enable pageConfiguration.validationMessageClient for all gtk backends

(WebKit::m_appHighlightsVisible):

3:53 PM Changeset in webkit [288155] by Russell Epstein
  • 9 edits in branches/safari-613.1.14.1-branch/Source

Versioning.

WebKit-7613.1.14.1.2

3:40 PM Changeset in webkit [288154] by Ross Kirsling
  • 2 edits in trunk/PerformanceTests

Speedometer should be locally runnable on Windows
https://bugs.webkit.org/show_bug.cgi?id=235334

Reviewed by Don Olmstead.

It's currently not possible to run Speedometer locally on Windows (even using Chrome or Firefox):
the EmberJS-TodoMVC test fails its subresource integrity checks due to line endings.

  • .gitattributes:

Ensure two JS files never include CRLFs.

2:40 PM Changeset in webkit [288153] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.10

Tag Safari-613.1.12.1.10.

2:39 PM Changeset in webkit [288152] by Russell Epstein
  • 4 edits
    4 adds in branches/safari-613.1.12.1-branch

Cherry-pick r288078. rdar://problem/87736072

database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
  • page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.

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

2:38 PM Changeset in webkit [288151] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.10

2:38 PM Changeset in webkit [288150] by Russell Epstein
  • 2 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE

Revert "Cherry-pick r288041. rdar://problem/86457081"

This reverts commit r288044.

2:18 PM Changeset in webkit [288149] by commit-queue@webkit.org
  • 107 edits
    29 moves
    6 adds
    29 deletes in trunk/LayoutTests

[GLIB] Update test baselines after r288070 allowed LFC integration to work with the complex text path.
https://bugs.webkit.org/show_bug.cgi?id=235330

Unreviewed test gardening.

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

  • platform/glib/fast/backgrounds/border-radius-split-background-expected.txt: Renamed from LayoutTests/platform/wpe/fast/backgrounds/border-radius-split-background-expected.txt.
  • platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt: Renamed from LayoutTests/platform/wpe/fast/backgrounds/border-radius-split-background-image-expected.txt.
  • platform/glib/fast/block/basic/013-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/basic/013-expected.txt.
  • platform/glib/fast/block/float/br-with-clear-2-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/float/br-with-clear-2-expected.txt.
  • platform/glib/fast/block/margin-collapse/block-inside-inline/001-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/margin-collapse/block-inside-inline/001-expected.txt.
  • platform/glib/fast/block/margin-collapse/block-inside-inline/005-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/margin-collapse/block-inside-inline/005-expected.txt.
  • platform/glib/fast/borders/border-image-outset-split-inline-expected.txt: Renamed from LayoutTests/platform/wpe/fast/borders/border-image-outset-split-inline-expected.txt.
  • platform/glib/fast/borders/border-styles-split-expected.txt: Renamed from LayoutTests/platform/wpe/fast/borders/border-styles-split-expected.txt.
  • platform/glib/fast/css/child-style-can-override-visited-style-expected.txt: Renamed from LayoutTests/platform/wpe/fast/css/child-style-can-override-visited-style-expected.txt.
  • platform/glib/fast/css/named-images-expected.txt: Renamed from LayoutTests/platform/wpe/fast/css/named-images-expected.txt.
  • platform/glib/fast/dom/HTMLMeterElement/meter-element-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-element-expected.txt.
  • platform/glib/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt.
  • platform/glib/fast/dom/HTMLMeterElement/meter-styles-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-styles-expected.txt.
  • platform/glib/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt.
  • platform/glib/fast/dom/HTMLProgressElement/progress-element-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLProgressElement/progress-element-expected.txt.
  • platform/glib/fast/encoding/charset-replacement-expected.txt: Renamed from LayoutTests/platform/wpe/fast/encoding/charset-replacement-expected.txt.
  • platform/glib/fast/encoding/invalid-UTF-8-expected.txt: Renamed from LayoutTests/platform/wpe/fast/encoding/invalid-UTF-8-expected.txt.
  • platform/glib/fast/images/image-map-anchor-children-expected.txt: Renamed from LayoutTests/platform/wpe/fast/images/image-map-anchor-children-expected.txt.
  • platform/glib/fast/inline/002-expected.txt: Renamed from LayoutTests/platform/wpe/fast/inline/002-expected.txt.
  • platform/glib/fast/invalid/018-expected.txt: Renamed from LayoutTests/platform/wpe/fast/invalid/018-expected.txt.
  • platform/glib/fast/selectors/018b-expected.txt: Renamed from LayoutTests/platform/wpe/fast/selectors/018b-expected.txt.
  • platform/glib/fast/table/table-display-types-strict-expected.txt: Renamed from LayoutTests/platform/wpe/fast/table/table-display-types-strict-expected.txt.
  • platform/glib/fast/table/unbreakable-images-quirk-expected.txt: Renamed from LayoutTests/platform/wpe/fast/table/unbreakable-images-quirk-expected.txt.
  • platform/glib/fast/text/basic/004-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/basic/004-expected.txt.
  • platform/glib/fast/text/basic/012-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/basic/012-expected.txt.
  • platform/glib/fast/text/cg-fallback-bolding-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/cg-fallback-bolding-expected.txt.
  • platform/glib/fast/text/firstline/001-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/firstline/001-expected.txt.
  • platform/glib/fast/text/indic-expected.txt:
  • platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt.
  • platform/glib/fast/text/justify-nbsp-expected.txt:
  • platform/glib/fast/text/whitespace/020-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/whitespace/020-expected.txt.
  • platform/gtk/fast/backgrounds/border-radius-split-background-expected.txt: Removed.
  • platform/gtk/fast/backgrounds/border-radius-split-background-image-expected.txt: Removed.
  • platform/gtk/fast/block/basic/013-expected.txt: Removed.
  • platform/gtk/fast/block/basic/014-expected.txt:
  • platform/gtk/fast/block/basic/016-expected.txt:
  • platform/gtk/fast/block/float/br-with-clear-2-expected.txt: Removed.
  • platform/gtk/fast/block/margin-collapse/044-expected.txt:
  • platform/gtk/fast/block/margin-collapse/block-inside-inline/001-expected.txt: Removed.
  • platform/gtk/fast/block/margin-collapse/block-inside-inline/005-expected.txt: Removed.
  • platform/gtk/fast/block/positioning/047-expected.txt:
  • platform/gtk/fast/block/positioning/057-expected.txt:
  • platform/gtk/fast/borders/bidi-012-expected.txt:
  • platform/gtk/fast/borders/border-image-outset-split-inline-expected.txt: Removed.
  • platform/gtk/fast/borders/border-styles-split-expected.txt: Removed.
  • platform/gtk/fast/borders/rtl-border-04-expected.txt:
  • platform/gtk/fast/box-shadow/basic-shadows-expected.txt:
  • platform/gtk/fast/css-generated-content/012-expected.txt:
  • platform/gtk/fast/css-generated-content/after-duplicated-after-split-expected.txt:
  • platform/gtk/fast/css/child-style-can-override-visited-style-expected.txt: Removed.
  • platform/gtk/fast/css/css1_forward_compatible_parsing-expected.txt:
  • platform/gtk/fast/css/empty-inline-003-quirksmode-expected.txt:
  • platform/gtk/fast/css/empty-inline-line-height-first-line-expected.txt:
  • platform/gtk/fast/css/empty-inline-line-height-first-line-quirksmode-expected.txt:
  • platform/gtk/fast/css/first-line-text-decoration-expected.txt:
  • platform/gtk/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
  • platform/gtk/fast/css/font-face-opentype-expected.txt:
  • platform/gtk/fast/css/named-images-expected.txt: Removed.
  • platform/gtk/fast/css/pseudo-first-line-border-width-expected.txt:
  • platform/gtk/fast/css/resize-corner-tracking-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/gtk/fast/css/text-overflow-input-expected.txt:
  • platform/gtk/fast/css/word-space-extra-expected.txt:
  • platform/gtk/fast/dom/34176-expected.txt:
  • platform/gtk/fast/dom/52776-expected.txt:
  • platform/gtk/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: Removed.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Removed.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt: Removed.
  • platform/gtk/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt: Removed.
  • platform/gtk/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.txt: Removed.
  • platform/gtk/fast/encoding/charset-replacement-expected.txt: Removed.
  • platform/gtk/fast/encoding/invalid-UTF-8-expected.txt: Removed.
  • platform/gtk/fast/encoding/utf-16-big-endian-expected.txt:
  • platform/gtk/fast/encoding/utf-16-little-endian-expected.txt:
  • platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
  • platform/gtk/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/gtk/fast/forms/listbox-hit-test-zoomed-expected.txt:
  • platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
  • platform/gtk/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/gtk/fast/images/image-map-anchor-children-expected.txt: Removed.
  • platform/gtk/fast/inline-block/inline-block-vertical-align-expected.txt:
  • platform/gtk/fast/inline/002-expected.txt: Removed.
  • platform/gtk/fast/inline/drawStyledEmptyInlines-expected.txt:
  • platform/gtk/fast/invalid/018-expected.txt: Removed.
  • platform/gtk/fast/invalid/missing-end-tag-expected.txt:
  • platform/gtk/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/gtk/fast/overflow/003-expected.txt:
  • platform/gtk/fast/parser/entities-in-xhtml-expected.txt:
  • platform/gtk/fast/parser/nofoo-tags-inside-paragraph-expected.txt:
  • platform/gtk/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/gtk/fast/parser/xhtml-alternate-entities-expected.txt:
  • platform/gtk/fast/repaint/line-layout-block-shrink-expected.txt:
  • platform/gtk/fast/repaint/simple-line-layout-shrinking-content-expected.txt:
  • platform/gtk/fast/replaced/inline-box-wrapper-handover-expected.txt:
  • platform/gtk/fast/selectors/018b-expected.txt: Removed.
  • platform/gtk/fast/selectors/visited-descendant-expected.txt:
  • platform/gtk/fast/table/col-and-colgroup-offsets-expected.txt:
  • platform/gtk/fast/table/table-continuation-outline-paint-crash-expected.txt:
  • platform/gtk/fast/table/table-display-types-strict-expected.txt: Removed.
  • platform/gtk/fast/table/unbreakable-images-quirk-expected.txt: Removed.
  • platform/gtk/fast/text/atsui-multiple-renderers-expected.txt:
  • platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/gtk/fast/text/atsui-spacing-features-expected.txt:
  • platform/gtk/fast/text/basic/004-expected.txt: Removed.
  • platform/gtk/fast/text/basic/005-expected.txt:
  • platform/gtk/fast/text/basic/012-expected.txt: Removed.
  • platform/gtk/fast/text/basic/014-expected.txt:
  • platform/gtk/fast/text/bidi-reverse-runs-crash-expected.txt:
  • platform/gtk/fast/text/capitalize-boundaries-expected.txt:
  • platform/gtk/fast/text/cg-fallback-bolding-expected.txt: Removed.
  • platform/gtk/fast/text/fallback-traits-fixup-expected.txt:
  • platform/gtk/fast/text/firstline/001-expected.txt: Removed.
  • platform/gtk/fast/text/format-control-expected.txt:
  • platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
  • platform/gtk/fast/text/in-rendered-text-rtl-expected.txt:
  • platform/gtk/fast/text/international/arabic-justify-expected.txt:
  • platform/gtk/fast/text/international/bidi-AN-after-L-expected.txt:
  • platform/gtk/fast/text/international/bidi-AN-after-empty-run-expected.txt:
  • platform/gtk/fast/text/international/bidi-CS-after-AN-expected.txt:
  • platform/gtk/fast/text/international/bidi-L2-run-reordering-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/gtk/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/gtk/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/gtk/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/gtk/fast/text/international/bidi-innertext-expected.txt:
  • platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
  • platform/gtk/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/gtk/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/gtk/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/gtk/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/gtk/fast/text/international/bidi-listbox-expected.txt:
  • platform/gtk/fast/text/international/bidi-menulist-expected.txt:
  • platform/gtk/fast/text/international/bidi-mirror-he-ar-expected.txt:
  • platform/gtk/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt:
  • platform/gtk/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/gtk/fast/text/international/bidi-override-expected.txt:
  • platform/gtk/fast/text/international/bold-bengali-expected.txt:
  • platform/gtk/fast/text/international/danda-space-expected.txt:
  • platform/gtk/fast/text/international/hebrew-vowels-expected.txt:
  • platform/gtk/fast/text/international/hindi-whitespace-expected.txt:
  • platform/gtk/fast/text/international/rtl-caret-expected.txt:
  • platform/gtk/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/gtk/fast/text/international/thai-baht-space-expected.txt:
  • platform/gtk/fast/text/international/thai-line-breaks-expected.txt:
  • platform/gtk/fast/text/midword-break-after-breakable-char-expected.txt:
  • platform/gtk/fast/text/text-letter-spacing-expected.txt:
  • platform/gtk/fast/text/unicode-variation-selector-expected.txt:
  • platform/gtk/fast/text/wbr-expected.txt:
  • platform/gtk/fast/text/whitespace/004-expected.txt:
  • platform/gtk/fast/text/whitespace/005-expected.txt:
  • platform/gtk/fast/text/whitespace/006-expected.txt:
  • platform/gtk/fast/text/whitespace/007-expected.txt:
  • platform/gtk/fast/text/whitespace/010-expected.txt:
  • platform/gtk/fast/text/whitespace/011-expected.txt:
  • platform/gtk/fast/text/whitespace/015-expected.txt:
  • platform/gtk/fast/text/whitespace/016-expected.txt:
  • platform/gtk/fast/text/whitespace/018-expected.txt:
  • platform/gtk/fast/text/whitespace/020-expected.txt: Removed.
2:14 PM Changeset in webkit [288148] by Russell Epstein
  • 1 copy in tags/Safari-613.1.14.1.1

Tag Safari-613.1.14.1.1.

2:09 PM Changeset in webkit [288147] by achristensen@apple.com
  • 4 edits in trunk

Build WebKitSwift when building with make or build-webkit
https://bugs.webkit.org/show_bug.cgi?id=235093

Reviewed by Alexey Proskuryakov.

Source/WebKit:

For various internal reasons, we have to have no depency between the two,
but we command line builders want to build and test it just like everyone else.

  • Makefile:

Tools:

  • Scripts/build-webkit:
1:46 PM Changeset in webkit [288146] by commit-queue@webkit.org
  • 39 edits in trunk

Use c++2a instead of gnu++2a for Cocoa builds
https://bugs.webkit.org/show_bug.cgi?id=234936

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Sam Weinig.

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/JavaScriptCore.xcconfig:
  • DerivedSources.make:

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:

Source/WebCore:

The only need for it was for two calls to memset_s, for which we define STDC_WANT_LIB_EXT1

  • Configurations/Base.xcconfig:
  • DerivedSources.make:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:

Source/WebGPU:

  • Configurations/Base.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/BaseTarget.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
  • MigrateHeaders.make:

Source/WTF:

  • Configurations/Base.xcconfig:

Tools:

  • DumpRenderTree/DerivedSources.make:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MobileMiniBrowser/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/DerivedSources.make:
1:43 PM Changeset in webkit [288145] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/master.cfg

[ews] Load credentials from passwords.json in master.cfg
https://bugs.webkit.org/show_bug.cgi?id=235296

Reviewed by Jonathan Bedard.

  • Tools/CISupport/ews-build/master.cfg:

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

1:11 PM Changeset in webkit [288144] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Don't build WKGroupSession.swift when using Monterey public SDK
https://bugs.webkit.org/show_bug.cgi?id=235324

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Jer Noble.

  • Configurations/WebKit.xcconfig:

Remove unused exclusion of WKGroupSession.swift which is only built in WebKitSwift.

  • Configurations/WebKitSwift.xcconfig:

Remove unused reference to WKCoordinator.mm and WKCoordinator.h which don't exist any more.
Don't build WKGroupSession.swift with the public SDK since it uses "@_spi(Safari)"

1:03 PM Changeset in webkit [288143] by weinig@apple.com
  • 19 edits in trunk

[CSS Color 4] Add support for "Missing"/"none" color components
https://bugs.webkit.org/show_bug.cgi?id=233526
<rdar://problem/86026087>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update color pasing tests to include 'none' components.

  • web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-computed.html:
  • web-platform-tests/css/css-color/parsing/color-invalid-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-invalid.html:
  • web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/color-valid.html:
  • web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-computed.html:
  • web-platform-tests/css/css-color/parsing/relative-color-invalid-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-invalid.html:
  • web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt:
  • web-platform-tests/css/css-color/parsing/relative-color-valid.html:

Source/WebCore:

Adds support for parsing an identifier, 'none', as a CSS color component for all specified
grammars, including rgb() (space separated), hsl() (space separated), hwb(), color(), lab(),
lch(), oklab(), oklch() as well as all the respective relative forms.

For color types that were already being stored using float components, the 'none' value
is stored as NaN. For the types that were not (rgb(), hsl() and hwb()) we now store the
value using float components if and only if there are any 'none' components (bounded SRGBA<float>
for rgb(), HSLA<float> for hsl() and HWBA<float> for hwb()). This is necessary for both
serialization, which has been updated to handle the new values, as well as interpolation,
which is not included in this change.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::NoneRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberOrPercentRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IdentityTransformer::transform):
(WebCore::CSSPropertyParserHelpers::RawIdentityTransformer::transform):
(WebCore::CSSPropertyParserHelpers::RawVariantTransformerBase::transform):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumePercentOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlphaAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentToSRGBAByte):
(WebCore::CSSPropertyParserHelpers::consumeRGBOrHSLOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::colorByNormalizingHSLComponents):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawToDegressTransformer::transform): Deleted.
(WebCore::CSSPropertyParserHelpers::LengthOrPercentRawTransformer::transform): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentPercentage): Deleted.
(WebCore::CSSPropertyParserHelpers::RGBNormalizingTransformer::transform): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent): Deleted.
(WebCore::CSSPropertyParserHelpers::clampRGBComponent): Deleted.

  • css/parser/CSSPropertyParserHelpers.h:
  • platform/graphics/ColorNormalization.h:

(WebCore::normalizeClampedWhitenessBlacknessDisallowingNone):
(WebCore::normalizeClampedWhitenessBlacknessAllowingNone):
Pipe through support for parsing and normalizing 'none' components.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::legacyRGBComponent):
(WebCore::numericComponent):
(WebCore::percentageComponent):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::StringTypeAdapter):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::length const):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::is8Bit const):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::writeTo const):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::buffer const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::StringTypeAdapter):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::length const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::is8Bit const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::writeTo const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::buffer const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::StringTypeAdapter):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::length const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::is8Bit const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::writeTo const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::buffer const):
Add helper StringTypeAdapter to efficiently encode "none" or the number
when used with makeString().

(WebCore::serializationUsingColorFunction):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
Add support for serializing bounded SRGBA<float> in the rgba() form rather
than the color function form for the case when it is used to store NaNs. This
serialization is a bit different than the normal 8-bit serialization as it uses
the whitespace syntax rather than comma syntax to allow round tripping of 'none'
components. This is currently unders discussion with the editors:

  • platform/graphics/ColorTypes.h:

(WebCore::assertInRange):
Update bounds assertion to allow NaN for all components regardless of bounds.

12:23 PM Changeset in webkit [288142] by Alan Coon
  • 1 edit in branches/safari-613.1.14.1-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj

Apply patch. rdar://problem/86298747

12:13 PM Changeset in webkit [288141] by Alan Coon
  • 4 edits
    4 adds in branches/safari-613.1.14.1-branch

Cherry-pick r288078. rdar://problem/87662271

database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
  • page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.

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

12:13 PM Changeset in webkit [288140] by Alan Coon
  • 2 edits in branches/safari-613.1.14.1-branch/Source/WebKit

Cherry-pick r287997. rdar://problem/87274541

Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
  • WebProcess/WebPage/MomentumEventDispatcher.h: We store std::optional<ScrollingAccelerationCurve> in a map, but then when looking at whether we have a curve (to decide whether or not to even use MomentumEventDispatcher), we check if the map has *any* value for the given page... even an unengaged optional. To fix, check if the optional is engaged.

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

12:13 PM Changeset in webkit [288139] by Alan Coon
  • 4 edits
    4 adds in branches/safari-613.1.14.0-branch

Cherry-pick r288078. rdar://problem/87662271

database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
  • page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.

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

12:13 PM Changeset in webkit [288138] by Alan Coon
  • 2 edits in branches/safari-613.1.14.0-branch/Source/WebKit

Cherry-pick r287997. rdar://problem/87274541

Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
  • WebProcess/WebPage/MomentumEventDispatcher.h: We store std::optional<ScrollingAccelerationCurve> in a map, but then when looking at whether we have a curve (to decide whether or not to even use MomentumEventDispatcher), we check if the map has *any* value for the given page... even an unengaged optional. To fix, check if the optional is engaged.

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

12:13 PM Changeset in webkit [288137] by Alan Coon
  • 4 edits in branches/safari-613.1.14.0-branch

Cherry-pick r287957. rdar://problem/87327557

[WebAuthn] Fix freebie call without user gesture not being given
https://bugs.webkit.org/show_bug.cgi?id=235078
rdar://87327557

Reviewed by Brent Fulgham.

Source/WebKit:

This logic was previously always requiring a user gesture. The desired
behavior of giving pages a single "freebie" webauthn call without gesture
was lost in a refactor.

Tested manually on iOS device with webauthn.me.

  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::processingUserGesture):

Tools:

Updated API test to reflect user gesture freebie.

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html:

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

12:07 PM Changeset in webkit [288136] by ntim@apple.com
  • 2 edits
    1 move
    3 adds in trunk/LayoutTests

Move dialog-form-submission-expected.txt iPad test expectations in correct directory
https://bugs.webkit.org/show_bug.cgi?id=229566

Unreviewed test gardening.

This is not a flaky failure, but a iPad only failure (or unexpected pass).

  • platform/ipad/TestExpectations:
  • platform/ipad/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt: Renamed from LayoutTests/platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/dialog-form-submission-expected.txt.
12:05 PM Changeset in webkit [288135] by Alan Coon
  • 9 edits in branches/safari-613.1.14.0-branch/Source

Versioning.

WebKit-7613.1.14.0.1

11:59 AM Changeset in webkit [288134] by weinig@apple.com
  • 18 edits in trunk

Canvas functions that take colors as strings don't support all the syntax that CSS supports
https://bugs.webkit.org/show_bug.cgi?id=235269

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expected results now that the test is passing.

  • web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback-expected.txt:

Source/WebCore:

Add a variant of CSSParser::parseColor() that takes a CSSParserContext
and use it (and parser context created from a document) to get the parser
to respect the settings. Rename the existing CSSParser::parseColor() to
CSSParser::parseColorWithoutContext() and add a comment indicating all
uses should eventually be removed.

Offscreen canvas and custom paint canvas are using the old path with https://webkit.org/b/235270
tracking finding a solution for them.

  • Modules/applicationmanifest/ApplicationManifestParser.cpp:

(WebCore::ApplicationManifestParser::parseColor):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::propertyAsColor const):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseColorWithoutContext):

  • css/parser/CSSParser.h:
  • editing/EditingStyle.cpp:

(WebCore::cssValueToColor):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::parseAttribute):

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::contentColor):

  • html/canvas/CanvasStyle.cpp:

(WebCore::parseColor):
(WebCore::currentColor):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
  • svg/properties/SVGPropertyTraits.h:

(WebCore::SVGPropertyTraits<Color>::fromString):
(WebCore::SVGPropertyTraits<Color>::parse):

Source/WebKit:

Update for rename of CSSParser::parseColor() to CSSParser::parseColorWithoutContext().

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkit_color_parse):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageSetComposition):

LayoutTests:

  • fast/canvas/canvas-color-serialization.html:

Update doctype to set the correct CSS parsing mode which now needs to be set correctly for canvas color setting functions.

11:36 AM Changeset in webkit [288133] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk/Source/WebCore

Remove ImplementationLacksVTable IDL attribute
https://bugs.webkit.org/show_bug.cgi?id=235170

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

Also remove some bindings test results that don't seem to be used any more.

  • Modules/indexeddb/IDBKeyRange.idl:
  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/JS/JSInterfaceName.cpp: Removed.
  • bindings/scripts/test/JS/JSMapLike.cpp: Removed.
11:33 AM Changeset in webkit [288132] by Patrick Griffis
  • 41 edits
    1 add in trunk

CSP: Improve handling of multiple policies
https://bugs.webkit.org/show_bug.cgi?id=235199

Reviewed by Kate Cheney.

LayoutTests/imported/w3c:

Add new test expectations with more passes.

  • web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms-expected.txt:
  • web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-error-event-fires-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-multiple-policies-multiple-hashing-algorithms-expected.txt: Added.

Source/WebCore:

This fixes many issues with multiple CSP policies.

To quote the spec for script-src:

Their behavior will be blocked unless every policy allows inline script, either implicitly by not

specifying a script-src (or default-src) directive, or explicitly, by specifying "unsafe-inline",
a nonce-source or a hash-source that matches the inline block.

The previous structure was many distinct calls to check if there was a nonce in any policy, then if there
was a hash in any policy, etc, rather than actually checking the policies as a whole to know if they
allow or block a behavior. This lead to various issues where polices were not properly respected and where
reports were inaccurate.

The allScriptPoliciesAllow() function did try to consider all policies but was not very flexible and had buggy
behavior like for each policy it would call findHashOfContentInPolicies() meaning hashes from other policies
incorrectly applied to the current policy, plus general inefficiency of hashing the same content many
times over.

The new behavior relies more on passing all required information in a single function call to verify all
policies in a single pass.

  • bindings/js/CachedScriptFetcher.cpp:

(WebCore::CachedScriptFetcher::requestScriptWithCache const):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):
(WebCore::ScriptElement::executeClassicScript):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::styleAttributeChanged):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):

  • loader/ResourceLoaderOptions.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::parseSubResourceIntegrityIntoDigests):
(WebCore::generateHashesForContent):
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allScriptPoliciesAllow const): Deleted.
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const): Deleted.
(WebCore::ContentSecurityPolicy::checkHashAndReportViolation const): Deleted.

  • page/csp/ContentSecurityPolicy.h:
  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptElement const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForInlineJavascriptURL const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForInlineEventHandlers const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleElement const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleAttribute const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyle const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashScript const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashStyle const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForParserInsertedScript const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptAttribute const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptHash const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleHash const): Deleted.

  • page/csp/ContentSecurityPolicyDirectiveList.h:

LayoutTests:

Update test expectations, Some newly passing tests are no longer skipped and some have new reports.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-multiple-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-multiple-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies-expected.txt:
  • http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
  • http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
  • http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked-expected.txt:
  • platform/glib/TestExpectations:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
10:47 AM Changeset in webkit [288131] by Alan Coon
  • 1 copy in branches/safari-613.1.14.2-branch

New branch.

10:47 AM Changeset in webkit [288130] by Alan Coon
  • 1 copy in branches/safari-613.1.14.1-branch

New branch.

10:46 AM Changeset in webkit [288129] by Alan Coon
  • 1 copy in branches/safari-613.1.14.0-branch

New branch.

10:46 AM Changeset in webkit [288128] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Copy com.apple.WebKit.adattributiond.sb into place with other iOS sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=235320
<rdar://87711220>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Per Arne Vollan.

Ever since r287100 we are using the sandbox profile, but it doesn't exist so we just crash.

  • WebKit.xcodeproj/project.pbxproj:
10:44 AM Changeset in webkit [288127] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Clean up some code around RenderElement::addLayers()
https://bugs.webkit.org/show_bug.cgi?id=235272

Reviewed by Darin Adler.

The code that looks for the next layer via render tree traversal is tricky and
hard to understand. Do some initial cleanup prior to fixing it for top layer.

First, use std::optional<> in the static addLayers() to make the beforeChild
finding easier to understand (no longer need a null newObject as the signal that
you've tried to look).

Second, use references in findNextLayer() and rename 'startPoint' to make its
purpose more clear.

  • rendering/RenderElement.cpp:

(WebCore::addLayers):
(WebCore::RenderElement::addLayers):
(WebCore::RenderElement::findNextLayer const):
(WebCore::RenderElement::findNextLayer): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::insertOnlyThisLayer):

10:42 AM Changeset in webkit [288126] by commit-queue@webkit.org
  • 2 edits in trunk

Fix typos in Introduction.md
https://bugs.webkit.org/show_bug.cgi?id=235321

Patch by Brandon Stewart <Brandon> on 2022-01-18
Reviewed by Michael Saboff.

Fix several typos in Introduction file.

  • Introduction.md:
10:40 AM Changeset in webkit [288125] by Alan Coon
  • 1 copy in tags/Safari-612.4.9.1.6

Tag Safari-612.4.9.1.6.

10:38 AM Changeset in webkit [288124] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Reduce failure timer in CoreAudioSharedUnit in the case we only render audio samples
https://bugs.webkit.org/show_bug.cgi?id=235318

Reviewed by Eric Carlson.

As shown in https://bugs.webkit.org/show_bug.cgi?id=235317, it might be possible for a VPIO that is only used for
audio rendering to fail sometimes. Waiting for 10 seconds in that case is very long, so we reduce the verification delay to 2 seconds.
Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:
  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
10:29 AM Changeset in webkit [288123] by Alan Coon
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.6

10:16 AM Changeset in webkit [288122] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj

Apply patch. rdar://problem/86298747

10:15 AM Changeset in webkit [288121] by Russell Epstein
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.1.15

10:14 AM Changeset in webkit [288120] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Gardening: resolve test failure on CLoop.

Not reviewed.

Change test to not rely on WebAssembly.

  • stress/max-typed-array-length-toString.js:
10:11 AM Changeset in webkit [288119] by youenn@apple.com
  • 2 edits in trunk/Source/WTF

UUID decode routine should check for deleted value
https://bugs.webkit.org/show_bug.cgi?id=235315

Reviewed by Chris Dumez.

  • wtf/UUID.h:

(WTF::UUID::decode):

10:09 AM Changeset in webkit [288118] by commit-queue@webkit.org
  • 264 edits in trunk/Source/WebCore

Remove ImplementationLacksVTable IDL attribute
https://bugs.webkit.org/show_bug.cgi?id=235170

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

It can be replaced by if constexpr (std::is_polymorphic_v<T>).

  • Modules/WebGPU/GPU.idl:
  • Modules/WebGPU/GPUAdapter.idl:
  • Modules/WebGPU/GPUBindGroup.idl:
  • Modules/WebGPU/GPUBindGroupLayout.idl:
  • Modules/WebGPU/GPUBuffer.idl:
  • Modules/WebGPU/GPUBufferUsage.idl:
  • Modules/WebGPU/GPUCanvasContext.idl:
  • Modules/WebGPU/GPUColorWrite.idl:
  • Modules/WebGPU/GPUCommandBuffer.idl:
  • Modules/WebGPU/GPUCommandEncoder.idl:
  • Modules/WebGPU/GPUCompilationInfo.idl:
  • Modules/WebGPU/GPUCompilationMessage.idl:
  • Modules/WebGPU/GPUComputePassEncoder.idl:
  • Modules/WebGPU/GPUComputePipeline.idl:
  • Modules/WebGPU/GPUDeviceLostInfo.idl:
  • Modules/WebGPU/GPUExternalTexture.idl:
  • Modules/WebGPU/GPUMapMode.idl:
  • Modules/WebGPU/GPUOutOfMemoryError.idl:
  • Modules/WebGPU/GPUPipelineLayout.idl:
  • Modules/WebGPU/GPUQuerySet.idl:
  • Modules/WebGPU/GPUQueue.idl:
  • Modules/WebGPU/GPURenderBundle.idl:
  • Modules/WebGPU/GPURenderBundleEncoder.idl:
  • Modules/WebGPU/GPURenderPassEncoder.idl:
  • Modules/WebGPU/GPURenderPipeline.idl:
  • Modules/WebGPU/GPUSampler.idl:
  • Modules/WebGPU/GPUShaderModule.idl:
  • Modules/WebGPU/GPUShaderStage.idl:
  • Modules/WebGPU/GPUSupportedFeatures.idl:
  • Modules/WebGPU/GPUSupportedLimits.idl:
  • Modules/WebGPU/GPUTexture.idl:
  • Modules/WebGPU/GPUTextureUsage.idl:
  • Modules/WebGPU/GPUTextureView.idl:
  • Modules/WebGPU/GPUValidationError.idl:
  • Modules/async-clipboard/ClipboardItem.idl:
  • Modules/contact-picker/ContactsManager.idl:
  • Modules/credentialmanagement/CredentialsContainer.idl:
  • Modules/encryptedmedia/MediaKeySystemAccess.idl:
  • Modules/entriesapi/DOMFileSystem.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/gamepad/Gamepad.idl:
  • Modules/gamepad/GamepadButton.idl:
  • Modules/geolocation/GeolocationCoordinates.idl:
  • Modules/geolocation/GeolocationPosition.idl:
  • Modules/geolocation/GeolocationPositionError.idl:
  • Modules/highlight/Highlight.idl:
  • Modules/highlight/HighlightRegister.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/mediacapabilities/MediaCapabilities.idl:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasource/VideoPlaybackQuality.idl:
  • Modules/mediastream/OverconstrainedError.idl:
  • Modules/mediastream/RTCCertificate.idl:
  • Modules/mediastream/RTCEncodedAudioFrame.idl:
  • Modules/mediastream/RTCEncodedVideoFrame.idl:
  • Modules/mediastream/RTCIceCandidate.idl:
  • Modules/mediastream/RTCSessionDescription.idl:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/paymentrequest/PaymentAddress.idl:
  • Modules/permissions/Permissions.idl:
  • Modules/push-api/PushManager.idl:
  • Modules/push-api/PushMessageData.idl:
  • Modules/push-api/PushSubscription.idl:
  • Modules/push-api/PushSubscriptionOptions.idl:
  • Modules/speech/SpeechRecognitionAlternative.idl:
  • Modules/speech/SpeechRecognitionResult.idl:
  • Modules/speech/SpeechRecognitionResultList.idl:
  • Modules/storage/StorageManager.idl:
  • Modules/web-locks/WebLock.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/PeriodicWave.idl:
  • Modules/webcodecs/VideoColorSpace.idl:
  • Modules/webdatabase/Database.idl:
  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLResultSet.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRHand.idl:
  • Modules/webxr/WebXRInputSource.idl:
  • Modules/webxr/WebXRInputSourceArray.idl:
  • Modules/webxr/WebXRJointPose.idl:
  • Modules/webxr/WebXRRenderState.idl:
  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRView.idl:
  • Modules/webxr/WebXRViewport.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetGnuVTableNameForInterface):
(GetWinVTableNameForInterface):
(GenerateImplementation):
(GetImplementationLacksVTableForInterface): Deleted.

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/test/ExposedToWorkerAndWindow.idl:
  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestInterfaceLeadingUnderscore.idl:
  • css/CSSPaintSize.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/DeprecatedCSSOMCounter.idl:
  • css/DeprecatedCSSOMPrimitiveValue.idl:
  • css/DeprecatedCSSOMRGBColor.idl:
  • css/DeprecatedCSSOMRect.idl:
  • css/DeprecatedCSSOMValue.idl:
  • css/DeprecatedCSSOMValueList.idl:
  • css/MediaList.idl:
  • css/StyleMedia.idl:
  • css/StyleSheetList.idl:
  • css/typedom/CSSOMVariableReferenceValue.idl:
  • css/typedom/numeric/CSSNumericArray.idl:
  • dom/AbortController.idl:
  • dom/DOMException.idl:
  • dom/DOMImplementation.idl:
  • dom/DOMPoint.idl:
  • dom/DOMPointReadOnly.idl:
  • dom/DOMQuad.idl:
  • dom/DOMRect.idl:
  • dom/DOMRectList.idl:
  • dom/DOMRectReadOnly.idl:
  • dom/DOMStringList.idl:
  • dom/DataTransferItem.idl:
  • dom/IdleDeadline.idl:
  • dom/MessageChannel.idl:
  • dom/MutationObserver.idl:
  • dom/NamedNodeMap.idl:
  • dom/NodeIterator.idl:
  • dom/TextDecoder.idl:
  • dom/TextDecoderStreamDecoder.idl:
  • dom/TextEncoder.idl:
  • dom/TextEncoderStreamEncoder.idl:
  • dom/Touch.idl:
  • dom/TouchList.idl:
  • dom/TreeWalker.idl:
  • fileapi/FileList.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMFormData.idl:
  • html/ImageBitmap.idl:
  • html/ImageData.idl:
  • html/MediaError.idl:
  • html/TextMetrics.idl:
  • html/TimeRanges.idl:
  • html/URLSearchParams.idl:
  • html/WebKitMediaKeyError.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasPattern.idl:
  • html/canvas/WebGLActiveInfo.idl:
  • html/canvas/WebGLShaderPrecisionFormat.idl:
  • html/canvas/WebGLUniformLocation.idl:
  • html/track/AudioTrackConfiguration.idl:
  • html/track/TextTrackCueList.idl:
  • html/track/VTTRegionList.idl:
  • html/track/VideoTrackConfiguration.idl:
  • inspector/CommandLineAPIHost.idl:
  • inspector/InspectorAuditAccessibilityObject.idl:
  • inspector/InspectorAuditDOMObject.idl:
  • inspector/InspectorAuditResourcesObject.idl:
  • inspector/InspectorFrontendHost.idl:
  • page/BarProp.idl:
  • page/DOMSelection.idl:
  • page/History.idl:
  • page/IntersectionObserver.idl:
  • page/IntersectionObserverEntry.idl:
  • page/Location.idl:
  • page/PerformanceNavigation.idl:
  • page/PerformanceObserver.idl:
  • page/PerformanceObserverEntryList.idl:
  • page/PerformanceServerTiming.idl:
  • page/PerformanceTiming.idl:
  • page/ResizeObserver.idl:
  • page/ResizeObserverEntry.idl:
  • page/Screen.idl:
  • page/UndoItem.idl:
  • page/UndoManager.idl:
  • page/WebKitPoint.idl:
  • plugins/DOMMimeType.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:
  • svg/SVGPathSeg.idl:
  • svg/SVGRenderingIntent.idl:
  • svg/SVGUnitTypes.idl:
  • svg/SVGViewSpec.idl:
  • testing/GCObservation.idl:
  • testing/MallocStatistics.idl:
  • testing/MemoryInfo.idl:
  • testing/MockContentFilterSettings.idl:
  • testing/MockPageOverlay.idl:
  • testing/ServiceWorkerInternals.idl:
  • testing/TypeConversions.idl:
  • testing/WebFakeXRDevice.idl:
  • testing/WebFakeXRInputController.idl:
  • workers/WorkerLocation.idl:
  • workers/service/ServiceWorkerClients.idl:
  • xml/DOMParser.idl:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XPathExpression.idl:
  • xml/XPathResult.idl:
  • xml/XSLTProcessor.idl:
8:45 AM Changeset in webkit [288117] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

AX: Improve support for aria-owns in aria trees
https://bugs.webkit.org/show_bug.cgi?id=233383

Patch by Sepand Parhami <sparhami@apple.com> on 2022-01-18
Reviewed by Chris Fleizach.

Source/WebCore:

Better supports aria-owns in trees by following children specified through ownership similar
to how DOM children are handled. Previously, you could use aria-owns for only one level of
ownership. This change also fixes tree items being included twice (once as a DOM child and
another time via aria-owns) and supports using both DOM children and aria-owns on a single
element. This change only affects trees via a change to ariaTreeRows and does not change
aria-owns behavior in general.

Tests: accessibility/mac/treeitem-row-delegation.html

accessibility/mac/treeitem-row-delegation-poorly-formed.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::ariaTreeRows):

  • accessibility/AccessibilityObject.h:

LayoutTests:

Adds test cases for additional specified behavior of aria-owns in trees as well as tests to
make sure incorrect aria-owns usage does not cause crashes.

  • accessibility/mac/treeitem-row-delegation-expected.txt:
  • accessibility/mac/treeitem-row-delegation-poorly-formed-expected.txt: Added.
  • accessibility/mac/treeitem-row-delegation-poorly-formed.html: Added.
  • accessibility/mac/treeitem-row-delegation.html:
8:16 AM Changeset in webkit [288116] by youenn@apple.com
  • 7 edits in trunk

Make ServiceWorkerClient.id a UUID instead of a string derived from a ScriptExecutionContextIdentifier
https://bugs.webkit.org/show_bug.cgi?id=235070
<rdar://problem/87673540>

Reviewed by Darin Adler and Chris Dumez.
Source/WebCore:

Covered by existing and beefed-up API tests.

  • platform/ScriptExecutionContextIdentifier.h:

Remove unneeded const & and && constructors and use by value constructor instead.
Add computeHash direct specialization to remove UUID Hasher specialization.

Source/WTF:

  • wtf/UUID.cpp:
  • wtf/UUID.h:

Use uint64_t logic to generate UUIDs and remove some reinterpret_cast.
Remove the Hasher add since we directly use UUID hash in WebCore.
Simplify parsing logic by using more parseIntegers and bit logic.
Also make sure we are not able to create empty/deleted UUID value from strings.

Tools:

  • TestWebKitAPI/Tests/WTF/UUID.cpp:

Improve test coverage.

7:25 AM Changeset in webkit [288115] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

Non-unified build fails due to missing header in WasmCalleeGroup.cpp

Unreviewed non-unified build fix.

  • wasm/WasmCalleeGroup.cpp: Add missing inclusion of the LinkBuffer.h header.
4:28 AM Changeset in webkit [288114] by Oriol Brufau
  • 2 edits in trunk/Source/WebCore

[css-logical] Simplify logical property groups
https://bugs.webkit.org/show_bug.cgi?id=228130

Reviewed by Antti Koivisto.

Refactors logical property group code in makeprop.pl to make it a bit
more simple and easy the extend if new kinds of logical properties are
introduced in the future.

No new tests since no change in behavior.

  • css/makeprop.pl:

(addProperty):

3:02 AM Changeset in webkit [288113] by svillar@igalia.com
  • 7 edits in trunk

[css-flexbox] Add support for intrinsic sizes in flex-basis
https://bugs.webkit.org/show_bug.cgi?id=235291

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt: Replaced FAIL by PASS expectations.
  • web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt: Ditto.

Source/WebCore:

The flex-basis property should allow the same values as <'width'>. However we were only allowing 'auto', 'content'
and any Length. That did not include intrinsic sizes like 'min-content', 'fit-content' etc. Added the proper parsing
machinery in order to fix that.

Apart from that, a change in the flexbox code was needed. In particular the code was incorrectly assuming that a
flex-basis with intrinsic size in a column flexbox was always an indefinite size. That's true as long as the flexbox
has an horizontal writing mode (in that case the main axis would be the block axis). However that's totally wrong for
a flexbox with vertical writing mode (as in that case the main axis would be the inline axis).

The flexbox fix + the parsing additions allow us to pass 12 more WPT subtests.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFlexBasis): Additionally check for any validWidthOrHeightKeyword().
(WebCore::CSSPropertyParser::parseSingleValue): Pass the context instead of the mode.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Replaced isColumnFlow() by !mainAxisIsChildInlineAxis().

12:30 AM Changeset in webkit [288112] by commit-queue@webkit.org
  • 68 edits
    26 moves
    26 deletes in trunk/LayoutTests

[GLIB] Update test baselines after r288070.
https://bugs.webkit.org/show_bug.cgi?id=235300

Unreviewed test gardening.

Since r288070 enabled LFC integration to be used on GTK as well as WPE, many test baselines can now be merged.

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

  • platform/glib/css2.1/t0805-c5521-brdr-l-01-e-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t0805-c5521-brdr-l-01-e-expected.txt.
  • platform/glib/css2.1/t0905-c5525-fltwrap-00-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t0905-c5525-fltwrap-00-b-expected.txt.
  • platform/glib/css2.1/t090501-c414-flt-03-b-g-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t090501-c414-flt-03-b-g-expected.txt.
  • platform/glib/css2.1/t100801-c544-valgn-03-d-agi-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt.
  • platform/glib/css2.1/t1202-counter-08-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counter-08-b-expected.txt.
  • platform/glib/css2.1/t1202-counter-13-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counter-13-b-expected.txt.
  • platform/glib/css2.1/t1202-counter-14-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counter-14-b-expected.txt.
  • platform/glib/css2.1/t1202-counters-08-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counters-08-b-expected.txt.
  • platform/glib/css2.1/t1202-counters-13-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counters-13-b-expected.txt.
  • platform/glib/css2.1/t1202-counters-14-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counters-14-b-expected.txt.
  • platform/glib/css3/filters/effect-combined-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-combined-expected.txt.
  • platform/glib/css3/filters/effect-combined-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-combined-hw-expected.txt.
  • platform/glib/css3/filters/effect-contrast-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-contrast-expected.txt.
  • platform/glib/css3/filters/effect-contrast-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-contrast-hw-expected.txt.
  • platform/glib/css3/filters/effect-grayscale-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-grayscale-expected.txt.
  • platform/glib/css3/filters/effect-grayscale-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-grayscale-hw-expected.txt.
  • platform/glib/css3/filters/effect-hue-rotate-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-hue-rotate-expected.txt.
  • platform/glib/css3/filters/effect-hue-rotate-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-hue-rotate-hw-expected.txt.
  • platform/glib/css3/filters/effect-invert-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-invert-expected.txt.
  • platform/glib/css3/filters/effect-invert-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-invert-hw-expected.txt.
  • platform/glib/css3/filters/effect-opacity-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-opacity-expected.txt.
  • platform/glib/css3/filters/effect-opacity-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-opacity-hw-expected.txt.
  • platform/glib/css3/filters/effect-saturate-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-saturate-expected.txt.
  • platform/glib/css3/filters/effect-saturate-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-saturate-hw-expected.txt.
  • platform/glib/css3/filters/effect-sepia-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-sepia-expected.txt.
  • platform/glib/css3/filters/effect-sepia-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-sepia-hw-expected.txt.
  • platform/gtk/css1/box_properties/border-expected.txt:
  • platform/gtk/css1/box_properties/float_on_text_elements-expected.txt:
  • platform/gtk/css1/font_properties/font-expected.txt:
  • platform/gtk/css1/formatting_model/height_of_lines-expected.txt:
  • platform/gtk/css1/text_properties/letter_spacing-expected.txt:
  • platform/gtk/css1/text_properties/line_height-expected.txt:
  • platform/gtk/css1/text_properties/text_decoration-expected.txt:
  • platform/gtk/css1/text_properties/text_transform-expected.txt:
  • platform/gtk/css1/text_properties/vertical_align-expected.txt:
  • platform/gtk/css1/text_properties/word_spacing-expected.txt:
  • platform/gtk/css2.1/t0805-c5521-brdr-l-01-e-expected.txt: Removed.
  • platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
  • platform/gtk/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt:
  • platform/gtk/css2.1/t0905-c5525-fltwrap-00-b-expected.txt: Removed.
  • platform/gtk/css2.1/t090501-c414-flt-01-b-expected.txt:
  • platform/gtk/css2.1/t090501-c414-flt-03-b-g-expected.txt: Removed.
  • platform/gtk/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
  • platform/gtk/css2.1/t100801-c544-valgn-03-d-agi-expected.txt: Removed.
  • platform/gtk/css2.1/t1202-counter-08-b-expected.txt: Removed.
  • platform/gtk/css2.1/t1202-counter-13-b-expected.txt: Removed.
  • platform/gtk/css2.1/t1202-counter-14-b-expected.txt: Removed.
  • platform/gtk/css2.1/t1202-counters-08-b-expected.txt: Removed.
  • platform/gtk/css2.1/t1202-counters-13-b-expected.txt: Removed.
  • platform/gtk/css2.1/t1202-counters-14-b-expected.txt: Removed.
  • platform/gtk/css2.1/t1508-c527-font-01-b-expected.txt:
  • platform/gtk/css2.1/t1508-c527-font-02-b-expected.txt:
  • platform/gtk/css3/filters/effect-combined-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-combined-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-contrast-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-contrast-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-grayscale-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-grayscale-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-hue-rotate-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-hue-rotate-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-invert-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-invert-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-opacity-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-opacity-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-saturate-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-saturate-hw-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-sepia-expected.txt: Removed.
  • platform/gtk/css3/filters/effect-sepia-hw-expected.txt: Removed.
  • platform/gtk/editing/deleting/5144139-2-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
  • platform/gtk/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
  • platform/gtk/editing/deleting/non-smart-delete-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-001-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-002-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-003-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-004-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-005-expected.txt:
  • platform/gtk/editing/inserting/insert-br-quoted-006-expected.txt:
  • platform/gtk/editing/inserting/insert-div-025-expected.txt:
  • platform/gtk/editing/inserting/insert-div-026-expected.txt:
  • platform/gtk/editing/inserting/return-key-with-selection-001-expected.txt:
  • platform/gtk/editing/inserting/return-key-with-selection-002-expected.txt:
  • platform/gtk/editing/inserting/return-key-with-selection-003-expected.txt:
  • platform/gtk/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt:
  • platform/gtk/editing/pasteboard/paste-4038267-fix-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-001-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-002-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-003-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-004-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-005-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-006-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-007-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-008-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-009-expected.txt:
  • platform/gtk/editing/pasteboard/paste-line-endings-010-expected.txt:
  • platform/gtk/editing/pasteboard/paste-match-style-001-expected.txt:
  • platform/gtk/editing/pasteboard/paste-match-style-002-expected.txt:
  • platform/gtk/editing/pasteboard/paste-text-019-expected.txt:
  • platform/gtk/editing/style/block-styles-007-expected.txt:
  • platform/gtk/editing/style/style-3998892-fix-expected.txt:
  • platform/gtk/editing/style/style-boundary-001-expected.txt:
  • platform/gtk/editing/style/style-boundary-002-expected.txt:
  • platform/gtk/editing/style/style-boundary-003-expected.txt:
  • platform/gtk/editing/style/style-boundary-004-expected.txt:
  • platform/gtk/editing/unsupported-content/list-delete-001-expected.txt:
  • platform/gtk/editing/unsupported-content/list-delete-003-expected.txt:
  • platform/gtk/editing/unsupported-content/list-type-after-expected.txt:
  • platform/gtk/editing/unsupported-content/list-type-before-expected.txt:
  • platform/gtk/editing/unsupported-content/table-delete-002-expected.txt:
  • platform/gtk/editing/unsupported-content/table-type-after-expected.txt:
  • platform/gtk/editing/unsupported-content/table-type-before-expected.txt:

Jan 17, 2022:

11:57 PM Changeset in webkit [288111] by Antti Koivisto
  • 7 edits in trunk

[:has() pseudo-class] Disallow nested :has()
https://bugs.webkit.org/show_bug.cgi?id=235231

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt:
  • web-platform-tests/css/selectors/has-basic-expected.txt:
  • web-platform-tests/css/selectors/parsing/parse-has-expected.txt:

Source/WebCore:

Nested case ':has(:has(foo))' adds no meaningful capability and would complicate invalidation.
See https://github.com/w3c/csswg-drafts/issues/6952 for more details.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

Also set m_resistDefaultNamespace like other logical combination pseudo-classes.

  • css/parser/CSSSelectorParser.h:
11:54 PM Changeset in webkit [288110] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

BaseAudioSharedUnit::devicesChanged is failing capture too much in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=235288

Reviewed by Eric Carlson.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:

In GPUProcess, we do not need to filter tap enabled devices, since this may filter out valid devices, which may break capture.
Given we only need to filter tap enabled devices in the process that enumerates devices for selecting the one to use,
We can reverse the default value to not filter, and enable the filtering in UIProcess as done currently based on whether capturing in GPUProcess or not.

11:35 PM Changeset in webkit [288109] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

AudioMediaStreamTrackRendererUnit::reset should hop to the main thread before calling its observers
https://bugs.webkit.org/show_bug.cgi?id=235290

Reviewed by Darin Adler.

In case of doing audio rendering in WebProcess, we need to hop to main thread since the callback might get called from a background thread.

  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
  • platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
9:21 PM Changeset in webkit [288108] by commit-queue@webkit.org
  • 2 edits in trunk

Fix typo in README
https://bugs.webkit.org/show_bug.cgi?id=235309

Patch by Brandon Stewart <Brandon> on 2022-01-17
Reviewed by Michael Saboff.

Fix typo in ReadMe. Updated 'embededded' to 'embedded'.

  • ReadMe.md:
7:02 PM Changeset in webkit [288107] by mmaxfield@apple.com
  • 5 edits
    4 adds in trunk

REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
https://bugs.webkit.org/show_bug.cgi?id=235053
<rdar://problem/87425066>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/white-space/default-ignorable-complex-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable-complex.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/default-ignorable.html: Added.

Source/WebCore:

The spec says (https://drafts.csswg.org/css-text-3/#white-space-processing)

unsupported Default_ignorable characters must be ignored for text rendering.

Previously, we were handling this by mapping the characters to the zero width space character. r281389 changed
that to be more faithful to the original string (and not do the mapping). One somewhat unexpected result of
this patch was that, now that we're not mapping these code points to the zero width space character, fewer fonts
on the system will support those code points. It became much more common for no font at all to support the code
point in question. r281389 handled the situation where the code points were supported by a font but shouldn't be
rendered, but didn't handle the case where the code points *weren't* supported by any fonts (in the complex text
codepath). This patch updates that path to handle it.

This patch also replaces our previous hardcoded list of Default_ignorable characters with the proper call to ICU
to check the Unicode property. It does this in both the fast text codepath and the simple text codepath, to make
sure they match.

Tests: imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable-complex.html

imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable.html

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::applyCSSVisibilityRules):

5:39 PM Changeset in webkit [288106] by ddkilzer@apple.com
  • 4 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (r249823): gl::Context::onProgramLink() leaks gl::Framebuffer object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235284>
<rdar://problem/87656747>

Reviewed by Darin Adler.

  • src/libANGLE/Context.cpp:

(gl::Context::setDefaultFramebuffer):

  • Use std::unique_ptr<> to store gl::Framebuffer so the object is released on early return.
  • src/libANGLE/Surface.cpp:

(egl::Surface::createDefaultFramebuffer):

  • Update to return std::unique_ptr<gl::Framebuffer>.
  • src/libANGLE/Surface.h:

(egl::Surface::createDefaultFramebuffer):

  • Update declaration to return std::unique_ptr<gl::Framebuffer>.

(egl::Surface::createDefaultFramebuffer): Delete.

  • Remove the second, protected method that is currently unimplemented.
4:56 PM Changeset in webkit [288105] by ddkilzer@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (r286603): rx::ProgramMtl::getSpecializedShader() leaks MTLFunctionConstantValues object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235281>
<rdar://problem/87656387>

Reviewed by Darin Adler.

  • src/libANGLE/renderer/metal/ProgramMtl.mm:

(rx::ProgramMtl::getSpecializedShader):

  • Use mtl::AutoObjCObj<> to release MTLFunctionConstantValues object on early return.
4:50 PM Changeset in webkit [288104] by ChangSeok Oh
  • 15 edits
    1 add in trunk

[GTK] Implement form validation with gtk3 widgets in the UI process
https://bugs.webkit.org/show_bug.cgi?id=234629

Reviewed by Carlos Garcia Campos.

Source/WebCore:

This change re-implements form validation with gtk3 widgets in the UI process.
The current form validation is implemented by using shadow DOM in the web process.
The overall design is similar to that of mac port but the gtk port adds
a callback of webkitWebViewBaseSetShouldNotifyFocusEvents to WebCore::ValidationBubble
to suppress a focus event triggered by the popover widget. Otherwise, the native
bubble does not display properly.
This change does not support gtk4 yet. A follow-up patch will add the gtk4 support.

No new tests because existing tests cover this change.

  • SourcesGTK.txt:
  • platform/ValidationBubble.h:

(WebCore::ValidationBubble::create):

  • platform/gtk/ValidationBubbleGtk.cpp: Added.

(WebCore::ValidationBubble::ValidationBubble):
(WebCore::ValidationBubble::~ValidationBubble):
(WebCore::ValidationBubble::invalidate):
(WebCore::ValidationBubble::showRelativeTo):

Source/WebKit:

This change re-implements form validation with gtk3 widgets in the UI process.
The current form validation is implemented by using shadow DOM in the web process.
The overall design is similar to that of mac port but the gtk port adds
a callback of webkitWebViewBaseSetShouldNotifyFocusEvents to WebCore::ValidationBubble
to suppress a focus event triggered by the popover widget. Otherwise, the native
bubble does not display properly.
This change does not support gtk4 yet. A follow-up patch will add the gtk4 support.
To avoid complaints from the gtk4 EWS, we guard implementation of ValidationBubbleGtk
temporarily and install pageConfiguration.validationMessageClient for gtk3 only.
The gtk4 keeps using the shadow DOM bubble until having native bubble support.

  • SourcesGTK.txt:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::createValidationBubble):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::hideValidationMessage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::showValidationMessage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_appHighlightsVisible):

LayoutTests:

We skip fast/forms/validation-message-clone.html for now. Although this patch
implements a validation bubble with a native widget, related tests cannot be enabled
due to missing JS APIs for the UI script controller (e.g., contentsOfUserInterfaceItem).

  • platform/gtk/TestExpectations: Skip fast/forms/validation-message-clone.html
1:32 PM Changeset in webkit [288103] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Fractional td width is not rendering correctly
https://bugs.webkit.org/show_bug.cgi?id=234745
<rdar://problem/87162997>

Reviewed by Darin Adler.

Source/WebCore:

This is based on the following Blink commit

https://chromium.googlesource.com/chromium/src/+/bfade5f8c943d322f5aca3ab0341824e4ae885a1

The code that ignores a width of zero was incorrectly parsing as an integer and ignoring fractional values.

Test: fast/table/table-cell-percent-width-between-0-and-1.html

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::collectPresentationalHintsForAttribute):

LayoutTests:

  • fast/table/table-cell-percent-width-between-0-and-1-expected.html: Added.
  • fast/table/table-cell-percent-width-between-0-and-1.html: Added.
12:17 PM Changeset in webkit [288102] by Wenson Hsieh
  • 8 edits in trunk

ImageAnalysisQueue should analyze image elements that are loaded after the call to enqueueAllImages()
https://bugs.webkit.org/show_bug.cgi?id=233266
rdar://85731875

Reviewed by Darin Adler.

Source/WebCore:

Make a few adjustments to ImageAnalysisQueue, such that it continues to analyze images in the document that have
finished loading after triggering the initial call to enqueueAllImages() in the document.

Test: ImageAnalysisTests.AnalyzeDynamicallyLoadedImages

ImageAnalysisTests.ResetImageAnalysisAfterNavigation

  • page/ImageAnalysisQueue.cpp:

(WebCore::ImageAnalysisQueue::enqueueIfNeeded):

Pull logic for queueing an image element for analysis into a separate helper method; we only attempt to analyze
image elements that have successfully loaded and contain a CachedImage that is larger than an arbitrarily
chosen size of 20px by 20px.

(WebCore::ImageAnalysisQueue::enqueueAllImages):

Refactor this to use the new enqueueIfNeeded method above.

(WebCore::ImageAnalysisQueue::resumeProcessing):
(WebCore::ImageAnalysisQueue::clear):

  • page/ImageAnalysisQueue.h:

Add a weak hashset of elements that we've already added to the image analysis queue at some point. This prevents
us from continually performing image analysis on the same image if it's only being removed and reinserted in the
document.

  • page/Page.cpp:

(WebCore::Page::didCommitLoad):

Additionally reset the image analysis queue when committing page load, so that the image analysis queue doesn't
persist and continue analyzing images even after reloading the page (or navigating away).

(WebCore::Page::didFinishLoadingImageForElement):

If it exists, tell the page's image analysis queue to add the newly loaded image.

(WebCore::Page::resetImageAnalysisQueue):

  • page/Page.h:

Tools:

Add new API tests to check that image elements that are created and inserted after kicking off the image
analysis queue are successfully added to the queue, and result in platform image analysis requests, and to also
verify that the image analysis queue is reset after navigation.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::processRequestWithResults):
(TestWebKitAPI::makeImageAnalysisRequestSwizzler):
(TestWebKitAPI::processRequestWithError):
(TestWebKitAPI::TEST):
(TestWebKitAPI::swizzledProcessRequestWithResults): Deleted.
(TestWebKitAPI::swizzledProcessRequestWithError): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:
12:10 PM Changeset in webkit [288101] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash may occur under ComputedStyleExtractor::propertyValue()
https://bugs.webkit.org/show_bug.cgi?id=235255

Reviewed by Antti Koivisto.

When calling getComputedStyle() after an element has had its style set to "display: none",
ComputedStyleExtractor::propertyValue() will first start with a non-null renderer but it will
become null after document.updateLayoutIgnorePendingStylesheets() is called.

To avoid this problem, we stop storing the renderer throughout the method, and instead call
styledRenderer() to obtain a valid renderer each time we need to access it.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

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

AX: Expose toggle buttons using role="button" as form controls.
https://bugs.webkit.org/show_bug.cgi?id=234119

Patch by Sepand Parhami <sparhami@apple.com> on 2022-01-17
Reviewed by Chris Fleizach.

Source/WebCore:

Add the ToggleButton role to the list of aria controls in isARIAControl so that it
is a control when checked by the accessibility object search.

Tests: LayoutTests/accessibility/mac/search-predicate-element-count.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isLabelable const):

Remove redundant check, isControl already covers it.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isARIAControl):

LayoutTests:

Added a test case for button/role="button" with aria-presssed. Reordered a few things as
the previously named "inputs" section was not what was being checked in the test (it was
the number of buttons) and it had previously matched the number by coincidence.

  • accessibility/mac/search-predicate-element-count-expected.txt:
  • accessibility/mac/search-predicate-element-count.html:
11:44 AM Changeset in webkit [288099] by Antti Koivisto
  • 4 edits
    2 adds in trunk

Layered @import rules in <style> should be preloaded
https://bugs.webkit.org/show_bug.cgi?id=234094
<rdar://problem/86586969>

Reviewed by Dean Jackson.

Source/WebCore:

Test: http/tests/loading/preload-css-import-layer.html

  • html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::tokenize):
(WebCore::hasValidImportConditions):
(WebCore::CSSPreloadScanner::emitRule):

  • html/parser/CSSPreloadScanner.h:

Allow @import rule containing layer condition to be preloaded.

LayoutTests:

  • http/tests/loading/preload-css-import-layer-expected.txt: Added.
  • http/tests/loading/preload-css-import-layer.html: Added.
11:35 AM Changeset in webkit [288098] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Add an API test to ensure indexedDB.databases() does not create files on disk
https://bugs.webkit.org/show_bug.cgi?id=235289

Reviewed by Darin Adler.

Add test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
10:30 AM Changeset in webkit [288097] by ddkilzer@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Follow-up: REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>

Unreviewed follow-up fix from Bug 235281, Comment #5.

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::getMetalDeviceMatchingAttribute):

  • Remove unneeded calls to .get().
9:27 AM Changeset in webkit [288096] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GLIB] Update test expectations after r288070 allowed LFC integration to work on GTK.
https://bugs.webkit.org/show_bug.cgi?id=235293

Unreviewed test gardening.

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

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
9:21 AM Changeset in webkit [288095] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[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:
6:31 AM Changeset in webkit [288094] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

[CMake] Fix bmalloc build
https://bugs.webkit.org/show_bug.cgi?id=235292

Unreviewed build fix.

Patch by Xan Lopez <Xan Lopez> on 2022-01-17

  • CMakeLists.txt: fix location of headers and source files.
2:49 AM Changeset in webkit [288093] by youenn@apple.com
  • 61 edits in trunk

Make ServiceWorkerClient.id a UUID instead of a string derived from a ScriptExecutionContextIdentifier
https://bugs.webkit.org/show_bug.cgi?id=235070

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:

Source/WebCore:

Update ScriptExecutionContextIdentifier to be a process-scoped UUID.
This allows to identify the process running a process as well as exposing to JavaScript context identifiers as UUIDs.
This is matching what Chrome and Firefox are doing.
Make SWServer store the maping from context UUID strings to the internal ScriptExecutionContextIdentifiers.
This allows to find a ServiceWorkerClient directly from its JavaScript exposed identifier.
Rename reservedClientId in resultingClientId to match the spec.

Covered by existing tests.

  • Modules/web-locks/WebLockRegistry.cpp:
  • dom/ScriptExecutionContext.cpp:
  • loader/DocumentLoader.cpp:
  • page/mac/PageMac.mm:
  • platform/ProcessQualified.h:
  • platform/ScriptExecutionContextIdentifier.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/ServiceWorkerInternals.cpp:
  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:
  • workers/service/FetchEvent.cpp:
  • workers/service/FetchEvent.h:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorkerClient.cpp:
  • workers/service/ServiceWorkerClient.idl:
  • workers/service/ServiceWorkerClients.cpp:
  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerFetch.cpp:
  • workers/service/context/ServiceWorkerFetch.h:
  • workers/service/context/ServiceWorkerThread.cpp:
  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:
  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:
  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.cpp:
  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:
  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Change findByClientIdentifier into findByVisibleClientIdentifieran and make it asn async reply.
Update fetch event code path to send the visible IDs of the FetchEvent from network process to worker context process.
We store these IDs in NetworkResourceLoader so that we can change them in case of redirection for navigations.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Source/WTF:

  • wtf/UUID.cpp:
  • wtf/UUID.h: Add routine to stringify a UUID. Add routine to parse a stringified UUID. We restrict UUID::create to values for which the version 4 UUID stringification is bijective.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/UUID.cpp:
  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:

LayoutTests:

Updated tests to not rely on visible ID to be the serialization of a ScriptExecutionContextIdentifier.
For that reason, add internals API to get the internal ID from a ServiceWorkerClient.

  • http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
  • http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
  • http/tests/workers/service/resources/getClientIds-worker.js:
  • http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
  • http/tests/workers/service/serviceworkerclients-matchAll.https.html:
1:50 AM Changeset in webkit [288092] by commit-queue@webkit.org
  • 9 edits in trunk

[GStreamer] tests media/track/audio-track-configuration.html and media/track/video-track-configuration.html fail
https://bugs.webkit.org/show_bug.cgi?id=234084

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

Source/WebCore:

The known caps and tags of the track GstStream are now exposed through the corresponding
Platform{Audio,Video}TrackConfiguration. This is supported only when playbin3 is used at
runtime. Supporting playbin2 would be some work (pad probes upfront of decoders?) that could
be done as a follow-up. The codec string is generated with the new GStreamer API
gst_codec_utils_caps_get_mime_codec(), which will ship in 1.20.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

LayoutTests:

  • media/track/audio-track-configuration.html: Add a timeout to each promise, allowing for

nicer actual results when a sub-set of the promises time out. Without this a single promise
timeout would make the entire test time out and the actual results would not be reported
properly.

  • media/track/video-track-configuration.html: Ditto.
  • platform/glib/TestExpectations: Update {audio,video}-track expectations, tests still

expected to fail but some improvements will be available when we switch to playbin3.

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

[Debug][GStreamer] Crash in fast/mediastream/get-display-media-settings.html
https://bugs.webkit.org/show_bug.cgi?id=235221

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

Fix use-after-move issue in MockDisplayCaptureSourceGStreamer. The hashSalt string was moved
to the wrapped mock video source, and then again as a parent class constructor parameter.

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:

(WebCore::MockDisplayCaptureSourceGStreamer::create):

12:21 AM Changeset in webkit [288090] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Frequent GPU process jetsams due to RemoteRenderingBackendProxy not claiming ownership of SharedMemory buffers
https://bugs.webkit.org/show_bug.cgi?id=235226

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-17
Reviewed by Simon Fraser.

Claim memory from SharedBitmaps and SharedMemory that RemoteRenderingBackendProxy
asks and receives from RemoteRenderingBackend. This is not very good,
as GPUP allocates most of the memory and thus might jetsam
before WP claims them. However, that is a bigger change to be done
after this one.

No new tests, hard to test currently.

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::Handle::takeOwnershipOfMemory const):

  • Shared/ShareableBitmap.h:
  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
(WebKit::RemoteRenderingBackendProxy::getFilteredImage):

  • WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):

12:16 AM Changeset in webkit [288089] by Carlos Garcia Campos
  • 26 edits
    1 delete in trunk

[GTK][a11y] Stop using isolated tree for the ATSPI implementation
https://bugs.webkit.org/show_bug.cgi?id=235229

Reviewed by Adrian Perez de Castro.

.:

Do not enable isolated tree for ATSPI.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Isolated tree performance is not good enough with many websites, so for now we will stop using it.

  • SourcesGTK.txt:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Deleted.
(WebCore::AXObjectCache::initializeSecondaryAXThread): Deleted.
(WebCore::AXObjectCache::usedOnAXThread): Deleted.

  • accessibility/atspi/AccessibilityAtspi.cpp:

(WebCore::AccessibilityAtspi::connect):
(WebCore::AccessibilityAtspi::didConnect):
(WebCore::AccessibilityAtspi::initializeRegistry):
(WebCore::AccessibilityAtspi::addEventListener):
(WebCore::AccessibilityAtspi::removeEventListener):
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::removeClient):
(WebCore::AccessibilityAtspi::shouldEmitSignal):
(WebCore::AccessibilityAtspi::uniqueName const):
(WebCore::AccessibilityAtspi::nullReference const):
(WebCore::AccessibilityAtspi::applicationReference const):
(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::unregisterRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::registerHyperlink):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::stateChanged):
(WebCore::AccessibilityAtspi::textChanged):
(WebCore::AccessibilityAtspi::textAttributesChanged):
(WebCore::AccessibilityAtspi::textCaretMoved):
(WebCore::AccessibilityAtspi::textSelectionChanged):
(WebCore::AccessibilityAtspi::valueChanged):
(WebCore::AccessibilityAtspi::selectionChanged):
(WebCore::AccessibilityAtspi::loadEvent):
(WebCore::AccessibilityAtspi::ensureCache):
(WebCore::AccessibilityAtspi::addToCacheIfNeeded):
(WebCore::AccessibilityAtspi::scheduleCacheUpdate):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::removeAccessible):
(WebCore::AccessibilityAtspi::AccessibilityAtspi): Deleted.
(WebCore::AccessibilityAtspi::runLoop const): Deleted.

  • accessibility/atspi/AccessibilityAtspi.h:
  • accessibility/atspi/AccessibilityObjectActionAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::actionName const):
(WebCore::AccessibilityObjectAtspi::localizedActionName const):
(WebCore::AccessibilityObjectAtspi::actionKeyBinding const):
(WebCore::AccessibilityObjectAtspi::doAction const):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi):
(WebCore::AccessibilityObjectAtspi::cacheDestroyed):
(WebCore::AccessibilityObjectAtspi::elementDestroyed):
(WebCore::AccessibilityObjectAtspi::root):
(WebCore::AccessibilityObjectAtspi::registerObject):
(WebCore::AccessibilityObjectAtspi::didUnregisterObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::reference):
(WebCore::AccessibilityObjectAtspi::hyperlinkReference):
(WebCore::AccessibilityObjectAtspi::setParent):
(WebCore:: const):
(WebCore::AccessibilityObjectAtspi::childCount const):
(WebCore::AccessibilityObjectAtspi::childAt const):
(WebCore::AccessibilityObjectAtspi::children const):
(WebCore::AccessibilityObjectAtspi::indexInParent const):
(WebCore::AccessibilityObjectAtspi::name const):
(WebCore::AccessibilityObjectAtspi::description const):
(WebCore::AccessibilityObjectAtspi::locale const):
(WebCore::AccessibilityObjectAtspi::state const):
(WebCore::AccessibilityObjectAtspi::isDefunct const):
(WebCore::AccessibilityObjectAtspi::id const):
(WebCore::AccessibilityObjectAtspi::attributes const):
(WebCore::AccessibilityObjectAtspi::buildAttributes const):
(WebCore::AccessibilityObjectAtspi::relationMap const):
(WebCore::AccessibilityObjectAtspi::buildRelationSet const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
(WebCore::AccessibilityObjectAtspi::serialize const):
(WebCore::AccessibilityObjectAtspi::childAdded):
(WebCore::AccessibilityObjectAtspi::childRemoved):
(WebCore::AccessibilityObjectAtspi::stateChanged):
(WebCore::AccessibilityObjectAtspi::loadEvent):
(WebCore::AccessibilityObjectAtspi::effectiveRole const):
(WebCore::AccessibilityObjectAtspi::role const):
(WebCore::AccessibilityObjectAtspi::roleName const):
(WebCore::AccessibilityObjectAtspi::localizedRoleName const):
(WebCore::AccessibilityObjectAtspi::updateBackingStore):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
(WebCore::AccessibilityObjectAtspi::attach): Deleted.
(WebCore::AccessibilityObjectAtspi::detach): Deleted.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::hitTest const):
(WebCore::AccessibilityObjectAtspi::elementRect const):
(WebCore::AccessibilityObjectAtspi::focus const):
(WebCore::AccessibilityObjectAtspi::opacity const):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):

  • accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::documentAttribute const):
(WebCore::AccessibilityObjectAtspi::documentAttributes const):
(WebCore::AccessibilityObjectAtspi::documentLocale const):

  • accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::url const):
(WebCore::AccessibilityObjectAtspi::offsetInParent const):

  • accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::hyperlinkCount const):
(WebCore::AccessibilityObjectAtspi::hyperlink const):

  • accessibility/atspi/AccessibilityObjectImageAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::imageDescription const):

  • accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::selectionCount const):
(WebCore::AccessibilityObjectAtspi::selectedChild const):
(WebCore::AccessibilityObjectAtspi::setChildSelected const):
(WebCore::AccessibilityObjectAtspi::deselectSelectedChild const):
(WebCore::AccessibilityObjectAtspi::isChildSelected const):
(WebCore::AccessibilityObjectAtspi::selectAll const):
(WebCore::AccessibilityObjectAtspi::clearSelection const):
(WebCore::AccessibilityObjectAtspi::selectionChanged):

  • accessibility/atspi/AccessibilityObjectTableAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::rowCount const):
(WebCore::AccessibilityObjectAtspi::columnCount const):
(WebCore::AccessibilityObjectAtspi::cell const):
(WebCore::AccessibilityObjectAtspi::tableCaption const):
(WebCore::AccessibilityObjectAtspi::cellIndex const):
(WebCore::AccessibilityObjectAtspi::rowAtIndex const):
(WebCore::AccessibilityObjectAtspi::columnAtIndex const):
(WebCore::AccessibilityObjectAtspi::rowHeader const):
(WebCore::AccessibilityObjectAtspi::columnHeader const):
(WebCore::AccessibilityObjectAtspi::rowDescription const):
(WebCore::AccessibilityObjectAtspi::columnDescription const):
(WebCore::AccessibilityObjectAtspi::rowExtent const):
(WebCore::AccessibilityObjectAtspi::columnExtent const):
(WebCore::AccessibilityObjectAtspi::cells const):
(WebCore::AccessibilityObjectAtspi::rows const):
(WebCore::AccessibilityObjectAtspi::rowHeaders const):
(WebCore::AccessibilityObjectAtspi::columnHeaders const):

  • accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):
(WebCore::AccessibilityObjectAtspi::rowSpan const):
(WebCore::AccessibilityObjectAtspi::columnSpan const):
(WebCore::AccessibilityObjectAtspi::cellPosition const):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::text const):
(WebCore::AccessibilityObject::getLengthForTextRange const):
(WebCore::AccessibilityObjectAtspi::textInserted):
(WebCore::AccessibilityObjectAtspi::textDeleted):
(WebCore::AccessibilityObjectAtspi::boundaryOffset const):
(WebCore::AccessibilityObjectAtspi::textAtOffset const):
(WebCore::AccessibilityObjectAtspi::characterAtOffset const):
(WebCore::AccessibilityObjectAtspi::boundsForRange const):
(WebCore::AccessibilityObjectAtspi::textExtents const):
(WebCore::AccessibilityObjectAtspi::offsetAtPoint const):
(WebCore::AccessibilityObjectAtspi::boundsForSelection const):
(WebCore::AccessibilityObjectAtspi::selectedRange const):
(WebCore::AccessibilityObjectAtspi::selectionBounds const):
(WebCore::AccessibilityObjectAtspi::setSelectedRange):
(WebCore::AccessibilityObjectAtspi::selectRange):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
(WebCore::AccessibilityObjectAtspi::textAttributes const):
(WebCore::AccessibilityObjectAtspi::textAttributesWithUTF8Offset const):
(WebCore::AccessibilityObjectAtspi::textAttributesChanged):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):

  • accessibility/atspi/AccessibilityObjectValueAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::currentValue const):
(WebCore::AccessibilityObjectAtspi::setCurrentValue):
(WebCore::AccessibilityObjectAtspi::minimumValue const):
(WebCore::AccessibilityObjectAtspi::maximumValue const):
(WebCore::AccessibilityObjectAtspi::minimumIncrement const):
(WebCore::AccessibilityObjectAtspi::valueChanged):

  • accessibility/atspi/AccessibilityRootAtspi.cpp:

(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi):
(WebCore::AccessibilityRootAtspi::registerObject):
(WebCore::AccessibilityRootAtspi::unregisterObject):
(WebCore::AccessibilityRootAtspi::registerTree):
(WebCore::AccessibilityRootAtspi::didUnregisterTree):
(WebCore::AccessibilityRootAtspi::setPath):
(WebCore::AccessibilityRootAtspi::embedded):
(WebCore::AccessibilityRootAtspi::applicationReference const):
(WebCore::AccessibilityRootAtspi::reference const):
(WebCore::AccessibilityRootAtspi::parentReference const):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::childAdded):
(WebCore::AccessibilityRootAtspi::serialize const):
(WebCore::AccessibilityRootAtspi::frameRect const):

  • accessibility/atspi/AccessibilityRootAtspi.h:
  • accessibility/isolatedtree/atspi/AXIsolatedObjectAtspi.cpp: Removed.

(WebCore::AXIsolatedObject::initializePlatformProperties): Deleted.
(WebCore::AXIsolatedObject::attachPlatformWrapper): Deleted.
(WebCore::AXIsolatedObject::detachPlatformWrapper): Deleted.

Tools:

Update WTR to not use the ax thread.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.h:
  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:

(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::updateIsolatedTreeMode): Deleted.
(WTR::AccessibilityController::axRunLoop): Deleted.
(WTR::AccessibilityController::executeOnAXThreadAndWait): Deleted.
(WTR::AccessibilityController::executeOnAXThread): Deleted.
(WTR::AccessibilityController::executeOnMainThread): Deleted.

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::elementForRelationAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isSelectedOptionActive const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::isChecked const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::clearSelectedChildren const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isVisible const):
(WTR::AccessibilityUIElement::isOffScreen const):
(WTR::AccessibilityUIElement::isCollapsed const):
(WTR::AccessibilityUIElement::isSingleLine const):
(WTR::AccessibilityUIElement::isMultiLine const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::AccessibilityUIElement::isIsolatedObject const): Deleted.

12:04 AM Changeset in webkit [288088] by youenn@apple.com
  • 39 edits
    3 adds in trunk

Transmit network load metrics when service worker is using one of its network load to respond to FetchEvents
https://bugs.webkit.org/show_bug.cgi?id=235179

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/next-hop-protocol.https-expected.txt:

Test is progressing further but is failing as the test checks cached responses for which we do not store metrics.

Source/WebCore:

Allow FetchResponses to get their network metrics.
This requires all ThreadableLoaderClients to receive these metrics.
ServiceWorkerFetch is then able to get the metrics from its FetchResponse to send it to the service worker load client.

Test: http/wpt/service-workers/fetch-metrics-via-service-worker.https.html

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchLoader.cpp:
  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:
  • Modules/fetch/FetchResponse.cpp:
  • Modules/fetch/FetchResponse.h:
  • fileapi/FileReaderLoader.cpp:
  • fileapi/FileReaderLoader.h:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • loader/DocumentThreadableLoader.cpp:
  • loader/DocumentThreadableLoader.h:
  • loader/ThreadableLoaderClient.h:
  • loader/ThreadableLoaderClientWrapper.h:
  • loader/WorkerThreadableLoader.cpp:
  • loader/WorkerThreadableLoader.h:
  • page/EventSource.cpp:
  • page/EventSource.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • workers/WorkerFontLoadRequest.cpp:
  • workers/WorkerFontLoadRequest.h:
  • workers/WorkerScriptLoader.cpp:
  • workers/WorkerScriptLoader.h:
  • workers/service/context/ServiceWorkerFetch.cpp:
  • workers/service/context/ServiceWorkerFetch.h:
  • xml/XMLHttpRequest.cpp:
  • xml/XMLHttpRequest.h:

Source/WebKit:

Pipe network metrics down to WebProcess.

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:

LayoutTests:

  • http/wpt/service-workers/fetch-metrics-via-service-worker.https-expected.txt: Added.
  • http/wpt/service-workers/fetch-metrics-via-service-worker.https.html: Added.
  • http/wpt/service-workers/fetch-metrics-worker.js: Added.

Jan 16, 2022:

10:44 PM Changeset in webkit [288087] by youenn@apple.com
  • 32 edits in trunk

Enforce focus check for getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=235026

Source/WebCore:

Reviewed by Eric Carlson.

Add infrastructure to register a callback so that a task is executed when the document is visible.
Use this to delay getUserMedia requests until document is visible.
The spec currently defines that we should wait for the current document to have focus but this is about to be changed and is not aligned with other browser implementations.

The patch also moves some getUserMedia checks earlier so as to respect order provided by the specs.
Add a check to validate getDisplayMedia is called on a visible document as the user gesture is now time based.

Covered by API test.

  • Modules/mediastream/MediaDevices.cpp:
  • Modules/mediastream/UserMediaRequest.cpp:
  • Modules/mediastream/UserMediaRequest.h:
  • dom/Document.cpp:
  • dom/Document.h:
  • editing/FrameSelection.cpp:

Source/WebKit:

Reviewed by Eric Carlson.

Add setters/getters for the getUserMedia focus settings.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetGetUserMediaRequiresFocus):
(WKPreferencesGetGetUserMediaRequiresFocus):

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

(-[WKPreferences _getUserMediaRequiresFocus]):
(-[WKPreferences _setGetUserMediaRequiresFocus:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/glib/WebKitSettings.cpp:

(webkitSettingsSetGetUserMediaRequiresFocus):

  • UIProcess/API/glib/WebKitSettingsPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseMap): Always add the WindowIsActive flag under xvfb.
(webkitWebViewBaseIsFocused): Always consider the view focused when WindowIsActive flag is present under xvfb.

Source/WTF:

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Reviewed by Eric Carlson.

Disable focus flag for testing to not require to focus the window.

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::doCaptureMuteTest):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/UserMedia.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:

(TestWebKitAPI::GetDisplayMediaTest::SetUp):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:

(MediaCaptureDisabledTest::SetUp):

  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:

(MediaCaptureSimulateFailedSandbox::SetUp):

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewUserMediaEnumerateDevicesPermissionCheck):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):

LayoutTests:

Reviewed by Eric Carlson.

  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
10:41 PM Changeset in webkit [288086] by youenn@apple.com
  • 5 edits in trunk

Queue a task to fire MediaStreamTrack ended event
https://bugs.webkit.org/show_bug.cgi?id=235227

Reviewed by Eric Carlson.

Source/WebCore:

Adding a specific readyState slot to match the spec and queue a task to stop the track instead of firing the event synchronously.
Covered by updated test.

  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/mediastream/MediaStreamTrack.h:

LayoutTests:

  • fast/mediastream/media-stream-track-source-failure.html:
9:18 PM Changeset in webkit [288085] by Lauro Moura
  • 25 edits in trunk/Source

Fix C++20 build warnings with GCC
https://bugs.webkit.org/show_bug.cgi?id=235023

Reviewed by Alex Christensen.

Mostly related to deprecating operations between enums of different
types and not capturing this by default in lambdas.

Source/JavaScriptCore:

  • assembler/X86Assembler.h: Casting enums to same type.

(JSC::X86Assembler::cmovcc):
(JSC::X86Assembler::jccRel32):
(JSC::X86Assembler::setccOpcode):

  • b3/B3CheckSpecial.cpp: Capture this in lambda.

(JSC::B3::CheckSpecial::generate):

  • b3/B3Type.cpp: Replace is_pod_v is is_standard_layout_v and

is_trivial_v

  • bytecode/AccessCase.cpp: Capture this in lambda.

(JSC::AccessCase::generateImpl):

  • bytecode/CallLinkInfo.cpp: Ditto.

(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
(JSC::OptimizingCallLinkInfo::initializeDirectCall):

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

(JSC::DFG::SpeculativeJIT::compile):

  • jit/ICStats.h: Cast enums to same type.

(JSC::ICEvent::hash const):

  • jit/JITArithmetic.cpp: Capture this in lambda.

(JSC::JIT::emitMathICSlow):

  • jit/JITSizeStatistics.cpp: Ditto.

(JSC::JITSizeStatistics::markEnd):

  • runtime/VM.cpp: Ditto.

(JSC::VM::deleteAllLinkedCode):
(JSC::VM::deleteAllCode):
(JSC::VM::shrinkFootprintWhenIdle):

  • wasm/WasmAirIRGenerator.cpp: Ditto.

(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addTableGet):
(JSC::Wasm::AirIRGenerator::addTableSet):
(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::addTableCopy):
(JSC::Wasm::AirIRGenerator::addMemoryFill):
(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicWait):
(JSC::Wasm::AirIRGenerator::atomicNotify):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):

  • wasm/WasmB3IRGenerator.cpp: Ditto.

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::addTableSet):
(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addTableFill):
(JSC::Wasm::B3IRGenerator::addTableCopy):
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addMemoryFill):
(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):
(JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps):
(JSC::Wasm::B3IRGenerator::atomicWait):
(JSC::Wasm::B3IRGenerator::atomicNotify):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):
(JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF32>):

  • yarr/YarrJIT.cpp: Ditto.

Source/WebCore:

  • dom/ViewportArguments.h: Replace enum with constexpr ints as they're

compared to doubles in various places through ViewportArguments.cpp.

  • dom/WheelEvent.h: Replace single-valued enum with constexpr

variable.

  • platform/animation/Animation.h: Ditto.
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

Ditto.
(WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage const):

  • rendering/style/RenderStyleConstants.h: Merge two enums that are

used only in the context of being combined to form a third enum.

Source/WebKit:

  • WebProcess/Inspector/WebInspector.cpp: Capture this in lambdas.

(WebKit::WebInspector::showConsole):
(WebKit::WebInspector::showResources):
(WebKit::WebInspector::showMainResourceForFrame):
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
(WebKit::WebInspector::startElementSelection):
(WebKit::WebInspector::stopElementSelection):

Source/WTF:

  • wtf/AutomaticThread.cpp: Capture this in lambda.

(WTF::AutomaticThread::start):

7:56 PM Changeset in webkit [288084] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.4.9.0.3

Tag Safari-612.4.9.0.3.

7:54 PM Changeset in webkit [288083] by bshafiei@apple.com
  • 1 copy in tags/Safari-612.4.9.1.5

Tag Safari-612.4.9.1.5.

7:49 PM Changeset in webkit [288082] by bshafiei@apple.com
  • 4 edits
    4 adds in branches/safari-612.4.9.0-branch

Cherry-pick r288078. rdar://problem/85801310

database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
  • page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.

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

7:46 PM Changeset in webkit [288081] by bshafiei@apple.com
  • 4 edits
    4 adds in branches/safari-612.4.9.1-branch

Cherry-pick r288078. rdar://problem/85801310

database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
  • page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.

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

7:41 PM Changeset in webkit [288080] by bshafiei@apple.com
  • 8 edits in branches/safari-612.4.9.1-branch/Source

Versioning.

WebKit-7612.4.9.1.5

7:36 PM Changeset in webkit [288079] by bshafiei@apple.com
  • 8 edits in branches/safari-612.4.9.0-branch/Source

Versioning.

WebKit-7612.4.9.0.3

7:35 PM Changeset in webkit [288078] by beidson@apple.com
  • 4 edits
    4 adds in trunk

database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548

Reviewed by Geoff Garen.

Source/WebCore:

Test: http/tests/security/getdatabases-crossorigin.html

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open

UniqueIDBDatabases, only add them to the results list if their origins match.

  • page/ClientOrigin.h:

(WebCore::ClientOrigin::operator!= const):

LayoutTests:

  • http/tests/security/getdatabases-crossorigin-expected.txt: Added.
  • http/tests/security/getdatabases-crossorigin.html: Added.
  • http/tests/security/resources/getdatabases-otherframe.html: Added.
  • http/tests/security/resources/getdatabases-otherwindow.html: Added.
5:04 PM Changeset in webkit [288077] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Use character names instead of codepoint values in overrideControlCharacters()
https://bugs.webkit.org/show_bug.cgi?id=235283

Reviewed by Cameron McCormack.

It's simply easier to read.

No new tests because there is no behavior change.

  • platform/graphics/Font.cpp:

(WebCore::overrideControlCharacters):

2:10 PM Changeset in webkit [288076] by Cameron McCormack
  • 9 edits in trunk/Source

Ensure in flight layer transactions don't accumulate further canvas drawing
https://bugs.webkit.org/show_bug.cgi?id=231163
<rdar://problem/83863292>

Reviewed by Simon Fraser.

Source/WebCore:

When UI side compositing is enabled (as it is on iOS), we build a
layer tree transaction in RemoteLayerTreeDrawingArea::updateRendering to
send off to the UI process. At a high level, updateRendering does this:

  1. Run any requestAnimationFrame callbacks
  2. Iterate over the composited layers to draw their contents into the layer backing stores
  3. Dispatch a task to a different thread to flush the contexts of the layer backing stores and then send the transaction to the UI process

Step 3 is done off a separate task as an optimization, to get the
drawing work queued up by step 2 happening in parallel to any work the
page may day once updateRendering is finished. This can be a problem
when:

  • GPU process canvas rendering is enabled (but DOM rendering is disabled)
  • we have accelerated ImageBuffers for both layer backing stores and canvas backing stores
  • the page does canvas drawing between steps 2 and 3, which affects the contents of a canvas backing store IOSurface that was drawn into a layer backing store IOSurface while building the transaction

The way we draw the canvas contents into the layer is by creating a
CGImage from the canvas backing store ImageBuffer's IOSurface.
Normally, if we draw into an IOSurface that has been wrapped by a
CGImage, this will cause the CGImage to obtain a unique copy of the
IOSurface's pixels, rather than continue holding on to the IOSurface
itself.

When the drawing of this CGImage on to the layer backing store
IOSurface happens, the "draw image" command is queued up to be
processed later. It's only when the flush happens in step 3 above that
the drawing occurs. This means that the CGImage wrapping the IOSurface
exists until that flush.

But while the CGImage does exist, it's in the Web process, and the
canvas drawing on to the same IOSurface happens in the GPU process.
Since QuartzCore doesn't know of its existence, it doesn't cause the
copy-on-write to occur. The effect of this is that subsequent page
drawing on to the canvas can make its way into the layer transaction
unexpectedly.

This patch induces the copy-on-write in the Web process when needed,
by tracking whether a canvas has been drawn into a layer backing
store and the layer transaction flush hasn't happened yet. Just before
we do any more drawing on the canvas, if we are in this state, we
perform a no-op drawing command on the IOSurface, then flush, to make
the CGImage copy the IOSurface data out.

  • html/HTMLCanvasElement.cpp:

(WebCore::imageDrawingRequiresGuardAgainstUseByPendingLayerTransaction):
We only need to induce the CGImage copy-on-write behavior if both the
layer and canvas backing stores are accelerated, the canvas
ImageBuffer is remote, and the layer ImageBuffer is not remote.
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::drawingContext const):
Use drawingContext as a convenient single place to check whether we
are performing the first drawing command before the layer tree
transaction flush has happened.

  • html/HTMLCanvasElement.h:
  • page/Page.h:

(WebCore::Page::setIsAwaitingLayerTreeTransactionFlush):
(WebCore::Page::isAwaitingLayerTreeTransactionFlush const):

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::ensureNativeImagesHaveCopiedBackingStore):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::ensureNativeImagesHaveCopiedBackingStore):
The flush is needed since the CGImage wrapping the IOSurface will only
copy the pixel data out once the no-op drawing command is processed.

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::didFlushLayerTreeAtTime):
Inform the WebCore::Page about the state of the layer tree transaction
building.

  • WebProcess/WebPage/WebPage.h:
1:44 PM Changeset in webkit [288075] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

[WTF] Add TollFreeBridging.h to Xcode project

Unreviewed follow-up for r284038:

Switch WTF::bridge_cast to use type traits
<https://webkit.org/b/231467>
<rdar://problem/84050614>

  • WTF.xcodeproj/project.pbxproj:
  • Add TollFreeBridging.h to the project.
1:34 PM Changeset in webkit [288074] by ddkilzer@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>

Reviewed by Darin Adler.

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::getMetalDeviceMatchingAttribute):

  • Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns.
12:51 PM Changeset in webkit [288073] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

After r288052 added editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html,
WinCairo WK1 tests subsequent to the test case had been failing.
It looked like DRT output the result of the privous test case.

  • platform/wincairo-wk1/TestExpectations: Skip the test case as well as AppleWin does.
1:08 AM Changeset in webkit [288072] by ChangSeok Oh
  • 2 edits in trunk/Tools/buildstream

[Flatpak SDK] local build is broken
https://bugs.webkit.org/show_bug.cgi?id=235265

Reviewed by Philippe Normand.

The local build of Flatpak SDK is broken due to a missing reference to the freedesktop sdk.
This change updates the reference.

  • elements/freedesktop-sdk.bst:

Jan 15, 2022:

10:22 PM Changeset in webkit [288071] by weinig@apple.com
  • 18 edits in trunk

CSS Gradients: interpolation mode should default to OKLab if any non-legacy color syntax colors are used in the stops
https://bugs.webkit.org/show_bug.cgi?id=235071

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update test to also include non-legacy color syntax stops and update results
to match new expected behavior.

  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed-expected.txt:
  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed.html:
  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt:
  • web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid.html:

Source/WebCore:

Change the default interpolation mode for CSS gradients that have any color stops specified using non-legacy
color syntax (e.g. color(...), lab(...), oklch(...), etc.) to OKLab from sRGB.

This is the current behavior specified (kind of, it could be clearer) by the spec, but I have concerns about
whether it is a good idea for the behavior to be dependent on what syntax style you use. This has been raised
with the editors at https://github.com/w3c/csswg-drafts/issues/6914.

To implement, we now compute the default color interpolation method from the parsed stop list and pass the
result to CSSGradientValue along with the stops and other data. The CSSGradientValue needs this information
avoid computing on serialization, since we need to conditionally exclude either "in srgb" or "in oklab"
depending on which one is computed.

To continue passing the interpolation color method to the CSSGradientValue constructor so it can be immutable,
we now need to consume all the color stops before we can create the CSSGradientValue. This also allows us to
pass the stops to the constructor and make them immutable as well.

  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::equals const):
(WebCore::appendColorInterpolationMethod):
(WebCore::CSSLinearGradientValue::customCSSText const):
(WebCore::CSSRadialGradientValue::customCSSText const):
(WebCore::CSSConicGradientValue::customCSSText const):

  • css/CSSGradientValue.h:

(WebCore::CSSGradientValue::setSecondY):
(WebCore::CSSGradientValue::CSSGradientValue):
(WebCore::CSSGradientValue::defaultColorInterpolationMethod const):
(WebCore::CSSGradientValue::addStop): Deleted.
(WebCore::CSSGradientValue::doneAddingStops): Deleted.
(WebCore::CSSGradientValue::hasAtLeastTwoStops const): Deleted.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumePrefixedRadialGradient):
(WebCore::CSSPropertyParserHelpers::computeGradientColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumePrefixedLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage):

Source/WebKitLegacy/win:

Add support for tests enabling the CSSGradientInterpolationColorSpacesEnabled preference.

  • WebPreferences.cpp:

(WebPreferences::cssGradientInterpolationColorSpacesEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):
Add default for Windows WebKitLegacy testing which still requires it.

LayoutTests:

Update test to use an explicit interpolation method when using non-legacy colors to maintain srgb interpolation.

  • css3/color/gradients.html:
8:43 PM Changeset in webkit [288070] by Alan Bujtas
  • 29 edits
    3 copies
    2 deletes in trunk

[LFC][IFC] Enable content with complex font codepath for IFC
https://bugs.webkit.org/show_bug.cgi?id=235266

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFontAndText):

LayoutTests:

  • TestExpectations:
  • fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html: Removed.
  • fast/text/simple-line-layout-simple-text-but-complex-font-path.html: Removed.
  • platform/mac-bigsur/fast/dom/52776-expected.txt:
  • platform/mac-bigsur/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/mac-catalina/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
  • platform/mac/fast/dom/52776-expected.txt:
  • platform/mac/fast/text/atsui-negative-spacing-features-expected.txt:
  • platform/mac/fast/text/atsui-spacing-features-expected.txt:
  • platform/mac/fast/text/combining-enclosing-keycap-expected.txt:
  • platform/mac/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
  • platform/mac/fast/text/international/bidi-linebreak-001-expected.txt:
  • platform/mac/fast/text/international/bidi-linebreak-002-expected.txt:
  • platform/mac/fast/text/international/bidi-linebreak-003-expected.txt:
  • platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/mac/fast/text/wide-zero-width-space-expected.txt:
  • platform/mac/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
  • platform/win/TestExpectations:
5:33 PM Changeset in webkit [288069] by Chris Dumez
  • 65 edits in trunk/Source

Introduce dynamicDowncast<>() for convenience
https://bugs.webkit.org/show_bug.cgi?id=235259

Reviewed by Darin Adler.

Source/WebCore:

Start adopting dynamicDowncast<>().

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::willChangeRenderer):
(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::invalidateEffect):
(WebCore::WebAnimation::finishNotificationSteps):
(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::persist):
(WebCore::WebAnimation::commitStyles):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::isCloneInShadowTreeOfSVGUseElement):
(WebCore::JSLazyEventListener::initializeJSFunction const):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::fontRangesForFamily):

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::insertRule):

  • dom/Attr.cpp:

(WebCore::Attr::style):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::MainThreadBridge::ensureOnMainThread):
(WebCore::BroadcastChannel::isEligibleForMessaging const):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):

  • dom/CharacterData.h:

(WebCore::Node::length const):

  • dom/ComposedTreeAncestorIterator.h:

(WebCore::ComposedTreeAncestorIterator::traverseParent):
(WebCore::ComposedTreeAncestorAdapter::begin):

  • dom/ComposedTreeIterator.h:

(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):
(WebCore::destroyRenderTreeIfNeeded):
(WebCore::containsIncludingHostElements):
(WebCore::checkAcceptChild):

  • dom/ContainerNode.h:

(WebCore::Node::countChildNodes const):
(WebCore::Node::traverseToChildAt const):
(WebCore::Node::firstChild const):
(WebCore::Node::lastChild const):

  • dom/Document.cpp:

(WebCore::widgetForElement):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::adjustFocusedNodeOnNodeRemoval):

  • dom/Element.cpp:

(WebCore::Element::insertedIntoAncestor):
(WebCore::Element::removedFromAncestor):

  • dom/ElementInlines.h:

(WebCore::Node::parentElement const):

  • dom/EventDispatcher.cpp:

(WebCore::EventDispatcher::dispatchEvent):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::toElement const):
(WebCore::MouseEvent::fromElement const):

  • dom/Node.cpp:

(WebCore::Node::renderBox const):
(WebCore::Node::renderBoxModelObject const):
(WebCore::Node::containingShadowRoot const):
(WebCore::Node::compareDocumentPosition):

  • dom/Position.cpp:

(WebCore::Position::containerText const):

  • dom/TextNodeTraversal.cpp:

(WebCore::TextNodeTraversal::contentsAsString):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementsFromPoint):

  • dom/TypedElementDescendantIterator.h:

(WebCore::ElementDescendantRange<ElementType>::from const):
(WebCore::InclusiveElementDescendantRange<ElementType>::from const):

  • dom/VisitedLinkState.cpp:

(WebCore::linkHashForElement):

  • dom/messageports/MessagePortChannelProvider.cpp:

(WebCore::MessagePortChannelProvider::fromContext):

  • editing/Editing.cpp:

(WebCore::enclosingBlock):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::ownerSelectElement const):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::renderEmbeddedObject const):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::updateAutoscrollRenderer):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):

  • page/DragController.cpp:

(WebCore::asFileInput):
(WebCore::DragController::operationForLoad):

  • platform/DragImage.cpp:

(WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):

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

(WebCore::SourceBufferPrivateAVFObjC::setCDMInstance):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::computeLogicalBoxHeights):
(WebCore::placeChildInlineBoxesInBlockDirection):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::marginValuesForChild const):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findAutoscrollable):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::imageOrientation const):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::uploadButton const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::mayAffectLayout const):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::renderBox const):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::updateValueNow const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::offsetParent const):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::table const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::writeDebugInfo):

  • rendering/RenderView.cpp:

(WebCore::RenderView::paintBoxDecorations):

  • rendering/SelectionRangeData.cpp:

(WebCore::containingBlockBelowView):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::Parent::Parent):

  • style/ChildChangeInvalidation.h:

(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::findViewAnchor const):
(WebCore::SVGSVGElement::findRootAnchor const):

  • testing/Internals.cpp:

(WebCore::bitmapImageFromImageElement):
(WebCore::pdfDocumentImageFromImageElement):

Source/WebKit:

Start adopting dynamicDowncast<>().

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::didEnterFullScreen):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::paymentCoordinator):

Source/WebKitLegacy/mac:

Start adopting dynamicDowncast<>().

  • DOM/DOMUIKitExtensions.mm:

(-[DOMHTMLElement structuralComplexityContribution]):

  • WebView/WebHTMLRepresentation.mm:

(inputElementFromDOMElement):

Source/WTF:

Introduce dynamicDowncast<>() for convenience. It can result in more concise code for the common pattern
where we call is<T>(x) and then downcast<T>(x).

  • wtf/TypeCasts.h:

(WTF::dynamicDowncast):

3:10 PM Changeset in webkit [288068] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Only use diff --binary switch on Windows
<https://webkit.org/b/235268>
<rdar://problem/87490487>

Reviewed by Alexey Proskuryakov.

  • Scripts/VCSUtils.pm:

(mergeChangeLogs):

  • Only pass --binary switch on Windows.
2:29 PM Changeset in webkit [288067] by Darin Adler
  • 39 edits in trunk/Source/WebCore

First step to fix hacked isReplaced: Rename isReplaced functions to isReplacedOrInlineBlock
https://bugs.webkit.org/show_bug.cgi?id=235258

Reviewed by Alan Bujtas.

The isReplaced function returns true for things that are not CSS replaced
elements. That's confusing and not good. We want to straighten this out.
In this first step, we rename the isReplaced and setReplaced functions
to isReplacedOrInlineBlock and setReplacedOrInlineBlock. There are still
functions with out arguments named "isReplaced", which we can deal with
later. Other later clean-up and clarification could one day change what
bits we store in RenderStyle and possibly even remove this function entirely.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::nextContinuation):

  • accessibility/atk/WebKitAccessible.cpp:

(interfaceMaskFromObject):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::isNonReplacedInline):

  • dom/Node.cpp:

(WebCore::Node::renderRect):

  • dom/Position.cpp:

(WebCore::endsOfNodeAreVisuallyDistinctPositions):

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForChild):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • page/TextIndicator.cpp:

(WebCore::hasNonInlineOrReplacedElements):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::renderRectForPoint const):

  • rendering/CaretRectComputation.cpp:

(WebCore::computeCaretRectForBox):

  • rendering/LegacyInlineBox.cpp:

(WebCore::LegacyInlineBox::adjustPosition):
(WebCore::LegacyInlineBox::canAccommodateEllipsis const):

  • rendering/LegacyInlineFlowBox.cpp:

(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::LegacyInlineFlowBox::computeOverAnnotationAdjustment const):
(WebCore::LegacyInlineFlowBox::computeUnderAnnotationAdjustment const):

  • rendering/LegacyInlineIterator.h:

(WebCore::isIteratorTarget):

  • rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForLine):
(WebCore::LegacyLineLayout::layoutLineBoxes):

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):
(WebCore::LegacyRootInlineBox::includeLeadingForBox const):
(WebCore::LegacyRootInlineBox::includeFontForBox const):
(WebCore::LegacyRootInlineBox::includeGlyphsForBox const):
(WebCore::LegacyRootInlineBox::includeInitialLetterForBox const):
(WebCore::LegacyRootInlineBox::includeMarginForBox const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::paintChild):
(WebCore::RenderBlock::positionForPoint):
(WebCore::RenderBlock::lineHeight const):
(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::firstLineBlock const):
(WebCore::findFirstLetterBlock):
(WebCore::RenderBlock::getFirstLetter):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::InlineMinMaxIterator::next):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::offsetFromContainer const):
(WebCore::RenderBox::positionLineBox):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::shouldTreatChildAsReplacedInTableCells const):
(WebCore::RenderBox::computePositionedLogicalWidth const):
(WebCore::RenderBox::computePositionedLogicalHeight const):
(WebCore::RenderBox::avoidsFloats const):
(WebCore::RenderBox::isUnsplittableForPagination const):
(WebCore::RenderBox::lineHeight const):
(WebCore::RenderBox::baselinePosition const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::shouldComputeSizeAsReplaced const):

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::canHaveBoxInfoInFragment const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::getLeadingCorner const):
(WebCore::RenderElement::getTrailingCorner const):
(WebCore::RenderElement::absoluteAnchorRect const):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::RenderFullScreen):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::RenderListMarker):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::containingBlockForPositionType):
(WebCore::RenderObject::caretMaxOffset const):

  • rendering/RenderObject.h:

(WebCore::RenderObject::hasIntrinsicAspectRatio const):
(WebCore::RenderObject::isReplacedOrInlineBlock const):
(WebCore::RenderObject::setReplacedOrInlineBlock):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::isAtomicInlineLevelBox const):
(WebCore::RenderObject::isReplaced const): Deleted.
(WebCore::RenderObject::setReplaced): Deleted.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::RenderReplaced):

  • rendering/RenderReplica.cpp:

(WebCore::RenderReplica::RenderReplica):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::RenderRubyRun):

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::nextLineBreak):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::nextContinuation):
Renamed in all these places. Also added one FIXME for something
Alan pointed out we'd like to do in the future.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::removeOnlyThisLayer): Removed unhelpful use
of RenderLayer::reflection function just to find out whether the
RenderLayer::reflectionLayer function will return null or not.

  • rendering/RenderLayer.h: Removed unneeded RenderLayer::reflection.
  • rendering/RenderLayerCompositor.cpp: Removed an unneeded include

of RenderReplica.h.

1:35 PM Changeset in webkit [288066] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Fix Date functions' argument coercion
https://bugs.webkit.org/show_bug.cgi?id=235271

Reviewed by Alexey Shvayka.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

Even if the input Date is NaN or the result looks like NaN, we need to coerce passed
arguments to Number[1] since it has observable side effect.

[1]: https://github.com/tc39/ecma262/pull/2136

  • runtime/DatePrototype.cpp:

(JSC::applyToNumbersToTrashedArguments):
(JSC::fillStructuresUsingTimeArgs):
(JSC::fillStructuresUsingDateArgs):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):

1:32 PM Changeset in webkit [288065] by ysuzuki@apple.com
  • 11 edits
    5 deletes in trunk

[JSC] Fix misc issues in WebAssembly.Exception
https://bugs.webkit.org/show_bug.cgi?id=235261

Reviewed by Alexey Shvayka.

JSTests:

  • wasm/stress/create-tag-from.js:
  • wasm/v8/exceptions-api.js:

(TestGetArg):

LayoutTests/imported/w3c:

Remove web-platform-tests/wasm/jsapi/exception/type.tentative.any.js test since
this behavior is not defined in wasm exception-handling and/or wasm js-types spec.
Probably this test was confused with WebAssembly.Tag (and that test is in wasm/jsapi/tag/).

Also change RangeError to TypeError according to the spec[1].

[1]: https://webassembly.github.io/exception-handling/js-api/index.html#dom-exception-getarg

  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.js:

(test):

  • web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any-expected.txt: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.html: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.js: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker-expected.txt: Removed.
  • web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker.html: Removed.

Source/JavaScriptCore:

  1. Add @toStringTag to WebAssembly.Exception.prototype.
  2. Add argument count check for WebAssembly.Exception methods (since it is specified in WebIDL and these methods do not have optional parameters).
  • wasm/js/WebAssemblyExceptionPrototype.cpp:

(JSC::WebAssemblyExceptionPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

1:17 PM Changeset in webkit [288064] by ysuzuki@apple.com
  • 9 edits in trunk

[JSC] Fix misc WebAssembly.Table issues
https://bugs.webkit.org/show_bug.cgi?id=235262

Reviewed by Alexey Shvayka.

LayoutTests/imported/w3c:

Fix length of WebAssembly.Table.set from 2 to 1.
According to the spec[1], it should be 1 since the second argument is an optional.

Also fix stray argument test. Previously, it was stray argument. But after the update
of the wasm spec, the second argument of Table constructor can be used for initial value.
So, WebAssembly.Table "anyfunc" with {} initial value throws an error since it is not
a function. This fixes a test, passing null for the second argument, and adding third
stray argument for the stray argument test.

[1]: https://webassembly.github.io/spec/js-api/index.html#tables

  • web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:
  • web-platform-tests/wasm/jsapi/idlharness.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/interface.any.js:
  • web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/constructor.any.js:

(test):

  • web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt:

Source/JavaScriptCore:

  • wasm/js/WebAssemblyTablePrototype.cpp:
12:32 PM Changeset in webkit [288063] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Bug 234910 - jsc_fuz/wktr: crash with exotic settings
https://bugs.webkit.org/show_bug.cgi?id=234910

Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-15
Reviewed by Michael Saboff.

ASAN release build of WebKitTestRunner and DumpRenderTree may crash when loading the file
with content "<script>'a'+Math.floor()+'a';</script>" when the ASAN option
detect_stack_use_after_return=1 is set and when the JSC option slowPathAllocsBetweenGCs takes
to specific values. This is because the 'TestRendered' string of WTR::sendTestRenderedEvent
can be garbage collected. This patch fixes that issue by protecting that string. The fix has
been verified for all slowPathAllocsBetweenGCs values from 1 to 100.

  • TestRunnerShared/ReftestFunctions.cpp:

(WTR::sendTestRenderedEvent): Protect "TestRendered" JSString from garbage collection until
the event is dispatched.

12:24 PM Changeset in webkit [288062] by ysuzuki@apple.com
  • 92 edits
    4 copies
    134 adds in trunk/JSTests

[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=235263

Reviewed by Alexey Shvayka.

Update to the latest one.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/test262-Revision.txt:
12:10 PM Changeset in webkit [288061] by Alan Bujtas
  • 6 edits in trunk

web-platform-tests/html/rendering/dimension-attributes.html is failing when table width is set to 0px
https://bugs.webkit.org/show_bug.cgi?id=235267

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/dimension-attributes-expected.txt:

Source/WebCore:

This patch is based on the following Blink commit:

https://chromium-review.googlesource.com/c/chromium/src/+/2458587

This only applies to width (not height) - see:

https://wpt.fyi/results/html/rendering/dimension-attributes.html?label=master&label=experimental&aligned&q=dimension-attributes

See also: https://drafts.csswg.org/css-tables-3/#mapping

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::addHTMLLengthToStyle):

  • html/HTMLElement.h:
  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::collectPresentationalHintsForAttribute):

10:58 AM Changeset in webkit [288060] by Simon Fraser
  • 9 edits in trunk/Source/WebCore

Share some code that looks at visibility in order to short-circuit repaint rect computation
https://bugs.webkit.org/show_bug.cgi?id=235242

Reviewed by Dean Jackson.

There were five instances of this common code pattern that short-circuited clippedOverflowRect()
when we know that the renderer is hidden with visibility:hidden, so factor it into a common
function on RenderElement.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::clippedOverflowRect const):

  • rendering/RenderBox.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::isInsideEntirelyHiddenLayer const):

  • rendering/RenderElement.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRect const):

  • rendering/svg/LegacyRenderSVGRoot.cpp:

(WebCore::LegacyRenderSVGRoot::clippedOverflowRect const):

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::clippedOverflowRect const):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::clippedOverflowRect const):

10:51 AM Changeset in webkit [288059] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Make a function that returns the ordered list of top layer RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=235251

Reviewed by Alan Bujtas.

Factor the code in RenderLayer::rebuildZOrderLists() that generates the list of
top-layer RenderLayers into its own function.

Add Document::hasTopLayerElement() to avoid calling it when there are no top layer
elements.

  • dom/Document.h:

(WebCore::Document::hasTopLayerElement const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::rebuildZOrderLists):

  • rendering/RenderLayer.h:
9:23 AM Changeset in webkit [288058] by Tyler Wilcock
  • 10 edits in trunk

AX: Fix disabled-controls-not-focusable.html in isolated tree mode by updating AXPropertyName::CanSetFocusAttribute when the disabled attribute changes
https://bugs.webkit.org/show_bug.cgi?id=235246

Reviewed by Chris Fleizach.

Source/WebCore:

Fixes disabled-controls-not-focusable.html in isolated tree mode.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):
Post a AXDisabledStateChanged notification when the disabled attribute changes.
(WebCore::AXObjectCache::updateIsolatedTree):
Handle the AXDisabledStateChanged notification to update AXPropertyName::CanSetFocusAttribute.

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNodeProperty):
Re-compute AXPropertyName::CanSetFocusAttribute when asked to do so.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::isAttributeSettable):
Use new isAttributeSettable(NSString *attribute) helper function.
(WTR::AccessibilityUIElement::isAttributeSettable const):
Added. Dispatches call to accessibilityIsAttributeSettable on the AX thread.

(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
Use new isAttributeSettable to reduce repetition.

LayoutTests:

  • accessibility/disabled-controls-not-focusable-expected.txt:
  • accessibility/disabled-controls-not-focusable.html:

Make this test async so that it can pass in isolated tree mode. This
test must be async because it dynamically changes the disabled
attribute via JS.

  • platform/win/accessibility/disabled-controls-not-focusable-expected.txt:

Update Windows-specific expectation to match test changes.

9:21 AM Changeset in webkit [288057] by commit-queue@webkit.org
  • 4 edits in trunk

[css-contain] Fix contain-size-replaced-002.html
https://bugs.webkit.org/show_bug.cgi?id=235175

Patch by Rob Buis <rbuis@igalia.com> on 2022-01-15
Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

If the SVG root has zero content width and/or height, there is no point
in painting the children contents.

Test: imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-002.html

  • rendering/svg/LegacyRenderSVGRoot.cpp:

(WebCore::LegacyRenderSVGRoot::paintReplaced):

LayoutTests:

9:11 AM Changeset in webkit [288056] by Tyler Wilcock
  • 5 edits in trunk/Source/WebCore

AX: Remove AXAriaAttributeChanged notification because it's not used by anything
https://bugs.webkit.org/show_bug.cgi?id=235253

Reviewed by Chris Fleizach.

Nothing uses AXAriaAttributeChanged, but we still spend time processing
it through the notification pipeline (postNotification -> m_notificationsToPost -> updateIsolatedTree(notifications) + postPlatformNotification(notifications)).

This patch deletes it.

  • accessibility/AXLogger.cpp:

(WebCore::operator<<):

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::handleAttributeChange):

  • accessibility/AXObjectCache.h:
  • accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

5:36 AM Changeset in webkit [288055] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html fails with incorrect run position
https://bugs.webkit.org/show_bug.cgi?id=235011

Reviewed by Antti Koivisto.

IFC (inherited from simple line layout) uses this technique of measuring the content with the trailing whitespace
and then simply subtract the whitespace width. It enables us to keep pushing content to the line without re-measuring it each time.
(the "non-whitespace + whitespace" pattern is extremely common for IFC content).
However in some cases when the trailing whitespace is trimmed, subtracting the trimmed width from the
content width instead of measuring it produces a visually incorrect result.
This patch fixes the most obvious cases when the incorrect width turns into an offset for the RTL content.

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::Run::removeTrailingLetterSpacing):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):

  • layout/formattingContexts/inline/InlineLine.h:
  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

  • layout/formattingContexts/inline/text/TextUtil.h:
5:32 AM Changeset in webkit [288054] by graouts@webkit.org
  • 10 edits
    1 copy in trunk

Setting content: normal on a ::marker should make computed style return resolved values
https://bugs.webkit.org/show_bug.cgi?id=235222

Reviewed by Aditya Keerthi.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-pseudo/marker-computed-size-expected.txt:

Source/WebCore:

Until now, StyleBuilder would treat "none" and "normal" values the same way for the "content"
CSS property. However, "normal", the initial value, is not the same as "none" which explicitly
states that we do not have any content. The WPT test css/css-pseudo/marker-computed-size.html
checks on this by setting content: normal on a ::marker and expecting the computed style
for "width" and "height" to be pixel values and not "auto".

We already have a bit in RenderStyle that would be turned on when we would parse either "none"
or "normal". We're now only setting that bit, with a better name when the value is explicitly "none".

So we now remove hasExplicitlyClearedContent() and instead expose hasEffectiveContentNone()
on RenderStyle.

We also remove a stale comment in applyInheritContent() since the spec has not changed to make
"content" inherited.

Finally, Styleable::renderer() now returns the markerRenderer() unless
RenderStyle::hasEffectiveContentNone() is true.

For reference, the relevant spec is https://drafts.csswg.org/css-content-3/#content-property.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::contentToCSSValue):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::isControlStyled const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasEffectiveContentNone const):
(WebCore::RenderStyle::setHasContentNone):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::setHasExplicitlyClearedContent): Deleted.
(WebCore::RenderStyle::hasExplicitlyClearedContent const): Deleted.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialContent):
(WebCore::Style::BuilderCustom::applyInheritContent):
(WebCore::Style::BuilderCustom::applyValueContent):

  • style/Styleable.cpp:

(WebCore::Styleable::renderer const):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/css-pseudo/marker-computed-size-expected.txt:
Note: See TracTimeline for information about the timeline view.