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

Timeline



Jan 4, 2022:

11:52 PM Changeset in webkit [287604] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

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.
11:33 PM Changeset in webkit [287603] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

RenderStyle::transitionForProperty() is unused
https://bugs.webkit.org/show_bug.cgi?id=234860

Reviewed by Dean Jackson.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::transitionForProperty const): Deleted.

  • rendering/style/RenderStyle.h:
11:03 PM Changeset in webkit [287602] by graouts@webkit.org
  • 10 edits
    2 deletes in trunk

WPT test css/css-transitions/parsing/transition-shorthand.html has failures
https://bugs.webkit.org/show_bug.cgi?id=234856

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions, all tests in css/css-transitions/parsing/transition-shorthand.html now pass.

  • web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt:

Source/WebCore:

Parse the "transition" shorthand the same way we parse the "animation" shorthand
and teach ComputedStyleExtractor::addValueForAnimationPropertyToList() about
"transition-property" so that it correctly returns a CSSValue for it.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeAnimationShorthand):

LayoutTests:

This historical test transitions/transitions-parsing.html is wrong and WPT has exhaustive
coverage for parsing of transition properties, so let's remove it.

Rebaselining some other tests.

  • fast/css/shorthand-mismatched-list-crash-expected.txt:
  • fast/css/shorthand-mismatched-list-crash.html:
  • fast/css/transform-inline-style-expected.txt:
  • fast/css/transform-inline-style-remove-expected.txt:
  • transitions/transitions-parsing-expected.txt: Removed.
  • transitions/transitions-parsing.html: Removed.
6:03 PM Changeset in webkit [287601] by Russell Epstein
  • 1 copy in tags/Safari-613.1.12.1.1

Tag Safari-613.1.12.1.1.

5:26 PM Changeset in webkit [287600] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

ASSERTION FAILED: pathnames.size() == sandboxExtensionsHandleArray.size() in WebKit::WebPlatformStrategies::getPathnamesForType()
https://bugs.webkit.org/show_bug.cgi?id=234851
rdar://87100377

Reviewed by Darin Adler.

The new API test added r287547 (WKAttachmentTestsMac.InsertNonExistentImageFileAsAttachment) exercises inserting
a nonexistent file as a "progress" attachment element when the WebKit attachment API is enabled. This test is
the first on macOS that attempts to paste file paths pointing to nonexistent files on disk, and so it hits an
existing assertion due to the number of sandbox extensions opened underneath getPasteboardPathnamesForType()
not matching the number of file paths found on the pasteboard.

This assertion is benign, since we do not expect to be able to read from the missing file path in the web
process, so it's expected that we don't have a corresponding sandbox extension for missing files. To address
this, we adjust WebPasteboardProxy::getPasteboardPathnamesForType() such that it always returns an equal
number of path names and pathnames. Each missing path name simply corresponds to a SandboxExtension::Handle
with a null m_sandboxExtension, which is skipped in the web process upon consumption.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

5:04 PM Changeset in webkit [287599] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[WPE] fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=212959

Unreviewed test gardening.

This test is no longer flakey for WPE. Updated test expectations.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:02 PM Changeset in webkit [287598] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK] media/video-as-img-output-pts.html test is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=224112

Reviewed by Philippe Normand.

Refactored test to make it similar to other Media test (i.e
media/video-page-visibility-restriction.html).

  • media/video-as-img-output-pts-expected.txt:
  • media/video-as-img-output-pts.html:
  • platform/glib/TestExpectations:
4:48 PM Changeset in webkit [287597] by Fujii Hironori
  • 15 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/css/text-overflow-input-expected.txt:
  • platform/wincairo/fast/dom/52776-expected.txt:
  • platform/wincairo/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/wincairo/fast/inline-block/003-expected.txt:
  • platform/wincairo/fast/text/fixed-pitch-control-characters-expected.txt:
  • platform/wincairo/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wincairo/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wincairo/fast/text/international/bidi-override-expected.txt:
  • platform/wincairo/fast/text/text-letter-spacing-expected.txt:
  • platform/wincairo/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
4:20 PM Changeset in webkit [287596] by ysuzuki@apple.com
  • 33 edits in trunk/Source/JavaScriptCore

[JSC] Remove m_calleeSaveRegisters from CodeBlock::JITData and rename it to BaselineJITData
https://bugs.webkit.org/show_bug.cgi?id=234555

Reviewed by Saam Barati.

This patch removes m_calleeSaveRegisters from CodeBlock::JITData, and moving it to each JITCode.
This is reasonable since m_calleeSaveRegisters information belongs to JITCode, not CodeBlock.
And in LLInt, Baseline, and DFG cases, m_calleeSaveRegisters is the same. So we do not have this
field in these JITCode. Only FTL can have m_calleeSaveRegisters.

By removing m_calleeSaveRegisters from CodeBlock::JITData, now it only includes Baseline JIT related
data. So this patch renames CodeBlock::JITData to BaselineJITData.

We also use TrailingArray for BaselineJITData so that we can remove one level indirection when loading
JITConstantPool from JITData.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeJITInlineCaches):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::resetBaselineJITData):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::ensureJITDataSlow): Deleted.
(JSC::CodeBlock::setCalleeSaveRegisters): Deleted.
(JSC::CodeBlock::resetJITData): Deleted.
(JSC::CodeBlock::calleeSaveRegisters const): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::offsetOfBaselineJITData):
(JSC::CodeBlock::baselineJITData):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::JITData::offsetOfJITConstantPool): Deleted.
(JSC::CodeBlock::ensureJITData): Deleted.
(JSC::CodeBlock::offsetOfJITData): Deleted.
(JSC::CodeBlock::baselineJITConstantPool): Deleted.

  • bytecode/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::emitRestoreCalleeSaves):
(JSC::DFG::JITCompiler::emitSaveCalleeSaves):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::calleeSaveSlot):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLJITCode.h:

(JSC::FTL::JITCode::calleeSaveRegisters const):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::calleeSaveRegistersForUnwinding):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::executableFor):
(JSC::AssemblyHelpers::emitSaveOrCopyLLIntBaselineCalleeSavesFor):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitSaveThenMaterializeTagRegisters):
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor): Deleted.
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor): Deleted.
(JSC::AssemblyHelpers::emitSaveCalleeSaves): Deleted.
(JSC::AssemblyHelpers::emitRestoreCalleeSaves): Deleted.

  • jit/BaselineJITCode.h:
  • jit/CallFrameShuffleData.cpp:
  • jit/CallFrameShuffleData.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::emitMaterializeMetadataAndConstantPoolRegisters):
(JSC::JIT::emitSaveCalleeSaves):
(JSC::JIT::compileAndLinkWithoutFinalizing):

  • jit/JIT.h:
  • jit/JITCode.cpp:

(JSC::JITCode::calleeSaveRegisters const):

  • jit/JITCode.h:
  • jit/JITInlines.h:

(JSC::JIT::loadConstant):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_catch):

  • jit/RegisterAtOffsetList.cpp:

(JSC::RegisterAtOffsetList::dfgCalleeSaveRegisters):

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

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • tools/VMInspector.cpp:

(JSC::VMInspector::dumpRegisters):

4:19 PM Changeset in webkit [287595] by Ryan Haddad
  • 9 edits in trunk

Unreviewed, reverting r287374.

Caused assertion failures on Monterey

Reverted changeset:

"Re-enable CustomDisplayName and DefaultDisplayName API tests
on Monterey"
https://bugs.webkit.org/show_bug.cgi?id=234613
https://commits.webkit.org/r287374

3:49 PM Changeset in webkit [287594] by Russell Epstein
  • 2 edits in branches/safari-613.1.12.1-branch/Source/WebKit

Cherry-pick r287413. rdar://problem/86808395

Allow a necessary syscall in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=234641
<rdar://problem/86808395>

Reviewed by Alan Bujtas.

Telemetry and testing logs indicate that we need to allow
'SYS_memorystatus_control' in our WebContent sandbox.

We allow this in all other sandboxes, so this was likely an oversight.

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

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

3:48 PM Changeset in webkit [287593] by Simon Fraser
  • 3 edits
    2 adds in trunk

"canceled" wheel events to non-zero deltas cause scrolling jumps in PDFs and CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=234825

Reviewed by Tim Horton.

Source/WebKit:

On some macOS versions, interrupting a momentum scroll via a two-finger tap on the trackpad can
result in the following sequence of wheel events: momentumPhase:end -> phase:mayBegin -> phase:cancelled,
and that last canceled event can have non-zero deltas (rdar://86653042).

Protect against this by zeroing out the deltas for cancelled wheel events when constructing WebEvents
from NSEvents. Code in Element::dispatchWheelEvent() ensures that we don't dispatch wheel events with
zero deltas to script, fixing CodeMirror.

Jumps only affected PDFs (and scrollable selects) because those are the code paths that don't go via
ScrollingEffectsController, which already ignores Cancelled events.

Test: fast/scrolling/mac/canceled-event-with-non-zero-deltas.html

  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebWheelEvent):

LayoutTests:

  • fast/scrolling/mac/canceled-event-with-non-zero-deltas-expected.txt: Added.
  • fast/scrolling/mac/canceled-event-with-non-zero-deltas.html: Added.
3:31 PM Changeset in webkit [287592] by Wenson Hsieh
  • 4 edits in trunk

Use ICU instead of relying on hard-coded string equality checks in ModalContainerControlClassifier
https://bugs.webkit.org/show_bug.cgi?id=234677

Reviewed by Tim Horton.

Source/WebKit:

Followup to r287420 - use ICU to check for more strings that resemble either the lowercase or uppercase letter
"x", rather than relying on a hard-coded set of symbols. Note that ICU's "confusables" list currently does not
consider both ✖ and ✕ to be lookalikes to the letter "x"; since these symbols are actually known to appear in
modal containers on several websites, we'll still need to check for these two symbols separately.

Test: ModalContainerObservation.ClassifyMultiplySymbol

  • UIProcess/Cocoa/ModalContainerControlClassifier.mm:

(WebKit::SpoofChecker::~SpoofChecker):

Add a helper class that wraps calls to uspoof_areConfusableUTF8, and also ensures balanced calls to
uspoof_open and uspoof_close when creating a new ICU spoof checker. Use this in the
WKModalContainerClassifierInput class below to check for more types of strings that look like the letter "x".

(WebKit::SpoofChecker::areConfusable):
(WebKit::SpoofChecker::checker):
(-[WKModalContainerClassifierInput initWithTokenizer:rawInput:]):

Tools:

Augment the existing API test so that it additionally tests a symbol ("small roman numeral ten") that would not
have been covered as one of the three hard-coded symbol strings in the earlier fix.

  • TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:

(TestWebKitAPI::TEST):

3:05 PM Changeset in webkit [287591] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] fast/text/combining-mark-paint.html is failing (complex text)
https://bugs.webkit.org/show_bug.cgi?id=234834

Reviewed by Antti Koivisto.

Apparently it's perfectly valid to have zero width unicode character (e.g. macron) and
still affect the line height.

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::fallbackFontsForRunWithIterator):

2:51 PM Changeset in webkit [287590] by Devin Rousso
  • 9 edits in trunk

Web Inspector: Sources: expanding a grouping of blackboxed call frames should be persistent
https://bugs.webkit.org/show_bug.cgi?id=234614
<rdar://problem/86989232>

Reviewed by Patrick Angle.

Source/WebInspectorUI:

If the developer has explicitly decided to show blackboxed call frames, we should respect
that decision. Requiring them to re-expand after _every_ debugger action is very hostile.
So long as the blackboxed call frames remain the same we should persist the expansion. Only
if the location of those blackboxed frames changes should we re-collapse.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager):
(WI.DebuggerManager.prototype.rememberBlackboxedCallFrameGroupToAutoExpand): Added.
(WI.DebuggerManager.prototype.shouldAutoExpandBlackboxedCallFrameGroup): Added.
(WI.DebuggerManager.prototype._didResumeInternal):

  • UserInterface/Views/BlackboxedGroupTreeElement.js:

(WI.BlackboxedGroupTreeElement.prototype.expand):
Keep a list of blackboxed call frame groupings that have been expanded by the developer.
Use this list to decide whether "new" blackboxed call frame grouping should be auto-expanded
by default (i.e. if every WI.CallFrame is identical with something in the list). Clear the
list when resuming, as we're only trying to keep expanded blackboxed call frame groupings
within the same call stack (i.e. while stepping).

  • UserInterface/Base/Utilities.js:

(Array.prototype.groupBy): Deleted.

  • UserInterface/Views/ThreadTreeElement.js:

(WI.ThreadTreeElement.prototype.refresh):
Remove the custom Array.prototype.groupBy since it's no longer needed (and there's now a
builtin function with the same name). Instead, just keep an index of the first blackboxed
call frame and iterate until either the end of the call stack or a non-blackboxed call frame
is found, sliceing from the saved index to the current item to make a blackboxed call
frame group. If that blackboxed call frame group should be auto-expanded (see above), create
a WI.CallFrameTreeElement for each blackboxed call frame instead of one WI.BlackboxedGroupTreeElement.

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame.prototype.isEqual): Added.
Add a convenience function to compare two WI.CallFrame. Right now it just looks at the
WI.SourceCodeLocation, since for most purposes that's really how one would identify a
WI.CallFrame (i.e. it's probably more important to know "is this the same spot in code"
as opposed to "do we have the same this object").

LayoutTests:

  • inspector/unit-tests/array-utilities.html:
  • inspector/unit-tests/array-utilities-expected.txt:

Remove the custom Array.prototype.groupBy since it's no longer needed (and there's now a
builtin function with the same name).

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

[iOS][WP] Add telemetry for syscall violations
https://bugs.webkit.org/show_bug.cgi?id=234859

Reviewed by Brent Fulgham.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
1:58 PM Changeset in webkit [287588] by Wenson Hsieh
  • 5 edits in trunk

ModalContainerObserver should search for text in subframes
https://bugs.webkit.org/show_bug.cgi?id=234446
rdar://86897770

Reviewed by Tim Horton.

Source/WebCore:

Adds support for detecting modal containers when the search term is embedded inside a subframe in the top
document. To do this, we make a few adjustments to ModalContainerObserver, detailed in the comments below. This
supports both scenarios in which (1) a subframe that has not yet loaded is added to the top document and then
later gains occurrences of the search term, and (2) a subframe that already contains the search term in rendered
text is made visible inside the top document.

Test: ModalContainerObservation.ModalContainerInSubframe

  • page/ModalContainerObserver.cpp:

(WebCore::ModalContainerObserver::isNeededFor):

Install a ModalContainerObserver for child documents in the case where the parent document already has a modal
container observer that is waiting for this frame to finish its first visually non-empty layout (see the comment
in ModalContainerObserver::updateModalContainerIfNeeded(), below).

(WebCore::containsMatchingText):

Pull out logic for searching all text renderer descendants underneath a given renderer into a separate helper
function.

(WebCore::ModalContainerObserver::searchForModalContainerOnBehalfOfFrameOwnerIfNeeded):

Used for a ModalContainerObserver in a child frame to notify the ModalContainerObserver in the parent document
when the child document has finished layout. If this child document's owner element is one of the elements in
m_frameOwnersAndContainersToSearchAgain, we invalidate the corresponding viewport-constrained container that
we've previously searched (i.e. by removing it from m_elementsToIgnoreWhenSearching) and re-search the
container.

(WebCore::ModalContainerObserver::updateModalContainerIfNeeded):

Make a couple of adjustments:

  • For modal container observers that are not in the top document: delegate the modal container update out

to the parent document's modal container observer, by calling the helper method above.

  • For modal container observers that are in the top document: add logic to search content in subframes

inside of viewport-constrained containers as a fallback in the case where the search term does not
appear in content at the top document.

(WebCore::ModalContainerObserver::setContainer):

Pull out logic for tracking the currently detected modal container into a separate helper method that takes
the modal container element, as well as the frame owner element where we observed the search term (or null if
the search term was observed in the top document).

(WebCore::ModalContainerObserver::container const):
(WebCore::ModalContainerObserver::frameOwnerForControls const):

Replace m_container with a std::pair containing the current modal container (i.e. what is currently just
m_container, as well as a weak pointer to the associated frame owner element where we discovered the search
term). We use a std::pair here because these two elements should always be set and cleared out in tandem.

(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
(WebCore::ModalContainerObserver::revealModalContainer):

Replace uses of m_container with the container() method.

(WebCore::ModalContainerObserver::collectClickableElements):

If a frame owner element is set, use the subframe's content document element as the container for collecting
clickable controls instead of using the actual modal container element in the top document.

  • page/ModalContainerObserver.h:

(WebCore::ModalContainerObserver::shouldHide const):

Use container() instead of m_container.

Tools:

Add an API test to exercise the change. See WebCore/ChangLog for more details.

  • TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:

(TestWebKitAPI::TEST):

1:44 PM Changeset in webkit [287587] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Open closed pull-request when running pr (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=232765
<rdar://problem/85084318>

Reviewed by Dewei Zhu.

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

(PullRequest.main): Log found pull-request instead of undefined candidates.

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

1:42 PM Changeset in webkit [287586] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Add icon for collapsed blackboxed section
https://bugs.webkit.org/show_bug.cgi?id=219806
<rdar://problem/72240360>

Reviewed by Patrick Angle.

  • UserInterface/Views/BlackboxedGroupTreeElement.css:

(.tree-outline .item.blackboxed-group .icon):
(@media (prefers-color-scheme: dark) .tree-outline .item.blackboxed-group .icon):
Use Hide.svg#black and Hide.svg#white.

  • UserInterface/Images/TypeIcons.svg:

Remove #Blackboxed-dark and #Blackboxed-light.

1:38 PM Changeset in webkit [287585] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/JavaScriptCore

[PlayStation] Fix non-ninja build of zydis
https://bugs.webkit.org/show_bug.cgi?id=234854

Unreviewed build fix

  • PlatformPlayStation.cmake: Set Zycore.c as CXX
1:34 PM Changeset in webkit [287584] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

CrashTracer: com.apple.WebKit.Networking at com.apple.WebKit: WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess
https://bugs.webkit.org/show_bug.cgi?id=234852
<rdar://problem/87068976>

Reviewed by Brent Fulgham.

Return early if a sqlite statement is null or fails to bind because this
will cause a crash when trying to step. Even in cases where it won't
crash, we should not continue in the function because this may have
undefined behavior.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::getThirdPartyDataForSpecificFirstPartyDomains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):

  • NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:

(WebKit::PCM::Database::earliestTimesToSend):

1:29 PM Changeset in webkit [287583] by commit-queue@webkit.org
  • 34 edits
    4 copies
    4 moves in trunk/LayoutTests

[WPE] Update test baselines after recent LFC-related changes.
https://bugs.webkit.org/show_bug.cgi?id=234853

Unreviewed test gardening.

This updates WPE test baselines to account for the changes in
r283550, r283875, r284303, r286107, r286133, r286848, r286928, r287453, r287482, and r287485.

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

  • platform/gtk/fast/backgrounds/border-radius-split-background-expected.txt: Copied from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-expected.txt.
  • platform/gtk/fast/backgrounds/border-radius-split-background-image-expected.txt: Copied from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt.
  • platform/gtk/fast/borders/border-image-outset-split-inline-expected.txt: Copied from LayoutTests/platform/glib/fast/borders/border-image-outset-split-inline-expected.txt.
  • platform/gtk/fast/borders/border-styles-split-expected.txt: Copied from LayoutTests/platform/glib/fast/borders/border-styles-split-expected.txt.
  • platform/wpe/fast/backgrounds/border-radius-split-background-expected.txt: Renamed from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-expected.txt.
  • platform/wpe/fast/backgrounds/border-radius-split-background-image-expected.txt: Renamed from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt.
  • platform/wpe/fast/block/basic/016-expected.txt:
  • platform/wpe/fast/borders/bidi-012-expected.txt:
  • platform/wpe/fast/borders/border-image-outset-split-inline-expected.txt: Renamed from LayoutTests/platform/glib/fast/borders/border-image-outset-split-inline-expected.txt.
  • platform/wpe/fast/borders/border-styles-split-expected.txt: Renamed from LayoutTests/platform/glib/fast/borders/border-styles-split-expected.txt.
  • platform/wpe/fast/borders/rtl-border-04-expected.txt:
  • platform/wpe/fast/borders/rtl-border-05-expected.txt:
  • platform/wpe/fast/box-shadow/basic-shadows-expected.txt:
  • platform/wpe/fast/css/first-line-text-decoration-expected.txt:
  • platform/wpe/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
  • platform/wpe/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/wpe/fast/css/text-overflow-input-expected.txt:
  • platform/wpe/fast/dom/52776-expected.txt:
  • platform/wpe/fast/dom/HTMLElement/bdo-expected.txt:
  • platform/wpe/fast/inline-block/003-expected.txt:
  • platform/wpe/fast/text/cg-fallback-bolding-expected.txt:
  • platform/wpe/fast/text/firstline/001-expected.txt:
  • platform/wpe/fast/text/fixed-pitch-control-characters-expected.txt:
  • platform/wpe/fast/text/format-control-expected.txt:
  • platform/wpe/fast/text/in-rendered-text-rtl-expected.txt:
  • platform/wpe/fast/text/international/bidi-L2-run-reordering-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wpe/fast/text/international/bidi-european-terminators-expected.txt:
  • platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
  • platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt:
  • platform/wpe/fast/text/international/bidi-listbox-expected.txt:
  • platform/wpe/fast/text/international/bidi-menulist-expected.txt:
  • platform/wpe/fast/text/international/bidi-neutral-run-expected.txt:
  • platform/wpe/fast/text/international/bidi-override-expected.txt:
  • platform/wpe/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/wpe/fast/text/text-letter-spacing-expected.txt:
  • platform/wpe/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
  • platform/wpe/http/tests/misc/acid3-expected.txt:
  • platform/wpe/tables/mozilla/core/bloomberg-expected.txt:
1:25 PM Changeset in webkit [287582] by ysuzuki@apple.com
  • 14 edits
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Remove JSWebAssemblyCalleeGroup cell
https://bugs.webkit.org/show_bug.cgi?id=234780

Reviewed by Saam Barati.

This cell is not observable to users. And this cell just holds Wasm-to-JS stubs,
but it is the same to all memory modes. Thus, we should just generate it in VM-linked
Wasm::Module (it means, we should have it in JSWebAssemblyModule), and we do not need
to have / allocate JSWebAssemblyCalleeGroup cell.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • heap/Heap.cpp:

(JSC::Heap::Heap):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllCodeBlocks):

  • heap/Heap.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/WasmBinding.h:
  • wasm/js/JSWebAssemblyCalleeGroup.cpp: Removed.
  • wasm/js/JSWebAssemblyCalleeGroup.h: Removed.
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::visitChildrenImpl):
(JSC::JSWebAssemblyInstance::finalizeCreation):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):
(JSC::JSWebAssemblyModule::visitChildrenImpl):
(JSC::JSWebAssemblyModule::clearJSCallICs):
(JSC::JSWebAssemblyModule::finalizeUnconditionally):
(JSC::JSWebAssemblyModule::generateWasmToJSStubs):
(JSC::JSWebAssemblyModule::calleeGroup): Deleted.
(JSC::JSWebAssemblyModule::setCalleeGroup): Deleted.

  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/WebAssemblyModuleConstructor.cpp:
  • wasm/js/WebAssemblyWrapperFunction.h:
12:59 PM Changeset in webkit [287581] by Fujii Hironori
  • 2 edits in trunk

clang-format: Change SpaceAfterTemplateKeyword to false
https://bugs.webkit.org/show_bug.cgi?id=234655

Reviewed by Don Olmstead.

Bug 183302 added the initial .clang-format file which were
including SpaceAfterTemplateKeyword:true. However, even though it
is undocumented, typical WebKit code is using a style having no
space ater the template keyword.

  • .clang-format:
11:21 AM Changeset in webkit [287580] by achristensen@apple.com
  • 2 edits in trunk/Tools

Re-disable WKInspectorExtensionDelegate.ExtensionTabNavigatedCallbacks API test in debug builds
https://bugs.webkit.org/show_bug.cgi?id=232857

I enabled it with an unrelated change and it is timing out, so re-disable it.

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:

(TEST):

11:14 AM Changeset in webkit [287579] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Partial revert of https://trac.webkit.org/changeset/287371/webkit

RS by John Wilander.

Keep logging in for test debugging purposes.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):

11:09 AM Changeset in webkit [287578] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Momentum Event Dispatcher: Disable noisy logging
https://bugs.webkit.org/show_bug.cgi?id=234178
<rdar://problem/86228553>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/MomentumEventDispatcher.h:
10:29 AM Changeset in webkit [287577] by Russell Epstein
  • 8 edits in branches/safari-612-branch/Source

Versioning.

WebKit-7612.4.9

10:21 AM Changeset in webkit [287576] by Russell Epstein
  • 42 edits
    5 copies in branches/safari-613.1.12.1-branch

Cherry-pick r287574. rdar://problem/86855896

[Cocoa] Hang in AVTrackPrivateAVFObjCImpl::bitrate()
https://bugs.webkit.org/show_bug.cgi?id=234753

Reviewed by Eric Carlson.

Source/WebCore:

In r286908, WebCore added new queries onto existing AVAssetTrack objects; however, querying
those properties will block if data for those properties is not yet available. The media element
could block moving to the HAVE_METADATA state until those properties are fully loaded, however
this might regress PLT, so instead, we will check the load state of those properties before returning
values.

However, to make the properties exposed through VideoTrackConfiguration.idl/AudioTrackConfiguration.idl
dynamic, changes need to be signaled and propagated upward through the layers between AVAssetTrack and
the DOM. Rather than make individual notifications for each property in a Configuration struct, make one
notification that handles any change to the Configuration struct at all and push that upward to clients.

Since these properties are being grouped together at a lower-level, they do not need to be tracked
individually, and Video/AudioTrackConfigurationInit can just be aliased to a platform-defined struct.

  • html/track/AudioTrack.cpp: (WebCore::AudioTrack::configurationChanged): (WebCore::AudioTrack::updateConfigurationFromPrivate):
  • html/track/AudioTrack.h:
  • html/track/AudioTrackConfiguration.h: (WebCore::AudioTrackConfiguration::setState): (): Deleted.
  • html/track/VideoTrack.cpp: (WebCore::VideoTrack::configurationChanged): (WebCore::VideoTrack::updateConfigurationFromPrivate):
  • html/track/VideoTrack.h:
  • html/track/VideoTrackConfiguration.h: (WebCore::VideoTrackConfiguration::setState): (WebCore::VideoTrackConfiguration::colorSpace const): (WebCore::VideoTrackConfiguration::setColorSpace): (WebCore::VideoTrackConfiguration::VideoTrackConfiguration): (): Deleted.
  • platform/graphics/AudioTrackPrivate.h: (WebCore::AudioTrackPrivate::configuration const): (WebCore::AudioTrackPrivate::setConfiguration): (WebCore::AudioTrackPrivate::codec const): Deleted. (WebCore::AudioTrackPrivate::setCodec): Deleted. (WebCore::AudioTrackPrivate::sampleRate const): Deleted. (WebCore::AudioTrackPrivate::setSampleRate): Deleted. (WebCore::AudioTrackPrivate::numberOfChannels const): Deleted. (WebCore::AudioTrackPrivate::setNumberOfChannels): Deleted. (WebCore::AudioTrackPrivate::bitrate const): Deleted. (WebCore::AudioTrackPrivate::setBitrate): Deleted.
  • platform/graphics/AudioTrackPrivateClient.h:
  • platform/graphics/PlatformVideoColorSpace.h: (WebCore::operator==): (WebCore::operator!=):
  • platform/graphics/VideoTrackPrivate.h: (WebCore::VideoTrackPrivate::configuration const): (WebCore::VideoTrackPrivate::setConfiguration): (WebCore::VideoTrackPrivate::codec const): Deleted. (WebCore::VideoTrackPrivate::setCodec): Deleted. (WebCore::VideoTrackPrivate::width const): Deleted. (WebCore::VideoTrackPrivate::setWidth): Deleted. (WebCore::VideoTrackPrivate::height const): Deleted. (WebCore::VideoTrackPrivate::setHeight): Deleted. (WebCore::VideoTrackPrivate::colorSpace const): Deleted. (WebCore::VideoTrackPrivate::setColorSpace): Deleted. (WebCore::VideoTrackPrivate::framerate const): Deleted. (WebCore::VideoTrackPrivate::setFramerate): Deleted. (WebCore::VideoTrackPrivate::bitrate const): Deleted. (WebCore::VideoTrackPrivate::setBitrate): Deleted.
  • platform/graphics/VideoTrackPrivateClient.h:
  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h: (WebCore::AVTrackPrivateAVFObjCImpl::setVideoTrackConfigurationObserver): (WebCore::AVTrackPrivateAVFObjCImpl::setAudioTrackConfigurationObserver):
  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: (WebCore::assetTrackConfigurationKeyNames): (WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl): (WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack): (WebCore::AVTrackPrivateAVFObjCImpl::videoTrackConfiguration const): (WebCore::AVTrackPrivateAVFObjCImpl::audioTrackConfiguration const):
  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm: (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC): (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): (WebCore::AudioTrackPrivateAVFObjC::audioTrackConfigurationChanged):
  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp: (WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC): (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): (WebCore::VideoTrackPrivateAVFObjC::videoTrackConfigurationChanged):
  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm: (WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
  • platform/graphics/cocoa/VideoTrackPrivateWebM.cpp: (WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM): (WebCore::VideoTrackPrivateWebM::updateConfiguration):
  • platform/graphics/cocoa/VideoTrackPrivateWebM.h:

Source/WebKit:

Propagate changes to TrackConfigurations upwards from the GPU process -> WebContent process.

  • GPUProcess/media/AudioTrackPrivateRemoteConfiguration.h: (WebKit::AudioTrackPrivateRemoteConfiguration::encode const): (WebKit::AudioTrackPrivateRemoteConfiguration::decode):
  • GPUProcess/media/RemoteAudioTrackProxy.cpp: (WebKit::RemoteAudioTrackProxy::configuration): (WebKit::RemoteAudioTrackProxy::configurationChanged):
  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.cpp: (WebKit::RemoteVideoTrackProxy::configuration):
  • GPUProcess/media/RemoteVideoTrackProxy.h:
  • GPUProcess/media/TrackPrivateRemoteConfiguration.h: (WebKit::TrackPrivateRemoteConfiguration::encode const): (WebKit::TrackPrivateRemoteConfiguration::decode):
  • GPUProcess/media/VideoTrackPrivateRemoteConfiguration.h: (WebKit::VideoTrackPrivateRemoteConfiguration::encode const): (WebKit::VideoTrackPrivateRemoteConfiguration::decode):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp: (WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote): (WebKit::AudioTrackPrivateRemote::updateConfiguration):
  • WebProcess/GPU/media/AudioTrackPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack): (WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged): (WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack): (WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged):
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/VideoTrackPrivateRemote.cpp: (WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote): (WebKit::VideoTrackPrivateRemote::updateConfiguration):
  • WebProcess/GPU/media/VideoTrackPrivateRemote.h: (WebKit::VideoTrackPrivateRemote::create):

LayoutTests:

Now that these properties are dynamic, test them with testExpectedEventually.

  • media/track/audio-track-configuration.html:
  • media/track/video-track-alternate-groups-expected.txt:
  • media/track/video-track-configuration.html:

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

10:10 AM Changeset in webkit [287575] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly i32.atomic.wait timeout value incorrectly interpreted by factor 1000
https://bugs.webkit.org/show_bug.cgi?id=234833

Reviewed by Michael Saboff.

Wasm atomics' timeout should be interpreted as nanoseconds.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::wait):

10:08 AM Changeset in webkit [287574] by jer.noble@apple.com
  • 42 edits
    5 copies in trunk

[Cocoa] Hang in AVTrackPrivateAVFObjCImpl::bitrate()
https://bugs.webkit.org/show_bug.cgi?id=234753

Reviewed by Eric Carlson.

Source/WebCore:

In r286908, WebCore added new queries onto existing AVAssetTrack objects; however, querying
those properties will block if data for those properties is not yet available. The media element
could block moving to the HAVE_METADATA state until those properties are fully loaded, however
this might regress PLT, so instead, we will check the load state of those properties before returning
values.

However, to make the properties exposed through VideoTrackConfiguration.idl/AudioTrackConfiguration.idl
dynamic, changes need to be signaled and propagated upward through the layers between AVAssetTrack and
the DOM. Rather than make individual notifications for each property in a Configuration struct, make one
notification that handles any change to the Configuration struct at all and push that upward to clients.

Since these properties are being grouped together at a lower-level, they do not need to be tracked
individually, and Video/AudioTrackConfigurationInit can just be aliased to a platform-defined struct.

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::configurationChanged):
(WebCore::AudioTrack::updateConfigurationFromPrivate):

  • html/track/AudioTrack.h:
  • html/track/AudioTrackConfiguration.h:

(WebCore::AudioTrackConfiguration::setState):
(): Deleted.

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::configurationChanged):
(WebCore::VideoTrack::updateConfigurationFromPrivate):

  • html/track/VideoTrack.h:
  • html/track/VideoTrackConfiguration.h:

(WebCore::VideoTrackConfiguration::setState):
(WebCore::VideoTrackConfiguration::colorSpace const):
(WebCore::VideoTrackConfiguration::setColorSpace):
(WebCore::VideoTrackConfiguration::VideoTrackConfiguration):
(): Deleted.

  • platform/graphics/AudioTrackPrivate.h:

(WebCore::AudioTrackPrivate::configuration const):
(WebCore::AudioTrackPrivate::setConfiguration):
(WebCore::AudioTrackPrivate::codec const): Deleted.
(WebCore::AudioTrackPrivate::setCodec): Deleted.
(WebCore::AudioTrackPrivate::sampleRate const): Deleted.
(WebCore::AudioTrackPrivate::setSampleRate): Deleted.
(WebCore::AudioTrackPrivate::numberOfChannels const): Deleted.
(WebCore::AudioTrackPrivate::setNumberOfChannels): Deleted.
(WebCore::AudioTrackPrivate::bitrate const): Deleted.
(WebCore::AudioTrackPrivate::setBitrate): Deleted.

  • platform/graphics/AudioTrackPrivateClient.h:
  • platform/graphics/PlatformVideoColorSpace.h:

(WebCore::operator==):
(WebCore::operator!=):

  • platform/graphics/VideoTrackPrivate.h:

(WebCore::VideoTrackPrivate::configuration const):
(WebCore::VideoTrackPrivate::setConfiguration):
(WebCore::VideoTrackPrivate::codec const): Deleted.
(WebCore::VideoTrackPrivate::setCodec): Deleted.
(WebCore::VideoTrackPrivate::width const): Deleted.
(WebCore::VideoTrackPrivate::setWidth): Deleted.
(WebCore::VideoTrackPrivate::height const): Deleted.
(WebCore::VideoTrackPrivate::setHeight): Deleted.
(WebCore::VideoTrackPrivate::colorSpace const): Deleted.
(WebCore::VideoTrackPrivate::setColorSpace): Deleted.
(WebCore::VideoTrackPrivate::framerate const): Deleted.
(WebCore::VideoTrackPrivate::setFramerate): Deleted.
(WebCore::VideoTrackPrivate::bitrate const): Deleted.
(WebCore::VideoTrackPrivate::setBitrate): Deleted.

  • platform/graphics/VideoTrackPrivateClient.h:
  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:

(WebCore::AVTrackPrivateAVFObjCImpl::setVideoTrackConfigurationObserver):
(WebCore::AVTrackPrivateAVFObjCImpl::setAudioTrackConfigurationObserver):

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::assetTrackConfigurationKeyNames):
(WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl):
(WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack):
(WebCore::AVTrackPrivateAVFObjCImpl::videoTrackConfiguration const):
(WebCore::AVTrackPrivateAVFObjCImpl::audioTrackConfiguration const):

  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:

(WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
(WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack):
(WebCore::AudioTrackPrivateAVFObjC::audioTrackConfigurationChanged):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:

(WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
(WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack):
(WebCore::VideoTrackPrivateAVFObjC::videoTrackConfigurationChanged):

  • platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:

(WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):

  • platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:

(WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM):
(WebCore::VideoTrackPrivateWebM::updateConfiguration):

  • platform/graphics/cocoa/VideoTrackPrivateWebM.h:

Source/WebKit:

Propagate changes to TrackConfigurations upwards from the GPU process -> WebContent process.

  • GPUProcess/media/AudioTrackPrivateRemoteConfiguration.h:

(WebKit::AudioTrackPrivateRemoteConfiguration::encode const):
(WebKit::AudioTrackPrivateRemoteConfiguration::decode):

  • GPUProcess/media/RemoteAudioTrackProxy.cpp:

(WebKit::RemoteAudioTrackProxy::configuration):
(WebKit::RemoteAudioTrackProxy::configurationChanged):

  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.cpp:

(WebKit::RemoteVideoTrackProxy::configuration):

  • GPUProcess/media/RemoteVideoTrackProxy.h:
  • GPUProcess/media/TrackPrivateRemoteConfiguration.h:

(WebKit::TrackPrivateRemoteConfiguration::encode const):
(WebKit::TrackPrivateRemoteConfiguration::decode):

  • GPUProcess/media/VideoTrackPrivateRemoteConfiguration.h:

(WebKit::VideoTrackPrivateRemoteConfiguration::encode const):
(WebKit::VideoTrackPrivateRemoteConfiguration::decode):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:

(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::updateConfiguration):

  • WebProcess/GPU/media/AudioTrackPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):
(WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:

(WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote):
(WebKit::VideoTrackPrivateRemote::updateConfiguration):

  • WebProcess/GPU/media/VideoTrackPrivateRemote.h:

(WebKit::VideoTrackPrivateRemote::create):

LayoutTests:

Now that these properties are dynamic, test them with testExpectedEventually.

  • media/track/audio-track-configuration.html:
  • media/track/video-track-alternate-groups-expected.txt:
  • media/track/video-track-configuration.html:
10:05 AM Changeset in webkit [287573] by achristensen@apple.com
  • 2 edits in trunk/Tools

Re-enable URLSchemeHandler.Leaks1 API test
https://bugs.webkit.org/show_bug.cgi?id=234625

Reviewed by Darin Adler.

The test seems to not time out any more. I think it has been fixed without re-enabling the test.

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-leaks.mm:

(TEST):

9:35 AM Changeset in webkit [287572] by Russell Epstein
  • 2 edits in branches/safari-613.1.12.1-branch/Source/WebCore

Cherry-pick r287158. rdar://problem/86837893

Add an experimental VideoTrackConfiguration class and accessor on VideoTrack
https://bugs.webkit.org/show_bug.cgi?id=230841
<rdar://problem/83837876>

Reviewed by Eric Carlson.

Follow up patch to address post-review comments.

Darin pointed out that CFStringCompare() is likely more expensive than
CFEqual() as the former determines order as well as equality, and a
safeCFEqual() already exists. And while safeCFEqual() has different
behavior than the safeCFStringEquals() lambda when passed two null values,
in every case where safeCFStringEquals() is used, the first parameter has
already been nil-checked. So safeCFStringEquals() is unnecessary and
safeCFEqual() should be used instead.

  • platform/graphics/avfoundation/FormatDescriptionUtilities.cpp: (WebCore::colorSpaceFromFormatDescription):

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

9:35 AM Changeset in webkit [287571] by Russell Epstein
  • 2 edits in branches/safari-613.1.12.1-branch/Source/WebCore

Cherry-pick r286953. rdar://problem/86837893

Unreviewed build fix; add a convenience function to safely compare possibly null CFStringRefs.

  • platform/graphics/avfoundation/FormatDescriptionUtilities.cpp: (WebCore::presentationSizeFromFormatDescription): (WebCore::colorSpaceFromFormatDescription):

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

9:31 AM Changeset in webkit [287570] by Russell Epstein
  • 9 edits in branches/safari-613.1.12.1-branch/Source

Versioning.

WebKit-7613.1.12.1.1

9:14 AM Changeset in webkit [287569] by Russell Epstein
  • 1 copy in branches/safari-613.1.12.1-branch

New branch.

8:11 AM Changeset in webkit [287568] by graouts@webkit.org
  • 7 edits in trunk

[Web Animations] changing the timing of a transition such that it's finished should no longer have it marked as running
https://bugs.webkit.org/show_bug.cgi?id=234823

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt:

Source/WebCore:

Many factors could contribute to an animation entering its finished state. In case it's a transition,
we must remove it from the list of running transitions immediately, so we add a new virtual method when
the finished state is entered such that CSSTransition can implement this method and do the necessary
cleanup.

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::animationDidFinish):

  • animation/CSSTransition.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::updateFinishedState):

  • animation/WebAnimation.h:

(WebCore::WebAnimation::animationDidFinish):

7:52 AM Changeset in webkit [287567] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Unreviewed, reverting r283546.
https://bugs.webkit.org/show_bug.cgi?id=234844

Causes bad scrolling behavior on Discourse pages

Reverted changeset:

"[css-position-sticky] scrollIntoView should not take into
account sticky positioning offsets"
https://bugs.webkit.org/show_bug.cgi?id=230689
https://commits.webkit.org/r283546

7:27 AM Changeset in webkit [287566] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Take into account the active descendant when setting focus related states with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234751

Reviewed by Joanmarie Diggs.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::state const):

7:10 AM Changeset in webkit [287565] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][a11y] Ensure ATSPI wrappers are destroyed in the main thread
https://bugs.webkit.org/show_bug.cgi?id=234808

Reviewed by Joanmarie Diggs.

Sometimes they can be destroyed in the a11y thread, since we keep a reference when unregistering the objects.

  • accessibility/atspi/AccessibilityObjectAtspi.h:
  • accessibility/atspi/AccessibilityRootAtspi.h:
7:09 AM Changeset in webkit [287564] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][a11y] Use invalid as role for detached objects in ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234835

Reviewed by Joanmarie Diggs.

We are using unknown by mistake.

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::role const):

5:29 AM Changeset in webkit [287563] by Manuel Rego Casasnovas
  • 6 edits
    2 adds in trunk

[selectors] :focus-visible not matching on accessKey focus after focusing something via mouse
https://bugs.webkit.org/show_bug.cgi?id=234077
<rdar://problem/86572561>

Reviewed by Antti Koivisto.

Source/WebCore:

This patch adds Element::focusForBindings() to differentitate when this is called from JavaScript.
If that's the case it pass a new FocusTrigger::Bindings value to Element::focus(),
so we can differentiate when this was called from some internal code or from JavaScript.

When Element::focus() has been called internally, we always want to show the focus ring
(thus pass FocusVisibility::Visible). However when it's called from a script
we'll set it to Visible or Invisible depending on if the previously focused element
was focused via mouse click or not (this is needed to pass
the css/selectors/focus-visible-script-focus-* tests from WPT repository).

Test: fast/selectors/focus-visible-accesskey.html

  • dom/Element.cpp:

(WebCore::Element::focus):
(WebCore::Element::focusForBindings):

  • dom/Element.h:

(WebCore::Element::focusForBindings):

  • dom/FocusOptions.h:
  • html/HTMLOrForeignElement.idl:

LayoutTests:

Writing an internal test as WPT tests for this don't work due to webkit.org/b/234139.

  • fast/selectors/focus-visible-accesskey-expected.txt: Added.
  • fast/selectors/focus-visible-accesskey.html: Added.
5:05 AM Changeset in webkit [287562] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

[PAS] constant-logical-operand clang warnings
https://bugs.webkit.org/show_bug.cgi?id=234814

Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-04
Reviewed by Martin Robinson.

  • libpas/src/libpas/pas_config_prefix.h: Use double exclamation marks in declarations to

force the compiler to interpret them as booleans and avoid constant-logical-operand
warnings.

Jan 3, 2022:

9:58 PM Changeset in webkit [287561] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix build failure
https://bugs.webkit.org/show_bug.cgi?id=232723

  • runtime/ArrayPrototype.cpp:

(JSC::toLocaleString):

9:12 PM Changeset in webkit [287560] by ysuzuki@apple.com
  • 6 edits
    4 adds in trunk

Array.prototype.toLocaleString does not respect deletion of Object.prototype.toLocaleString
https://bugs.webkit.org/show_bug.cgi?id=232723

Reviewed by Alexey Shvayka.

JSTests:

  • ChakraCore/test/Array/toLocaleString.baseline-jsc:
  • stress/array-tolocalestring-delete-tolocalestring.js: Added.

(shouldThrow):

  • stress/array-tolocalestring-empty-separator.js: Added.

(shouldBe):

  • stress/array-tolocalestring-options.js: Added.

(shouldBe):

  • stress/array-tolocalestring-undefined-null.js: Added.

(shouldBe):
(shouldBe.toLocaleString):

Source/JavaScriptCore:

This patch implements ECMA402 Array.prototype.toLocaleString[1]. The new implementation invokes "toLocaleString"
method for each elements.

[1]: https://tc39.es/ecma402/#sup-array.prototype.tolocalestring

  • runtime/ArrayPrototype.cpp:

(JSC::toLocaleString):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::slowJoin):

6:55 PM Changeset in webkit [287559] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening, remove pending test failures filed under webkit.org/b/208292
https://bugs.webkit.org/show_bug.cgi?id=208292

Removed from GTK test expectations:
imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html
imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html

Removed from WPE test expectations:
imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:36 PM Changeset in webkit [287558] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Incorrect word-spacing gaps when logical order != visual order (bidi)
https://bugs.webkit.org/show_bug.cgi?id=234826

Reviewed by Antti Koivisto.

Source/WebCore:

Add missing condition from the (rtl) word-spacing patch, where we don't merge
adjacent text runs when word-spacing is not 0 and the run is a word-separator.
(we can't merge a whitespace run with a non-whitepace run and expect that the word-spacing
margin is always on the left side (visual reordering)).

Test: fast/text/simple-bidi-word-spacing.html

  • layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

LayoutTests:

  • fast/text/simple-bidi-word-spacing-expected.html: Added.
  • fast/text/simple-bidi-word-spacing.html: Added.
5:06 PM Changeset in webkit [287557] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk/LayoutTests

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

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

  • platform/glib/http/wpt/push-api/pushManager.any-expected.txt:
  • platform/glib/http/wpt/push-api/pushManager.any.serviceworker-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/idlharness-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/repaint/focus-ring-repaint-expected.txt:
  • platform/gtk/fast/text/bidi-reverse-runs-crash-expected.txt: Added. Platform-specific baseline for GTK due to lack of LFC integration support.
4:04 PM Changeset in webkit [287556] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Initialize sandbox before initializing WebKit process
https://bugs.webkit.org/show_bug.cgi?id=234827

Reviewed by Brent Fulgham.

The sandbox should be initialized as early as possible in WebKit processes.

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):

3:46 PM Changeset in webkit [287555] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[PlayStation] Build fix after r287552
https://bugs.webkit.org/show_bug.cgi?id=234828

Unreviewed build fix.

Needed WebCore prefixing on SRGBA.

  • UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:
1:49 PM Changeset in webkit [287554] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r287550.
https://bugs.webkit.org/show_bug.cgi?id=234829

Reverted changeset:

"[Web Animations] changing the effect of a transition should
no longer have it marked as running"
https://bugs.webkit.org/show_bug.cgi?id=234823
https://commits.webkit.org/r287550

1:47 PM Changeset in webkit [287553] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed test gardening, this test progressed in the way it fails but the test expectation
wasn't updated.

  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
10:56 AM Changeset in webkit [287552] by weinig@apple.com
  • 56 edits in trunk

Add resolved/unresolved color type accessors to require users to be explicit about whether they will handle missing/none color components
https://bugs.webkit.org/show_bug.cgi?id=234798

Reviewed by Antti Koivisto.

Source/WebCore:

In preparation for adding support for missing / powerless color components, this change changes the API
of color types (e.g. SRGBA<float>, OKLab<float>, etc) to require an extra step before users can access
the component values, forcing the user to choose whether they want to handle the missing / powerless color
components (the unresolved state) or have them converted to the value they should use for rendering (the
resolved state).

To do this, color types no longer expose their components publicly, but rather, only allow access to them
via new subclasses, ResolvedColorType<ColorType> and UnresolvedColorType<ColorType>. Theses subclasses
expose the components publicly via using directives.

To keep the API consistent (and keep generic contexts simpler), color types using both float and uint8_t
require the use of resolved() / unresolved() to access components, but for uint8_t, there is no actual
resolution that happens, as there is no way to encode the missing / powerless concept in them.

One tricky thing having a more complex hierarchy of color types is that generic functions parameterized
on the input color type can no longer assume the input and output types will be the same (for instance,
if you call colorWithOverriddenAlpha() with a ResolvedColorType<Lab<float>> it will not necessarily
return a ResolvedColorType<Lab<float>>) so a few generic functions have had their explicit return types
replaced with deduced (auto) return types to avoid this (additionally, a CanonicalColorType<> type trait
was added if one needs to be specific for something like template specialization purposes).

Since there is no way to add missing / powerless components yet, there is no actual behavior change, but
this lays the foundation for adding that in a follow up.

As this change was already touching most uses of the toSRGBALossy<> function on Color, I also took the
opportunity to replace all its uses with the generic toColorTypeLossy<SRGBA<>>.

  • platform/graphics/ColorModels.h:

(WebCore::resolvedColor):
(WebCore::unresolvedColor):
(WebCore::resolveColorComponents):
(WebCore::ResolvedColorType::resolved const):
(WebCore::ResolvedColorType::unresolved const):
(WebCore::ResolvedColorType::ResolvedColorType):
(WebCore::ResolvedColorType::resolve):
(WebCore::UnresolvedColorType::unresolved const):
(WebCore::UnresolvedColorType::UnresolvedColorType):
(WebCore::asColorComponents):
(WebCore::get):
Adds ResolvedColorType and UnresolvedColorType generic types. They both inherit from
the helper type ExposedColorType which is specialized for each color model and does
the work of exposing the components via public 'using ColorType::componentName'. These
types also have overrides of the new resolved()/unresolved() member functions on color
types (well, only unresolved() for UnresolvedColorType) to allow generic code to not
care about whether it already has resolved or unresolved color type, and just use the
accessor it wants without worrying about duplicated resolution.

Since asColorComponents() can only be called with exposed color types, those functions
have been moved here from ColorTypes.h to make their relationship more clear. We also
reduced the number of these overloads as we now just have one per color model (we previously
had one per color type).

Also took the opportunity to merge ExtendedRGBModel and RGBModel into a single type
parameterized by an RGBBoundedness enum. This allowed fewer ExposedColorType specializations
and asColorComponents() overloads (and to remove some uses of UsesExtendedRGBModel<>).

One unfortunate side effect of the more complex type hierarchy is that we no longer get
destructuring for free, so to add that back, a generic get<> overload is added as well
as the required std::tuple_size/std::tuple_element specializations of ResolvedColorType
and UnresolvedColorType (the most derived class must be used for specializations, so
a single ExposedColorType specialization was not possible).

  • platform/graphics/ColorTypes.h:

(WebCore::makeFromComponents):
(WebCore::makeFromComponentsClamping):
(WebCore::makeFromComponentsClampingExceptAlpha):
(WebCore::assertInRange):
(WebCore::ColorWithAlphaHelper::colorWithAlphaByte const):
(WebCore::operator==):
(WebCore::RGBAType::resolved const):
(WebCore::RGBAType::unresolved const):
(WebCore::Lab::resolved const):
(WebCore::Lab::unresolved const):
(WebCore::LCHA::resolved const):
(WebCore::LCHA::unresolved const):
(WebCore::OKLab::resolved const):
(WebCore::OKLab::unresolved const):
(WebCore::OKLCHA::resolved const):
(WebCore::OKLCHA::unresolved const):
(WebCore::HSLA::resolved const):
(WebCore::HSLA::unresolved const):
(WebCore::HWBA::resolved const):
(WebCore::HWBA::unresolved const):
(WebCore::XYZA::resolved const):
(WebCore::XYZA::unresolved const):
(WebCore::PackedColor::RGBA::RGBA):
(WebCore::PackedColor::ARGB::ARGB):
(WebCore::asColorComponents): Deleted.
Makes the component memebers of each color type protected, so that only
the ResolvedColorType and UnresolvedColorType derived types can access
and re-expose them. To access those, resolved() and unresolved() member
functions were added to make it easy, but explicit.

Also added a new type trait helper, CanonicalColorType<> which will return
the base/canonical name for a color type. For example:

CanonicalColorType<SRGBA<float>> == SRGBA<float>
CanonicalColorType<ResolvedColorType<SRGBA<float>>> == SRGBA<float>
CanonicalColorType<UnresolvedColorType<SRGBA<float>>> == SRGBA<float>

This makes it easier for generic code to not care whether it is paramterized used
the base/canonical type or one of the derived ones.

  • platform/graphics/ColorSpace.h:
  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::lightness const):
(WebCore::Color::toResolvedColorComponentsInColorSpace const):
(WebCore::Color::colorSpaceAndResolvedColorComponents const):
(WebCore::Color::toColorComponentsInColorSpace const): Deleted.
(WebCore::Color::colorSpaceAndComponents const): Deleted.

  • platform/graphics/Color.h:

(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alphaByte const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::asInline const):
(WebCore::Color::toSRGBALossy const): Deleted.
Add resolution where needed, but keep the components unresolved for storage in
the OutOfLineComponents object. Also updates some names of functions that return
ColorComponents that they explicitly return resolved color components. If need
variants that return unresolved components, we can add them as necessary since
the storage remains unresolved.

  • platform/graphics/ColorComponents.h:

Add operator/=(T) to make some code in PageColorSampler.cpp much simpler.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::colorValue const):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::colorValue const):
Switch to toColorTypeLossy.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::value):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(getAttributeSetForAccessibilityObject):

  • accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textAttributes const):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityColorStringValue]):

  • css/DeprecatedCSSOMRGBColor.h:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendSourceOver):
(WebCore::blendWithWhite):
(WebCore::blend):
(WebCore::blendWithoutPremultiply):

  • platform/graphics/ColorConversion.cpp:

(WebCore::convertToPolarForm):
(WebCore::convertToRectangularForm):
(WebCore::calculateHSLHue):
(WebCore::SRGBA<float>>::convert):
(WebCore::HSLA<float>>::convert):
(WebCore::HWBA<float>>::convert):
(WebCore::Lab<float>>::convert):
(WebCore::WhitePoint::D50>>::convert):
(WebCore::OKLab<float>>::convert):
(WebCore::WhitePoint::D65>>::convert):
(WebCore::convertAndResolveColorComponents):
(WebCore::convertColorComponents): Deleted.

  • platform/graphics/ColorConversion.h:

(WebCore::ColorConversion::handleToFloatConversion):
(WebCore::ColorConversion::handleToByteConversion):
(WebCore::ColorConversion::toLinearEncoded):
(WebCore::ColorConversion::toGammaEncoded):
(WebCore::ColorConversion::toExtended):
(WebCore::ColorConversion::toBounded):
(WebCore::ColorConversion::handleMatrixConversion):

  • platform/graphics/ColorInterpolation.h:

(WebCore::interpolateColorComponents):

  • platform/graphics/ColorLuminance.h:

(WebCore::relativeLuminance):

  • platform/graphics/ColorUtilities.cpp:

(WebCore::premultiplied):
(WebCore::unpremultiplied):
(WebCore::premultipliedFlooring):
(WebCore::premultipliedCeiling):

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serializationUsingColorFunction):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorUtilities.h:

(WebCore::colorByModifingEachNonAlphaComponent):
(WebCore::colorWithOverriddenAlpha):
(WebCore::invertedColorWithOverriddenAlpha):
(WebCore::isBlack):
(WebCore::isWhite):

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):

  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

(PlatformCAAnimationWin::setFromValue):
(PlatformCAAnimationWin::setToValue):
(PlatformCAAnimationWin::setValues):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::setSourceRGBAFromColor):

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::addColorStopRGBA):
(WebCore::setCornerColorRGBA):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::convertToCGCompatibleComponents):
(WebCore::createCGColor):

  • platform/graphics/cg/GradientRendererCG.cpp:

(WebCore::GradientRendererCG::makeGradient const):
(WebCore::GradientRendererCG::Shading::shadingFunction):
(WebCore::GradientRendererCG::makeShading const):

  • platform/graphics/cpu/arm/filters/FELightingNEON.h:

(WebCore::FELighting::platformApplyNeon):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::BasicComponentTransferFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):

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

(WebCore::FELightingSoftwareApplier::applyPlatform):

  • platform/graphics/filters/software/FEMorphologySoftwareApplier.h:

(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue):

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::operator GdkRGBA const):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawNumber):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::clearColor):

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::operator D2D1_COLOR_F const):
(WebCore::Color::operator D2D1_VECTOR_4F const):

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::createBrush):

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextDirect2D::colorWithGlobalAlpha const):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::datePlaceholderTextColor const):

  • rendering/RenderThemeIOS.mm:

(WebCore::shouldUseConvexGradient):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationColorFunction::animate):
Add calls to resolved() to access components. Some of these (particularlly in serialization, conversion and
interpolation related calls) will need to be converted to use unresolved() eventually, but first they will
need to handle the NaN case properly.

  • page/PageColorSampler.cpp:

(WebCore::colorDifference):
(WebCore::averageColor):
(WebCore::PageColorSampler::sampleTop):
Rework code a bit to use modern WebKit idioms (std::array, Span, ColorComponents).

Source/WebKit:

Replace uses of Color::toSRGBALossy<>() with Color::toColorTypeLossy<SRGBA<>>() and add
calls to resolved() to access color components.

  • UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:

(drawPageBackground):

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorFillFromWebCoreColor):

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::beginSwipeGesture):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::animationValueFromKeyframeValue):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::getDocumentBackgroundColor):

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Replace uses of Color::toSRGBALossy<>() with Color::toColorTypeLossy<SRGBA<>>() and add
calls to resolved() to access color components. Also update to new name of colorSpaceAndComponents(),
colorSpaceAndResolvedColorComponents().

  • TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:

(TestWebKitAPI::changeContextContents):
Replace unnecessary use of colorSpaceAndComponents() with the more common toColorTypeLossy<WebCore::SRGBA<float>>().resolved().

10:49 AM Changeset in webkit [287551] by Antti Koivisto
  • 10 edits
    2 moves in trunk

[:has() pseudo-class] Style invalidation for :valid and :invalid
https://bugs.webkit.org/show_bug.cgi?id=234815

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/invalidation/has-with-pseudo-class-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-pseudo-class-expected.txt.
  • web-platform-tests/css/selectors/invalidation/has-with-pseudo-class.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-pseudo-class.html.

Source/WebCore:

Use PseudoClassChangeInvalidation for accurate and :has() supporting style invalidation.

Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-with-pseudo-class.html

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::computeValidity const):
(WebCore::FormAssociatedElement::isValid const): Deleted.

  • html/FormAssociatedElement.h:
  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::updateWillValidateAndValidity):
(WebCore::HTMLFormControlElement::isValidFormControlElement const):
(WebCore::HTMLFormControlElement::updateValidity):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
(WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::computeValidity const):
(WebCore::HTMLInputElement::isValid const): Deleted.

  • html/HTMLInputElement.h:
  • html/ValidityState.idl:
10:49 AM Changeset in webkit [287550] by graouts@webkit.org
  • 6 edits in trunk

[Web Animations] changing the effect of a transition should no longer have it marked as running
https://bugs.webkit.org/show_bug.cgi?id=234823

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progression.

  • web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt:

Source/WebCore:

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::setEffect):

  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.h:
10:45 AM Changeset in webkit [287549] by graouts@webkit.org
  • 8 edits in trunk

[Web Animations] calling setKeyframes() on a running CSS Transition has no immediate effect
https://bugs.webkit.org/show_bug.cgi?id=234818

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-animations/animation-base-response-004-expected.txt:
  • web-platform-tests/css/css-cascade/revert-val-010-expected.txt:
  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context-filling-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

Source/WebCore:

We must mark the target as dirty if setKeyframes() is called.

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::processKeyframes):

10:40 AM Changeset in webkit [287548] by graouts@webkit.org
  • 6 edits in trunk

[Web Animations] reversing factor should be computed before canceling the previous transition
https://bugs.webkit.org/show_bug.cgi?id=234821

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-transitions/CSSTransition-currentTime.tentative-expected.txt:
  • web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt:
  • web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:

Source/WebCore:

We would always compute the transition reversing factor to 1.0 since we would cancel the
previously-running transition prior to getting its computed progress.

  • style/Styleable.cpp:

(WebCore::updateCSSTransitionsForStyleableAndProperty):

10:27 AM Changeset in webkit [287547] by Wenson Hsieh
  • 4 edits in trunk

Undownloaded iCloud Photos are inserted as broken images when attachment element is enabled
https://bugs.webkit.org/show_bug.cgi?id=234803
rdar://82318259

Reviewed by Darin Adler.

Source/WebCore:

Currently, when inserting file paths via paste or drop that correspond to undownloaded files in iCloud Drive,
we show a generic empty file as the file preview, with "Zero Bytes" as the attachment subtitle when the
attachment element is enabled (i.e., Mail compose when using WebKit2). Even worse, for undownloaded image files,
we'll attempt to insert them as broken images.

Mail handles this scenario by detecting that we've dropped an undownloaded attachment, downloads the attachment,
and eventually updates the attachment element with the downloaded data. In the meantime, however, it's not ideal
for WebKit to represent the attachment that is still being downloaded as a broken image or empty file.

To address this, make a slight adjustment to detect that the file we're inserting is not locally available and
render it as an attachment element with progress="0". The client is then expected to update this progress as the
download is taking place, and update the attachment data once it's complete.

Test: WKAttachmentTestsMac.InsertNonExistentImageFileAsAttachment

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attachmentForFilePath):

Tools:

Add a new API test to exercise the change. See WebCore/ChangeLog for more information.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(nonexistentFilePath):
(TestWebKitAPI::TEST):

9:46 AM Changeset in webkit [287546] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Fix Intl.PluralRules.selectRange input validation
https://bugs.webkit.org/show_bug.cgi?id=234817

Reviewed by Alexey Shvayka.

JSTests:

  • stress/intl-pluralrules-select-range-validate-inputs.js: Added.

(shouldThrow):
(Intl.PluralRules.prototype.selectRange.shouldThrow):

Source/JavaScriptCore:

Add specified argument validation[1] to Intl.PluralRules.selectRange.

[1]: https://tc39.es/proposal-intl-numberformat-v3/out/pluralrules/proposed.html#sec-intl.pluralrules.prototype.selectrange

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::selectRange const):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

9:00 AM Changeset in webkit [287545] by ysuzuki@apple.com
  • 15 edits in trunk

[JSC] Update UCD to Unicode 14.0.0
https://bugs.webkit.org/show_bug.cgi?id=234811

Reviewed by Sam Weinig.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

This is yearly update of UCD data.

  • ucd/CaseFolding.txt:
  • ucd/DerivedBinaryProperties.txt:
  • ucd/DerivedCoreProperties.txt:
  • ucd/DerivedNormalizationProps.txt:
  • ucd/PropList.txt:
  • ucd/PropertyAliases.txt:
  • ucd/PropertyValueAliases.txt:
  • ucd/ScriptExtensions.txt:
  • ucd/Scripts.txt:
  • ucd/UnicodeData.txt:
  • ucd/emoji-data.txt:
  • yarr/generateYarrUnicodePropertyTables.py:
8:50 AM Changeset in webkit [287544] by ysuzuki@apple.com
  • 4 edits
    2 adds in trunk

[JSC] Read-modify-write operation's second put-to-scope should not throw error if binding does not exist
https://bugs.webkit.org/show_bug.cgi?id=234813

Reviewed by Alexey Shvayka.

JSTests:

  • stress/global-object-read-modify-write-remove-at-get-strict.js: Added.

(shouldThrow):

  • stress/global-object-read-modify-write-remove-at-get.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch fixes a bug throwing RefereceError when read-modify-write's read operation removes binding from object.
Throwing error should happen only when evaluating it under strict mode.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):

8:31 AM Changeset in webkit [287543] by ysuzuki@apple.com
  • 7 edits in trunk

[JSC] Fix length of Intl.NumberFormat.formatRange and Intl.PluralRules.selectRange
https://bugs.webkit.org/show_bug.cgi?id=234806

Reviewed by Alexey Shvayka.

JSTests:

  • stress/intl-numberformat-format-range-v3.js:

(nf.formatRange.nf.formatRangeToParts.methods.forEach):

  • stress/intl-pluralrules-selectrange.js:

Source/JavaScriptCore:

These length's numbers are wrong. This patch fixes them.

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::finishCreation):

8:26 AM Changeset in webkit [287542] by Martin Robinson
  • 3 edits in trunk/LayoutTests

Clean up TestExpectations for imported WPT CSS transforms tests
https://bugs.webkit.org/show_bug.cgi?id=234820

Unreviewed.

7:46 AM Changeset in webkit [287541] by ysuzuki@apple.com
  • 380 edits
    3 copies
    5 moves
    314 adds
    29 deletes in trunk/JSTests

[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=234807

Reviewed by Alexey Shvayka.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/test262-Revision.txt:
7:43 AM Changeset in webkit [287540] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

PseudoClassChangeInvalidation should allow multiple pseudo classes as argument
https://bugs.webkit.org/show_bug.cgi?id=234810

Reviewed by Alan Bujtas.

It is common to invalidate multiple pseudo-classes together (say :disabled and :enabled).

  • dom/Element.cpp:

(WebCore::Element::setFocus):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::setAncestorDisabled):
(WebCore::HTMLFormControlElement::parseAttribute):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::parseAttribute):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::parseAttribute):

  • style/PseudoClassChangeInvalidation.h:

(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):

6:54 AM Changeset in webkit [287539] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Take grapheme clusters into account at TextUtil::breakWord
https://bugs.webkit.org/show_bug.cgi?id=234805

Reviewed by Antti Koivisto.

userPerceivedCharacterBoundaryAlignedIndex -> ubrk_preceding
nextUserPerceivedCharacterIndex -> ubrk_following

  • layout/formattingContexts/inline/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::breakWord): This average character estimation does not work well with character clusters.

6:01 AM Changeset in webkit [287538] by Nikolas Zimmermann
  • 5 edits
    2 adds in trunk/Source/WebCore

[LBSE] Begin layer-aware RenderSVGModelObject implementation
https://bugs.webkit.org/show_bug.cgi?id=234524

Reviewed by Rob Buis.

Begin implementing RenderSVGModelObject - the base class for most graphics
primitives in SVG (path / rect / circle / image / ...) for the LBSE.

In the legacy engine, RenderSVGImage / RenderSVGShape / RenderSVGContainer inherit
from LegacyRenderSVGModelObject, which in turn inherits from RenderElement. The SVG
<text> / <foreignObject> renderers inherit from their existing "HTML counterparts"
e.g. RenderSVGBlock from RenderBlockFlow, or RenderSVGInline from RenderInline.

This has historical reasons: When SVG text rendering was prototyped in WebCore, a goal was to
re-use the existing HTML/CSS text rendering code whenever possible. Therefore the SVG text
renderers were modelled in the terminology of HTML/CSS: A natural choice is to treat a SVG
<text> element as a CSS "block-level element" and <tspan> / <textPath> / <tref> / ...
elements as CSS "inline elements". These design choices from almost two decades ago, are
the reason for the unnecessary confusing SVG inheritance structure. Furthermore we explicitly
disable layer support in all SVG classes that indirectly inherit from RenderLayerModelObject.

However for LBSE we do want SVG to participate in the layer tree.
Therefore let RenderSVGModelObject inherit from RenderLayerModelObject. This turns
RenderLayerModelObject into the common base-class for all SVG renderers in LBSE.

The price for the layer support is that all SVG renderers need to be able to answer questions
in HTML/CSS language (what's your 'border box rect'? do you have visual overflow? etc.).
Finding consistent definitions/mappings was a tedious job, that is fully solved in LBSE and
will be upstreamed in pieces. This patch is one main piece of the work.

If we forget about the legacy engine, the inheritance structure now looks like the following:

+ RenderObject

+ RenderElement
| + RenderLayerModelObject
| + RenderBoxModelObject
| | + RenderBox
| | | + RenderReplaced (CSS "replaced" elements)
| | | | + RenderSVGRoot (outermost <svg> element)
| | | |
| | | + RenderBlock (CSS "block-level" elements)
| | | + RenderBlockFlow
| | | + RenderSVGBlock (HTML/SVG glue code)
| | | + RenderSVGForeignObject (<foreignObject> element)
| | | + RenderSVGText (<text> element)
| | |
| | + RenderInline (CSS "inline" elements)
| | + RenderSVGInline (HTML/SVG glue code)
| | + RenderSVGTSpan (<tspan> element)
| | + RenderSVGTextPath (<textPath> element)
| |
| + RenderSVGModelObject
| + RenderSVGContainer
| | + RenderSVGHiddenContainer (<defs> / <g> with 'display: none' / <symbol> elements)
| | | + RenderSVGResourceContainer
| | | + RenderSVGResourceClipper (<clipPath> element)
| | | + RenderSVGResourceFilter (<filter> element)
| | | + RenderSVGResourceFilterPrimitive
| | | + RenderSVGResourceGradient
| | | | + RenderSVGResourceLinearGradient (<linearGradient> element)
| | | | + RenderSVGResourceRadialGradient (<radialGradient> element)
| | | |
| | | + RenderSVGResourceMarker (<marker> element)
| | | + RenderSVGResourceMasker (<masker> element)
| | | + RenderSVGResourcePattern (<pattern> element)
| | | + RenderSVGResourceSolidColor
| | |
| | + RenderSVGTransformableContainer (<a> / <g> / <switch> / <use> elements)
| |
| + RenderSVGImage (<image> element)
| + RenderSVGShape (<rect> / <circle> / <path> ... elements)
| + RenderSVGEllipse
| + RenderSVGPath
| + RenderSVGRect
|
+ RenderText (#text nodes in HTML)

+ RenderSVGInlineText (#text nodes in SVG)

This is way less confusing then the previous version of the SVG render tree.
Covered by existing tests, no change in behaviour.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::computeVisibleRectInSVGContainer const):
(WebCore::RenderLayerModelObject::mapLocalToSVGContainer const):

  • rendering/RenderLayerModelObject.h:
  • rendering/svg/RenderSVGModelObject.cpp: Added.

(WebCore::RenderSVGModelObject::RenderSVGModelObject):
(WebCore::RenderSVGModelObject::updateFromStyle):
(WebCore::RenderSVGModelObject::borderBoxRectInFragmentEquivalent const):
(WebCore::RenderSVGModelObject::overflowClipRect const):
(WebCore::RenderSVGModelObject::clippedOverflowRect const):
(WebCore::RenderSVGModelObject::computeVisibleRectInContainer const):
(WebCore::RenderSVGModelObject::pushMappingToContainer const):
(WebCore::RenderSVGModelObject::outlineBoundsForRepaint const):
(WebCore::RenderSVGModelObject::absoluteRects const):
(WebCore::RenderSVGModelObject::absoluteQuads const):
(WebCore::RenderSVGModelObject::willBeDestroyed):
(WebCore::RenderSVGModelObject::styleDidChange):
(WebCore::RenderSVGModelObject::mapAbsoluteToLocalPoint const):
(WebCore::RenderSVGModelObject::mapLocalToContainer const):
(WebCore::RenderSVGModelObject::offsetFromContainer const):
(WebCore::RenderSVGModelObject::addFocusRingRects):
(WebCore::RenderSVGModelObject::shouldPaintSVGRenderer const):
(WebCore::intersectsAllowingEmpty):
(WebCore::isGraphicsElement):
(WebCore::RenderSVGModelObject::checkIntersection):
(WebCore::RenderSVGModelObject::checkEnclosure):
(WebCore::RenderSVGModelObject::applyTransform const):

  • rendering/svg/RenderSVGModelObject.h: Added.

(WebCore::RenderSVGModelObject::element const):
(WebCore::RenderSVGModelObject::borderBoxRectEquivalent const):
(WebCore::RenderSVGModelObject::contentBoxRectEquivalent const):
(WebCore::RenderSVGModelObject::frameRectEquivalent const):
(WebCore::RenderSVGModelObject::visualOverflowRectEquivalent const):
(WebCore::RenderSVGModelObject::applyTopLeftLocationOffsetEquivalent const):
(WebCore::RenderSVGModelObject::layoutRect const):
(WebCore::RenderSVGModelObject::setLayoutRect):
(WebCore::RenderSVGModelObject::setLayoutLocation):
(WebCore::RenderSVGModelObject::paintingLocation const):
(WebCore::RenderSVGModelObject::layoutLocation const):
(WebCore::RenderSVGModelObject::layoutLocationOffset const):
(WebCore::RenderSVGModelObject::layoutSize const):
(WebCore::RenderSVGModelObject::overflowClipRectForChildLayers):

5:51 AM Changeset in webkit [287537] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Refactor code creating css values and lists for animation and transition properties
https://bugs.webkit.org/show_bug.cgi?id=234812

Reviewed by Antti Koivisto.

For bug 234792 we exposed a series of static functions on ComputedStyleExtractor to share
code between CSSPropertyParser.cpp and CSSComputedStyleDeclaration.cpp for the creation of
CSS values for CSS Animations properties. Darin suggested some refactoring as part of the
review of that bug which was even more appropriate following the fix for bug 234785.

We now expose a single ComputedStyleExtractor::addCSSValueForAnimationPropertyToList()
static method to add the CSSValue for a given animation or transition CSS property to
a CSS list, providing an optional Animation to read the value from that, otherwise
using the default value.

This allowed initially for shorter code in CSSPropertyParser::consumeAnimationShorthand()
and animationShorthandValue(). Looking at ComputedStyleExtractor::valueForPropertyInStyle(),
there were more opportunities to share code and so valueListForAnimationOrTransitionProperty()
was added as well.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForAnimationDuration):
(WebCore::valueForAnimationDelay):
(WebCore::valueForAnimationIterationCount):
(WebCore::valueForAnimationDirection):
(WebCore::valueForAnimationFillMode):
(WebCore::valueForAnimationPlayState):
(WebCore::valueForAnimationName):
(WebCore::valueForAnimationTimingFunction):
(WebCore::ComputedStyleExtractor::addCSSValueForAnimationPropertyToList):
(WebCore::valueListForAnimationOrTransitionProperty):
(WebCore::animationShorthandValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::ComputedStyleExtractor::valueForAnimationDuration): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationDelay): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationIterationCount): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationDirection): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationFillMode): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationPlayState): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationName): Deleted.
(WebCore::delayValue): Deleted.
(WebCore::durationValue): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationTimingFunction): Deleted.
(WebCore::timingFunctionValue): Deleted.

  • css/CSSComputedStyleDeclaration.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeAnimationShorthand):

4:49 AM Changeset in webkit [287536] by Martin Robinson
  • 3 edits in trunk/Tools

A manual test was imported with the WPT css-transforms test suite
https://bugs.webkit.org/show_bug.cgi?id=234245

Reviewed by Youenn Fablet.

  • Scripts/webkitpy/w3c/test_parser.py:

(TestParser.analyze_test): Manual tests may also be reference tests and these
should not be imported.

  • Scripts/webkitpy/w3c/test_parser_unittest.py:

(test_analyze_manual_reference_wpt_test): Add a test for this situation.

3:55 AM Changeset in webkit [287535] by graouts@webkit.org
  • 6 edits in trunk

Support the "animation" shorthand property in the computed style
https://bugs.webkit.org/show_bug.cgi?id=234785

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-animations/computed-style-animation-parsing-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
  • web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:

Source/WebCore:

There is an existing WPT for the "animation" shorthand in the computed style which we
used to fail because we would simply not do any work to return the longhands compiled
into a list. It seems that the CSS WG, per https://github.com/w3c/csswg-drafts/issues/2529,
is moving in the direction of specifying what happens with shorthands in computed style,
so we're adding support for the "animation" shorthand.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::animationShorthandValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

2:00 AM Changeset in webkit [287534] by graouts@webkit.org
  • 11 edits in trunk

"animation" shorthand should list all longhand values when serializing
https://bugs.webkit.org/show_bug.cgi?id=234792

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Mark 20 new WPT progressions.

  • web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
  • web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt:
  • web-platform-tests/css/css-animations/style-animation-parsing-expected.txt:

Source/WebCore:

Currently we omit any initial value when serializing the "animation" shorthand. However,
the CSS Animations spec says:

Note that order is also important within each animation definition for distinguishing
<keyframes-name> values from other keywords. When parsing, keywords that are valid for
properties other than animation-name whose values were not found earlier in the shorthand
must be accepted for those properties rather than for animation-name. Furthermore, when
serializing, default values of other properties must be output in at least the cases
necessary to distinguish an animation-name that could be a value of another property,
and may be output in additional cases.

Both Firefox and Chrome always include all longhand values when querying the inline style,
such that <div style="animation: none"> yields "0s ease 0s 1 normal none running none" for
element.style.animation. Currently, Safari only outputs "none".

When parsing the "animation" shorthand in consumeAnimationShorthand(), we now fill in initial
values as if they were explicitly set to their initial value, for instance duration is set to
"0s".

To do this, we refactored code in CSSComputedStyleDeclaration.cpp that dealt with the creation
of CSSValue from various values exposed on Animation such that it may be called from within
CSSPropertyParser.cpp.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForAnimationDuration):
(WebCore::ComputedStyleExtractor::valueForAnimationDelay):
(WebCore::ComputedStyleExtractor::valueForAnimationIterationCount):
(WebCore::ComputedStyleExtractor::valueForAnimationDirection):
(WebCore::ComputedStyleExtractor::valueForAnimationFillMode):
(WebCore::ComputedStyleExtractor::valueForAnimationPlayState):
(WebCore::ComputedStyleExtractor::valueForAnimationName):
(WebCore::delayValue):
(WebCore::durationValue):
(WebCore::ComputedStyleExtractor::valueForAnimationTimingFunction):
(WebCore::timingFunctionValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::createTimingFunctionValue): Deleted.

  • css/CSSComputedStyleDeclaration.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeAnimationShorthand):

LayoutTests:

Add the initial longhand values for some non-WPT tests that expected them to be
absent in the shorthand serialization.

  • fast/css/longhand-overrides-shorthand-prefixing.html:
  • fast/css/transform-inline-style-remove-expected.txt:
1:21 AM Changeset in webkit [287533] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

AX: web process crash with isolated tree mode enabled
https://bugs.webkit.org/show_bug.cgi?id=234739
<rdar://problem/86983058>

Reviewed by Chris Fleizach.

It can happen that a new node being added is removed by AXIsolatedObject constructor when initializing
ComputedLabel property, because AccessibilityObject::computedLabel() calls updateBackingStore() that can trigger
a layout. We don't really need ComputedLabel property for isolated objects because AccessibilityObject::computedLabel()
is only used by the inspector that uses AccessibilityObject directly.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData): Remove ComputedLabel property initialization.
(WebCore::AXIsolatedObject::computedLabel): Assert if called.

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

(WebCore::AXIsolatedTree::createSubtree): Add an assert to ensure the wrapper is still valid after AXIsolatedObject::create().

  • accessibility/isolatedtree/AXIsolatedTree.h:
12:17 AM Changeset in webkit [287532] by youenn@apple.com
  • 19 edits
    1 add in trunk

FetchRequest.clone does not need to be called with the current context
https://bugs.webkit.org/show_bug.cgi?id=234515

Reviewed by Darin Adler.

Source/WebCore:

Make FetchRequest, FetchResponse and FetchBodyOwner take a ScriptExecutionContext* instead of a ScriptExecutionContext&.
This allows cloning FetchRequest and FetchResponse with the context of the original request or response.

Update call site, as well as for AbortSignal.

For FetchResponse, we did a change to throw in case of cloning FetchResponse on a stopped context.
It appeared that Firefox is not doing that, and Chrome is only doing that in some specific cases.
For that reason, it is better to go back to our previous behavior of not throwing.

To ease testing, we add an internals API to check whether a request/response is linked to a closed context.

Covered by updated tests.

  • Modules/cache/DOMCache.cpp:
  • Modules/fetch/FetchBodyOwner.cpp:
  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchRequest.cpp:
  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.cpp:
  • Modules/fetch/FetchResponse.h:
  • dom/AbortController.cpp:
  • dom/AbortSignal.cpp:
  • dom/AbortSignal.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/ServiceWorkerInternals.cpp:

LayoutTests:

  • http/wpt/fetch/clone-realm-expected.txt:
  • http/wpt/fetch/clone-realm.html:
  • http/wpt/fetch/resources/clone-realm-iframe.html: Added.
Note: See TracTimeline for information about the timeline view.