Timeline



May 2, 2022:

11:11 PM Changeset in webkit [293717] by youenn@apple.com
  • 5 edits in trunk

URL.createObjectURL should not be exposed in service worker contexts
https://bugs.webkit.org/show_bug.cgi?id=239972

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/interface-requirements-sw.https-expected.txt:

Source/WebCore:

Covered by rebased test.

  • bindings/scripts/CodeGeneratorJS.pm:

Add support for DedicatedWorker and SharedWorker in binding generator for function scope expsure.
(GenerateRuntimeEnableConditionalStringForExposeScope):

  • html/DOMURL.idl:

Update WebIDL as per spec.

10:26 PM Changeset in webkit [293716] by timothy_horton@apple.com
  • 2 edits
    2 adds in trunk/Source/WebKit

REGRESSION (r292351): Processes no longer get the right jetsam priority on iOS
https://bugs.webkit.org/show_bug.cgi?id=239992
<rdar://problem/92644672>

Reviewed by Chris Dumez.

  • FeatureFlags/WebKit.plist: Added.
  • WebKit.xcodeproj/project.pbxproj:

Temporarily reinstate RB_full_manage_WK_jetsam, since it is being
read by a different project.

10:19 PM Changeset in webkit [293715] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ Monterey wk1 GuardMalloc ] fast/borders/hidpi-3x-input-hairline-border.html is timing out
<rdar://problem/81996454>

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:

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

10:07 PM Changeset in webkit [293714] by ysuzuki@apple.com
  • 23 edits
    1 add in trunk

[JSC] Introduce unlinked version of invalidation
https://bugs.webkit.org/show_bug.cgi?id=239887

Reviewed by Saam Barati.

This patch makes invalidation mechanism unlinked for unlinked DFG.

  1. We always use CheckTraps instead of InvalidationPoint with VMTraps so that we do not need

to repatch existing code.

  1. We introduce load-and-branch based InvalidationPoint for unlinked DFG so that we do not need

to repatch it to jump to OSR exit when watchpoint fires. We store this condition in DFG::JITData
so that code can quickly access to that.

  1. We make isStillValid conditions in DFG::CommonData always true for unlinked DFG code. Instead,

we check isJettisoned() condition of CodeBlock since it will become eventually per CodeBlock
information (while this CodeBlock gets invalidated, unlinked DFG code itself can be used for
the other CodeBlock).

After this change, now, jumpReplacements for unlinked DFG becomes empty. We no longer repatch these invalidation points.

  • Source/JavaScriptCore/bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):
(JSC::CodeBlock::hasInstalledVMTrapsBreakpoints const):
(JSC::CodeBlock::canInstallVMTrapBreakpoints const):
(JSC::CodeBlock::installVMTrapBreakpoints):
(JSC::CodeBlock::hasInstalledVMTrapBreakpoints const): Deleted.

  • Source/JavaScriptCore/bytecode/CodeBlock.h:
  • Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:

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

  • Source/JavaScriptCore/dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::invalidate):
(JSC::DFG::CommonData::~CommonData):
(JSC::DFG::CommonData::installVMTrapBreakpoints):
(JSC::DFG::CommonData::isVMTrapBreakpoint):

  • Source/JavaScriptCore/dfg/DFGCommonData.h:

(JSC::DFG::CommonData::CommonData):
(JSC::DFG::CommonData::hasInstalledVMTrapsBreakpoints const):
(JSC::DFG::CommonData::isStillValid const):

  • Source/JavaScriptCore/dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • Source/JavaScriptCore/dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::JITCode):

  • Source/JavaScriptCore/dfg/DFGJITCode.h:
  • Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • Source/JavaScriptCore/dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):
(JSC::DFG::prepareCatchOSREntry):

  • Source/JavaScriptCore/dfg/DFGPlan.cpp:

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

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileInvalidationPoint):
(JSC::DFG::SpeculativeJIT::compileCheckTraps):
(JSC::DFG::SpeculativeJIT::emitInvalidationPoint): Deleted.

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:
  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • Source/JavaScriptCore/ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::JITCode):

  • Source/JavaScriptCore/ftl/FTLJITCode.h:

(JSC::FTL::JITCode::isUnlinked const):

  • Source/JavaScriptCore/ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • Source/JavaScriptCore/jit/JITCode.cpp:

(JSC::JITCode::isUnlinked const):

  • Source/JavaScriptCore/jit/JITCode.h:
  • Source/JavaScriptCore/runtime/VMTraps.cpp:

(JSC::VMTraps::tryInstallTrapBreakpoints):
(JSC::VMTraps::handleTraps):

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

9:38 PM Changeset in webkit [293713] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS macOS wk2 ]compositing/video/video-bo rder-radius-clipping.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=224690

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

9:15 PM Changeset in webkit [293712] by Robert Jenner
  • 2 edits in trunk/LayoutTests

[ iOS macOS wk2 ]compositing/video/video-bo rder-radius-clipping.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=224690

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:

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

8:43 PM Changeset in webkit [293711] by Yijia Huang
  • 2 edits in trunk

Update yijia's info in constributors
https://bugs.webkit.org/show_bug.cgi?id=239994

Unreviewed.

  • metadata/contributors.json:
8:02 PM Changeset in webkit [293710] by ysuzuki@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Introduce shifting Structure encoding
https://bugs.webkit.org/show_bug.cgi?id=239957

Reviewed by Mark Lam.

For platforms which have limited amount of virtual address space (<= 36 bits), this patch introduces
shifting Structure encoding. We align Structure on a 32-bytes boundary instead of 16 bytes so that
we can ensure that lower 5 bits are zero. Then, we can use 1 bit for nuke, and shifting 4 bits to
convert 36 bit address to 32 bit StructureID. By using this mechanism, we do not need to allocate
large virtual address space for these platforms. If we an address can have more than 36 bits, then
we should just reserve a larger address region since we have enough address space. Current Structure
size is 112 bytes, which is 3.5 atoms at 32 bytes / atom. Hence, this alignment costs us 16 bytes per
Structure.
Relanding with debug build failure & crash on static atomSize assumption in IsoSubspace.

  • ftl/FTLLowerDFGToB3.cpp:

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

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

(JSC::GCClient::IsoSubspace::allocatorFor):

  • heap/IsoSubspaceInlines.h:

(JSC::GCClient::IsoSubspace::allocate):

  • heap/StructureAlignedMemoryAllocator.cpp:

(JSC::StructureMemoryManager::StructureMemoryManager):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitNonNullDecodeStructureID):

  • llint/LLIntOfflineAsmConfig.h:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::JSCell):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/Structure.h:
  • runtime/StructureID.h:

(JSC::StructureID::decode const):
(JSC::StructureID::tryDecode const):
(JSC::StructureID::encode):

  • tools/IntegrityInlines.h:

(JSC::Integrity::auditStructureID):

7:08 PM Changeset in webkit [293709] by Chris Dumez
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WTF/Ref.cpp

Add API tests for ref-counting churn in static_reference_cast<>()
https://bugs.webkit.org/show_bug.cgi?id=239987

Reviewed by Darin Adler.

Add API tests for ref-counting churn in static_reference_cast<>().
This covers the fix made in r293682.

  • Tools/TestWebKitAPI/Tests/WTF/Ref.cpp:

(TestWebKitAPI::TEST):

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

6:55 PM Changeset in webkit [293708] by ysuzuki@apple.com
  • 8 edits in trunk

[JSC] Add ISO8601 based Temporal.PlainDate getters
https://bugs.webkit.org/show_bug.cgi?id=239949

Reviewed by Ross Kirsling and Dean Jackson.

This patch adds missing getters of Temporal.PlainDate. Currently, we are not querying to Calendar.
It will be wired once we bake Calendar completely.

  • JSTests/stress/temporal-plaindate.js:

(print):
(shouldBe):

  • Source/JavaScriptCore/runtime/ISO8601.cpp:

(JSC::ISO8601::dayOfWeek):
(JSC::ISO8601::dayOfYear):
(JSC::ISO8601::weekOfYear):
(JSC::ISO8601::daysInMonth):
(JSC::ISO8601::monthCode):

  • Source/JavaScriptCore/runtime/ISO8601.h:
  • Source/JavaScriptCore/runtime/TemporalPlainDate.cpp:

(JSC::TemporalPlainDate::from):
(JSC::TemporalPlainDate::monthCode const):
(JSC::TemporalPlainDate::dayOfWeek const):
(JSC::TemporalPlainDate::dayOfYear const):
(JSC::TemporalPlainDate::weekOfYear const):

  • Source/JavaScriptCore/runtime/TemporalPlainDate.h:
  • Source/JavaScriptCore/runtime/TemporalPlainDatePrototype.cpp:

(JSC::JSC_DEFINE_CUSTOM_GETTER):

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

6:32 PM Changeset in webkit [293707] by gnavamarino@apple.com
  • 2 edits in trunk/Source/WebKit

Crash in WebKit::ModelElementController::modelElementCreateRemotePreview
https://bugs.webkit.org/show_bug.cgi?id=239985

Reviewed by Dean Jackson.

Add a check before using m_modelElementController, as it's not guaranteed
to be initialized in the constructor, and can be invalidated in WebPageProxy::resetState.

Test: fast/html/model-element-controller-crash.html

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::modelElementGetCamera):
(WebKit::WebPageProxy::modelElementSetCamera):
(WebKit::WebPageProxy::modelElementIsPlayingAnimation):
(WebKit::WebPageProxy::modelElementSetAnimationIsPlaying):
(WebKit::WebPageProxy::modelElementIsLoopingAnimation):
(WebKit::WebPageProxy::modelElementSetIsLoopingAnimation):
(WebKit::WebPageProxy::modelElementAnimationDuration):
(WebKit::WebPageProxy::modelElementAnimationCurrentTime):
(WebKit::WebPageProxy::modelElementSetAnimationCurrentTime):
(WebKit::WebPageProxy::modelElementHasAudio):
(WebKit::WebPageProxy::modelElementIsMuted):
(WebKit::WebPageProxy::modelElementSetIsMuted):
(WebKit::WebPageProxy::takeModelElementFullscreen):
(WebKit::WebPageProxy::modelElementSetInteractionEnabled):
(WebKit::WebPageProxy::modelElementCreateRemotePreview):
(WebKit::WebPageProxy::modelElementLoadRemotePreview):
(WebKit::WebPageProxy::modelElementDestroyRemotePreview):
(WebKit::WebPageProxy::modelElementSizeDidChange):
(WebKit::WebPageProxy::handleMouseDownForModelElement):
(WebKit::WebPageProxy::handleMouseMoveForModelElement):
(WebKit::WebPageProxy::handleMouseUpForModelElement):
(WebKit::WebPageProxy::modelInlinePreviewUUIDs):

5:59 PM Changeset in webkit [293706] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

WebInspector: Improve rendering of GLbitfield in WebGL canvas recordings.
https://bugs.webkit.org/show_bug.cgi?id=239589

Patch by Dan Glastonbury <djg@apple.com> on 2022-05-02
Reviewed by Devin Rousso.

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.bitfieldNamesForParameter.test_and_clear_bit):
(WI.RecordingAction.bitfieldNamesForParameter): Split known
bitfields into an array of valid named representation for each
bit. Unknown bits are returned as hexadecimal formatted string.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._generateDOM.createParameterElement):
(WI.RecordingActionTreeElement._generateDOM): If param has a
non-null, array of strings, render the array as
context.FIELD1|context.FIELD2

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

5:55 PM Changeset in webkit [293705] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.0.7

Tag WebKit-7613.2.7.0.7.

5:53 PM Changeset in webkit [293704] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.1.8

Tag WebKit-7613.2.7.1.8.

5:37 PM Changeset in webkit [293703] by Chris Dumez
  • 22 edits in trunk

Drop some unused StringImpl / AtomStringImpl / AtomString API
https://bugs.webkit.org/show_bug.cgi?id=239912

Reviewed by Yusuke Suzuki.

Simplifies our API a bit and encourages people to write more efficient
code.

  • Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

  • Source/JavaScriptCore/API/JSValue.mm:

(createStructHandlerMap):

  • Source/JavaScriptCore/runtime/CachedTypes.cpp:

(JSC::CachedUniquedStringImplBase::decode const):

  • Source/JavaScriptCore/runtime/Identifier.cpp:

(JSC::Identifier::addLiteral): Deleted.

  • Source/JavaScriptCore/runtime/Identifier.h:

(JSC::Identifier::Identifier):
(JSC::Identifier::add):

  • Source/JavaScriptCore/runtime/ObjectPrototype.cpp:

(JSC::inferBuiltinTag):
(JSC::objectPrototypeToString):

  • Source/JavaScriptCore/runtime/SmallStrings.cpp:

(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::initialize):

  • Source/JavaScriptCore/runtime/SmallStrings.h:
  • Source/WTF/wtf/text/AtomString.h:

(WTF::AtomString::AtomString):

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

(WTF::CStringTranslator::hash): Deleted.
(WTF::CStringTranslator::equal): Deleted.
(WTF::CStringTranslator::translate): Deleted.

  • Source/WTF/wtf/text/AtomStringImpl.h:
  • Source/WTF/wtf/text/StringImpl.cpp:
  • Source/WTF/wtf/text/StringImpl.h:

(WTF::StringImpl::create):
(WTF::StringImpl::createFromCString):
(WTF::lengthOfNullTerminatedString): Deleted.

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

(WTF::String::String):

  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

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

5:04 PM Changeset in webkit [293702] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[ iOS ][ macOS ] css3/calc/transitions-dependent.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=239990

Unreviewed test gardening.

  • LayoutTests/platform/ios-simulator/TestExpectations:
  • LayoutTests/platform/mac/TestExpectations:

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

5:01 PM Changeset in webkit [293701] by Chris Dumez
  • 31 edits in trunk/Source

Move starAtom() / xmlAtom() / xmlnsAtom() from WTF to WebCore https://bugs.webkit.org/show_bug.cgi?id=239969

Reviewed by Darin Adler.

Move starAtom() / xmlAtom() / xmlnsAtom() from WTF to WebCore since
they are not useful outside WebCore.

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

(WTF::AtomString::init):

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

(WTF::emptyAtom):
(WTF::starAtom): Deleted.
(WTF::xmlAtom): Deleted.
(WTF::xmlnsAtom): Deleted.

  • Source/WebCore/css/CSSPageRule.cpp:
  • Source/WebCore/css/CSSSelector.cpp:
  • Source/WebCore/css/CSSSelectorList.cpp:
  • Source/WebCore/css/SelectorChecker.cpp:
  • Source/WebCore/css/SelectorFilter.cpp:
  • Source/WebCore/css/StyleSheetContents.cpp:
  • Source/WebCore/css/parser/CSSSelectorParser.cpp:
  • Source/WebCore/cssjit/SelectorCompiler.cpp:
  • Source/WebCore/dom/Attr.cpp:
  • Source/WebCore/dom/Attribute.h:
  • Source/WebCore/dom/ContainerNode.cpp:
  • Source/WebCore/dom/Node.cpp:
  • Source/WebCore/dom/NodeRareData.h:
  • Source/WebCore/dom/QualifiedName.cpp:
  • Source/WebCore/dom/SelectorQuery.cpp:
  • Source/WebCore/dom/TagCollection.h:
  • Source/WebCore/editing/MarkupAccumulator.cpp:
  • Source/WebCore/html/LabelableElement.cpp:
  • Source/WebCore/html/LabelsNodeList.cpp:
  • Source/WebCore/html/parser/HTMLTreeBuilder.cpp:
  • Source/WebCore/platform/CommonAtomStrings.h:
  • Source/WebCore/style/PageRuleCollector.cpp:
  • Source/WebCore/style/RuleData.cpp:
  • Source/WebCore/style/RuleFeature.h:
  • Source/WebCore/style/RuleSet.cpp:
  • Source/WebCore/xml/NativeXPathNSResolver.cpp:
  • Source/WebCore/xml/XPathStep.cpp:
  • Source/WebCore/xml/parser/XMLDocumentParser.cpp:
  • Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:

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

4:33 PM Changeset in webkit [293700] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[Quirks] REGRESSION (r286874): Menu is Cut Off After Pressing Search Icon on Hotels.com
https://bugs.webkit.org/show_bug.cgi?id=239980
<rdar://91992835>

Reviewed by Simon Fraser.

Disable resolution media query on www.hotels.com.

  • css/MediaQueryEvaluator.cpp:

(WebCore::resolutionEvaluate):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldUseResolutionMedia const):

  • page/Quirks.h:
4:25 PM Changeset in webkit [293699] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/92617943

4:11 PM Changeset in webkit [293698] by Alan Coon
  • 3 edits in branches/safari-613.2.7.1-branch/Source/WebKit

Apply patch. rdar://problem/92617943

4:04 PM Changeset in webkit [293697] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Revert all use of _setPrivacyProxyFailClosedForUnreachableNonMainHosts
https://bugs.webkit.org/show_bug.cgi?id=239977
<rdar://92617943>

Reviewed by John Wilander.

Due to what is likely confusion about internal integration processes,
the powers that be have decided that the best course of action for now
is to restore the status quo and accept any consequences that may entail.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::createWebSocketTask):

4:04 PM Changeset in webkit [293696] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.11.5

Tag WebKit-7614.1.11.5.

4:01 PM Changeset in webkit [293695] by Alan Coon
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.8

4:01 PM Changeset in webkit [293694] by Russell Epstein
  • 9 edits in branches/safari-614.1.11-branch/Source

Versioning.

WebKit-7614.1.11.5

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

[JSC] Fix ASan crash due to CString ownership
https://bugs.webkit.org/show_bug.cgi?id=239981

Reviewed by Darin Adler and Mark Lam.

We need to ensure that CString is kept alive.

  • runtime/JSDateMath.cpp:

(JSC::DateCache::timeZoneDisplayName):

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

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

Apply patch. rdar://problem/92617943

3:48 PM Changeset in webkit [293691] by achristensen@apple.com
  • 8 edits in trunk/LayoutTests/imported/w3c

Update some wpt tests with control characters in cookies
https://bugs.webkit.org/show_bug.cgi?id=239966
<rdar://92300855>

Reviewed by Chris Dumez.

This reflects a change in https://github.com/httpwg/http-extensions/issues/1531

  • web-platform-tests/cookies/name/name-ctl-expected.txt:
  • web-platform-tests/cookies/name/name-ctl.html:
  • web-platform-tests/cookies/resources/cookie-test.js:
  • web-platform-tests/cookies/value/value-ctl-expected.txt:
  • web-platform-tests/cookies/value/value-ctl.html:
  • web-platform-tests/html/dom/documents/resource-metadata-management/document-cookie-expected.txt:
  • web-platform-tests/html/dom/documents/resource-metadata-management/document-cookie.html:
3:46 PM Changeset in webkit [293690] by Russell Epstein
  • 9 edits in branches/safari-613.2.7.0-branch/Source

Versioning.

WebKit-7613.2.7.0.7

3:35 PM Changeset in webkit [293689] by Oriol Brufau
  • 11 edits in trunk

[cssom] Don't index 'all' shorthand in computed styles
https://bugs.webkit.org/show_bug.cgi?id=239669

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Computed styles should provide getters for both longhands and shorthands,
but only the former should be indexed.

However, the 'all' shorthand was being indexed as if it was a longhand.

Tests: imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html

imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html

  • css/makeprop.pl:

(skippedFromComputedStyle):

LayoutTests:

Update test expectations.

  • platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
3:33 PM Changeset in webkit [293688] by Justin Michaud
  • 4 edits in trunk/Source

Add option to JSC shell to wait for a USR2 signal before exiting to aid in collection of vmmaps
https://bugs.webkit.org/show_bug.cgi?id=239919

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • jsc.cpp:

(main):

Source/WTF:

  • wtf/threads/Signals.h:

(WTF::toSystemSignal):

3:22 PM Changeset in webkit [293687] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.11.4

Tag WebKit-7614.1.11.4.

3:19 PM Changeset in webkit [293686] by Russell Epstein
  • 9 edits in branches/safari-614.1.11-branch/Source

Versioning.

WebKit-7614.1.11.4

2:56 PM Changeset in webkit [293685] by commit-queue@webkit.org
  • 13 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r293680.
https://bugs.webkit.org/show_bug.cgi?id=239983

crash on iOS

Reverted changeset:

"[JSC] Introduce shifting Structure encoding"
https://bugs.webkit.org/show_bug.cgi?id=239957
https://commits.webkit.org/r293680

2:52 PM Changeset in webkit [293684] by Devin Rousso
  • 4 edits
    3 adds in trunk

[Modern Media Controls] REGRESSION(?) tapping a video to start playing for the first time doesn't start playing
https://bugs.webkit.org/show_bug.cgi?id=239918
<rdar://problem/91329117>

Reviewed by Jer Noble.

Source/WebCore:

This happens on iOS because the <video> has a GestureRecognizer that will attempt to
play(), and then the PlayPauseButton (which also has a GestureRecognizer) will attempt
to togglePlayback() (via PlaybackSupport), which will pause() because the <video> is
not paused.

When a <video> is play() for the first time, it may not actually start playing for a
moment (e.g. buffering) even though it will say it's paused.

Test: media/modern-media-controls/ios-inline-media-controls/touch/ios-inline-media-controls-shows-start-button.html

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

(MediaController.prototype.togglePlayback):
Also check hasPlayed to decide whether to play() or pause(), as it's set when the first
"play" event is handled, as until then we're still not playing yet and should play().

This could also be fixed in PlaybackSupport (and/or StartSupport), but doing it in
togglePlayback is a more general solution that fixes all present (and future) callsites.

LayoutTests:

  • media/modern-media-controls/ios-inline-media-controls/touch/ios-inline-media-controls-shows-start-button.html: Added.
  • media/modern-media-controls/ios-inline-media-controls/touch/ios-inline-media-controls-shows-start-button-expected.txt: Added.
2:18 PM Changeset in webkit [293683] by Chris Dumez
  • 8 edits
    1 add in trunk/Source/WebKit

Use a strongly typed identifier for requests to mark surfaces as volatile
https://bugs.webkit.org/show_bug.cgi?id=239974

Reviewed by Simon Fraser.

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfacesVolatile):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Source/WebKit/Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Source/WebKit/Shared/MarkSurfacesAsVolatileRequestIdentifier.h: Added.
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):
(WebKit::RemoteRenderingBackendProxy::didMarkLayersAsVolatile):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:

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

1:31 PM Changeset in webkit [293682] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/Ref.h

static_reference_cast(const Ref<X, Y>&) causes unnecessary ref-counting churn
https://bugs.webkit.org/show_bug.cgi?id=239970

Reviewed by Geoffrey Garen.

This function was calling copyRef() to get a non-const Ref<> and then calling Ref::get() to construct a
new Ref<> of the destination type. The copyRef() would increase the ref count by 1, constructing the
new destination Ref<> would increase the ref count by 1 again and then the temporary Ref going out of
scope would decrease the ref count by one.

We now call static_reference_cast(Ref<X, Y>&&) with the result of the copyRef(), which will leak
the pointer from the Ref<> and adopt it in the destination Ref, thus avoiding unnecessary churn.

Also drop the static_reference_cast(Ref<X, Y>&) overload as it is no longer more efficient than the
static_reference_cast(const Ref<X, Y>&) one.

  • Source/WTF/wtf/Ref.h:

(WTF::static_reference_cast):

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

1:29 PM Changeset in webkit [293681] by Wenson Hsieh
  • 10 edits
    1 add in trunk

[macOS] The "Markup Image" services menu item should be gated on image analysis results
https://bugs.webkit.org/show_bug.cgi?id=239933
rdar://92348202

Reviewed by Kate Cheney.

Source/WebKit:

Adjust some macOS-specific logic for appending the "Markup Image" menu item in the services menu, such that we
only add this new item in the case where the relevant image analysis APIs come back with a valid cropped image
result. See below for more details.

Test: ImageAnalysisTests.MarkupImageItemInServicesMenu

  • UIProcess/WebContextMenuProxy.h:

(WebKit::WebContextMenuProxy::croppedImageResult const):

Move m_croppedImageForContextMenu into WebContextMenuProxyMac as m_croppedImageResult, so that it can be
easily used for both the new "Copy Cropped Image" and "Markup Image" items. This also allows us to simplify some
logic for resetting this cached image result since the whole m_activeContextMenu is always destroyed upon
presenting a context menu, so there's no need to separately clear out m_croppedImageResult.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::showContextMenu):

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

(WebKit::WebContextMenuProxyMac::setupServicesMenu):
(WebKit::WebContextMenuProxyMac::appendMarkupItemToControlledImageMenuIfNeeded):

Pull this logic out into a separate helper method, and change it so that:

  • We run the image analysis prior to creating and adding the item.
  • Only add the item if the image analysis returned a non-null CGImageRef.
  • Store the CGImageRef on m_croppedImageResult, for use if the menu item is invoked.

(WebKit::WebContextMenuProxyMac::applyMarkupToControlledImage):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::handleContextMenuCopyCroppedImage):
(WebKit::WebPageProxy::setCroppedImageForContextMenu): Deleted.

Tools:

Add an API test to simulate clicking on the services menu button in an attachment-backed image element while
swizzling the relevant image analysis APIs to return a valid CGImageRef; verify that the "Markup Image" menu
item eventually shows up.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::createWebViewWithTextRecognitionEnhancements):
(TestWebKitAPI::iconImage):

Make this testing helper function work on both macOS and iOS.

(TestWebKitAPI::TEST):
(TestWebKitAPI::runMarkupTest):

  • TestWebKitAPI/Tests/WebKitCocoa/image-controls.html: Added.
1:15 PM Changeset in webkit [293680] by ysuzuki@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

[JSC] Introduce shifting Structure encoding
https://bugs.webkit.org/show_bug.cgi?id=239957

Reviewed by Mark Lam.

For platforms which have limited amount of virtual address space (<= 36 bits), this patch introduces
shifting Structure encoding. We align Structure on a 32-bytes boundary instead of 16 bytes so that
we can ensure that lower 5 bits are zero. Then, we can use 1 bit for nuke, and shifting 4 bits to
convert 36 bit address to 32 bit StructureID. By using this mechanism, we do not need to allocate
large virtual address space for these platforms. If we an address can have more than 36 bits, then
we should just reserve a larger address region since we have enough address space. Current Structure
size is 112 bytes, which is 3.5 atoms at 32 bytes / atom. Hence, this alignment costs us 16 bytes per
Structure.

  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

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

  • Source/JavaScriptCore/heap/Heap.cpp:
  • Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp:
  • Source/JavaScriptCore/jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitNonNullDecodeStructureID):

  • Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h:
  • Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:
  • Source/JavaScriptCore/runtime/JSCConfig.h:
  • Source/JavaScriptCore/runtime/JSCell.h:

(JSC::JSCell::atomSize):

  • Source/JavaScriptCore/runtime/Structure.h:

(JSC::Structure::atomSize):

  • Source/JavaScriptCore/runtime/StructureID.h:

(JSC::StructureID::decode const):
(JSC::StructureID::tryDecode const):
(JSC::StructureID::encode):

  • Source/JavaScriptCore/tools/IntegrityInlines.h:

(JSC::Integrity::auditStructureID):

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

1:15 PM Changeset in webkit [293679] by youenn@apple.com
  • 12 edits in trunk

Cancel response stream if load is being cancelled by the web page
https://bugs.webkit.org/show_bug.cgi?id=239968

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https-expected.txt:

Source/WebCore:

Add a cancel callback and use it to get the fetch client cancelling notification
to cancel the response body stream or response body load.

Covered by rebased test.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::cancelStream):

  • Modules/fetch/FetchResponse.h:
  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::cancel):

  • bindings/js/ReadableStream.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):

  • workers/service/context/ServiceWorkerFetch.h:

Source/WebKit:

Use the cancel callback to pipe the order to cancel the stream.

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::cancel):
(WebKit::WebServiceWorkerFetchTaskClient::setCancelledCallback):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
1:06 PM Changeset in webkit [293678] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.11.3

Tag WebKit-7614.1.11.3.

12:56 PM Changeset in webkit [293677] by Russell Epstein
  • 9 edits in branches/safari-614.1.11-branch/Source

Versioning.

WebKit-7614.1.11.3

12:46 PM Changeset in webkit [293676] by youenn@apple.com
  • 6 edits in trunk

PWA in iOS use old assets after publish new servicerWorker/assets
https://bugs.webkit.org/show_bug.cgi?id=199110
<rdar://problem/51992077>

Reviewed by Chris Dumez.

Source/WebCore:

In case a service worker is updated, its state will be waiting until activated.
In case we suspend clients and network process, the newly installed service worker wil remain waiting.
We will wait for the service worker to get activated when network process gets unsuspended, which might not happen if the network process gets stopped by the OS.
To prevent this, we now update the service worker registration as soon as the service worker install job is finished.
The migration from waiting to activated upon network process crash is not ideal: in theory we should fire an activate event on the waiting service worker.
That said, this is still somehow allowed, as failing to activate (say if service worker process is crashing when handling the event) is allowed.

Covered by new API test.

  • workers/service/server/SWServer.cpp:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:
12:44 PM Changeset in webkit [293675] by achristensen@apple.com
  • 2 edits in trunk/Source/WebGPU

Fix tvOS build
https://bugs.webkit.org/show_bug.cgi?id=239973
<rdar://problem/92599361>

  • WebGPU/HardwareCapabilities.mm:
12:15 PM Changeset in webkit [293674] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebGPU

[WebGPU] [tvOS] Neither MTLGPUFamilyApple6 nor MTLGPUFamilyApple7 exist on tvOS
https://bugs.webkit.org/show_bug.cgi?id=239973
<rdar://problem/92599361>

Unreviewed build fix.

  • WebGPU/HardwareCapabilities.mm:

(WebGPU::rawHardwareCapabilities):

12:12 PM Changeset in webkit [293673] by Ziran Sun
  • 5 edits in trunk

[selection] Set correct selection range for TEXTAREA when updating default value
https://bugs.webkit.org/show_bug.cgi?id=237525

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-extra-expected.txt:

Source/WebCore:

Updating defaultValue should keep selectionStart/End. We need clamp them if the new value is shorter than the
selectionStart/End. This change is to be in line with [1] & [2].

[1] https://html.spec.whatwg.org/multipage/form-elements.html#the-textarea-element:dom-textarea-defaultvalue-2
[2] https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#textFieldSelection:concept-textarea/input-relevant-value

Part of this change is an import of Chromium CL at
https://github.com/chromium/chromium/commit/bb27a500d07f8b3c567e84857a40c3ce42fa454a

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::childrenChanged):
(WebCore::HTMLTextAreaElement::setValueCommon):

  • html/HTMLTextFormControlElement.h:
12:01 PM Changeset in webkit [293672] by Fujii Hironori
  • 3 edits
    2 adds in trunk

HTML Parser: Wrong column number in CR-LF line ending style (DOS EOL style) HTML files
https://bugs.webkit.org/show_bug.cgi?id=239947

Reviewed by Myles C. Maxfield.

Source/WebCore:

JS stack trace reported wrong column numbers in CR-LF line ending
HTML files. m_numberOfCharactersConsumedPriorToCurrentLine was the
number of characters included the preceding CR but the following
LF in those files.

In SegmentedString::advance, startNewLine() is called after
decrementing m_currentSubstring.length. In
SegmentedString::advancePastNewline, however, startNewLine() was
called before calling decrementAndCheckLength(). startNewLine()
should be called after decrementing.

Test: js/dom/line-column-numbers-cr-lf.html

  • platform/text/SegmentedString.h:

(WebCore::SegmentedString::advancePastNewline):
Call startNewLine() after decrementAndCheckLength() is called.

LayoutTests:

  • js/dom/line-column-numbers-cr-lf-expected.txt: Added.
  • js/dom/line-column-numbers-cr-lf.html: Added.
11:35 AM Changeset in webkit [293671] by eric.carlson@apple.com
  • 4 edits
    1 add in trunk

[Cocoa] Allow more mime types in captive portal mode
https://bugs.webkit.org/show_bug.cgi?id=239859
rdar://91830683

Reviewed by Brent Fulgham.

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKit/cocoa/start-offset.ts: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::runVideoTest):
(TestWebKitAPI::testTransportStreamBytes):
(TestWebKitAPI::TEST):

11:05 AM Changeset in webkit [293670] by Oriol Brufau
  • 13 edits
    1 delete in trunk

[cssom] Enumerate all logical longhands in the computed style
https://bugs.webkit.org/show_bug.cgi?id=239910

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

Bug 210695 made computed styles enumerate most logical longhands, but
only the ones thefined in the css-logical spec were included. Other
specs, like css-scroll-snap, can also define logical longhands.

This patch fixes the logic, and instead of checking the spec, it checks
the "logical-property-group" field.

Tests: imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html

imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html
imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree.html

  • css/makeprop.pl:

(isLogical):

LayoutTests:

Update test expectations.
all-prop-initial-xml-expected.txt for ios was clearly outdated, so just
removing it.

  • platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
10:21 AM Changeset in webkit [293669] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.11.2

Tag WebKit-7614.1.11.2.

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

Versioning.

WebKit-7614.1.11.2

9:57 AM Changeset in webkit [293667] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] log should support ranges
https://bugs.webkit.org/show_bug.cgi?id=239510
<rdar://problem/92031167>

Reviewed by Ryan Haddad.

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

(FilteredCommand.replace): Break logic converting a substring into a revision or hash into a function.
(FilteredCommand.main): If an argument can be split by ..., convert it's substrings into revisions/hashes.

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

9:52 AM Changeset in webkit [293666] by Angelos Oikonomopoulos
  • 2 edits in trunk/JSTests

new-largeish-contiguous-array-with-size.js: pick up leakFactor
https://bugs.webkit.org/show_bug.cgi?id=239963

Unreviewed gardening.

The @ directives are implemented imperatively, so requireOptions
only has any effect if it precedes the run* statement. Also,
s/var leakFactor/leakFactor/ to avoid running into this:

Exception: SyntaxError: Can't create duplicate variable: 'leakFactor'

With this fix, the leakFactor works as intended -- no failures in 200+
iterations.

  • stress/new-largeish-contiguous-array-with-size.js:
9:29 AM Changeset in webkit [293665] by youenn@apple.com
  • 7 edits in trunk

Register shared workers as service worker clients
https://bugs.webkit.org/show_bug.cgi?id=239846

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt:

Source/WebCore:

Make sure to register shared workers as service worker clients at launch time or when recreating the network process connection.

Covered by rebased test.

  • workers/shared/context/SharedWorkerThread.cpp:
  • workers/shared/context/SharedWorkerThreadProxy.cpp:
  • workers/shared/context/SharedWorkerThreadProxy.h:
9:15 AM Changeset in webkit [293664] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

VPIO requires the same sample rate for microphone and speaker formats
https://bugs.webkit.org/show_bug.cgi?id=239956

Reviewed by Eric Carlson.

VPIO requires the speaker sample rate and microphone sample rate to be the same.
This is not guaranteed to be true : getUserMedia/applyConstraints may set the microphone sample rate to different values.
If audio rendering already started at capture start time, we use the audio rendering sample rate.
This is not strictly compliant, given required constraints but they are not widely used.
Applications that want to make sure to use a specific sample rate would need to pause audio rendering when starting to capture.
We reset exposed settings when starting to capture to expose the actual sample rate to JavaScript through MediaStreamTrack.getSettings().

Manually tested.

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:
8:55 AM Changeset in webkit [293663] by Wenson Hsieh
  • 8 edits in trunk

[iOS] Add support for the "Markup Image" action when right clicking an image in editable content
https://bugs.webkit.org/show_bug.cgi?id=239948
rdar://92064672

Reviewed by Tim Horton.

Source/WebKit:

Insert a "Markup Image" menu action when right clicking an editable image element on iPad via trackpad, but only
when the image has relevant image analysis markup results. See below for more details.

Test: ImageAnalysisTests.MarkupImageUsingContextMenu

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

(-[WKContentView prepareSelectionForContextMenuWithLocationInView:completionHandler:]):

In the case where a single image is selected in editable content, make this method additionally wait until we've
finished analyzing the selected image, such that the subsequent call to -buildMenuForWebViewWithBuilder: which
populates items in the right click context menu will include the "Markup Image" item if there are relevant
results.

(-[WKContentView buildMenuForWebViewWithBuilder:]):

Also move the location of this item to before the Format (B/I/U) menu items in both the callout bar and the
editing context menu.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::prepareSelectionForContextMenuWithLocationInView):

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

(WebKit::WebPage::prepareSelectionForContextMenuWithLocationInView):

In the case where an image element is clicked, just select the image element instead of trying to detect a
nearby word or link. We also immediately send a full editor state update here, such that the editor state's
selectedEditableImage will be up to date when the completion handler in the UI process is invoked.

Tools:

Add an API test to verify that the "Markup Image" is included in the context menu when right clicking an image
element inside an editable web view.

  • TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:

(TestWebKitAPI::simulateEditContextMenuAppearance):
(TestWebKitAPI::TEST):

8:08 AM Changeset in webkit [293662] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

REGRESSION: fast/css/stylesheet-candidate-nodes-crash.xhtml is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=239960
rdar://92293472

Reviewed by Alan Bujtas.

XML parser update has changed error reporting output slightly.
Remove the error report from the test output since testing that is not the purpose of this test.

  • fast/css/stylesheet-candidate-nodes-crash-expected.txt:
  • fast/css/stylesheet-candidate-nodes-crash.xhtml:
3:56 AM Changeset in webkit [293661] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][Debug] media-recorder tests hitting an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=239942

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

Delay the track observing stopping until InternalSources are destroyed. Doing so during
PAUSED->READY was not safe in MediaRecording pipelines, because the transcoder changes its
state from a secondary thread.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcChangeState):

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

2:31 AM Changeset in webkit [293660] by commit-queue@webkit.org
  • 4 edits in trunk

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

Patch by Michael Catanzaro <Michael Catanzaro> on 2022-05-02
Reviewed by Adrian Perez de Castro.

  • Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings):

  • Source/WebKit/UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsSetProperty):
(webKitSettingsGetProperty):

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

May 1, 2022:

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

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

Reviewed by Darin Adler.

Source/WebCore:

-- IOSurfacePool will be RefCounted.

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

of the CreationContext to ImageBufferIOSurfaceBackend constructor.

-- ImageBufferIOSurfaceBackend will hold a RefPtr<IOSurfacePool>.

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

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

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

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

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::IOSurfacePool::create):

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

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

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h:

Source/WebKit:

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

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

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

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

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

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

  • GPUProcess/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::ioSurfacePool const):

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

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

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

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

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

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

Reviewed by Eric Carlson.

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

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

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

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

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

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

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

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

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

(InlineMediaControls.prototype.layout):

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

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

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

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

Reviewed by Mark Lam.

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

  • Source/JavaScriptCore/bytecode/SpeculatedType.cpp:

(JSC::speculationFromCell):

  • Source/JavaScriptCore/heap/StructureAlignedMemoryAllocator.cpp:

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

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

(JSC::StructureID::tryDecode const):

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

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

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

Reviewed by Darin Adler.

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

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

(PAL::fileSizeDescription):

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

(PAL::fileSizeDescription):

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

(WebCore::IDLString::isNullValue):

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

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

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

(GenerateAttributeGetterBodyDefinition):
(GetAnnotatedIDLType):

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

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

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

(WebCore::consumeFirstValue):

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

(WebCore::MutableStyleProperties::setCustomProperty):

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

(WebCore::CSSParser::parseValueWithVariableReferences):

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

(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):

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

(WebCore::CSSPropertyParserHelpers::consumeFamilyNameRaw):

  • Source/WebCore/dom/DOMImplementation.cpp:

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

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

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

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

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

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

(WebCore::QualifiedName::toAtomString const):

  • Source/WebCore/dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • Source/WebCore/editing/ApplyStyleCommand.cpp:

(WebCore::joinWithSpace):

  • Source/WebCore/editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::inputEventTypeName const):

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

(WebCore::CreateLinkCommand::doApply):

  • Source/WebCore/editing/EditCommand.cpp:

(WebCore::inputTypeNameForEditingAction):

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

(WebCore::StyleChange::extractTextStyles):

  • Source/WebCore/editing/EditingStyle.h:

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

  • Source/WebCore/editing/Editor.cpp:

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

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

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

  • Source/WebCore/editing/MarkupAccumulator.cpp:

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

  • Source/WebCore/editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

  • Source/WebCore/editing/TypingCommand.cpp:

(WebCore::TypingCommand::inputEventTypeName const):

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

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

  • Source/WebCore/editing/markup.cpp:

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

  • Source/WebCore/history/HistoryItem.cpp:

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

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

(WebCore::FTPDirectoryDocumentParser::createTDForFilename):

  • Source/WebCore/html/FileInputType.cpp:

(WebCore::FileInputType::saveFormControlState const):

  • Source/WebCore/html/FormController.cpp:

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

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

(WebCore::HTMLAnchorElement::handleClick):

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

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

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

(WebCore::HTMLCollection::isSupportedPropertyName):

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

(WebCore::HTMLFormControlsCollection::namedItemOrItems const):

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

(WebCore::HTMLFrameElementBase::openURL):

  • Source/WebCore/html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::shouldLoadFrameLazily):

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

(WebCore::HTMLInputElement::updateType):

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

(WebCore::HTMLMapElement::parseAttribute):

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setPreload):

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

(WebCore::HTMLTextAreaElement::saveFormControlState const):

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

(WebCore::HTMLVideoElement::HTMLVideoElement):

  • Source/WebCore/html/HiddenInputType.cpp:

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

  • Source/WebCore/html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

  • Source/WebCore/html/InputType.cpp:

(WebCore::InputType::saveFormControlState const):

  • Source/WebCore/html/MediaDocument.cpp:

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

  • Source/WebCore/html/ModelDocument.cpp:

(WebCore::ModelDocumentParser::createDocumentStructure):

  • Source/WebCore/html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):

  • Source/WebCore/html/TextFieldInputType.cpp:

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

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

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

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

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

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

(WebCore::createForeignAttributesMap):

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

(WebCore::SearchFieldCancelButtonElement::create):

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

(WebCore::AudioTrack::updateKindFromPrivate):

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

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

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

(WebCore::TextTrackCue::setId):

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

(WebCore::TextTrackCue::id const):

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

(WebCore::VideoTrack::updateKindFromPrivate):

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

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

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

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

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

(WebCore::InspectorAuditAccessibilityObject::getComputedProperties):

  • Source/WebCore/inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawRulers):

  • Source/WebCore/inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheetForInlineStyle::setStyleText):

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

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

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

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

  • Source/WebCore/loader/FrameLoader.cpp:

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

  • Source/WebCore/loader/HistoryController.cpp:

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

  • Source/WebCore/loader/PolicyChecker.cpp:

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

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

(WebCore::isCharsetSpecifyingNode):

  • Source/WebCore/platform/Pasteboard.h:

(WebCore::PasteboardWebContentReader::readDataBuffer):

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

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

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

(WebCore::InbandChapterTrackPrivateAVFObjC::processChapters):

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

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

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

(WebCore::Pasteboard::read):

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

(WebCore::RealtimeVideoCaptureSource::RealtimeVideoCaptureSource):

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

(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):

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

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

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

(WebCore::MockDisplayCapturer::MockDisplayCapturer):

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

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

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

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

  • Source/WebCore/style/StyleBuilderCustom.h:

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

  • Source/WebCore/testing/Internals.cpp:

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

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

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

  • Source/WebCore/testing/MockCDMFactory.h:

(WebCore::MockCDMFactory::setSupportedRobustness):

  • Source/WebCore/testing/MockCDMFactory.idl:

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

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

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

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

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

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

Reviewed by Yusuke Suzuki.

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

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

Covered by probing-related unit tests in testmasm.

  • assembler/MacroAssemblerRISCV64.cpp:

(JSC::MacroAssembler::probe):

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

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

Reviewed by Yusuke Suzuki.

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

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

  • assembler/testmasm.cpp:

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

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

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

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

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

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

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

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

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

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

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

Apr 30, 2022:

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

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

Reviewed by Chris Fleizach and Tyler Wilcock.

No new functionality.

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

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::textUnderElement const):

  • accessibility/AccessibilityObject.cpp:

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

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

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

  • accessibility/AccessibilityTableCell.cpp:

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

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::addChildren):

  • accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::relationMap const):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

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

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

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

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

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

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

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

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

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

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

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

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

  • platform/audio/glib/MediaSessionGLib.cpp:

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

  • platform/audio/glib/MediaSessionManagerGLib.h:

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

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

LayoutTests:

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

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

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

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

Reviewed by Antti Koivisto.

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

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalHeight const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::parentBox const):

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

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

Reviewed by Antti Koivisto.

Source/WebCore:

Take partial text overflow into account when computing intrinsic width.

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

  • layout/formattingContexts/inline/InlineFormattingContext.cpp:

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

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

  • layout/formattingContexts/inline/InlineLineBuilder.h:

LayoutTests:

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

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

Reviewed by Antti Koivisto.

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

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

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

  • layout/formattingContexts/inline/InlineLineBuilder.cpp:

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

  • layout/formattingContexts/inline/InlineLineBuilder.h:

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

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

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

Reviewed by Antti Koivisto.

Source/WebCore:

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

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

  • layout/formattingContexts/inline/InlineContentBreaker.cpp:

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

LayoutTests:

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

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

Reviewed by Eric Carlson.

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

  • Source/webrtc/sdk/WebKit/WebKitVP8Decoder.cpp:
  • Source/webrtc/sdk/WebKit/WebKitVP9Decoder.cpp:

Apr 29, 2022:

11:07 PM Changeset in webkit [293642] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r290770): element.scrollIntoViewIfNeeded() scrolls to top even when element is already in viewport
https://bugs.webkit.org/show_bug.cgi?id=238985

Patch by Rob Buis <rbuis@igalia.com> on 2022-04-29
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/scrollintoview-zero-height-item-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scrollintoview-zero-height-item.html: Added.

Source/WebCore:

This mostly reverts to the code as it was before r290770, but adds code to
treat non-intersections as hidden, including zero width/height rects.

Test: imported/w3c/web-platform-tests/css/cssom-view/scrollintoview-zero-height-item.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::getRectToExpose const):

8:37 PM Changeset in webkit [293641] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

The isYahooMail quirk is specific to PLATFORM(IOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=239914

Reviewed by Simon Fraser.

The isYahooMail check is incorrectly guarded by ENABLE(PUBLIC_SUFFIX_LIST) when the only
using this function is guarded by ENABLE(IOS_TOUCH_EVENTS) and PLATFORM(IOS_FAMILY). Use
PLATFORM(IOS_FAMILY) since ENABLE(IOS_TOUCH_EVENTS) implies that anyways.

Fixes an unused function warning for other ports.

  • page/Quirks.cpp:
6:37 PM Changeset in webkit [293640] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ Monterey WK2 ] media/media-source/media-source-webm-vorbis-partial.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239308
rdar://91719356

Patch by Jean-Yves Avenard <jean-yves.avenard@apple.com> on 2022-04-29
Reviewed by Jer Noble.

The test disabled the GPU process, and sandboxing rules prevent from
calling CoreMedia in the content process.

  • media/media-source/media-source-webm-vorbis-partial.html:

# Please populate the above commit message. Lines starting
# with '#' will be ignored

# Reviewed by Jer Noble.

# On branch 239308
# Your branch is ahead of 'origin/main' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# (use "git restore --staged <file>..." to unstage)
# modified: LayoutTests/ChangeLog
#

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

5:47 PM Changeset in webkit [293639] by Chris Dumez
  • 12 edits in trunk

Unreviewed, reverting r293621.

Reverting patch while we fix internal EWS issues, will reland
Source/JavaScriptCore:

after.

Reverted changeset:

https://commits.webkit.org/r293621

Source/WTF:

after

Reverted changeset:

https://commits.webkit.org/r293621

Tools:

after

Reverted changeset:

https://commits.webkit.org/r293621

5:18 PM Changeset in webkit [293638] by Wenson Hsieh
  • 4 edits in trunk

[Mail compose] Images with data URLs should be pasted or dropped as attachments
https://bugs.webkit.org/show_bug.cgi?id=239911
rdar://91658665

Reviewed by Tim Horton.

Source/WebCore:

Effectively revert the changes in r226340, which prevented data-URL and http-family-URL images from being
converted into attachments when pasting or dropping into Mail compose. The original intent behind this change
may have been to save Mail storage space (in the server and in the on-disk cache) by excluding remote images,
but this was changed in r291261 due to being a regression in behavior compared to legacy WebKit compose
behavior, which creates attachments when pasting or dropping both data and remote images.

Furthermore, the space-saving rationale never really made sense for image data URLs, which are encoded in base
64, since this base 64 representation is always going to be larger than the raw binary representation that we
would otherwise use for a normal attachment.

Test: WKAttachmentTests.InsertDataURLImagesAsAttachments

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::shouldReplaceSubresourceURLWithBlobDuringSanitization):

Remove the argument flag enum altogether, and rename this method to clarify that it is just about blob URL
replacement for sanitizing pasted/dropped fragments (rather than attachment replacement).

(WebCore::replaceRichContentWithAttachments):
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentMarkupReader::readHTML):
(WebCore::shouldReplaceSubresourceURL): Deleted.

Tools:

Adjust expectations for an existing API test.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

4:23 PM Changeset in webkit [293637] by Chris Dumez
  • 16 edits in trunk/Source

Reduce usage of std::unique_ptr<HashSet> / std::unique_ptr<HashMap>
https://bugs.webkit.org/show_bug.cgi?id=239903

Reviewed by Yusuke Suzuki.

Reduce usage of std::unique_ptr<HashSet> / std::unique_ptr<HashMap> as HashSet / HashMap
are already essentially pointers. This avoids some unnecessary dereferencing.

  • Source/JavaScriptCore/heap/Heap.cpp:

(JSC::Heap::addCoreConstraints):

  • Source/JavaScriptCore/heap/Heap.h:
  • Source/JavaScriptCore/heap/HeapInlines.h:
  • Source/WebKit/WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:

(WebKit::WebPasteboardOverrides::addOverride):
(WebKit::WebPasteboardOverrides::removeOverride):
(WebKit::WebPasteboardOverrides::overriddenTypes):
(WebKit::WebPasteboardOverrides::getDataForOverride const):

  • Source/WebKit/WebProcess/WebCoreSupport/WebPasteboardOverrides.h:
  • Source/WebCore/Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::recordCreatingDatabase):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::creatingDatabase):
(WebCore::DatabaseTracker::recordDeletingDatabase):
(WebCore::DatabaseTracker::doneDeletingDatabase):
(WebCore::DatabaseTracker::isDeletingDatabase):
(WebCore::DatabaseTracker::canDeleteOrigin):

  • Source/WebCore/Modules/webdatabase/DatabaseTracker.h:
  • Source/WebCore/css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::wrapForDeprecatedCSSOM):
(WebCore::StyleRuleCSSStyleDeclaration::didMutate):
(WebCore::InlineCSSStyleDeclaration::didMutate):

  • Source/WebCore/css/PropertySetCSSStyleDeclaration.h:
  • Source/WebCore/dom/MutationObserver.cpp:

(WebCore::MutationObserver::deliver):

  • Source/WebCore/dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations):
(WebCore::MutationObserverRegistration::isReachableFromOpaqueRoots const):

  • Source/WebCore/dom/MutationObserverRegistration.h:

(WebCore::MutationObserverRegistration::hasTransientRegistrations const):

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

(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):

  • Source/WebCore/rendering/RenderBlock.cpp:

(WebCore::insertIntoTrackedRendererMaps):
(WebCore::removeFromTrackedRendererMaps):
(WebCore::removeBlockFromPercentageDescendantAndContainerMaps):

  • Source/WebCore/style/StyleScope.cpp:

(WebCore::Style::Scope::updateActiveStyleSheets):
(WebCore::Style::Scope::activeStyleSheetsContains const):

  • Source/WebCore/style/StyleScope.h:

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

4:15 PM Changeset in webkit [293636] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

[GPUProcess] Stop using a synchronous IPC for marking layers as volatile
https://bugs.webkit.org/show_bug.cgi?id=239901
<rdar://91663593>

Reviewed by Geoffrey Garen.

Stop using a synchronous IPC to the GPUProcess for marking layers as volatile. Instead,
use an asynchronous IPC for the request and another asynchronous one for the response.
Ideally, we'd be using a sendWithAsyncReply(), like the FIXME comment in the code
suggested. However, this is not supported yet by our new "streaming" IPC.

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::markSurfacesVolatile):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::markSurfacesVolatile):
(WebKit::RemoteRenderingBackendProxy::didMarkLayersAsVolatile):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.messages.in:
  • Source/WebKit/WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::tryMarkLayersVolatileCompletionHandler):

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

3:54 PM Changeset in webkit [293635] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

increase transient activation duration to 5s
https://bugs.webkit.org/show_bug.cgi?id=239832

Reviewed by Geoffrey Garen.

This matches other user agents and gives a bit more time for asynchronous work to be done.

Spec: <https://html.spec.whatwg.org/multipage/interaction.html#transient-activation-duration>

  • page/DOMWindow.cpp:
3:40 PM Changeset in webkit [293634] by Alan Coon
  • 19 edits in branches/safari-613-branch/Source

Cherry-pick r287877. rdar://problem/92357915

Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
  • wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the JSC::OptimizingCallLinkInfo type.

Source/WebCore:

No new tests needed.

  • Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
  • Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward declaration for the WebCore::ScriptExecutionContext type.
  • animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
  • animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
  • html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
  • platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
  • rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
  • rendering/svg/RenderSVGForeignObject.cpp: Ditto.
  • rendering/svg/RenderSVGInline.cpp: Ditto.
  • rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
  • rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
  • svg/SVGViewElement.cpp: Add missing RenderElement.h header.
  • workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.

Source/WebKit:

  • Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now unneeded ArgumentCoders.h header.

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

3:40 PM Changeset in webkit [293633] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r293481.
https://bugs.webkit.org/show_bug.cgi?id=239908

Introduced perf regression

Reverted changeset:

"Adjust what we consider to be private relayed"
https://bugs.webkit.org/show_bug.cgi?id=239784
https://commits.webkit.org/r293481

3:26 PM Changeset in webkit [293632] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.11.1

Tag WebKit-7614.1.11.1.

2:50 PM Changeset in webkit [293631] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Regression(r267038) Import a timeline does not render the timeline, only lists the events
https://bugs.webkit.org/show_bug.cgi?id=239872

Reviewed by Devin Rousso.

Two issues existed after r267038 that prevented the timeline overview from rendering correctly for imported
recordings. The first is that the timeline view itself was not visible as the result of assuming that we would
already be in middle of layout when inside WI.TimelineRecordingContentView.prototype._updateTimes, which isn't
true for the updating of times when importing a recording. In that case, syncronously attempting to lay out the
view means that the layout, including initial layout, will be performed before the view is attached, which means
we are unable to get the clientWidth of the view's element during layout, which in turn prevents us from
painting the timeline ruler.

The second issue is that when importing a timeline, we should ignore the current capturing state when setting
the current, start, and end times, otherwise not all the values will be kept.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype._updateTimes):

2:38 PM Changeset in webkit [293630] by Alan Coon
  • 2 edits in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy

Corrected spelling of edited in webkitscmpy.

1:05 PM Changeset in webkit [293629] by ysuzuki@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

[JSC] Use FixedVector in JumpReplacements and VariableEventStream
https://bugs.webkit.org/show_bug.cgi?id=239892

Reviewed by Mark Lam.

  1. Introduce DFG::VariableEventStreamBuilder. And construct DFG::VariableEventStream from that

builder when finailizing code generation. We also make it FixedVector.

  1. Use FixedVector for JumpReplacements.
  • Source/JavaScriptCore/dfg/DFGCommonData.cpp:

(JSC::DFG::CommonData::shrinkToFit):

  • Source/JavaScriptCore/dfg/DFGCommonData.h:
  • Source/JavaScriptCore/dfg/DFGGenerationInfo.h:

(JSC::DFG::GenerationInfo::noticeOSRBirth):
(JSC::DFG::GenerationInfo::use):
(JSC::DFG::GenerationInfo::spill):
(JSC::DFG::GenerationInfo::setSpilled):
(JSC::DFG::GenerationInfo::fillGPR):
(JSC::DFG::GenerationInfo::fillJSValue):
(JSC::DFG::GenerationInfo::fillCell):
(JSC::DFG::GenerationInfo::fillInt32):
(JSC::DFG::GenerationInfo::fillInt52):
(JSC::DFG::GenerationInfo::fillStrictInt52):
(JSC::DFG::GenerationInfo::fillBoolean):
(JSC::DFG::GenerationInfo::fillDouble):
(JSC::DFG::GenerationInfo::fillStorage):
(JSC::DFG::GenerationInfo::appendBirth):
(JSC::DFG::GenerationInfo::appendFill):
(JSC::DFG::GenerationInfo::appendSpill):

  • Source/JavaScriptCore/dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::shrinkToFit):
(JSC::DFG::JITCode::reconstruct):

  • Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
(JSC::DFG::JITCompiler::exceptionCheck):

  • Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h:

(JSC::DFG::SlowPathGenerator::SlowPathGenerator):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::speculationCheck):
(JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
(JSC::DFG::SpeculativeJIT::addSlowPathGeneratorLambda):
(JSC::DFG::SpeculativeJIT::fillStorage):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compileInByVal):
(JSC::DFG::SpeculativeJIT::compileHasPrivate):
(JSC::DFG::SpeculativeJIT::noticeOSRBirth):
(JSC::DFG::SpeculativeJIT::compileMovHint):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compilePutByVal):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::finalizeEventStream):
(JSC::DFG::SpeculativeJIT::use):
(JSC::DFG::SpeculativeJIT::spill):
(JSC::DFG::SpeculativeJIT::recordSetLocal):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compileGetByVal):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillJSValue):
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateInt52):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::fillSpeculateBigInt32):
(JSC::DFG::SpeculativeJIT::compileGetByVal):
(JSC::DFG::SpeculativeJIT::compile):

  • Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStreamBuilder::logEvent):
(JSC::DFG::VariableEventStream::reconstruct const):
(JSC::DFG::VariableEventStream::logEvent): Deleted.

  • Source/JavaScriptCore/dfg/DFGVariableEventStream.h:

(JSC::DFG::VariableEventStream::VariableEventStream):
(JSC::DFG::VariableEventStreamBuilder::appendAndLog):
(JSC::DFG::VariableEventStreamBuilder::size const):
(JSC::DFG::VariableEventStreamBuilder::finalize):
(JSC::DFG::VariableEventStream::appendAndLog): Deleted.

  • Source/JavaScriptCore/ftl/FTLLink.cpp:

(JSC::FTL::link):

  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

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

  • Source/JavaScriptCore/ftl/FTLState.h:

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

12:41 PM Changeset in webkit [293628] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r293591.
https://bugs.webkit.org/show_bug.cgi?id=239907

Did not resolve perf issue

Reverted changeset:

"Set top origin of CORS preflight requests"
https://bugs.webkit.org/show_bug.cgi?id=239869
https://commits.webkit.org/r293591

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

Update toExistingAtomString() to return an AtomString
https://bugs.webkit.org/show_bug.cgi?id=239904

Reviewed by Darin Adler.

Update toExistingAtomString() to return an AtomString instead of a RefPtr<AtomStringImpl>
as it is a bit less awkward to use.

  • Source/JavaScriptCore/dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/jit/JITOperations.cpp:

(JSC::getByVal):
(JSC::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:

(JSC::LLInt::getByVal):

  • Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):

  • Source/JavaScriptCore/runtime/JSString.h:

(JSC::JSString::toExistingAtomString const):

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

(WTF::StringView::toExistingAtomString const):

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

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

  • Source/WebCore/dom/TreeScope.cpp:

(WebCore::TreeScope::getElementById const):

  • Source/WebCore/platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::loadResourceSynchronously):

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

12:25 PM Changeset in webkit [293626] by Simon Fraser
  • 2 edits in trunk/Tools

REGRESSION (249864@main): [ iOS ] TestWebKitAPI.ScrollViewScrollabilityTests.ScrollableWithOverflowHiddenAndShrunkUI is failing
https://bugs.webkit.org/show_bug.cgi?id=239867

Reviewed by Sam Weinig.

Use values that are representative of iPhone 8, which is the model used for running
API tests.

  • TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm:

(TestWebKitAPI::TEST):

11:55 AM Changeset in webkit [293625] by yurys@chromium.org
  • 20 edits
    2 adds in trunk

Format time zone name using ICU instead of platform calls
https://bugs.webkit.org/show_bug.cgi?id=239865

Reviewed by Yusuke Suzuki.

JSTests:

Added new tests that ensure Date's timezone is formatted using preferred
language.

  • complex.yaml:
  • complex/timezone-format-de.js: Added.

(shouldBe):

  • complex/timezone-format-en.js: Added.

(shouldBe):

Source/JavaScriptCore:

formatDateTime now uses cached display name of the timezone.

  • runtime/DateConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/DateConversion.cpp:

(JSC::formatDateTime):

  • runtime/DateConversion.h:
  • runtime/DatePrototype.cpp:

(JSC::formateDateInstance):

  • runtime/JSDateMath.cpp:

(JSC::toICUTimeZone): Encapsulate bitwise_cast into typesafe functions.
(JSC::toOpaqueICUTimeZone):
(JSC::OpaqueICUTimeZoneDeleter::operator()):
(JSC::DateCache::calculateLocalTimeOffset):
(JSC::DateCache::defaultTimeZone):
(JSC::DateCache::timeZoneDisplayName): Both standard and daylight names are computed
once on the first access as ICU methods internally acquire locks.
(JSC::DateCache::timeZoneCacheSlow):
(JSC::DateCache::resetIfNecessary):

  • runtime/JSDateMath.h:

LayoutTests:

Rebased existing layout tests to reflect new format (which is the same as in other
browsers now).

  • storage/indexeddb/modern/date-basic-expected.txt:
  • storage/indexeddb/modern/date-basic-private-expected.txt:
  • storage/indexeddb/modern/get-keyrange-expected.txt:
  • storage/indexeddb/modern/get-keyrange-private-expected.txt:
  • storage/indexeddb/modern/idbobjectstore-delete-1-expected.txt:
  • storage/indexeddb/modern/idbobjectstore-delete-1-private-expected.txt:
11:13 AM Changeset in webkit [293624] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(r291998): [GTK] test accessibility/gtk/menu-list-unfocused-notifications.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=239888

Change the delay between changes to the combobox value to 1ms to ensure that an
accessibility event is consistently generated for both changes.

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-04-29
Reviewed by Martin Robinson.

  • accessibility/gtk/menu-list-unfocused-notifications.html:
11:11 AM Changeset in webkit [293623] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, remove unused variable
https://bugs.webkit.org/show_bug.cgi?id=239828

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

11:08 AM Changeset in webkit [293622] by Oriol Brufau
  • 5 edits in trunk/Source/WebCore

[css-cascade] Sort shorthand properties at the end of CSSPropertyID enum
https://bugs.webkit.org/show_bug.cgi?id=238888

Reviewed by Darin Adler.

Only longhands should matter during the CSS Cascade, so by sorting
shorthands at the end, and ignoring them, we can save some memory and
avoid some iterations.

No test since now there should be no observable change in behavior.

  • css/StylePropertyShorthand.cpp:

(WebCore::isShorthandCSSProperty): Deleted.

  • css/StylePropertyShorthand.h:

(WebCore::isShorthandCSSProperty):
Turn function into a simple constexpr comparison.

  • css/makeprop.pl:

(addProperty):
(sortByDescendingPriorityAndName):
Sort shorthand properties at the end.

  • style/PropertyCascade.h:

Update comment.

10:47 AM Changeset in webkit [293621] by Chris Dumez
  • 9 edits in trunk

Drop StringImpl::createFromLiteral()
https://bugs.webkit.org/show_bug.cgi?id=239792

Reviewed by Darin Adler.

Drop StringImpl::createFromLiteral().

Call sites that have an ASCIILiteral can now simply call StringImpl::create(ASCIILiteral).
Call sites that have raw characters can call the existing StringImpl::createWithoutCopying().

This simplifies our API a bit.

Also inline part of the createWithoutCopying() functions so that the 0-length check is
inline. This allows the compiler to optimize the check out when the length is known at
compile time (which is often the case with literals).

  • Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • Source/JavaScriptCore/API/JSScriptRef.cpp:
  • Source/JavaScriptCore/Scripts/wkbuiltins/builtins_templates.py:
  • Source/JavaScriptCore/builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::BuiltinExecutables):

  • Source/JavaScriptCore/runtime/IntlObject.cpp:

(JSC::availableUnits):

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

(WTF::StringImpl::createWithoutCopyingNonEmpty):
(WTF::StringImpl::createFromLiteral): Deleted.
(WTF::StringImpl::createWithoutCopying): Deleted.

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

(WTF::StringImpl::create):
(WTF::StringImpl::createWithoutCopying):
(WTF::StringImpl::createFromLiteral): Deleted.

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

(WTF::String::String):

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

10:40 AM Changeset in webkit [293620] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(r290548) [GTK][WPE] test LayoutTests/fast/events/node-event-anchor-lock.html fails
https://bugs.webkit.org/show_bug.cgi?id=239890

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-04-29
Reviewed by Martin Robinson.

  • fast/events/node-event-anchor-lock.html: Disable scroll animation for this test.
9:36 AM Changeset in webkit [293619] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

REGRESSION(r293608): [GTK][WPE] Broke clang builds
https://bugs.webkit.org/show_bug.cgi?id=239899

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

  • wtf/StdLibExtras.h: Restrict std::remove_cvref hacks to GCC.

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

9:26 AM Changeset in webkit [293618] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Video on twitch.tv shifts to top of screen when toggling playback in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=239884
<rdar://92367060>

Reviewed by Eric Carlson.

Twitch will cause the HTMLMediaElement to recreate the MediaPlayer when resuming playback
after pausing. If this happens in fullscreen, VideoLayerManagerObjC::setVideoLayer() will
be called with the new video layer, however it will be laid out pinned to the top-left
corner of the screen (rather than centered), as setVideoLayer() will call -setFrame with
an explicit 0,0 position argument.

Rather than pin the layer to the top-left, use the full value of m_videoFullscreenFrame
when setting the video layer frame, both in setVideoLayer() as well as
setVideoFullscreenLayer().

Its currently impossible to write an test for this behavior, as TestWebKitAPI is not a UI
application, and therefore cannot enter fullscreen mode.

  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:

(WebCore::VideoLayerManagerObjC::setVideoLayer):
(WebCore::VideoLayerManagerObjC::setVideoFullscreenLayer):

8:59 AM Changeset in webkit [293617] by Wenson Hsieh
  • 2 edits in trunk

Unreviewed, add my GitHub account name to contributors.json

I also ran validate-committer-lists --canonicalize to fix up some minor style inconsistencies in this file
after some other recent additions.

  • metadata/contributors.json:
8:45 AM Changeset in webkit [293616] by jer.noble@apple.com
  • 2 edits in trunk

Unreviewed; add my github account to contributors.json.

  • metadata/contributors.json:
8:35 AM Changeset in webkit [293615] by Jonathan Bedard
  • 6 edits in trunk/Tools

[git-webkit] Redact bug title in branch name on alternate remotes
https://bugs.webkit.org/show_bug.cgi?id=239826
<rdar://problem/92418512>

Rubber-stamped by Aakash Jain.

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

(Branch.main): Allow caller to redact bug title in branch name.

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

(PullRequest.pull_request_branch_point): Redact bug title in branch name
for non-origin remotes.

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

(TestBranch.test_redacted):

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

8:24 AM Changeset in webkit [293614] by Jonathan Bedard
  • 2 edits in trunk/Tools

[ews-build.webkit.org] Link to PRs with undefined title
https://bugs.webkit.org/show_bug.cgi?id=239820
<rdar://problem/92416554>

Reviewed by Aakash Jain.

  • CISupport/ews-build/steps.py:

(ConfigureBuild.add_pr_details):

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

8:11 AM Changeset in webkit [293613] by ntim@apple.com
  • 2 edits in trunk/Source/WebCore

Add background-clip: text to CSSProperties.json

Unreviewed fix.

  • css/CSSProperties.json:
7:31 AM Changeset in webkit [293612] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix ASAN build after "IPC testing API should have the ability to test IPC::Connection send and receive through IPC::Connection"
https://bugs.webkit.org/show_bug.cgi?id=239894

Unreviewed build fix.
Add a return for function which does ASSERT_NOT_REACHED().

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-29

  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveSyncMessage):

4:20 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
3:42 AM Changeset in webkit [293611] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK][WPE] media/video-with-alpha.html is failing and skipped
https://bugs.webkit.org/show_bug.cgi?id=226484

Patch by Philippe Normand <pnormand@igalia.com> on 2022-04-29
Unreviewed, gardening.

  • platform/glib/TestExpectations: The SDK ships GStreamer 1.20, mark

media/video-with-alpha.html as passing.

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

12:59 AM Changeset in webkit [293610] by Diego Pino Garcia
  • 6 edits in trunk/Source/WebKit

[macOS] Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=239889

  • UIProcess/API/Cocoa/_WKDataTask.h:
  • UIProcess/API/Cocoa/_WKDataTask.mm:
  • UIProcess/API/Cocoa/_WKInspectorConfigurationInternal.h:
  • UIProcess/Cocoa/ModalContainerControlClassifier.h:
  • UIProcess/Cocoa/ModalContainerControlClassifier.mm:
12:57 AM Changeset in webkit [293609] by youenn@apple.com
  • 4 edits
    2 adds in trunk

HTMLMediaElement can get multiple interruptions for invisible autoplay
https://bugs.webkit.org/show_bug.cgi?id=239842
<rdar://91809550>

Reviewed by Eric Carlson.

Source/WebCore:

A media element may be interrupted for invisible autoplay.
In some cases, like by calling play on the media element, the media element will no longer be in interrupted state.
This will lead to multiple invisible autoplay interruptions to be added to the same media element.
There will be only one end of interruption for invisible autoplay, which will lead to the media element to not restart as expected.

To prevent this, we store a boolean in HTMLMediaElement that tells us whether the media element has an ongoing invisible autoplay interruption.
Based on that, we make sure to always balance invisible autoplay interruption begin and end.

Test: media/video-mediastream-restricted-invisible-autoplay-not-allowed.html

  • html/HTMLMediaElement.cpp:
  • html/HTMLMediaElement.h:

LayoutTests:

  • fast/mediastream/video-mediastream-restricted-invisible-autoplay-not-allowed-expected.txt: Added.
  • fast/mediastream/video-mediastream-restricted-invisible-autoplay-not-allowed.html: Added.
12:50 AM Changeset in webkit [293608] by Diego Pino Garcia
  • 5 edits in trunk

[GCC] std::remove_cvref is undefined in GCC8.4
https://bugs.webkit.org/show_bug.cgi?id=239881

Reviewed by Žan Doberšek.

r293505 changed the guard that added std::remove_cvref if not defined
by GCC, checking cplusplus <= 201703L.

However in Ubuntu GCC8.4 this flag's value is 201709L. Thus, the
evaluation of this flag cannot reliably determine whether the compiler
has to define std::remove_cvref or not.

Instead of relying on a predefined compiler flag, what the patch does is
to attempt to compile a small snippet of code to check whether std::remove_cvref
is supported by the compiler. If successful, the flag 'HAVE_STD_REMOVE_CVREF' is defined.

.:

  • Source/cmake/OptionsCommon.cmake: Set and expose HAVE_STD_REMOVE_CVREF if needed.
  • Source/cmake/WebKitCompilerFlags.cmake: Check whether GCC supports std::remove_cvref.

Source/WTF:

  • wtf/StdLibExtras.h: Define std::remove_cvref if not defined by GCC.
12:14 AM Changeset in webkit [293607] by youenn@apple.com
  • 4 edits in trunk

Make sure to fail importScripts as per https://w3c.github.io/ServiceWorker/#importscripts step 4
https://bugs.webkit.org/show_bug.cgi?id=239847

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/import-scripts-updated-flag.https-expected.txt:

Source/WebCore:

Once a service worker is installed, the service worker should not be able to call importScript on new URLs.
Covered by updated test.

  • workers/WorkerScriptLoader.cpp:

Apr 28, 2022:

10:18 PM Changeset in webkit [293606] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

afterprint event should be scheduled on event loop
https://bugs.webkit.org/show_bug.cgi?id=239883

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

  • page/Page.cpp:

(WebCore::dispatchPrintEvent):
(WebCore::Page::dispatchBeforePrintEvent):
(WebCore::Page::dispatchAfterPrintEvent):

9:12 PM Changeset in webkit [293605] by ysuzuki@apple.com
  • 19 edits in trunk/Source

[JSC] Make DFG::OSRExit data unlinked
https://bugs.webkit.org/show_bug.cgi?id=239828

Reviewed by Saam Barati.

This patch makes DFG::OSRExit unlinked. While generated OSR exit code is linked version,
we no longer put linked data to DFG::OSRExit so that unlinked DFG can use DFG::OSRExit.
Key changes are two things.

  1. Now, we always store compiled MacroAssemblerCodeRef in DFG::JITData regardless of whether we have linked / unlinked DFG. While linked DFG uses repatching to jump to this code, unlinked DFG looks into this vector in JITData and jump to that.
  2. MethodOfGettingAValueProfile was including CodeBlock*, ValueProfile* in CodeBlock* etc., so it was linked data structure which unlinked DFG cannot use. Instead, we encode how to retrieve these pointers when generating OSR exit code actually, and just storing CodeOrigin, type, and Operand to make MethodOfGettingAValueProfile unlinked data structure. While CodeOrigin can include InlineCallFrame, but our first version of unlinked DFG will not perform inlining thus we will not include it. It also makes sizeof(MethodOfGettingAValueProfile) smaller from 32 bytes to 16 bytes (50% reduction).
  • Source/JavaScriptCore/assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodeRef::offsetOfCodePtr):

  • Source/JavaScriptCore/bytecode/CodeBlock.cpp:

(JSC::CodeBlock::updateOSRExitCounterAndCheckIfNeedToReoptimize): Deleted.

  • Source/JavaScriptCore/bytecode/CodeBlock.h:
  • Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue const):
(JSC::MethodOfGettingAValueProfile::fromLazyOperand): Deleted.
(JSC::MethodOfGettingAValueProfile::reportValue): Deleted.

  • Source/JavaScriptCore/bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::unaryArithProfile):
(JSC::MethodOfGettingAValueProfile::binaryArithProfile):
(JSC::MethodOfGettingAValueProfile::argumentValueProfile):
(JSC::MethodOfGettingAValueProfile::bytecodeValueProfile):
(JSC::MethodOfGettingAValueProfile::lazyOperandValueProfile):
(JSC::MethodOfGettingAValueProfile::operator bool const):
(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile): Deleted.

  • Source/JavaScriptCore/dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • Source/JavaScriptCore/dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::JITCode):
(JSC::DFG::JITCode::findPC):

  • Source/JavaScriptCore/dfg/DFGJITCode.h:
  • Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::JITCompiler):
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):

  • Source/JavaScriptCore/dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):

  • Source/JavaScriptCore/dfg/DFGOSRExit.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
(JSC::DFG::OSRExit::compileExit):
(JSC::DFG::OSRExit::codeLocationForRepatch const): Deleted.

  • Source/JavaScriptCore/dfg/DFGOSRExit.h:

(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExitState::OSRExitState): Deleted.

  • Source/JavaScriptCore/dfg/DFGPlan.cpp:

(JSC::DFG::Plan::finalizeJITData):

  • Source/JavaScriptCore/dfg/DFGPlan.h:
  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • Source/WTF/wtf/FixedVector.h:

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

7:24 PM Changeset in webkit [293604] by Brent Fulgham
  • 12 edits in trunk/Source

Remove the AVFoundationNSURLSessionEnabled preference
https://bugs.webkit.org/show_bug.cgi?id=239632

Reviewed by Eric Carlson.

All supported operating systems have supported AVFoundationNSURLSession
for several years. Since we expect AVFoundation to always use WebKit
for network loading (and indeed, expect improper behavior if we do not)
we should remove this toggle to simplify the code and reduce the chance
for users to mistakenly activate it.

Source/WebCore:

  • page/DeprecatedGlobalSettings.cpp:

(WebCore::DeprecatedGlobalSettings::setAVFoundationEnabled):
(WebCore::DeprecatedGlobalSettings::setAVFoundationNSURLSessionEnabled): Deleted.

  • page/DeprecatedGlobalSettings.h:

(WebCore::DeprecatedGlobalSettings::isAVFoundationEnabled):
(WebCore::DeprecatedGlobalSettings::isAVFoundationNSURLSessionEnabled): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const):

Source/WebKit:

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAVFoundationNSURLSessionEnabled):
(WKPreferencesGetAVFoundationNSURLSessionEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences setAVFoundationNSURLSessionEnabled:]):
(-[WebPreferences isAVFoundationNSURLSessionEnabled]):

Source/WTF:

  • Scripts/Preferences/WebPreferences.yaml:
6:59 PM Changeset in webkit [293603] by Patrick Griffis
  • 3 edits
    2 adds in trunk

CSP: Fix mixing strict-dynamic and unsafe-inline policies
https://bugs.webkit.org/show_bug.cgi?id=239862

Reviewed by Kate Cheney.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies.html

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):

LayoutTests:

If you had multiple policies, one including strict-dynamic and another with unsafe-inline, the unsafe-inline
policy was incorrectly handled.

  • http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies.html: Added.
6:46 PM Changeset in webkit [293602] by Oriol Brufau
  • 6 edits in trunk

[css-cascade] Mark properties sharing a computed value as related
https://bugs.webkit.org/show_bug.cgi?id=239579

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Some failures are now passing.

  • web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:

Source/WebCore:

Some longhand properties share a computed value with another property,
like a legacy -webkit- prefixed one.

In that case, when both properties are specified, the last one should
win. That is typically done by marking the properties as related, using
the "related-property" field. This defers the properties and makes
them cascade properly.

However, some properties weren't marked as related despite sharing a
computed value. So this patch marks these pairs:

  • mask-clip and -webkit-mask-clip
  • mask-composite and -webkit-mask-composite
  • mask-mode and -webkit-mask-source-type
  • text-combine-upright and -webkit-text-combine

Test: imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer.html

  • css/CSSProperties.json:

LayoutTests:

Some failures are now passing.

  • platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
6:28 PM Changeset in webkit [293601] by ysuzuki@apple.com
  • 16 edits in trunk

Support C files in Unified Builds
https://bugs.webkit.org/show_bug.cgi?id=239873

Reviewed by Mark Lam.

This patch adds support for C (not CPP) files in Unified Builds
so that we do not need to build Zydis in non-unified way.

Also, this patch fixes a bug that we always generate empty UnifiedSource-1.xxx.
It also fixes a bug that this script cannot handle 0 max bundle count.

  • Tools/TestWebKitAPI/Scripts/generate-unified-sources.sh:
  • Source/JavaScriptCore/CMakeLists.txt:
  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/JavaScriptCore/Scripts/generate-unified-sources.sh:
  • Source/JavaScriptCore/Sources.txt:
  • Source/JavaScriptCore/UnifiedSources-output.xcfilelist:
  • Source/WebKit/Scripts/generate-unified-sources.sh:
  • Source/WebKitLegacy/scripts/generate-unified-sources.sh:
  • Source/WTF/Scripts/generate-unified-source-bundles.rb:
  • Source/WebCore/Scripts/generate-unified-sources.sh:

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

5:54 PM Changeset in webkit [293600] by Alan Coon
  • 1 copy in tags/WebKit-7613.2.7.1.7

Tag WebKit-7613.2.7.1.7.

5:52 PM Changeset in webkit [293599] by Alan Coon
  • 19 edits in branches/safari-613.2.7.1-branch/Source

Cherry-pick r287877. rdar://problem/92357915

Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013

Unreviewed non-unified build fixes.

Source/JavaScriptCore:

  • wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
  • wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the JSC::OptimizingCallLinkInfo type.

Source/WebCore:

No new tests needed.

  • Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
  • Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward declaration for the WebCore::ScriptExecutionContext type.
  • animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
  • animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
  • html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
  • platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
  • rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
  • rendering/svg/RenderSVGForeignObject.cpp: Ditto.
  • rendering/svg/RenderSVGInline.cpp: Ditto.
  • rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
  • rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
  • svg/SVGViewElement.cpp: Add missing RenderElement.h header.
  • workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.

Source/WebKit:

  • Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now unneeded ArgumentCoders.h header.

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

5:51 PM Changeset in webkit [293598] by Alan Coon
  • 9 edits in branches/safari-613.2.7.1-branch/Source

Versioning.

WebKit-7613.2.7.1.7

5:29 PM Changeset in webkit [293597] by Wenson Hsieh
  • 2 edits in trunk/Source/WTF

REGRESSION (DOM GPUP): Rich HTML emails on watchOS no longer show up
https://bugs.webkit.org/show_bug.cgi?id=239870
rdar://91311606

Reviewed by Tim Horton.

Temporarily turn GPU process for DOM off by default on watchOS.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
4:51 PM Changeset in webkit [293596] by Chris Dumez
  • 3 edits in trunk/Source/WebCore/rendering/style

Use a HashSet instead of a std::unique_ptr<HashSet> for StyleRareNonInheritedData.customPaintWatchedProperties
https://bugs.webkit.org/show_bug.cgi?id=239863

Reviewed by Yusuke Suzuki.

Use a HashSet instead of a std::unique_ptr<HashSet> for StyleRareNonInheritedData.customPaintWatchedProperties.
A HashSet is already essentially a pointer, no need for the extra dereferencing.

  • Source/WebCore/rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::addCustomPaintWatchProperty):
(WebCore::changedCustomPaintWatchedProperty):

  • Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • Source/WebCore/rendering/style/StyleRareNonInheritedData.h:

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

4:31 PM Changeset in webkit [293595] by pvollan@apple.com
  • 19 edits
    1 add in trunk/Source

Dynamically switch message filter
https://bugs.webkit.org/show_bug.cgi?id=238577
<rdar://69263324>

Reviewed by Geoffrey Garen.

Source/WebKit:

Use a sandbox state variable to dynamically switch the bootstrap filter in the WebContent process' sandbox.
During launch of the WebContent process, we use a more permissive bootstrap filter to allow creating Mach
connections in this time frame. After the WebContent process has launched, we switch to a blocking filter,
which will essentially block access to launchd. The bootstrap filter is being switched back to the more
permissive version when we create new Mach sandbox extensions for the WebContent process. This is done on
a case by case basis, by adding a new parameter to control this behavior when creating Mach sandbox
extensions. While launching the WebContent process there is usually no need to specify that the permissive
bootstrap filter is needed, since we are already using the permissive filter during launch time. However,
for some Mach extensions that will only result in a new XPC connection in the WebContent process after launch,
we need to specify that the permissive filter is requried. Otherwise, creating the new XPC connection after
launch will fail. For Mach sandbox extensions created after launch of the WebContent process, we always need
to use the permissive bootstrap filter to be able to create the XPC connection. Enabling the permissive
bootstrap filter requires the audit token to be available, which means we need to pass the audit token when
creating the new Mach sandbox extensions. This patch also waits until after the Web page has been created to
set the sandbox variable which indicates that the WebContent process has launched. Without this last change,
the bootstrap filter would have needed switching when creating the Web page, since creating the WebPage will
consume and revoke some mach extensions.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandleForMachLookup):
(WebKit::SandboxExtension::createHandlesForMachLookup):

  • Shared/Sandbox/SandboxStateVariables.h: Added.
  • Shared/SandboxExtension.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addPlatformLoadParameters):
(WebKit::WebPageProxy::grantAccessToAssetServices):
(WebKit::WebPageProxy::switchFromStaticFontRegistryToUserFontRegistry):
(WebKit::WebPageProxy::fontdMachExtensionHandle):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):
(WebKit::WebProcessProxy::messageSourceIsValidWebContentProcess):
(WebKit::WebProcessProxy::auditToken const):

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSourceManager.cpp:

(WebKit::SpeechRecognitionRemoteRealtimeMediaSourceManager::addSource):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::create):

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

Source/WTF:

Add SPI to set sandbox state variable.

  • wtf/spi/darwin/SandboxSPI.h:
3:47 PM Changeset in webkit [293594] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-upperlower-003.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=239871

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations:

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

3:43 PM Changeset in webkit [293593] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix SafeBrowsing API tests on platforms with safe browsing result details
https://bugs.webkit.org/show_bug.cgi?id=239861
<rdar://91767123>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-28
Reviewed by Anders Carlsson.

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(-[TestServiceLookupResult malwareDetailsBaseURLString]):
(-[TestServiceLookupResult learnMoreURL]):
(-[TestServiceLookupResult reportAnErrorBaseURLString]):
(-[TestServiceLookupResult localizedProviderDisplayName]):

3:26 PM Changeset in webkit [293592] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectations for tiled-drawing/scrolling/scroll-snap/scroll-snap-momentum-in-non-snapping-axis.html
https://bugs.webkit.org/show_bug.cgi?id=228930

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

3:21 PM Changeset in webkit [293591] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Set top origin of CORS preflight requests
https://bugs.webkit.org/show_bug.cgi?id=239869
<rdar://92458995>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-04-28
Reviewed by Geoffrey Garen.

Since r293481 we establish two TCP connections to each domain that needs a CORS preflight request.
This is because we were calling _setPrivacyProxyFailClosedForUnreachableNonMainHosts for the CORS
preflight request but not the actual request after a successful CORS preflight check. They were
different because we weren't setting parameters.topOrigin for the CORS preflight request. Now we
are and the two requests can share a TCP connection once more.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::startPreflight):

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

Fix build error after r293509
https://bugs.webkit.org/show_bug.cgi?id=239866
<rdar://92471416>

Unreviewed build fix.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::isSystemWebKit):

2:23 PM Changeset in webkit [293589] by Simon Fraser
  • 5 edits in trunk

[ macOS Debug wk2 ] Thirteen imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ are a flaky crash (ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData))
https://bugs.webkit.org/show_bug.cgi?id=239770
<rdar://92334616>

Reviewed by Jer Noble.

Source/WebKit:

With media in the GPU Process, the contract that changes in the answer to
HTMLMediaElement::supportsAcceleratedRendering() must be associated with a call to
contentChanged(VideoChanged) was broken: MediaPlayerPrivateRemote's
m_configuration.supportsAcceleratedRendering changed in response to IPC from the GPU process,
but nothing triggered contentChanged(VideoChanged).

Fix by calling renderingModeChanged().

  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):

LayoutTests:

Unskip the affected tests, reverting r293451.

  • platform/mac-wk2/TestExpectations:
1:13 PM Changeset in webkit [293588] by Chris Dumez
  • 6 edits in trunk/Source

Leverage the known length of an ASCIILiteral when comparing it to a String / AtomString
https://bugs.webkit.org/show_bug.cgi?id=239798

Reviewed by Yusuke Suzuki and Darin Adler.

Leverage the known length of an ASCIILiteral when comparing it to a String / AtomString.
Make sure we call ASCIILiteral::length() inline to allow the compiler to optimize out
the strlen() call, then call the more efficient equal(StringImpl*, const LChar*, unsigned)
instead of equal(StringImpl*, const LChar*).

  • Source/JavaScriptCore/jsc.cpp:

(printInternal):

  • Source/JavaScriptCore/runtime/JSCJSValueInlines.h:

(JSC::toPreferredPrimitiveType):

  • Source/JavaScriptCore/runtime/PropertyName.h:

(JSC::isCanonicalNumericIndexString):

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

(WTF::operator==):

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

(WTF::equal):

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

(WTF::operator==):
(WTF::operator!=):

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

1:04 PM Changeset in webkit [293587] by commit-queue@webkit.org
  • 17 edits
    1 move
    1 delete in trunk/LayoutTests

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

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

LayoutTests/imported/w3c:

  • web-platform-tests/cookies/samesite/about-blank-toplevel.https-expected.txt: Update baseline to expect a pass.

LayoutTests:

  • platform/glib/TestExpectations:
  • platform/glib/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
  • platform/glib/fast/lists/li-br-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/compositing/repaint/composite-and-scale-change-expected.txt: Renamed from LayoutTests/platform/gtk/compositing/repaint/composite-and-scale-change-actual.txt.
  • platform/gtk/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
  • platform/gtk/fast/borders/rtl-border-05-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
  • platform/gtk/fast/dynamic/insert-before-table-part-in-continuation-expected.txt:
  • platform/gtk/fast/ruby/ruby-runs-spans-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-insert-rt-expected.txt:
  • platform/gtk/fast/ruby/rubyDOM-insert-text1-expected.txt:
  • platform/gtk/inspector/css/shadow-scoped-style-expected.txt: Removed.
  • platform/wpe/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
  • platform/wpe/fast/borders/rtl-border-05-expected.txt:
  • platform/wpe/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
12:59 PM Changeset in webkit [293586] by Russell Epstein
  • 2 edits in branches/safari-614.1.11-branch/Source/WebGPU

Cherry-pick r293558. rdar://problem/91769511

WebGPU doesn't create a symlink to the system content path in installhdrs
https://bugs.webkit.org/show_bug.cgi?id=239819

Reviewed by Alexey Proskuryakov.

Enabled script phases for installhdrs and installapi.

  • Configurations/WebGPU.xcconfig:

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

12:56 PM Changeset in webkit [293585] by Russell Epstein
  • 9 edits in branches/safari-614.1.11-branch/Source

Versioning.

WebKit-7614.1.11.1

12:48 PM Changeset in webkit [293584] by Russell Epstein
  • 1 copy in tags/WebKit-7614.1.10.8

Tag WebKit-7614.1.10.8.

12:47 PM Changeset in webkit [293583] by Russell Epstein
  • 2 edits in branches/safari-614.1.10-branch/Source/WebGPU

Cherry-pick r293558. rdar://problem/91769511

WebGPU doesn't create a symlink to the system content path in installhdrs
https://bugs.webkit.org/show_bug.cgi?id=239819

Reviewed by Alexey Proskuryakov.

Enabled script phases for installhdrs and installapi.

  • Configurations/WebGPU.xcconfig:

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

12:45 PM Changeset in webkit [293582] by Russell Epstein
  • 9 edits in branches/safari-614.1.10-branch/Source

Versioning.

WebKit-7614.1.10.8

12:05 PM Changeset in webkit [293581] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

Update webrtc/connection-state.html to not expected the completed ice connection state
https://bugs.webkit.org/show_bug.cgi?id=239843

Reviewed by Eric Carlson.

Wait for video to be playable to check states.
Remove completed state from the expected ice connection state as this is racy and app specific for when completed will happen (it can take a long time or not).
This is aligned with WebKit and Chrome implementations.

  • TestExpectations:
  • webrtc/connection-state.html:
  • webrtc/connection-state-expected.txt:
11:45 AM Changeset in webkit [293580] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[GStreamer] Pipewire display capture broken
https://bugs.webkit.org/show_bug.cgi?id=239435

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

The pipewiresrc GStreamer element now needs both the fd and path properties set in order
to open the right Pipewire stream, so we need to get the node ID from the portal Start
response and pass it to the GStreamer element.

  • platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.h:
  • platform/mediastream/gstreamer/GStreamerDisplayCaptureDeviceManager.cpp:

(WebCore::GStreamerDisplayCaptureDeviceManager::createDisplayCaptureSource):
(WebCore::GStreamerDisplayCaptureDeviceManager::waitResponseSignal):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::createPipewireSource):
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource):
(WebCore::m_deviceType):
(WebCore::GStreamerVideoCaptureSource::~GStreamerVideoCaptureSource):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:

(WebCore::GStreamerVideoCapturer::createSource):
(WebCore::GStreamerVideoCapturer::setSize):
(WebCore::GStreamerVideoCapturer::setFrameRate):

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.h:

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

10:46 AM Changeset in webkit [293579] by ysuzuki@apple.com
  • 9 edits in trunk

[WTF] Use quadratic-probing instead of double-hashing
https://bugs.webkit.org/show_bug.cgi?id=239813

Reviewed by Geoffrey Garen.

If table size is always power-of-two, we can safely use quadratic-probing[1] even if the load exceeds 50%.
Quadratic-probing and double-hashing have different tradeoff between clustering possibility and CPU cache
friendliness. Double-hashing can avoid clustering more, but it is not CPU cache friendly. Quadratic-probing
can cause clustering more but better for CPU cache. And while linear-probing caused a lot of trouble and not
practical, quadratic-probing with 75% load factor is practical configuration which is used in production-ready
hashtables e.g. Google's sparsetable / densetable[2].

This patch replaces WTF::HashTable's probing algorithm from double-hashing to quadratic-probing to make it more
cache friendly while keeping reasonable clustering characteristics (compared to linear-probing etc.). Due to
this cache friendliness, we get large performance improvements.

  1. 0.52% improvement in Speedometer2 with 95% probability.
  2. 0.72% improvement in JetStream2 with 98% probability.

[1]: https://fgiesen.wordpress.com/2015/02/22/triangular-numbers-mod-2n/
[2]: http://goog-sparsehash.sourceforge.net/doc/implementation.html

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

10:40 AM Changeset in webkit [293578] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

[iOS] Enable IOKit blocking in GPUP by default
https://bugs.webkit.org/show_bug.cgi?id=239615

Reviewed by Darin Adler.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
10:23 AM Changeset in webkit [293577] by Angelos Oikonomopoulos
  • 2 edits in trunk/Tools

[run-javascriptcore-tests] Fix user-facing accounting
https://bugs.webkit.org/show_bug.cgi?id=239845

Reviewed by Adrian Perez de Castro.

Update numJSCStressFlakyButPassed for flaky tests that were declared a
pass. Otherwise we end up miscounting passes as failures in the summary
we print out to the user. E.g. in
https://build.webkit.org/#/builders/31/builds/3567/steps/8/logs/stdio
the test was flaky but passed, yet run-javascriptcore-tests outputs

1 test flaky and failed.

since it calculates $numJSCStressFlaky - $numJSCStressFlakyButPassed
and $numJSCStressFlakyButPassed is zero (since it wasn't getting
updated).

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

9:48 AM Changeset in webkit [293576] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

[ iOS ] tables/mozilla/bugs/bug26178.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=239567
<rdar://problem/92055518>

Unreviewed test gardening.

This test produces different (1px) render tree dump results on iOS 15 and 15E sims.
Mark as failure on iOS as there appears be no way to have different expectations for those.

  • platform/ios/TestExpectations:
  • platform/ios/tables/mozilla/bugs/bug26178-expected.txt:

Also update to E results.

9:34 AM Changeset in webkit [293575] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitbugspy] Limit number of failed bugzilla login attempts
https://bugs.webkit.org/show_bug.cgi?id=239850
<rdar://problem/92462214>

Reviewed by Michael Catanzaro.

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

(Tracker.init): Caller can define the number of failed login attempts.
(Tracker.user): Detect a failed login.
(Tracker._login_arguments): Only provide login arguments if login attempts
have not been exceeded.
(Tracker.populate): Detect a failed login.
(Tracker.set): Detect a failed login, handle case where login arguments are
not provided due to exceeded login attempts.
(Tracker.add_comment): Ditto.
(Tracker.projects): Detect a failed login.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:

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

9:27 AM Changeset in webkit [293574] by ntim@apple.com
  • 3 edits in trunk/LayoutTests

Rebaseline editing/pasteboard/smart-paste-paragraph-002.html after r293521
https://bugs.webkit.org/show_bug.cgi?id=166782

Unreviewed test gardening.

  • editing/pasteboard/smart-paste-paragraph-002-expected.txt:
  • platform/ios/editing/pasteboard/smart-paste-paragraph-002-expected.txt:
9:20 AM Changeset in webkit [293573] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

Merge-queue error message about missing user permissions from contributors.json should indicate how to fix it
https://bugs.webkit.org/show_bug.cgi?id=239851

Reviewed by Jonathan Bedard.

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

(ValidateCommitterAndReviewer.fail_build):

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

8:18 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
8:12 AM Changeset in webkit [293572] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

DisplayList::Recorder should lazily create the DrawGlyphsRecorder
https://bugs.webkit.org/show_bug.cgi?id=239829

Reviewed by Myles C. Maxfield.

Creating a DrawGlyphsRecorder does a bit of work that calls into Core Graphics. We don't need
to do this work for a layer that has no text, so delay this work until the first drawGlyphs() call.

This is a few % perf gain on the Images MotionMark subtest.

  • platform/graphics/DrawGlyphsRecorder.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::drawGlyphs):

  • platform/graphics/displaylists/DisplayListRecorder.h:
3:06 AM Changeset in webkit [293571] by zan@falconsigh.net
  • 2 edits in trunk/Source/JavaScriptCore

[RISCV64] Implement MacroAssemblerRISCV64 branchAtomicWeakCAS{8,16,32,64} methods
https://bugs.webkit.org/show_bug.cgi?id=239806

Reviewed by Yusuke Suzuki.

Provide MacroAssemblerRISCV64 method implementations for the different
branchAtomicWeakCAS variants. The 32-bit and 64-bit versions are
straightforward, leveraging the load-reserved and store-conditional
instructions of the corresponding sizes. For 8-bit and 16-bit versions,
a method template is provided, loading and storing 32-bit words and
performing additional operations to validate and change the desired
value.

  • assembler/MacroAssemblerRISCV64.h:

(JSC::MacroAssemblerRISCV64::branchAtomicWeakCASImpl):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS8):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS16):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS32):
(JSC::MacroAssemblerRISCV64::branchAtomicWeakCAS64):

1:21 AM Changeset in webkit [293570] by Said Abou-Hallawa
  • 62 edits in trunk/Source

[GPU Process] Make WebImage be backed by ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=239527
rdar://91113628

Reviewed by Tim Horton.

Source/WebCore:

Before enabling GPU Process for DOM rendering there were two modes for
page snapshot: Local bitmap and ShareableBitmap. The ShareableBitmap is
shared between the WebProcess and the UIProcess. The image is drawn in
WebProcess and is consumed by the UIProcess.

After enabling GPU Process for DOM rendering, a new mode should be added:
Remote ShareableBitmap. In this mode, the graphics will be recorded in
WebProcess, the drawing will be committed in GPUProcess and the image will
be consumed by either the WebProcess or the UIProcess.

To add this new mode, the snapshot will be drawn to an ImageBuffer instead
of a ShareableBitmap. And WebImage will be backed by an ImageBuffer instead
of a ShareableBitmap.

  • page/FrameSnapshotting.cpp:

(WebCore::snapshotFrameRectWithClip):

  • page/FrameSnapshotting.h:
  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::createCairoSurface):

  • platform/graphics/ImageBufferBackend.h:

(WebCore::ImageBufferBackend::createCairoSurface):
(WebCore::ImageBufferBackend::Parameters::encode const):
(WebCore::ImageBufferBackend::Parameters::decode):

  • platform/graphics/RenderingMode.h:
  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:

(WebCore::ImageBufferCairoSurfaceBackend::createCairoSurface):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:

Source/WebKit:

-- Allow ImageBufferBackendHandleSharing and ImageBufferShareableBitmapBackend

to compile always.

-- Make WebImage hold an ImageBuffer instead of having it hold a ShareableBitamp.

-- Pass the ChromeClient to WebImage::create() so it can call its

createImageBuffer() which creates RemoteImageBuffer for GPUProcess
drawing.

-- Remove the ShareableBitamp local mode where is backed by a local memory

buffer. This mode was added to make WebImage can be non shareable even
it was backed by ShareableBitamp. So ShareableBitmap::createShareable()
should be renamed ShareableBitmap::create().

-- Replace WebImage::bitmap()::makeCGImageCopy() with

WebImage::copyNativeImage(WebCore::CopyBackingStore)

-- Replace WebImage::bitmap()::makeCGImageCopy() with

WebImage::copyNativeImage(WebCore::DontCopyBackingStore)

-- Replace WebImage::bitmap()::createGraphicsContext() with

WebImage::context()

-- Allow encoding and decoding ImageBufferShareableBitmapBackend by allowing

ImageBufferBackend::Parameters to be encoded and decoded.

-- Make ImageBuffer be able to createCairoSurface(). The pointer to this

surface will be leaked. And to maintain a correct life cycle for the
surface data which is owned by the backend, the ImageBuffer itself
will be ref() when the surface RefPtr is created and will be deref()
when the surface raw pointer is destroyed.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getShareableBitmapForImageBufferWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::getFilteredImageForImageBuffer):

  • GPUProcess/graphics/wc/WCScene.cpp:

(WebKit::WCScene::update):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::bitmapImageForCurrentTime):

  • Shared/API/c/WKImage.cpp:

(WKImageCreate):

  • Shared/API/c/cairo/WKImageCairo.cpp:

(WKImageCreateCairoSurface):
(WKImageCreateFromCairoSurface):

  • Shared/API/c/cg/WKImageCG.cpp:

(WKImageCreateCGImage):
(WKImageCreateFromCGImage):

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::setImage):

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::createBackendHandle const):

  • Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::create):
(WebKit::ShareableBitmap::createHandle const):
(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::data const):
(WebKit::ShareableBitmap::createShareable): Deleted.
(WebKit::ShareableBitmap::~ShareableBitmap): Deleted.

  • Shared/ShareableBitmap.h:

(WebKit::ShareableBitmap::bytesPerRow const):
(WebKit::ShareableBitmap::isBackedBySharedMemory const): Deleted.

  • Shared/UserData.cpp:

(WebKit::UserData::encode):
(WebKit::UserData::decode):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeImage):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebImage.cpp:

(WebKit::WebImage::create):
(WebKit::WebImage::WebImage):
(WebKit::WebImage::size const):
(WebKit::WebImage::parameters const):
(WebKit::WebImage::context const):
(WebKit::WebImage::copyNativeImage const):
(WebKit::WebImage::bitmap const):
(WebKit::WebImage::createCairoSurface):
(WebKit::WebImage::createHandle const):
(WebKit::WebImage::~WebImage): Deleted.

  • Shared/WebImage.h:

(WebKit::WebImage::bitmap): Deleted.
(WebKit::WebImage::bitmap const): Deleted.

  • Shared/cairo/ShareableBitmapCairo.cpp:

(WebKit::ShareableBitmap::createPersistentCairoSurface):

  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::encodeImage):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webKitWebViewDidReceiveSnapshot):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::convertPlatformImageToBitmap):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didGetImageForFindMatch):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient didGetImageForMatchResult:]):

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::takeScreenshot):

  • WebProcess/GPU/graphics/ImageBufferBackendHandle.h:
  • WebProcess/GPU/graphics/ImageBufferBackendHandleSharing.h:

(WebKit::ImageBufferBackendHandleSharing::bitmap const):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::create):
(WebKit::ImageBufferShareableBitmapBackend::ImageBufferShareableBitmapBackend):
(WebKit::ImageBufferShareableBitmapBackend::createBackendHandle const):
(WebKit::ImageBufferShareableBitmapBackend::createCairoSurface):

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

(WebKit::createShareableBitmapFromNativeImage):

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

(WebKit::ImageBufferRemoteIOSurfaceBackend::createBackendHandle const):

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

(WebKit::ImageBufferShareableMappedIOSurfaceBackend::createBackendHandle const):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:width:]):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::imageForRect):

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::renderedImage):

  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:

(WebKit::InjectedBundleHitTestResult::image const):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::snapshot):

  • WebProcess/WebCoreSupport/ShareableBitmapUtilities.cpp:

(WebKit::createShareableBitmap):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

  • WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:

(WebKit::convertCairoSurfaceToShareableBitmap):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::convertDragImageToBitmap):

  • WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:

(WebKit::WebPopupMenu::setUpPlatformData):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::display):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::getImageForFindMatch):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSelectionSnapshot const):

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

(WebKit::WebPage::takeSnapshot):
(WebKit::snapshotColorSpace):
(WebKit::WebPage::snapshotAtSize):
(WebKit::WebPage::snapshotNode):
(WebKit::WebPage::drawRectToImage):
(WebKit::snapshotOptionsToBitmapConfiguration): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::shareableBitmapSnapshotForNode):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::setTopOverhangImage):
(WebKit::WebPage::setBottomOverhangImage):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::shouldUseRemoteRenderingFor):

12:59 AM Changeset in webkit [293569] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use more smart pointers in Element.cpp
https://bugs.webkit.org/show_bug.cgi?id=239836

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

  • dom/Element.cpp:

(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):

12:38 AM Changeset in webkit [293568] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

test-webkitperl outputs errors about uninitialized $platform variable
https://bugs.webkit.org/show_bug.cgi?id=239762

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-28
Reviewed by Alexey Proskuryakov.

Make filter-build-webkit a module that exports the tested functions.
Avoid running filter-webkit-build main code if the code is being imported
as a module.

  • Scripts/filter-build-webkit:

(main):
(shouldIgnoreLine):

  • Scripts/webkitperl/filter-build-webkit_unittest/shouldIgnoreLine_unittests.pl:
12:18 AM Changeset in webkit [293567] by commit-queue@webkit.org
  • 16 edits
    1 copy
    5 adds in trunk

IPC testing API should have the ability to test IPC::Connection send and receive through IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=239495

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-04-28
Reviewed by Darin Adler.

Source/WebKit:

Add the testing interfaces to be able to send IPC::Connection instances
to other processes.
Add the testing interfaces to be able to send messages through arbitrary
IPC::Connection instances.

Test: ipc/create-connection-and-send-async.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Platform/IPC/Connection.h:

(IPC::Connection::waitForMessageForTesting):

  • Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Shared/IPCConnectionTester.cpp: Added.

(WebKit::asIdentifier):
(WebKit::IPCConnectionTester::create):
(WebKit::IPCConnectionTester::IPCConnectionTester):
(WebKit::IPCConnectionTester::initialize):
(WebKit::IPCConnectionTester::stopListeningForIPC):
(WebKit::IPCConnectionTester::sendAsyncMessages):
(WebKit::IPCConnectionTester::didClose):
(WebKit::IPCConnectionTester::didReceiveInvalidMessage):
(WebKit::IPCConnectionTester::asyncMessage):
(WebKit::IPCConnectionTester::syncMessage):

  • Shared/IPCConnectionTester.h: Copied from Source/WebKit/Shared/IPCTester.h.
  • Shared/IPCConnectionTester.messages.in: Copied from Source/WebKit/Shared/IPCTester.messages.in.
  • Shared/IPCConnectionTesterIdentifier.h: Added.
  • Shared/IPCTester.cpp:

(WebKit::IPCTester::createConnectionTester):
(WebKit::IPCTester::createConnectionTesterAndSendAsyncMessages):
(WebKit::IPCTester::releaseConnectionTester):

  • Shared/IPCTester.h:
  • Shared/IPCTester.messages.in:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::JSIPCAttachment::create):
(WebKit::IPCTestingAPI::JSIPCAttachment::encode const):
(WebKit::IPCTestingAPI::JSIPCAttachment::JSIPCAttachment):
(WebKit::IPCTestingAPI::JSIPCConnection::create):
(WebKit::IPCTestingAPI::JSIPCConnection::JSIPCConnection):
(WebKit::IPCTestingAPI::createTypeError):
(WebKit::IPCTestingAPI::convertToUint64):
(WebKit::IPCTestingAPI::sendMessageWithJSArguments):
(WebKit::IPCTestingAPI::extractSyncIPCMessageInfo):
(WebKit::IPCTestingAPI::sendSyncMessageWithJSArguments):
(WebKit::IPCTestingAPI::waitForMessageWithJSArguments):
(WebKit::IPCTestingAPI::JSIPCSemaphore::createJSWrapper):
(WebKit::IPCTestingAPI::JSIPCSemaphore::wrapperClass):
(WebKit::IPCTestingAPI::JSIPCSemaphore::unwrap):
(WebKit::IPCTestingAPI::JSIPCSemaphore::toWrapped):
(WebKit::IPCTestingAPI::JSIPCSemaphore::initialize):
(WebKit::IPCTestingAPI::JSIPCSemaphore::finalize):
(WebKit::IPCTestingAPI::JSIPCSemaphore::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCAttachment::createJSWrapper):
(WebKit::IPCTestingAPI::JSIPCAttachment::wrapperClass):
(WebKit::IPCTestingAPI::JSIPCAttachment::unwrap):
(WebKit::IPCTestingAPI::JSIPCAttachment::toWrapped):
(WebKit::IPCTestingAPI::JSIPCAttachment::initialize):
(WebKit::IPCTestingAPI::JSIPCAttachment::finalize):
(WebKit::IPCTestingAPI::JSIPCAttachment::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCConnection::createJSWrapper):
(WebKit::IPCTestingAPI::JSIPCConnection::wrapperClass):
(WebKit::IPCTestingAPI::JSIPCConnection::unwrap):
(WebKit::IPCTestingAPI::JSIPCConnection::toWrapped):
(WebKit::IPCTestingAPI::JSIPCConnection::initialize):
(WebKit::IPCTestingAPI::JSIPCConnection::finalize):
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveSyncMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::didClose):
(WebKit::IPCTestingAPI::JSIPCConnection::didReceiveInvalidMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::staticFunctions):
(WebKit::IPCTestingAPI::JSIPCConnection::open):
(WebKit::IPCTestingAPI::JSIPCConnection::invalidate):
(WebKit::IPCTestingAPI::JSIPCConnection::sendMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::sendSyncMessage):
(WebKit::IPCTestingAPI::JSIPCConnection::waitForMessage):
(WebKit::IPCTestingAPI::JSIPCStreamClientConnection::prepareToSendOutOfStreamMessage):
(WebKit::IPCTestingAPI::JSIPC::staticFunctions):
(WebKit::IPCTestingAPI::encodeFrameInfoData):
(WebKit::IPCTestingAPI::encodeAttachment):
(WebKit::IPCTestingAPI::VectorEncodeHelper::encode const):
(WebKit::IPCTestingAPI::encodeArrayArgument):
(WebKit::IPCTestingAPI::encodeArgument):
(WebKit::IPCTestingAPI::JSIPC::sendMessage):
(WebKit::IPCTestingAPI::JSIPC::waitForMessage):
(WebKit::IPCTestingAPI::JSIPC::sendSyncMessage):
(WebKit::IPCTestingAPI::JSIPC::createConnectionPair):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:

(TEST):
Change two tests to pass "IPC" object as the value of FrameInfoData. This way the argument encode functions
do not need to take the JSIPC argument.

LayoutTests:

  • ipc/create-connection-and-send-async.html: Added.
Note: See TracTimeline for information about the timeline view.