Timeline



Jun 2, 2022:

11:46 PM Changeset in webkit [295198] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick 969b67ab0154. rdar://problem/80059355

Unreviewed, fix the Catalyst build after r292888

MCProfileConnection is not available on Mac Catalyst.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _dataOwnerForPasteboard:]):

Canonical link: https://commits.webkit.org/249666@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292896 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 PM Changeset in webkit [295197] by Alan Coon
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick d323be61003f. rdar://problem/14839536

Breaking out of a quoted reply block by inserting a new paragraph should reset writing direction
https://bugs.webkit.org/show_bug.cgi?id=240778
rdar://14839536

Reviewed by Devin Rousso.

The process of breaking out of a blockquote via the "InsertNewlineInQuotedContent" editor command currently works by
splitting the blockquote into two sibling elements underneath the same parent container, and then inserting a br
element in between these sibling blockquote elements. The selection is then moved to the end of the newly created
br, which inherits the writing direction (dir) of the element containing the blockquote. In the case of Mail, if
the system language is right-to-left but the quoted content is left-to-right, this can lead to some unintuitive behavior
when breaking out of quoted LTR content, since the newly created line break will inherit the right-to-left direction of
its ancestor.

To fix this, in the case where we're breaking out of a blockquote and the start of the selection is left-to-right but
the element that contains the blockquote is right-to-left, we can wrap the br in another block-level container
element with dir=auto to avoid inheriting the writing direction from the blockquote's ancestor. This means that the
writing direction of the newly inserted paragraph will automatically be determined by what the user types.

Test: editing/execCommand/reset-direction-after-breaking-blockquote.html

  • LayoutTests/editing/execCommand/reset-direction-after-breaking-blockquote-expected.txt: Added.
  • LayoutTests/editing/execCommand/reset-direction-after-breaking-blockquote.html: Added.
  • Source/WebCore/editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply):

Canonical link: https://commits.webkit.org/250901@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 PM Changeset in webkit [295196] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick c8efcc3a72bc. rdar://problem/90913864

Store StyleScope during CSSStyleSheet Creation
https://bugs.webkit.org/show_bug.cgi?id=239659

Reviewed by Antti Koivisto.

To ensure that we can always access the style scope, we shall ensure we store the style scope
at CSSStyleSheet creation time. It was possible before that a style sheet could become disconnected
and then a rule would later be mutated. This resulted in the unfortunate side effect of being unable to find
the style scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::CSSStyleSheet): (WebCore::CSSStyleSheet::styleScope):
  • css/CSSStyleSheet.h:
  • style/StyleScope.cpp: (WebCore::Style::Scope::collectResolverScopes):
  • style/StyleScope.h:

Canonical link: https://commits.webkit.org/249896@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293232 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 PM Changeset in webkit [295195] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick 91f59a5ac796. rdar://problem/90245637

Crash in KeyframeList.cpp:183 in WebCore::KeyframeList::fillImplicitKeyframes
https://bugs.webkit.org/show_bug.cgi?id=237858

Reviewed by Antoine Quint.

Source/WebCore:

When filling implicit key frames, we iterate through the current keyframes (m_keyframes),
and cache the address of the implicitZeroKeyframe and implicitOneKeyframe.

However, if we're not provided with an existing implicit zero keyframe, we will create a new one
and insert it to the list of current keyframes.

This mutates m_keyframes and the old address for the implicitOneKeyframe would no longer be valid.
Thus we should iterate through the current keyframes, after the insertion, to get the latest address.

Test: animations/fill-implicit-keyframes-crash.html

  • rendering/style/KeyframeList.cpp: (WebCore::KeyframeList::fillImplicitKeyframes):

LayoutTests:

  • animations/fill-implicit-keyframes-crash-expected.txt: Added.
  • animations/fill-implicit-keyframes-crash.html: Added.

Canonical link: https://commits.webkit.org/248420@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291281 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295194] by Alan Coon
  • 2 edits in branches/safari-613-branch

Cherry-pick 706e3063ae33. rdar://problem/86832561

[css-values-4] logical *vi(inline) and *vb (block) viewport units should be based on the current element's writing-mode
https://bugs.webkit.org/show_bug.cgi?id=234373
<rdar://problem/86832561>

Reviewed by Tim Nguyen.

Previously, we only looked at the root element's writing-mode. Looking at the current element's
writing-mode allows for non-root elements to have a writing-mode independent of the root element,
as well as having styles based on that. This was changed in <https://github.com/w3c/csswg-drafts/issues/6873>.

Tests: CSSViewportUnits.AllSame

CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.EmptyUnobscuredSizeOverrides
CSSViewportUnits.SameUnobscuredSizeOverrides
CSSViewportUnits.DifferentUnobscuredSizeOverrides
CSSViewportUnits.SVGDocument

  • Source/WebCore/css/CSSPrimitiveValue.cpp: (WebCore::lengthOfViewportPhysicalAxisForLogicalAxis): (WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (changeCSSPropertyOfElements): Added. (TEST.CSSViewportUnits.AllSame): (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): (TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides): (TEST.CSSViewportUnits.SameUnobscuredSizeOverrides): (TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides): (TEST.CSSViewportUnits.SVGDocument):

Canonical link: https://commits.webkit.org/250835@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294609 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295193] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick 31381facf3cc. rdar://problem/87220688

Better handle clobbered registers in O0 register allocation
https://bugs.webkit.org/show_bug.cgi?id=240205
<rdar://87220688>

Reviewed by Yusuke Suzuki.

This patch makes Air's O0 register allocator better handle clobbered
registers. We now model both early and late clobber directly, and use
this to perform a basic interference analysis when allocating a register
to a Tmp. An early clobber interferes with any Use in an instruction, and
any early Defs. A late clobber interferes with any Defs in an instruction,
and any late Uses. What this enables is an early Use can be allocated
to a register that is only late clobbered. And a result can be allocated
to a register that is only early clobbered.

Prior to this, the algorithm had a bug where a Use may be allocated to
a register that is early clobbered.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp: (JSC::B3::Air::GenerateAndAllocateRegisters::buildLiveRanges): (JSC::B3::Air::GenerateAndAllocateRegisters::alloc): (JSC::B3::Air::GenerateAndAllocateRegisters::freeDeadTmpsIfNeeded): (JSC::B3::Air::GenerateAndAllocateRegisters::assignTmp): (JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration): (JSC::B3::Air::GenerateAndAllocateRegisters::generate):
  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
  • b3/air/testair.cpp:
  • jit/RegisterSet.h:

Canonical link: https://commits.webkit.org/250477@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295192] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WTF

Cherry-pick f822d46cdb31. rdar://problem/93265374

Enforce foreground WebContent memory limit on macOS
https://bugs.webkit.org/show_bug.cgi?id=240397

Reviewed by Chris Dumez.

We removed the foreground memory limit for WebContent on macOS in r272046. But based on some
bug reports that we've seen, it seems like we need to restore some limit to prevent bad user
outcomes when a misbehaving process has runaway memory usage.

This patch adds a foreground memory limit of 8GB or 16GB depending on RAM size. This matches
the limits set by other browsers for their content process.

  • wtf/MemoryPressureHandler.cpp: (WTF::thresholdForMemoryKillOfActiveProcess): (WTF::MemoryPressureHandler::thresholdForMemoryKill):

Canonical link: https://commits.webkit.org/250548@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295191] by Alan Coon
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick e9396cf1b69b. rdar://problem/92390285

Assertion in RenderTreeBuilder::attachToRenderElementInternal
https://bugs.webkit.org/show_bug.cgi?id=239823
<rdar://92390285>

Reviewed by Alan Bujtas.

  • LayoutTests/fast/css/display-content-with-pending-stylesheet-crash-expected.txt: Added.
  • LayoutTests/fast/css/display-content-with-pending-stylesheet-crash.html: Added.
  • Source/WebCore/style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement):

We can't skip resolution for elements that we have already computed style for. This includes elements with display:contents.

Canonical link: https://commits.webkit.org/251178@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295083 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295190] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/loader/cache/CachedRawResource.cpp

Cherry-pick e5db10363bb2. rdar://problem/93781799

Capture WeakPtr to CachedResourceClient in lambdas in CachedRawResource::didAddClient()
https://bugs.webkit.org/show_bug.cgi?id=240828
<rdar://93781799>

Reviewed by Alex Christensen.

Capture WeakPtr to CachedResourceClient in lambdas in CachedRawResource::didAddClient()
instead of a raw pointer, for hardening.

  • Source/WebCore/loader/cache/CachedRawResource.cpp: (WebCore::iterateRedirects): (WebCore::CachedRawResource::didAddClient):

Canonical link: https://commits.webkit.org/250896@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294692 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295189] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick cb6ddf5edf6c. rdar://problem/92853663

Create a stopped CacheStorageConnection for workers in case of detached documents
https://bugs.webkit.org/show_bug.cgi?id=240224
<rdar://problem/92853663>

Reviewed by Chris Dumez.

A worker might not always have a main thread connection as its document may be detached.
In that case, we now create a StoppedCacheStorageConnection that will always return Error::Stopped to any callback.

Covered by existing tests.

  • Modules/cache/WorkerCacheStorageConnection.cpp: (WebCore::StoppedCacheStorageConnection::create): (WebCore::createMainThreadConnection): (WebCore::WorkerCacheStorageConnection::WorkerCacheStorageConnection): (WebCore::WorkerCacheStorageConnection::~WorkerCacheStorageConnection): (WebCore::WorkerCacheStorageConnection::create): Deleted.
  • Modules/cache/WorkerCacheStorageConnection.h:

Canonical link: https://commits.webkit.org/250442@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294006 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295188] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick b07ce12ec55d. rdar://problem/92697007

Private relay should fail closed for third party loads if the main resource was loaded over private relay
https://bugs.webkit.org/show_bug.cgi?id=240483
<rdar://92697007>

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

This re-lands the change from r293861 along with r293481 which should fix problems related to rdar://92336270
along with r293591 which should fix performance regressions related to rdar://92458995 but was insufficient.
During a basic browsing test, I found two more places where we were making a NetworkDataTask without setting the
parameters' top origin, one in the SpeculativeLoad constructor and another in WebLoaderStrategy::preconnectTo.

  • Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::startPreflight):
  • Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
  • Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
  • Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (WebKit::NetworkSessionCocoa::createWebSocketTask):
  • Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::preconnectTo):

Canonical link: https://commits.webkit.org/250670@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294371 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295187] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick ad5aeb95fb39. rdar://problem/92442408

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Unreviewed correction based on a comment from Darin.

  • platform/network/ios/WebCoreURLResponseIOS.mm: (WebCore::adjustMIMETypeIfNecessary):

Canonical link: https://commits.webkit.org/250549@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294182 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295186] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick 9a7e68adec7a. rdar://problem/93329781

Add logging when taking a process assertion synchronously
https://bugs.webkit.org/show_bug.cgi?id=240334

Reviewed by Chris Dumez.

No observable change of behavior.

  • UIProcess/ios/ProcessAssertionIOS.mm: (WebKit::ProcessAssertion::acquireSync):

Canonical link: https://commits.webkit.org/250580@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294222 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295185] by Alan Coon
  • 6 edits in branches/safari-613-branch/Source/WebCore/html/track

Cherry-pick 8cfadef7857b. rdar://problem/93512736

TextTrackCue should get its document for its ActiveDOMObject base class
https://bugs.webkit.org/show_bug.cgi?id=240660
<rdar://93512736>

Reviewed by Eric Carlson.

TextTrackCue should get its document for its ActiveDOMObject base class instead
of requiring an extra data member to store it.

  • Source/WebCore/html/track/TextTrackCue.cpp: (WebCore::TextTrackCue::TextTrackCue): (WebCore::TextTrackCue::scriptExecutionContext const): (WebCore::TextTrackCue::document const): (WebCore::TextTrackCue::getCueAsHTML): (WebCore::TextTrackCue::rebuildDisplayTree):
  • Source/WebCore/html/track/TextTrackCue.h: (WebCore::TextTrackCue::ownerDocument): Deleted.
  • Source/WebCore/html/track/TextTrackCueGeneric.cpp: (WebCore::TextTrackCueGeneric::createDisplayTree): (WebCore::TextTrackCueGeneric::setFontSize):
  • Source/WebCore/html/track/TextTrackCueGeneric.h:
  • Source/WebCore/html/track/VTTCue.cpp: (WebCore::VTTCue::VTTCue): (WebCore::VTTCue::initialize): (WebCore::VTTCue::createDisplayTree): (WebCore::VTTCue::displayTreeInternal): (WebCore::VTTCue::createWebVTTNodeTree): (WebCore::VTTCue::getCueAsHTML): (WebCore::VTTCue::createCueRenderingTree): (WebCore::VTTCue::getDisplayTree): (WebCore::VTTCue::removeDisplayTree):
  • Source/WebCore/html/track/VTTCue.h:

Canonical link: https://commits.webkit.org/250757@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295184] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in

Cherry-pick 69306d30d9ef. rdar://problem/92460835

[macOS][WP] Add required methods to graphics filters
https://bugs.webkit.org/show_bug.cgi?id=240398
<rdar://92460835>

Reviewed by Geoffrey Garen.

Add required methods to graphics filters. These have been observed being used in telemetry.

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

Canonical link: https://commits.webkit.org/250665@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294362 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295183] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick 5883fa195996. rdar://problem/92442408

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Reviewed by Geoffrey Garen.

The refactoring in Bug 229414 did not retain the old behavior on iOS where local
files (which do not get a MIME type assigned by CFNetwork) passed through the
same 'preferredMIMETypeForFileExtensionFromUTType' logic we use on macOS.

  • platform/network/ios/WebCoreURLResponseIOS.mm: (WebCore::adjustMIMETypeIfNecessary):

Canonical link: https://commits.webkit.org/250499@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294118 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295182] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/animation/KeyframeEffect.cpp

Cherry-pick 41769648c46b. rdar://problem/93513759

Need to keep the document alive in KeyframeEffect::processKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=240677
<rdar://93513759>

Reviewed by Saam Barati.

Since the Document is used throughout KeyframeEffect::processKeyframes and it's provided
as a simple reference, we must ensure we keep it alive with a Ref since JS code in a custom
iterator for the keyframes object could cause it to be torn down.

  • Source/WebCore/animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::processKeyframes):

Canonical link: https://commits.webkit.org/250756@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294497 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295181] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick 1d5e3b70369b. rdar://problem/93369102

[JSC] Always have non nullptr for WebAssembly.Memory buffer
https://bugs.webkit.org/show_bug.cgi?id=240510

Reviewed by Mark Lam.

This patch adds CagedUniquePtr to allocate a pointer for that.

  • Source/JavaScriptCore/runtime/ArrayBuffer.cpp: (JSC::ArrayBuffer::makeShared):
  • Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp: (JSC::JSWebAssemblyMemory::buffer):

Canonical link: https://commits.webkit.org/250639@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294319 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295180] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm

Cherry-pick 0f9af8a58c18. rdar://problem/93740263

Bump the priority of iOS ProcessAssertion Queue
https://bugs.webkit.org/show_bug.cgi?id=240784

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-23
Reviewed by Chris Dumez.

It is important to acquire assertions in a timely manner as otherwise the UIProcess
might think a process is unresponsive.
Bump the priority to WorkQueue::QOS::UserInitiated.

  • Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm: (assertionsWorkQueue):

Canonical link: https://commits.webkit.org/250874@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295179] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick 07c0107aa7af. rdar://problem/92301472

[selectors] Double script focus after mouse click shouldn't match :focus-visible
https://bugs.webkit.org/show_bug.cgi?id=239472
<rdar://problem/92301472>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-script-focus-020-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-script-focus-020.html: Added.

Source/WebCore:

When you do the second script focus, we were setting
m_latestFocusTrigger to FocusTrigger::Bindings, that makes us lose the
information about the previous element that was focused via mouse
click and start matching :focus-visible on that case.

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-script-focus-020.html

  • dom/Document.cpp: (WebCore::Document::setFocusedElement): We avoid setting m_latestFocusTrigger if we come from script focus. That way we know if the previous focused element was focused via mouse click after several script focus.

Canonical link: https://commits.webkit.org/250373@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295178] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore/html

Cherry-pick 0062ea642e7f. rdar://problem/93525670

MediaController should be an ContextDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=240749
<rdar://93525670>

Reviewed by Youenn Fablet.

  • html/MediaController.cpp: (WebCore::MediaController::MediaController):
  • html/MediaController.h:

Canonical link: https://commits.webkit.org/250882@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294664 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295177] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick 21a843f63576. rdar://problem/80059355

[iOS] [WK2] Managed pasteboard should function for all managed domains
https://bugs.webkit.org/show_bug.cgi?id=239319
rdar://80059355

Reviewed by Kate Cheney.

Source/WebCore/PAL:

Add an SPI method on MCProfileConnection.

  • pal/spi/ios/ManagedConfigurationSPI.h:

Source/WebKit:

Unless a WebKit client has specified a data owner for the web view that is not _UIDataOwnerUndefined, fall back
to _UIDataOwnerEnterprise when the current domain of the WKWebView is managed (that is, `-[MCProfileConnection
isURLManaged:]` returns YES for the web view's current URL). This allows managed pasteboard to work for all
WebKit clients, if the current URL is managed.

Test: UIPasteboardTests.PerformAsDataOwnerWithManagedURL

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: move the staged declarations of -_dataOwnerForCopy and -_dataOwnerForPaste out of the IPI
section, and into the non-internal SDK section.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _dataOwnerForPasteboard:]):

Tools:

Add a new API test to verify that we fall back to consulting -[MCProfileConnection isURLManaged:] when
determining the data owner for copy and paste, unless a data owner is already explicitly set on a view in the
responder chain (specifically, the WKWebView).

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (+[TestUIPasteboard _performAsDataOwner:block:]): (-[TestMCProfileConnection isURLManaged:]): (TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/249658@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292888 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295176] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/88904160

11:45 PM Changeset in webkit [295175] by Alan Coon
  • 5 edits in branches/safari-613-branch

Apply patch. rdar://problem/92380002

11:45 PM Changeset in webkit [295174] by Alan Coon
  • 4 edits in branches/safari-613-branch

Apply patch. rdar://problem/92015599

11:44 PM Changeset in webkit [295173] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/88904160

11:44 PM Changeset in webkit [295172] by Alan Coon
  • 18 edits in branches/safari-613-branch

Apply patch. rdar://problem/88904160

10:41 PM Changeset in webkit [295171] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize HTMLTokenizer::bufferASCIICharacter()
https://bugs.webkit.org/show_bug.cgi?id=241252

Reviewed by Yusuke Suzuki.

Optimize HTMLTokenizer::bufferASCIICharacter() by appending several characters
at once whenever possible.

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

(WebCore::HTMLTokenizer::processToken):

  • Source/WebCore/html/parser/HTMLTokenizer.h:

(WebCore::HTMLTokenizer::bufferCharacters):

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

10:35 PM Changeset in webkit [295170] by Nikos Mouchtaris
  • 2 edits in trunk/Source

Add check for pixel buffer format in RemoteRenderingBackend::getPixelBufferForImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=241243
<rdar://89611041>

Reviewed by Simon Fraser.

Add check to ensure that pixel buffer format is supported.

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

(WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer):

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

10:31 PM Changeset in webkit [295169] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore/loader/cache

Can't load a very large image as an image document
https://bugs.webkit.org/show_bug.cgi?id=241110
<rdar://94126683>

Reviewed by Jer Noble.

Stop flattening the SharedBuffer whenever we received a new segment.
The core logic change to support this was done in https://bugs.webkit.org/show_bug.cgi?id=236695
but the CachedImage wasn't modified at the time (it should have been).

We have to use const_cast for now to minimize the change size, proper solution will be done in
https://bugs.webkit.org/show_bug.cgi?id=241251

  • Source/WebCore/loader/cache/CachedImage.cpp:

(WebCore::CachedImage::updateBufferInternal):
(WebCore::CachedImage::updateBuffer):

  • Source/WebCore/loader/cache/CachedImage.h:

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

10:02 PM Changeset in webkit [295168] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore/crypto/openssl

[OpenSSL] Treat types as opaque
https://bugs.webkit.org/show_bug.cgi?id=239858

Reviewed by Basuke Suzuki.

LibreSSL 3.5.x made a number of types opaque for compatibility with OpenSSL. Unfortunately
a number of places in the WebCrypto implementation were accessing these structs directly.
Modify the code to use the provided functions to access and modify the types in the same
manner they were being used.

Modified WebCore::convertToBigNumber to return a BIGNUMPtr with a newly allocated BIGNUM.
This change was done because all calls to the function were returning a new BIGNUM rather
than reusing one after transitioning to opaque types. By returning a BIGNUMPtr leaks are
prevented. In the case where OpenSSL expects ownership to be transferred release() is
used.

  • Source/WebCore/crypto/openssl/CryptoAlgorithmECDSAOpenSSL.cpp:
  • Source/WebCore/crypto/openssl/CryptoKeyECOpenSSL.cpp:
  • Source/WebCore/crypto/openssl/CryptoKeyRSAOpenSSL.cpp:
  • Source/WebCore/crypto/openssl/OpenSSLUtilities.cpp:
  • Source/WebCore/crypto/openssl/OpenSSLUtilities.h:

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

7:08 PM Changeset in webkit [295167] by Chris Dumez
  • 4 edits in trunk/Source

Optimize HTMLTokenizer::processEntity()
https://bugs.webkit.org/show_bug.cgi?id=241239

Reviewed by Darin Adler.

Optimize HTMLTokenizer::processEntity() by appending all characters in the
StringBuffer at once, instead of one by one.

  • Source/WebCore/html/parser/HTMLToken.h:

(WebCore::HTMLToken::appendToCharacters):

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

(WebCore::HTMLTokenizer::bufferCharacters):
(WebCore::HTMLTokenizer::processEntity):

  • Source/WebCore/html/parser/HTMLTokenizer.h:

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

6:31 PM Changeset in webkit [295166] by Patrick Angle
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js

Web Inspector: Layout details sidebar panel does unnecessary tracking of the selected DOM node's styles
https://bugs.webkit.org/show_bug.cgi?id=241245
rdar://94318782

Reviewed by Devin Rousso.

Code that, among other things, causes a layout when the selected DOM node's styles change should have been removed when
the Box Model diagram was removed from this sidebar panel. Additionally, because that was the only node-specific thing
in this panel, we can persist the sidebar panel even when the selected node is not an element.

  • Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel):
(WI.LayoutDetailsSidebarPanel.prototype.inspect): Deleted.
(WI.LayoutDetailsSidebarPanel.prototype.supportsDOMNode): Deleted.
(WI.LayoutDetailsSidebarPanel.prototype._nodeStylesRefreshed): Deleted.
(WI.LayoutDetailsSidebarPanel.prototype._nodeStylesNeedsRefreshed): Deleted.

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

6:07 PM Changeset in webkit [295165] by Ross Kirsling
  • 1 edit in trunk/Source/WebCore/accessibility/AXObjectCache.h

Unreviewed !ENABLE(ACCESSIBILITY) build fix for r295139.

  • Source/WebCore/accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::relatedObjectIDsFor):
(WebCore::AXObjectCache::relatedObjectsFor): Deleted.

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

6:04 PM Changeset in webkit [295164] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: Layout overlay color swatches don't update saved color until popover is dismissed
https://bugs.webkit.org/show_bug.cgi?id=241244
rdar://94318762

Reviewed by Devin Rousso.

We should save all changes to layout overlay color, not just the state when you close the color picker popover. Not
doing this causes a few issues:

  1. DOM node badge colors don't update as you dynamically adjust the color for an overlay.
  2. The new "sample color from screen" can be used without opening the popover for the color picker, which means these

changes are never saved.

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

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

Tag WebKit-7614.1.15.1.

5:53 PM Changeset in webkit [295162] by Alan Coon
  • 9 edits in branches/safari-7614.1.15-branch/Source

Versioning.

WebKit-7614.1.15.1

5:48 PM Changeset in webkit [295161] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: reference page links don't open externally when inspecting that reference page
https://bugs.webkit.org/show_bug.cgi?id=241246

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/ReferencePage.js:

(WI.ReferencePage.prototype.createLinkElement):

  • Source/WebInspectorUI/UserInterface/Base/Main.js:

(WI.handlePossibleLinkClick):
(WI.openURL):

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForURL):

  • Source/WebInspectorUI/UserInterface/Views/DOMDetailsSidebarPanel.js:

(WI.DOMDetailsSidebarPanel.prototype._mouseWasClicked):

  • Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype._mouseWasClicked.followLink):

  • Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype._mouseWasClicked):
Drive-by: Refactor WI.openURL (and WI.handlePossibleLinkClick) to have frame be in options.

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

5:44 PM Changeset in webkit [295160] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.11-branch/Source

Versioning.

WebKit-7614.1.14.11.5

5:39 PM Changeset in webkit [295159] by Megan Gardner
  • 4 edits in trunk/Source

Consolidate NSSpellCheckerSPI to one file.
https://bugs.webkit.org/show_bug.cgi?id=241242

Reviewed by Tim Horton.

Move random bits of SPI that predate our SPI files to the existing SPI files
to clean things up.

  • Source/WebCore/PAL/pal/spi/mac/NSSpellCheckerSPI.h:
  • Source/WebKit/UIProcess/mac/TextCheckerMac.mm:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm:
  • Source/WebKitLegacy/mac/WebView/WebView.mm:

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

5:26 PM Changeset in webkit [295158] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: Timelines Tab: Screenshots: missing ReferencePage
https://bugs.webkit.org/show_bug.cgi?id=241247

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/ReferencePage.js:
  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.js:

(WI.ScreenshotsTimelineView.prototype.initialLayout): Added.
(WI.ScreenshotsTimelineView.prototype.layout):

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots > .content-view): Renamed from .timeline-view.screenshots.
(.timeline-view.screenshots > .content-view > .spacer): Renamed from .timeline-view.screenshots > .spacer.
(.timeline-view.screenshots > .content-view > img): Renamed from .timeline-view.screenshots > img.
(.timeline-view.screenshots > .content-view > img + img): Renamed from .timeline-view.screenshots > img + img.
(.timeline-view.screenshots > .content-view > img.selected): Renamed from .timeline-view.screenshots > img.selected.
(@media (prefers-color-scheme: dark) .timeline-view.screenshots > .content-view): Renamed from @media (prefers-color-scheme: dark) .timeline-view.screenshots.
Wrap all of the <img> inside a WI.ContentView (which also includes the special styling for
WI.createMessageTextView inside a WI.ContentView) so that removeChildren doesn't also remove
the reference page link.

  • Source/WebInspectorUI/UserInterface/Views/TimelineView.css:

(.timeline-view > .reference-page-link-container):
Make sure the reference page link is always on top.

  • Source/WebInspectorUI/UserInterface/Views/TimelineView.js:

(WI.TimelineView.prototype.initialLayout):
Assume that a ReferencePage is defined so that if it's not, WebKit engineers will catch that more
obviously (i.e. the uncaught exception reporter) instead of having to notice an assertion failure.

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

5:20 PM Changeset in webkit [295157] by achristensen@apple.com
  • 4 edits in trunk

PreconnectTask should follow HSTS "redirects"
https://bugs.webkit.org/show_bug.cgi?id=241237
rdar://92870039

Reviewed by Chris Dumez.

NetworkLoadClient::willSendRedirectedRequest requires callees to call
NetworkLoad::continueWillSendRequest when finished.
This should be refactored into a direct completion handler call instead of
storing the completion handler on the NetworkLoad, but that is more invasive
and should be done in a separate PR that will be harder to merge to branches.

  • Source/WebKit/NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::willSendRedirectedRequest):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::Connection::terminate):

  • Tools/TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::terminate):

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

5:13 PM Changeset in webkit [295156] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.0.14

Tag WebKit-7614.1.14.0.14.

5:08 PM Changeset in webkit [295155] by Alan Bujtas
  • 1 edit
    2 adds in trunk

Regression(r294902) Web Inspector highlight gets stuck when hovering over items.
https://bugs.webkit.org/show_bug.cgi?id=241231

Reviewed by Simon Fraser.

This patch ensures that repaint() goes through for the "about-to-be-destroyed" content.

Staring from r294902, when the RenderLayer says "I am scheduled for a full repaint", any subsequent repaint call on the associated renderer returns early (no repaint) as we are certain that a full repaint is going to be issued still within the current "rendering update" frame as part of the post-layout tasks.
Except this one case when soon after marking the RenderLayer dirty with the "needs full repaint" flag, we destroy both the layer and the associated renderer. In this case the layer has no chance to issue the repaint.

  • LayoutTests/fast/repaint/repaint-renderer-with-layer-on-detach-expected.txt: Added.
  • LayoutTests/fast/repaint/repaint-renderer-with-layer-on-detach.html: Added.
  • Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::detachFromRenderElement):

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

5:05 PM Changeset in webkit [295154] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.14

4:28 PM Changeset in webkit [295153] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py

Add support for NetBSD
https://bugs.webkit.org/show_bug.cgi?id=241078

Patch by Leonardo Taccari <leot@NetBSD.org> on 2022-06-02
Reviewed by Fujii Hironori.

  • Tools/Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo._determine_os_name):

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

4:16 PM Changeset in webkit [295152] by Devin Rousso
  • 14 edits
    2 moves in trunk

Web Inspector: Audit: allow audits to be evaluated as a user gesture
https://bugs.webkit.org/show_bug.cgi?id=200276

Reviewed by Patrick Angle.

This will allow developers to create/run audits that pretend to be a user (e.g. play media, etc.).

  • Source/WebCore/inspector/InspectorAuditDOMObject.idl:
  • Source/WebCore/inspector/InspectorAuditDOMObject.h:

(WebCore::InspectorAuditDOMObject::create):

  • Source/WebCore/inspector/InspectorAuditDOMObject.cpp:

(WebCore::InspectorAuditDOMObject::InspectorAuditDOMObject):
(WebCore::InspectorAuditDOMObject::simulateUserInteraction): Added.

  • Source/JavaScriptCore/inspector/protocol/Audit.json:
  • Source/WebInspectorUI/UserInterface/Models/AuditTestBase.js:

Increment the current audit version number.

  • Source/WebCore/inspector/agents/page/PageAuditAgent.h:

(WebCore::PageAuditAgent::inspectedPage const): Added.
Expose a way for InspectorAudit*Object to access the inspected Page.

  • Source/WebCore/inspector/UserGestureEmulationScope.h: Renamed from Source/WebCore/inspector/agents/page/UserGestureEmulationScope.h.
  • Source/WebCore/inspector/UserGestureEmulationScope.cpp: Renamed from Source/WebCore/inspector/agents/page/UserGestureEmulationScope.cpp.
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Drive-by: Move this file as it's now used by more than just the Page*Agent specializations.

  • LayoutTests/inspector/audit/run-dom.html:
  • LayoutTests/inspector/audit/run-dom-expected.txt:
  • LayoutTests/inspector/model/auditTestCase.html:
  • LayoutTests/inspector/model/auditTestCase-expected.txt:
  • LayoutTests/inspector/model/auditTestGroup.html:
  • LayoutTests/inspector/model/auditTestGroup-expected.txt:

Drive-by: Make it so that these tests no longer need to be updated when the audit version changes.

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

3:37 PM Changeset in webkit [295151] by sihui_liu@apple.com
  • 6 edits in trunk

Promote _WKWebsiteDataTypeFileSystem to API
https://bugs.webkit.org/show_bug.cgi?id=241142

Reviewed by Geoffrey Garen.

  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore allWebsiteDataTypes]):
(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:

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

3:33 PM Changeset in webkit [295150] by Kate Cheney
  • 1 edit
    2 adds in trunk

[WK2] Sharing services picker button in Mail does not appear after scrolling.
https://bugs.webkit.org/show_bug.cgi?id=240260
<rdar://problem/91492622>

Reviewed by Tim Horton.

Adjust CSS for image controls button to make sure it scrolls with the image in the case
where the image is larger than the Mail compose window.

First we need to remove 'overflow: hidden' from the container div in order for sticky to work.
This seems fine because we never crop or adjust the image-controls container div, it is always
set to the size of the image, even when the image is cropped or the size is adjusted.

Then we add position: sticky and replace 'right: 0px' with 'float: right' because sticky will ignore
any position specification after 'top: 0px' due to its implementation.

  • LayoutTests/fast/images/mac/image-controls-sticky-scrolling-expected.txt: Added.

Observing that the RenderButton layer has scrolled to (1978,500) tests this behavior.

  • LayoutTests/fast/images/mac/image-controls-sticky-scrolling.html: Added.
  • Source/WebCore/html/shadow/mac/imageControlsMac.css:

(#if defined(ENABLE_SERVICE_CONTROLS) && ENABLE_SERVICE_CONTROLS):
(button#image-controls-button):

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

3:12 PM Changeset in webkit [295149] by Said Abou-Hallawa
  • 28 edits
    4 copies
    1 add in trunk/Source

[GPU Process] [Filters] Make ImageBufferAllocator control the creation of the FilterImage buffers
https://bugs.webkit.org/show_bug.cgi?id=240808
<rdar://problem/94117817>

Reviewed by Simon Fraser.

Route all the allocations of the ImageBuffers and the PixelBuffers, which are made
by filter effects to a new class named ImageBufferAllocator. Because some filter
effects may call ImageBuffer::getPixelBuffer() from their FilterImages, we need
to pass an ImageBufferAllocator to this method as well.

The goal is to be able to attribute all the filter intermediate result FilterImage
to WebPorcess from one class. This will be a super class of ImageBufferAllocator
named ImageBufferShareableAllocator.

In a future patch, this class will be able to create shareable PixelBuffer and
will be able to attribute all its allocated memory to WebProcess.

  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/platform/graphics/ConcreteImageBuffer.h:
  • Source/WebCore/platform/graphics/ImageBuffer.h:
  • Source/WebCore/platform/graphics/ImageBufferAllocator.cpp: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.

(WebCore::ImageBufferAllocator::createImageBuffer const):
(WebCore::ImageBufferAllocator::createPixelBuffer const):

  • Source/WebCore/platform/graphics/ImageBufferAllocator.h: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.
  • Source/WebCore/platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/ImageBufferBackend.h:
  • Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • Source/WebCore/platform/graphics/filters/Filter.cpp:

(WebCore::Filter::apply):

  • Source/WebCore/platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):

  • Source/WebCore/platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::create):
(WebCore::FilterImage::FilterImage):
(WebCore::FilterImage::imageBufferFromPixelBuffer):
(WebCore::getConvertedPixelBuffer):
(WebCore::FilterImage::pixelBuffer):
(WebCore::FilterImage::getPixelBuffer):
(WebCore::FilterImage::copyPixelBuffer):

  • Source/WebCore/platform/graphics/filters/FilterImage.h:
  • Source/WebCore/platform/graphics/filters/FilterResults.cpp: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.

(WebCore::FilterResults::FilterResults):
(WebCore::FilterResults::effectResult const):
(WebCore::FilterResults::setEffectResult):
(WebCore::FilterResults::clearEffectResult):

  • Source/WebCore/platform/graphics/filters/FilterResults.h:

(WebCore::FilterResults::allocator const):
(WebCore::FilterResults::effectResult const): Deleted.
(WebCore::FilterResults::setEffectResult): Deleted.
(WebCore::FilterResults::clearEffectResult): Deleted.

  • Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.cpp: Added.

(WebKit::ImageBufferShareableAllocator::createImageBuffer const):
(WebKit::ImageBufferShareableAllocator::createPixelBuffer const):
(WebKit::ImageBufferShareableAllocator::transferMemoryOwnership):

  • Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.h: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):

  • Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
  • Source/WebKit/Shared/ShareableBitmap.h:

(WebKit::ShareableBitmap::Handle::handle):
(WebKit::ShareableBitmap::sizeInBytes const):

  • Source/WebKit/Sources.txt:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::getPixelBuffer const):

  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::getPixelBuffer const):

  • Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:

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

2:45 PM Changeset in webkit [295148] by Manuel Rego Casasnovas
  • 5 edits in trunk

Reflection for FrozenArray<Element> caching invariant
https://bugs.webkit.org/show_bug.cgi?id=240563

Reviewed by Ryosuke Niwa.

This patch implements the caching layer described in the spec PR
for reflection of FrozenArray<T> attributes:
https://github.com/whatwg/html/pull/3917
Which fixes the test cases that were checking for:
el.ariaDescribedByElements === el.ariaDescribedByElements

This patch stores a new JSObject in the JSElement using a PrivateName.
Then for each attribute we store the cached JSValue in the JSObject.
If the cached JSValue matches the current Vector of Elements that
we're going to return, we return the cached JSValue instead.

  • LayoutTests/imported/w3c/web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt: Update expectations.
  • LayoutTests/imported/w3c/web-platform-tests/dom/nodes/aria-element-reflection.tentative.html: Add new test cases.
  • Source/WebCore/accessibility/AriaAttributes.idl: Add CustomGetter for FrozenArray<Element> reflection.
  • Source/WebCore/bindings/js/JSElementCustom.cpp:

(WebCore::getElementsArrayAttribute): New method that implements the
caching invariant.
(WebCore::JSElement::ariaControlsElements const): Custom getter that
calls getElementsArrayAttribute().
(WebCore::JSElement::ariaDescribedByElements const): Ditto.
(WebCore::JSElement::ariaDetailsElements const): Ditto.
(WebCore::JSElement::ariaFlowToElements const): Ditto.
(WebCore::JSElement::ariaLabelledByElements const): Ditto.
(WebCore::JSElement::ariaOwnsElements const): Ditto.

  • Source/WebCore/bindings/js/WebCoreBuiltinNames.h: New built-in PrivateName.

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

2:43 PM Changeset in webkit [295147] by Patrick Angle
  • 29 edits
    1 add in trunk/Source

Web Inspector: Color picker should allow picking a color from any pixel on screen
https://bugs.webkit.org/show_bug.cgi?id=124357
rdar://15469621

Reviewed by Devin Rousso.

Add the long-missing "eyedropper" for picking a color from the screen to the Color Picker in Web Inspector. This
implementation supports both sRGB color space as well as Display P3 (the two colorspaces currently supported by the Web
Inspector frontend). The existing value format and gamut is preserved as best as possible while not clamping the color
(unless interacting with a color swatch/picker that does not allow changing the format). For example, on macOS the color
picker will return a Display-P3 color on supported displays, but the color itself may be representable in sRGB. If the
existing color you are overwriting is already in sRGB, that is preserved by converting the system's Display-P3 color
into sRGB. If the sampled color can not be represented in sRGB, we update the CSS value to support the new wider gamut
of the selected color in order to provide the best fidelity in color matching.

The picker is implemented in two places. The first is the Color Picker popovers used in Web Inspector. The second place
is as an Option-Click action for inline swatches to allow you to quickly begin color selection without opening the
picker itself.

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • Source/WebInspectorUI/UserInterface/Images/Pipette.svg: Added.
  • Source/WebInspectorUI/UserInterface/Models/Color.js:

(WI.Color.prototype.fromStringBestMatchingSuggestedFormatAndGamut):

  • New convencience "constructor" for creating a color from a String while attempting (or forcing) preservation of an

existing format and gamut.

  • Source/WebInspectorUI/UserInterface/Views/ColorPicker.css:

(.color-picker > .color-inputs-wrapper):
(.color-picker > .color-inputs-wrapper > .color-inputs):
(.color-picker > .color-inputs-wrapper > .color-inputs > div):
(.color-picker > .color-inputs-wrapper > .color-inputs > div + div):
(.color-picker > .color-inputs-wrapper > .color-inputs input):
(.color-picker > .color-inputs-wrapper > .pick-color-from-screen):
(.color-picker > .color-inputs-wrapper > .pick-color-from-screen.active):
(.color-picker > .color-inputs): Deleted.
(.color-picker > .color-inputs > div): Deleted.
(.color-picker > .color-inputs > div + div): Deleted.
(.color-picker > .color-inputs input): Deleted.

  • Source/WebInspectorUI/UserInterface/Views/ColorPicker.js:

(WI.ColorPicker.async pickColorFromScreen):

  • Add new static method to picking a color from the screen (so that InlineSwatch can use it), and add a new Pipette icon

to begin the modal color picking mode.

  • Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch.prototype._updateSwatch):

  • Add Option-Click for color swatches to immediately enter the modal color picking mode.
  • Source/WebCore/inspector/InspectorFrontendClient.h:
  • Source/WebCore/inspector/InspectorFrontendClientLocal.h:
  • Source/WebCore/inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::canPickColorFromScreen):
(WebCore::InspectorFrontendHost::pickColorFromScreen):

  • Source/WebCore/inspector/InspectorFrontendHost.h:
  • Source/WebCore/inspector/InspectorFrontendHost.idl:
  • Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::pickColorFromScreen):
(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.h:
  • Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in:
  • Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::pickColorFromScreen):
(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.h:
  • Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::pickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.h:
  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::pickColorFromScreen):
(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.h:
  • Add plubming for picking a color from the screen.
  • Source/WebKit/UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Use NSColorSampler to get the system "pick a color from the screen" UI.
  • Source/WebKit/UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/mac/WebInspectorUIMac.mm:

(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Add stubs for Windows/GTK implementations.

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

2:33 PM Changeset in webkit [295146] by commit-queue@webkit.org
  • 11 edits in trunk

Support CSS animation for text-align-last and text-justify
https://bugs.webkit.org/show_bug.cgi?id=240591
<rdar://93918638>

Patch by Kiet Ho <Kiet Ho> on 2022-06-02
Reviewed by Tim Nguyen.

Tests: LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation.html

LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation.html
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002.html
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002.html
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002.html

  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

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

(WebCore::operator<<):

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

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

2:11 PM Changeset in webkit [295145] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.3.3

2:06 PM Changeset in webkit [295144] by Fujii Hironori
  • 3 edits in trunk

REGRESSION(r286765): [Cairo][GTK][WPE] Various SVG tests that use filters fail
https://bugs.webkit.org/show_bug.cgi?id=234118

Reviewed by Don Olmstead.

Cairo doesn't support color space yet. Turned
ENABLE_DESTINATION_COLOR_SPACE_LINEAR_SRGB off for all non-Cocoa
ports.

  • LayoutTests/platform/glib/TestExpectations: Unmarked tests. But,

some tests are still failing due to different reasons. Re-marked them as
other bugs.

  • Source/WTF/wtf/PlatformEnable.h:
  • Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformToColorSpace):

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

1:53 PM Changeset in webkit [295143] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize HTMLTokenizer::temporaryBufferIs()
https://bugs.webkit.org/show_bug.cgi?id=241236

Reviewed by Darin Adler.

Optimize HTMLTokenizer::temporaryBufferIs() by leveraging the known length of
the string literal parameter.

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

(WebCore::HTMLTokenizer::processToken):
(WebCore::HTMLTokenizer::temporaryBufferIs):
(WebCore::vectorEqualsString): Deleted.

  • Source/WebCore/html/parser/HTMLTokenizer.h:

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

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

ASAN_ILL | decltype; InlineIterator::Box::line; WebCore::logicallyNextRun
https://bugs.webkit.org/show_bug.cgi?id=238673
<rdar://problem/90482678>

Reviewed by Simon Fraser.

r286350 made it so that whenever the layout viewport of a FrameView changed, it would call
Document::updateViewportUnitsOnResize, which invalidates the style of all elements that use CSS
viewport units. This is problematic because it can be triggered by a layout (specifically during
LayoutPhase::InPostLayout), meaning that there will be dirty styles after a layout.

In reality, the only reason that that Document::updateViewportUnitsOnResize call was needed was
because on the first layout, the RenderView::size would be empty (as it derives its size during
layout). All subsequent layouts would have a correct size.

After much investigation and debate, it was decided that the CSS dynamic dv* viewport units should
really be using the FrameView::size (i.e. never using the RenderView::size) because they really
care about the size of the view(port). As such, partially revert FrameView to before r286350 and
make it so that FrameView::sizeForCSSDynamicViewportUnits never looks at the RenderView::size.

  • Source/WebCore/page/FrameView.h:
  • Source/WebCore/page/FrameView.cpp:

(WebCore::FrameView::setLayoutViewportOverrideRect):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::layoutOrVisualViewportChanged):
(WebCore::FrameView::sizeForCSSDynamicViewportUnits const):

  • LayoutTests/fast/layoutformattingcontext/set-content-size-layout-reentry-crash.html: Added.
  • LayoutTests/fast/layoutformattingcontext/set-content-size-layout-reentry-crash-expected.txt: Added.
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:

(TEST.CSSViewportUnits.AllSame):
(TEST.CSSViewportUnits.NegativeMinimumViewportInset):
(TEST.CSSViewportUnits.NegativeMaximumViewportInset):
(TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset):
(TEST.CSSViewportUnits.MinimumViewportInsetThanLargerFrame):
(TEST.CSSViewportUnits.MaximumViewportInsetThanLargerFrame):
(TEST.CSSViewportUnits.MinimumViewportInset):
(TEST.CSSViewportUnits.MaximumViewportInset):
(TEST.CSSViewportUnits.MinimumViewportInsetWithZoom):
(TEST.CSSViewportUnits.MaximumViewportInsetWithZoom):
(TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode):
(TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode):
(TEST.CSSViewportUnits.MinimumViewportInsetWithFrame):
(TEST.CSSViewportUnits.MaximumViewportInsetWithFrame):
(TEST.CSSViewportUnits.MinimumViewportInsetWithBounds):
(TEST.CSSViewportUnits.MaximumViewportInsetWithBounds):
(TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset):
(TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset):
(TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets):
(TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets):
(TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMinimumViewportInset):
(TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInset):
(TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SameUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SVGDocument):
FrameView::size doesn't include scrollbars, so manually account for them where expected. This is
expected, as according to <https://drafts.csswg.org/css-values-4/#viewport-variants>:

In all cases, scrollbars are assumed not to exist.

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

1:34 PM Changeset in webkit [295141] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/text/AtomString.h

Drop unnecessary operator==() overloads for AtomString
https://bugs.webkit.org/show_bug.cgi?id=241232

Reviewed by Darin Adler.

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

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

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

1:17 PM Changeset in webkit [295140] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.2

Tag WebKit-7613.3.2.

12:46 PM Changeset in webkit [295139] by Andres Gonzalez
  • 9 edits in trunk/Source/WebCore/accessibility

AX ITM: Cache several object relationships that were not cached in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=240239

Reviewed by Chris Fleizach.

Instead of caching individual relations as separate Vectors of AXIsolatedObjects, this patch uses the new relationships implementation to cache a copy of the AXObjectCache::m_relations in the AXIsolatedTree. This data structure is updated when the AXObjectCache sets the flag m_relationsNeedUpdate and one of the relations properties is requested on the AX thread. This allows for a common implementation for all the methods to retrieve individual relationships, and the main two derived classes AXObject and AXIsolatedObject only override the relatedObjects method.

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

12:31 PM Changeset in webkit [295138] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/bindings/js/WebCoreOpaqueRoot.h

Inline addWebCoreOpaqueRoot() / containsWebCoreOpaqueRoot() functions
https://bugs.webkit.org/show_bug.cgi?id=241230

Reviewed by Geoffrey Garen.

Inline addWebCoreOpaqueRoot() / containsWebCoreOpaqueRoot() functions since I
noticed looking at profiles that they weren't getting inlined. This is a ~0.35%
progression on Intel (neutral on Apple Silicon).

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

(WebCore::addWebCoreOpaqueRoot):
(WebCore::containsWebCoreOpaqueRoot):

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

12:24 PM Changeset in webkit [295137] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebGPU/WGSLUnitTests/WGSLLexerTests.mm

[WGSL] Adjust comment of test to match the tested source
https://bugs.webkit.org/show_bug.cgi?id=240773

Patch by Mehmet Oguz Derin <mehmetoguzderin@mehmetoguzderin.com> on 2022-06-02
Reviewed by Myles C. Maxfield.

  • WGSLUnitTests/WGSLLexerTests.mm

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

12:19 PM Changeset in webkit [295136] by commit-queue@webkit.org
  • 2 edits in trunk/Source/cmake

Unreviewed, revert "[WPE][GTK] Expose ENABLE_VIDEO build option"
https://bugs.webkit.org/show_bug.cgi?id=241128

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-06-02
This partially reverts commit 07bad458c767bb286106091e3f66e87acc319b2e.

This commit was incorrect because the option is already exposed from
GStreamerDefinitions.cmake.

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

11:57 AM Changeset in webkit [295135] by Devin Rousso
  • 3 edits
    2 adds in trunk

Web Inspector: ER: Copy as fetch
https://bugs.webkit.org/show_bug.cgi?id=241216

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Models/Resource.js:

(WI.Resource.prototype.generateFetchCode): Added.

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • LayoutTests/http/tests/inspector/network/copy-as-fetch.html: Added.
  • LayoutTests/http/tests/inspector/network/copy-as-fetch-expected.txt: Added.

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

11:29 AM Changeset in webkit [295134] by Elliott Williams
  • 45 edits in trunk/Source

Fix build failures introduced in "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK"
https://bugs.webkit.org/show_bug.cgi?id=240408

Reviewed by Alexey Proskuryakov.

Revert "Revert "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK""
This reverts commit 680fe6580f261df69a607a33b6252f3e19704169.

Apply small fixups across xcconfig files to address regressions:

  • Fix SYSTEM_HEADER_SEARCH_PATHS not referring to Catlyst's include directory.
  • Replace /usr/local/include literal in PROFILE_DATA_PATH with WK_ALTERNATE_WEBKIT_SDK_PATH and WK_LIBRARY_HEADERS_FOLDER_PATH to select the correct profdata for Catalyst or self-contained builds.
  • Source/JavaScriptCore/Configurations/Base.xcconfig: Clean up an old WK_STATICLIB_INSTALL_PREFIX, replacing it with WK_LIBRARY_HEADERS_FOLDER_PATH.
  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/PAL/Configurations/PAL.xcconfig:
  • Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj: PAL's SDKVariant.xcconfig was not included in the project for some reason. This is fine for building (as it's still includable) but prevents Xcode from indexing it. Add it.
  • Source/WebGPU/Configurations/WGSL.xcconfig:
  • Source/WebGPU/Configurations/WebGPU.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/Configurations/SandboxProfiles.xcconfig: Clean up an old WK_STATICLIB_INSTALL_PREFIX setting. We don't need to redirect sandbox profiles to a separate directory, like we do headers and static libraries, so leave these paths hard coded to /usr/local/include.
  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:

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

11:25 AM Changeset in webkit [295133] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/GenerateProfiles.h

Improved inefficient string handling method to fix conversion error
https://bugs.webkit.org/show_bug.cgi?id=241194

Patch by briannafan <briannaf@berkeley.edu> on 2022-06-02
Reviewed by Dewei Zhu and Chris Dumez.

Enabling profile generation for WebKit build resulted in a compile error. Fixed conversion error so that the build completes.

  • Source/wtf/GenerateProfiles.h

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

11:13 AM Changeset in webkit [295132] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

REGRESSION(r289580): Canvas: putImageData sometimes draws nothing
https://bugs.webkit.org/show_bug.cgi?id=240802
rdar://93801722

Reviewed by Simon Fraser.

RemoteImageBufferProxy::putPixelBuffer() needs to setNeedsFlush(true) once the
request to change the backend is sent to GPUProcess. If WebProcess has access to
the ImageBufferBackend, flushDrawingContext() will be called from copyNativeImage().
This call has to wait for all DisplayList items and PutPixelBuffer messages to be
flushed to the backend before copyNativeImage() copies the pixels of the backend
to a NativeImage.

  • LayoutTests/fast/canvas/canvas-put-image-data-no-draw-expected.html: Added.
  • LayoutTests/fast/canvas/canvas-put-image-data-no-draw.html: Added.
  • LayoutTests/platform/mac-wk2/TestExpectations:
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):

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

(WebCore::ImageBuffer::setNeedsFlush):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

(WebKit::RemoteDisplayListRecorderProxy::send):
(WebKit::RemoteDisplayListRecorderProxy::resetNeedsFlush): Deleted.
(WebKit::RemoteDisplayListRecorderProxy::needsFlush const): Deleted.
(): Deleted.

  • Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):

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

10:41 AM Changeset in webkit [295131] by Ben Nham
  • 3 edits in trunk

Reset WebKitTestRunner notification policies as part of test cleanup
https://bugs.webkit.org/show_bug.cgi?id=239300

Reviewed by Geoffrey Garen.

Some notification layout tests that check permissions (e.g. http/tests/push-api/subscribe) seem to
be flaky. I can't reproduce this flakiness locally, but from code inspection, this flakiness is
possible if a prewarmed or cached WebContent process is used for one of these tests.

The reason for this is that when a test finishes, WebNotificationProvider (in WebKitTestRunner)
tries to reset the notification permissions. However, it doesn't tell cached WebContent processes
about this reset via WKNotificationManagerProviderDidRemoveNotificationPolicies. To fix this, make
WebNotificationProvider::reset call that function.

  • LayoutTests/platform/mac-wk2/TestExpectations:
  • Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::deletePushAndNotificationRegistration):

  • Tools/WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::securityOriginsFromStrings):
(WTR::WebNotificationProvider::reset):

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

10:20 AM Changeset in webkit [295130] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[macOS WK2] svg/animations/smil-leak-element-instances.svg is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214579

Unreviewed test gardening.

Remove release from the flaky expectation as this affects debug bots as well.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

8:51 AM Changeset in webkit [295129] by Chris Dumez
  • 51 edits in trunk

Drop unnecessary operator==() overloads from StringView
https://bugs.webkit.org/show_bug.cgi?id=241189

Reviewed by Darin Adler.

  • Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:

(JSC::relativeTimeUnitType):

  • Source/JavaScriptCore/runtime/TemporalObject.cpp:

(JSC::temporalUnitType):

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

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

  • Source/WebCore/Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:

(WebCore::ApplePayAMSUIPaymentHandler::handlesIdentifier):

  • Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::handlesIdentifier):

  • Source/WebCore/Modules/cache/DOMCache.cpp:

(WebCore::hasResponseVaryStarHeaderValue):

  • Source/WebCore/Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::queryCacheMatch):

  • Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::isValidPathSegment):
(WebCore::resolveRelativeVirtualPath):
(WebCore::DOMFileSystem::evaluatePath):

  • Source/WebCore/Modules/fetch/FetchRequest.cpp:

(WebCore::computeReferrer):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::createYouTubeURL):
(WebCore::processAndCreateYouTubeURL):

  • Source/WebCore/css/SelectorCheckerTestFunctions.h:

(WebCore::containslanguageSubtagMatchingRange):

  • Source/WebCore/css/StyleProperties.cpp:

(WebCore::isCSSWideValueKeyword):

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

(WebCore::parseGridTemplateAreasColumnNames):

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::initDNSPrefetch):

  • Source/WebCore/editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::advanceIteratorNodeAndUpdateText):

  • Source/WebCore/fileapi/ThreadableBlobRegistry.cpp:

(WebCore::isBlobURLContainsNullOrigin):

  • Source/WebCore/html/FeaturePolicy.cpp:

(WebCore::processOriginItem):

  • Source/WebCore/html/HTMLScriptElement.h:
  • Source/WebCore/html/parser/CSSPreloadScanner.cpp:

(WebCore::hasValidImportConditions):

  • Source/WebCore/loader/CrossOriginAccessControl.cpp:

(WebCore::shouldCrossOriginResourcePolicyCancelLoad):

  • Source/WebCore/loader/CrossOriginEmbedderPolicy.cpp:

(WebCore::obtainCrossOriginEmbedderPolicy):

  • Source/WebCore/loader/CrossOriginOpenerPolicy.cpp:

(WebCore::obtainCrossOriginOpenerPolicy):

  • Source/WebCore/loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::readResourceType):
(WebCore::ContentExtensions::readLoadType):
(WebCore::ContentExtensions::readLoadContext):

  • Source/WebCore/mathml/MathMLMencloseElement.cpp:

(WebCore::MathMLMencloseElement::addNotationFlags):

  • Source/WebCore/mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::parseNamedSpace):

  • Source/WebCore/page/EventSource.cpp:

(WebCore::EventSource::parseEventStreamLine):

  • Source/WebCore/page/FrameTree.cpp:

(WebCore::isSelfTargetFrameName):

  • Source/WebCore/page/Quirks.cpp:

(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):

  • Source/WebCore/platform/LegacySchemeRegistry.cpp:

(WebCore::LegacySchemeRegistry::isUserExtensionScheme):

  • Source/WebCore/platform/LocalizedStrings.cpp:

(WebCore::AXARIAContentGroupText):

  • Source/WebCore/platform/graphics/HEVCUtilities.cpp:

(WebCore::parseAVCCodecParameters):
(WebCore::parseHEVCCodecParameters):

  • Source/WebCore/platform/graphics/cg/UTIRegistry.cpp:

(WebCore::isGIFImageType):

  • Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::WebMParser::OnTrackEntry):
(WebCore::WebMParser::isSupportedVideoCodec):
(WebCore::WebMParser::isSupportedAudioCodec):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):

  • Source/WebCore/platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:

(WebCore::VideoTrackPrivateWebM::codec const):

  • Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::sessionLoadFailureFromThunder):

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

(WebCore::filenameFromHTTPContentDisposition):
(WebCore::parseCrossOriginResourcePolicyHeader):

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

(WebCore::parseContentRange):

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

(WebCore::passesTimingAllowOriginCheck):

  • Source/WebCore/svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseCondition):

  • Source/WebGPU/WGSL/AST/TypeDecl.h:

(WGSL::AST::ParameterizedType::stringViewToKind):

  • Source/WebGPU/WGSL/Lexer.cpp:

(WGSL::Lexer<T>::lex):

  • Source/WebGPU/WGSL/Parser.cpp:

(WGSL::Parser<Lexer>::parseAttribute):
(WGSL::Parser<Lexer>::parsePrimaryExpression):

  • Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:

(WebKit::PCM::NetworkLoader::start):

  • Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::updateVaryInformation):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):

  • Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleEditingCommand):
(WebKit::PDFPlugin::isEditingCommandEnabled):

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

(TestWebKitAPI::TEST):

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

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(createDirectories):

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

8:36 AM Changeset in webkit [295128] by commit-queue@webkit.org
  • 23 edits
    1 copy
    38 adds
    2 deletes in trunk

[GTK][WPE] Enable modern media controls
https://bugs.webkit.org/show_bug.cgi?id=182502

Patch by Philippe Normand <philn@igalia.com> on 2022-06-02
Reviewed by Adrian Perez de Castro.

Initial support for the modern media controls on GTK and WPE. The old media controls are broken,
their buttons are no longer rendered.

These new controls are adapted from the macOS controls, both inline and fullscreen, with the
difference that we use the Adwaita icon theme. SVG/PNG icons are shipped in the WebKit library using
GResources. Some adaptations had to be made in the cross-platform JS code of the controls, so that
Airplay UI components can be disabled, WPE/GTK don't support this yet.

  • LayoutTests/platform/glib/TestExpectations:
  • LayoutTests/platform/gtk/TestExpectations:
  • Source/WTF/wtf/Platform.h:
  • Source/WebCore/CMakeLists.txt:
  • Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::layoutTraitsClassName const):

  • Source/WebCore/Modules/mediacontrols/mediaControlsAdwaita.css: Removed.
  • Source/WebCore/Modules/mediacontrols/mediaControlsAdwaita.js: Removed.
  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-fullscreen-media-controls.css: Added.

(.media-controls.adwaita.fullscreen):
(.media-controls.adwaita.fullscreen > .controls-bar):
(.media-controls.adwaita.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider):
(.media-controls.adwaita.fullscreen .buttons-container):
(.media-controls.adwaita.fullscreen .buttons-container.left):
(.media-controls.adwaita.fullscreen .buttons-container.center):
(.media-controls.adwaita.fullscreen .buttons-container.right):
(.media-controls.adwaita.fullscreen .buttons-container.right button):
(.media-controls.adwaita.fullscreen .time-control):
(.media-controls.adwaita.fullscreen > .controls-bar .status-label):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-fullscreen-media-controls.js: Added.

(AdwaitaFullscreenMediaControls.prototype.handleEvent):
(AdwaitaFullscreenMediaControls.prototype.layout):
(AdwaitaFullscreenMediaControls.prototype._volumeControlsForCurrentDirection):
(AdwaitaFullscreenMediaControls.prototype._collapsableButtons):
(AdwaitaFullscreenMediaControls.prototype._handleMousedown):
(AdwaitaFullscreenMediaControls.prototype._handleMousemove):
(AdwaitaFullscreenMediaControls.prototype._handleMouseup):
(AdwaitaFullscreenMediaControls.prototype._pointForEvent):
(AdwaitaFullscreenMediaControls):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-inline-media-controls.css: Added.

(.media-controls.adwaita.inline .volume-slider-container):
(.media-controls.adwaita.inline.audio .volume-slider-container):
(.media-controls.adwaita.inline .volume-slider-container > .background-tint):
(.media-controls.adwaita.inline .volume-slider-container > .background-tint > div):
(.media-controls.adwaita.inline .volume-slider-container > .slider):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-inline-media-controls.js: Added.

(AdwaitaInlineMediaControls.prototype.layout):
(AdwaitaInlineMediaControls.prototype.get preferredMuteButtonStyle):
(AdwaitaInlineMediaControls.prototype.handleEvent):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-layout-traits.js: Copied from Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js.

(AdwaitaLayoutTraits.prototype.mediaControlsClass):
(AdwaitaLayoutTraits.prototype.overridenSupportingObjectClasses):
(AdwaitaLayoutTraits.prototype.resourceDirectory):
(AdwaitaLayoutTraits.prototype.controlsAlwaysAvailable):
(AdwaitaLayoutTraits.prototype.controlsNeverAvailable):
(AdwaitaLayoutTraits.prototype.supportsIconWithFullscreenVariant):
(AdwaitaLayoutTraits.prototype.supportsDurationTimeLabel):
(AdwaitaLayoutTraits.prototype.controlsDependOnPageScaleFactor):
(AdwaitaLayoutTraits.prototype.skipDuration):
(AdwaitaLayoutTraits.prototype.promoteSubMenusWhenShowingMediaControlsContextMenu):
(AdwaitaLayoutTraits.prototype.supportsTouches):
(AdwaitaLayoutTraits.prototype.supportsAirPlay):
(AdwaitaLayoutTraits.prototype.supportsPiP):
(AdwaitaLayoutTraits.prototype.toString):
(AdwaitaLayoutTraits):

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

(InlineMediaControls.prototype._rightContainerButtons):
(InlineMediaControls.prototype._droppableButtons):

  • Source/WebCore/Modules/modern-media-controls/controls/ios-layout-traits.js:

(IOSLayoutTraits.prototype.supportsAirPlay):
(IOSLayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.supportsAirPlay):
(LayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js:

(MacOSLayoutTraits.prototype.supportsAirPlay):
(MacOSLayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.):

  • Source/WebCore/Modules/modern-media-controls/controls/watchos-layout-traits.js:

(WatchOSLayoutTraits.prototype.supportsAirPlay):
(WatchOSLayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/images/adwaita/EnterFullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/ExitFullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Forward.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/MediaSelector-fullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/MediaSelector.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Overflow.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Pause.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/PipIn-fullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/PipIn.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/PipOut.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Play.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Rewind.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipBack10.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipBack15.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipForward10.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipForward15.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume0-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume0.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume1-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume1.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume2-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume2.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume3-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume3.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/VolumeMuted-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/VolumeMuted.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/X.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/invalid-placard@1x.png: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/invalid-placard@2x.png: Added.
  • Source/WebCore/Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._supportingObjectClasses):

  • Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js:

(MediaDocumentController):

  • Source/WebCore/PlatformGLib.cmake: Added.
  • Source/WebCore/PlatformGTK.cmake:
  • Source/WebCore/PlatformMac.cmake:
  • Source/WebCore/PlatformWPE.cmake:
  • Source/WebCore/rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::mediaControlsScripts):
(WebCore::RenderThemeAdwaita::mediaControlsStyleSheet):
(WebCore::RenderThemeAdwaita::mediaControlsBase64StringForIconNameAndType):
(WebCore::RenderThemeAdwaita::mediaControlsFormattedStringForDuration):
(WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet): Deleted.

  • Source/WebCore/rendering/RenderThemeAdwaita.h:
  • Source/WebKit/ModernMediaControlsGResources.cmake: Added.
  • Source/WebKit/PlatformGTK.cmake:
  • Source/WebKit/PlatformWPE.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Tools/glib/generate-modern-media-controls-gresource-manifest.py: Added.

(get_filenames):

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

7:23 AM Changeset in webkit [295127] by fred.wang@free.fr
  • 1 edit in trunk/metadata/contributors.json

Add fred-wang github account to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=241219

Reviewed by Tim Nguyen.

  • metadata/contributors.json: Add my github account.

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

6:56 AM Changeset in webkit [295126] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[Gardening]: REGRESSION (250836@main): [ iOS ] fast/forms/textfield-outline.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241205
<rdar://94255807>

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

6:01 AM Changeset in webkit [295125] by Andres Gonzalez
  • 2 edits in trunk/Tools/WebKitTestRunner/InjectedBundle

AX ITM: Remaining WTR::AccessibilityUIElement calls into the Mac accessibility API must be dispatched to the AX thread.
https://bugs.webkit.org/show_bug.cgi?id=241209

Reviewed by Chris Fleizach.

There was a handful of calls into WebAccessibilityObjectWrapper methods that still needed to be dispatched to the AX thread for testing purposes in isolated tree mode. In particular, [WebAccessibilityObjectWrapper accessibilityPerformAction] and [WebAccessibilityObjectWrapper accessibilityActionNames].

  • Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::parameterizedAttributeNames):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::AccessibilityUIElement::scrollToMakeVisibleWithSubFocus):
(WTR::AccessibilityUIElement::dismiss):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::asyncIncrement):
(WTR::AccessibilityUIElement::asyncDecrement):
(WTR::AccessibilityUIElement::showMenu):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::syncPress):
(WTR::AccessibilityUIElement::isIgnored const):
(WTR::AccessibilityUIElement::insertText):
(WTR::AccessibilityUIElement::performAction const):

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

5:52 AM Changeset in webkit [295124] by Alan Bujtas
  • 1 edit
    2 adds in trunk

Do not assume that an absolute positioned block box's height is always resolvable
https://bugs.webkit.org/show_bug.cgi?id=241213

Reviewed by Simon Fraser.

  1. While the ICB (RenderView) always has fixed height/width, the RenderStyle values are set to auto.
  2. It's incorrect to assume that we can always resolve the height for an absolute positioned box (e.g. it may have a "height: auto" relative positioned containing block)
  • LayoutTests/fast/block/fill-available-with-absolute-position-expected.html: Added.
  • LayoutTests/fast/block/fill-available-with-absolute-position.html: Added.
  • Source/WebCore/rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):

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

1:47 AM Changeset in webkit [295123] by commit-queue@webkit.org
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

Revert REGRESSION (r294452): [ iOS ] ImageBufferIOSurfaceBackend - nine tests are a consistent image failure
https://bugs.webkit.org/show_bug.cgi?id=240654

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-02
Unreviewed.

The offending commits were reverted and the tests pass now.

LayoutTests/platform/ios/TestExpectations:
Remove the failure expectations

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

12:48 AM Changeset in webkit [295122] by Fujii Hironori
  • 2 edits in trunk/LayoutTests/platform

Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=240439

  • LayoutTests/platform/wincairo-wk1/TestExpectations:
  • LayoutTests/platform/wincairo/TestExpectations:

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

12:42 AM Changeset in webkit [295121] by Megan Gardner
  • 4 edits
    1 add in trunk/Source

Add additional refinements for consistency in grammar checking on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=241203

Reviewed by Tim Horton.

  • Source/WebCore/editing/Editor.cpp:

(WebCore::Editor::markAndReplaceFor):

  • Source/WebKit/UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • Source/WebKit/UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):

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

Jun 1, 2022:

10:05 PM Changeset in webkit [295120] by ntim@apple.com
  • 2 edits in trunk

text-align: match-parent on root handles direction incorrectly
https://bugs.webkit.org/show_bug.cgi?id=241164

Reviewed by Myles C. Maxfield.

The spec says the initial containing block's direction should be used when the element has no parent.

Regarding the computed value, Chrome & Firefox computes to start for this case.
This may change in https://github.com/w3c/csswg-drafts/issues/6542 to left/right.

Test: imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl.html

  • LayoutTests/TestExpectations:
  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTextAlign):

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

9:05 PM Changeset in webkit [295119] by achristensen@apple.com
  • 1 edit in trunk/Source/WebCore/svg/SVGGeometryElement.cpp

Clamp distance earlier in SVGGeometryElement::getPointAtLength
https://bugs.webkit.org/show_bug.cgi?id=241212

Reviewed by Chris Dumez.

  • LayoutTests/fast/svg/get-point-at-length-layout-expected.txt: Added.
  • LayoutTests/fast/svg/get-point-at-length-layout.html: Added.
  • Source/WebCore/svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::getPointAtLength const):

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

9:02 PM Changeset in webkit [295118] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/bindings/js/DOMPromiseProxy.h

DOMPromiseProxyWithResolveCallback<IDLType>::promise() should not use |this| after calling resolve() / reject()
https://bugs.webkit.org/show_bug.cgi?id=241195

Reviewed by Alex Christensen.

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

(WebCore::DOMPromiseProxyWithResolveCallback<IDLType>::promise):

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

8:56 PM Changeset in webkit [295117] by sihui_liu@apple.com
  • 2 edits in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa

[iOS] TestWebKitAPI.IndexedDB.IndexedDBSuspendImminently is consistently timing out on release
https://bugs.webkit.org/show_bug.cgi?id=240886

Reviewed by Chris Dumez.

Modify the test to make it less flaky and easier to debug. The changes including:

  1. "Continue" message is sent from web page after first operation completes, instead of database is opened, so we can

make sure transaction is started before _sendNetworkProcessWillSuspendImminently.

  1. Call _sendNetworkProcessDidResume after first transaction is aborted ("Abort" message is received), so we can make

sure network process has handled suspend message.

  1. The test pages create only two different transactions: the first is a long transaction, which keeps running until it

gets aborted by suspension; the second is a short transaction, which is only used to prove that not all transactions
will be aborted by suspension. We used to create 10 identical transactions and it could be any of them gets aborted.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.html:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBSuspendImminently.mm:

(TEST):

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

8:51 PM Changeset in webkit [295116] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore/html/canvas

CanvasGradient should store a strong reference instead of a CanvasBase&
https://bugs.webkit.org/show_bug.cgi?id=241211

Reviewed by Chris Dumez.

  • LayoutTests/fast/canvas/add-color-stop-after-gc-expected.txt: Added.
  • LayoutTests/fast/canvas/add-color-stop-after-gc.html: Added.
  • Source/WebCore/html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::CanvasGradient):
(WebCore::m_context):
(WebCore::CanvasGradient::create):
(WebCore::CanvasGradient::addColorStop):
(WebCore::m_canvas): Deleted.

  • Source/WebCore/html/canvas/CanvasGradient.h:
  • Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::createLinearGradient):
(WebCore::CanvasRenderingContext2DBase::createRadialGradient):
(WebCore::CanvasRenderingContext2DBase::createConicGradient):

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

8:22 PM Changeset in webkit [295115] by achristensen@apple.com
  • 1 edit in trunk/Source/WebKit/WebProcess/Plugins/PluginView.cpp

Set PluginView::Stream::m_loader before calling NetscapePlugInStreamLoader::cancel
https://bugs.webkit.org/show_bug.cgi?id=241210

Reviewed by Chris Dumez.

  • ../../Source/WebKit/WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::cancel):

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

6:24 PM Changeset in webkit [295114] by Chris Dumez
  • 2 edits in trunk/Tools/TestWebKitAPI/Tests/WTF

REGRESSION (250986@main): ASSERTION FAILED: isASCII(characters[I]) in WTF::ASCIILiteral WTF::StringLiterals::operator""_s()
https://bugs.webkit.org/show_bug.cgi?id=241207
<rdar://94256662>

Unreviewed, a few URL API tests were using ""_s with non-ASCII characters, which is
not supported. Use StringView::fromLatin1() instead to restore pre-existing behavior.

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

(TestWebKitAPI::TEST_F):

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

(TestWebKitAPI::TEST_F):

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

6:07 PM Changeset in webkit [295113] by Said Abou-Hallawa
  • 61 edits
    1 add in trunk/Source

[GPU Process] [Filters] Make PixelBuffer a RefCounted class
https://bugs.webkit.org/show_bug.cgi?id=240807
rdar://94040771

Reviewed by Simon Fraser.

The plan is to hide the underlying memory of PixelBuffer. GPUProcess needs to
allocate shared memory and attribute it to the WebProcess.

Currently the PixelBuffer is created as std::optional<PixelBuffer> which does
not allow sub-classing it. We need to create PixelBuffer as a pointer.

The patch follows these simple replacement rules:

  1. std::optional<PixelBuffer> will be replaced by RefPtr<PixelBuffer>
  2. PixelBuffer will be replaced by Ref<PixelBuffer> and Ref<PixelBuffer>&&
  3. PixelBuffer&& will be replaced by Ref<PixelBuffer>&&

A new IPC class named PixelBufferReference will be added to allow sending and
receiving a Ref<PixelBuffer> through IPC.

  • Source/WebCore/html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toVideoFrame):

  • Source/WebCore/html/ImageData.cpp:

(WebCore::ImageData::create):
(WebCore::ImageData::pixelBuffer const):

  • Source/WebCore/html/ImageData.h:
  • Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::getImageData const):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::paintRenderingResultsToPixelBuffer):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:
  • Source/WebCore/platform/graphics/ConcreteImageBuffer.h:
  • Source/WebCore/platform/graphics/GraphicsContextGL.h:
  • Source/WebCore/platform/graphics/ImageBuffer.h:
  • Source/WebCore/platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/ImageBufferBackend.h:
  • Source/WebCore/platform/graphics/PixelBuffer.cpp:

(WebCore::PixelBuffer::tryCreateForDecoding):
(WebCore::PixelBuffer::tryCreate):
(WebCore::PixelBuffer::create):
(WebCore::PixelBuffer::createScratchPixelBuffer const):
(WebCore::PixelBuffer::deepClone const): Deleted.

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

(WebCore::PixelBuffer::decode):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::readPixelsForPaintResults):
(WebCore::GraphicsContextGLANGLE::readRenderingResults):
(WebCore::GraphicsContextGLANGLE::paintRenderingResultsToCanvas):
(WebCore::GraphicsContextGLANGLE::paintCompositedResultsToCanvas):
(WebCore::GraphicsContextGLANGLE::paintRenderingResultsToPixelBuffer):
(WebCore::GraphicsContextGLANGLE::readRenderingResultsForPainting):
(WebCore::GraphicsContextGLANGLE::readCompositedResultsForPainting):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:
  • Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGL::paintToCanvas):

  • Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::GraphicsContextGLANGLE::readCompositedResults):

  • Source/WebCore/platform/graphics/cv/VideoFrameCV.h:
  • Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:

(WebCore::VideoFrameCV::createFromPixelBuffer):

  • Source/WebCore/platform/graphics/filters/FilterImage.cpp:

(WebCore::getConvertedPixelBuffer):
(WebCore::FilterImage::pixelBufferSlot):
(WebCore::FilterImage::pixelBuffer):
(WebCore::FilterImage::getPixelBuffer):
(WebCore::FilterImage::copyPixelBuffer):

  • Source/WebCore/platform/graphics/filters/FilterImage.h:
  • Source/WebCore/platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.cpp:

(WebCore::FEGaussianBlurSoftwareApplier::applyPlatform):

  • Source/WebCore/platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
  • Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::readCompositedResults):
(WebCore::GraphicsContextGLOpenGL::readRenderingResults):
(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToPixelBuffer):
(WebCore::GraphicsContextGLOpenGL::readRenderingResultsForPainting):
(WebCore::GraphicsContextGLOpenGL::readCompositedResultsForPainting):

  • Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):

  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(paintRenderingResultsToPixelBuffer):

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

(WebKit::RemoteRenderingBackend::putPixelBufferForImageBuffer):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Source/WebKit/Platform/IPC/PixelBufferReference.h: Added.

(IPC::PixelBufferReference::PixelBufferReference):
(IPC::PixelBufferReference::takePixelBuffer):
(IPC::PixelBufferReference::encode const):
(IPC::PixelBufferReference::decode):

  • Source/WebKit/Scripts/webkit/messages.py:

(types_that_cannot_be_forward_declared):

  • Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::getPixelBuffer const):

  • Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
  • Source/WebKit/Shared/WebCoreArgumentCoders.h:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::getPixelBuffer const):

  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToPixelBuffer):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::putPixelBufferForImageBuffer):

  • Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::getPixelBuffer const):

  • Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:

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

5:39 PM Changeset in webkit [295112] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.10.10

Tag WebKit-7614.1.14.10.10.

5:36 PM Changeset in webkit [295111] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.10

5:17 PM Changeset in webkit [295110] by mark.lam@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/dfg/DFGJITCode.h

Speculative build fix for Mac Catalyst.
https://bugs.webkit.org/show_bug.cgi?id=241206

Unreviewed.

  • Source/JavaScriptCore/dfg/DFGJITCode.h:

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

5:15 PM Changeset in webkit [295109] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

WebGL extensions code cleanup
https://bugs.webkit.org/show_bug.cgi?id=241185

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-01
Reviewed by Kenneth Russell.

Sorted extensions in the same order everywhere, added new macros.

Drive-by fixes:

  • WebGLRenderingContextBase::extensionIsEnabled for EXT_texture_filter_anisotropic
  • WebGLRenderingContextBase::extensionIsEnabled for WEBGL_compressed_texture_pvrtc
  • WebGLRenderingContextBase::loseExtensions for WEBGL_compressed_texture_s3tc_srgb
  • WebGLRenderingContextBase::loseExtensions for WEBGL_multi_draw
  • Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • Source/WebCore/html/canvas/WebGLExtension.h:
  • Source/WebCore/html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::loseExtensions):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:

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

4:16 PM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
3:30 PM Changeset in webkit [295108] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.15

Tag WebKit-7614.1.15.

3:21 PM Changeset in webkit [295107] by Jon Davis
  • 1 edit in trunk/Websites/webkit.org/wp-content/themes/webkit/header.php

Add privacy-friendly usage statistics reporting for webkit.org
https://bugs.webkit.org/show_bug.cgi?id=241200

Reviewed by Devin Rousso.

  • Websites/webkit.org/wp-content/themes/webkit/header.php:

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

2:59 PM Changeset in webkit [295106] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebCore/dom/Document.cpp

Unreviewed build fix.

error: no member named 'isResolvingContainerQueries' in 'WebCore::Document'

2:42 PM Changeset in webkit [295105] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

[macOS] Only allow the active, visible tab to trigger -_focusWebView:
https://bugs.webkit.org/show_bug.cgi?id=241108
rdar://93973632

Reviewed by Chris Dumez.

To address <https://webkit.org/b/233686>, Safari removed their implementation of the UI delegate
method -_focusWebView:, which is invoked when a webpage uses window.open() with a target, and
which Safari previously handled by making the web view the active tab. However, this breaks a valid
use case in which a webpage uses window.open() to open itself in a new tab, and later use it again
to return to the original tab. To address this, we'll restore Safari's implementation of the
WKWebView focus delegate method, but will change WebKit to only allow this method call to bubble
up into the client layer in the case where the page that's calling window.open() is already active
and visible.

  • Source/WebCore/loader/FrameLoader.cpp:

(WebCore::isInVisibleAndActivePage):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::createWindow):

  • Source/WebCore/page/DOMWindow.cpp:

(WebCore::DOMWindow::focus):

Check that the opener (or source) frame that's triggering the call to open() is in a page that's
visible and active.

  • Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Tools/TestWebKitAPI/Tests/mac/FocusWebView.mm: Added.

(TestWebKitAPI::TEST):

Add an API test to verify that -_focusWebView: is not called when opening a window once the web
page containing the frame that's calling window.open() is unparented from its window.

  • Tools/TestWebKitAPI/Tests/mac/open-in-new-tab.html: Added.
  • Tools/TestWebKitAPI/cocoa/TestUIDelegate.h:
  • Tools/TestWebKitAPI/cocoa/TestUIDelegate.mm:

(-[TestUIDelegate _focusWebView:]):

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

1:36 PM Changeset in webkit [295104] by dino@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm

Relax the assertions for min/max unobscured size
https://bugs.webkit.org/show_bug.cgi?id=241083

Reviewed by Tim Horton.

The assertions in _setMinimumUnobscuredSizeOverride and
_setMaximumUnobscuredSizeOverride often trigger when the current bounds are

  1. This is handled acceptably, and the assertion is not necessary in that

case.

  • Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setMinimumUnobscuredSizeOverride:]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):

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

1:17 PM Changeset in webkit [295103] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Avoid triggering image analysis when the user has disabled Live Text
https://bugs.webkit.org/show_bug.cgi?id=241193

Reviewed by Aditya Keerthi.

  • Source/WebKit/Platform/cocoa/ImageAnalysisUtilities.h:
  • Source/WebKit/Platform/cocoa/ImageAnalysisUtilities.mm:

(WebKit::canStartImageAnalysis):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _startImageAnalysis:target:]):

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

1:15 PM Changeset in webkit [295102] by Jonathan Bedard
  • 1 edit in trunk/Source/bmalloc/libpas/Documentation.md

[libpas] add documentation (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=236385
<rdar://88704094>

Reviewed by Mark Lam.

  • Source/bmalloc/libpas/Documentation.md: Convert hashes and revisions to identifiers.

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

1:15 PM Changeset in webkit [295101] by achristensen@apple.com
  • 2 edits in trunk

Allow decidePolicyForNavigation* decisionHandlers to be called on non-main runloops
https://bugs.webkit.org/show_bug.cgi?id=241157
<rdar://94130705>

Reviewed by Brady Eidson.

Wouldn't it be nice if all apps used your APIs exactly how you want them to?
This is not the case. People call decision handlers on non-main threads.
When this happens, just hop to the main thread to avoid threading issues.

  • Source/WebKit/UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):

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

11:52 AM Changeset in webkit [295100] by Patrick Angle
  • 4 edits in trunk

Web Inspector: Even after r293565, button/select elements created after Web Inspector is open are considered Flexbox containers
https://bugs.webkit.org/show_bug.cgi?id=241054
rdar://94063718

Reviewed by Devin Rousso.

r293565 updated the logic for determining the layout type for RenderObjects, but that fix did not account for the fact
that InspectorCSSAgent::nodeLayoutContextTypeChanged is called during the creation of RenderFlexibleBox, at which
point the creation of subclass-specific bits, including overrides will not have occurred, including isFlexibleBoxImpl
which we use to determine if the flexbox container is a "real" flexbox container, or an internal implementation detail.
We should instead determine the layout context type later just before we send the event to the frontend (it is already
delayed specifically because nodeLayoutContextTypeChanged can be called in destructors, which can be the result of
garbage collection). This doesn't change when the frontend receives any information, only adjust when we resolve the
layout context type.

  • LayoutTests/inspector/css/nodeLayoutContextTypeChanged-expected.txt:
  • LayoutTests/inspector/css/nodeLayoutContextTypeChanged.html:
  • Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
  • Source/WebCore/inspector/agents/InspectorCSSAgent.h:

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

11:51 AM Changeset in webkit [295099] by Patrick Angle
  • 6 edits in trunk/Source/WebInspectorUI/UserInterface/Views

Web Inspector: Color swatches for layout container overlays allow format changes via context menu
https://bugs.webkit.org/show_bug.cgi?id=241055
rdar://94063968

Reviewed by Devin Rousso.

NodeOverlayListSection already signaled that the color swatches it creates should not allow changing formats (although
it expressed this as preventing Shift+Clicking to change the format). This only makes sense if we prevent the context
menu from being shown as well, which current allows changing the color format for these swatches. Because currently we
only support sRGB color for overlays anyways, this is unnecessary and confusing.

  • Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch):

  • Add an option to prevent changing color formats and convert read-only to an option as well.
  • Don't add the context menu click handler for color swatches when changing formats is disabled.

(WI.InlineSwatch.prototype._allowChangingColorFormats):
(WI.InlineSwatch.prototype.set shiftClickColorEnabled): Deleted.
(WI.InlineSwatch.prototype._swatchElementClicked):

  • Source/WebInspectorUI/UserInterface/Views/AnimationDetailsSidebarPanel.js:

(WI.AnimationDetailsSidebarPanel.prototype._refreshEffectSection.optionsForType):
(WI.AnimationDetailsSidebarPanel.prototype._refreshEffectSection):

  • Source/WebInspectorUI/UserInterface/Views/NodeOverlayListSection.js:

(WI.NodeOverlayListSection.prototype.layout):

  • Source/WebInspectorUI/UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._createSwatchForColorParameters):

  • Source/WebInspectorUI/UserInterface/Views/RecordingStateDetailsSidebarPanel.js:

(WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
(WI.RecordingStateDetailsSidebarPanel):

  • Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):

  • Adopt new WI.InlineSwatch constructor.

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

11:32 AM Changeset in webkit [295098] by Aditya Keerthi
  • 2 edits in trunk

[iOS] WKWebViews can get into a state with multiple find overlays
https://bugs.webkit.org/show_bug.cgi?id=241163
rdar://93904570

Reviewed by Devin Rousso.

When -[WKWebView didEndTextSearchOperation] and -[WKWebView didBeginTextSearchOperation]
are called in quick succession, the web view can get into a state with multiple
find overlays. This state occurs because didBeginTextSearchOperation nulls out
the find overlay before the fade out animation has finished.
didBeginTextSearchOperation then observes that there is no find overlay, and
adds another overlay.

To fix, the page overlay member should be nulled out at the right time.

  • Source/WebKit/WebProcess/WebPage/WebFoundTextRangeController.cpp:

(WebKit::WebFoundTextRangeController::didBeginTextSearchOperation):

If there is already a find overlay, cancel its removal if it is being
uninstalled. This ensures that calling end/begin in quick succession will preserve
the overlay.

(WebKit::WebFoundTextRangeController::didEndTextSearchOperation):

Do not null out the page overlay immediately when uninstalling. Nulling out
the member is handled in willMoveToPage, which is called after the animation
is finished.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:

(traverseLayerTree):
(overlayCount):
(TestWebKitAPI::TEST):

Added an API test to ensure at most one find overlay is in the layer tree at
any time.

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

10:50 AM Changeset in webkit [295097] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: REGRESSION (250044@main?): [ Monterey Debug wk2 ] webgl/1.0.3/conformance/attribs/gl-vertexattribpointer-offsets.html is an almost consistent timeout
https://bugs.webkit.org/show_bug.cgi?id=241191
<rdar://94231182>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

10:41 AM Changeset in webkit [295096] by Jonathan Bedard
  • 3 edits in trunk/Tools/Scripts/libraries/webkitscmpy

[git-webkit] Append -- to git log commands
https://bugs.webkit.org/show_bug.cgi?id=241161
<rdar://problem/94185199>

Reviewed by Alexey Proskuryakov.

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

(Git.Cache.populate): Append -- to git log command.
(Git.commit): Ditto.
(Git.commits): Ditto.
(Git.checkout): Append -- to git checkout command.

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

10:32 AM Changeset in webkit [295095] by Ryan Haddad
  • 2 edits in trunk

Revert "Allow decidePolicyForNavigation* decisionHandlers to be called on non-main runloops"

Unreviewed, this reverts commit 251175@main.

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

10:26 AM Changeset in webkit [295094] by Alan Bujtas
  • 1 edit
    2 adds in trunk

Spacing after some posts is too large on Dead by Daylight forums
https://bugs.webkit.org/show_bug.cgi?id=241104
<rdar://88110302>

Reviewed by Antti Koivisto.

Do not cross containing block boundary while resolving fill-available. If the containing block does not specify the constraint value for the fill-available descendant, we should just return "can't resolve" instead of climbing the containing block tree and potentially hit the ICB as the first container with fixed height(width).

  • LayoutTests/fast/block/fill-available-with-no-specified-containing-block-height-expected.html: Added.
  • LayoutTests/fast/block/fill-available-with-no-specified-containing-block-height.html: Added.
  • Source/WebCore/rendering/RenderBox.cpp:

(WebCore::isOrthogonal):
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing const):

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

10:04 AM Changeset in webkit [295093] by Ryan Haddad
  • 45 edits in trunk/Source

Revert "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK"

Unreviewed, this reverts commit 251168@main to fix internal builds.

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

9:58 AM Changeset in webkit [295092] by Chris Dumez
  • 3 edits in trunk

WeakHashMap::ensure() may crash if the map contains null references https://bugs.webkit.org/show_bug.cgi?id=241162

Reviewed by Geoffrey Garen.

WeakHashMap::ensure() may crash if the map contains null references, because
the WeakHashMap iterator destructor can clear null references and the AddResult
constructor copies and destroys the input iterator.

I find it very error-prone that destroying an iterator would modify the hash
map and thus invalidate other iterators (or even itself if the iterator was
merely copied). As a result, I removed this logic from the
WeakHashMapIteratorBase destructor. Instead, I now increase
WeakHashMap::m_operationCountSinceLastCleanup whenever the iterator gets
incremented so that null references will be removed the next time the hash map
is modified.

I also updated other read-only operations (such as get() / find() / contains())
to just increment m_operationCountSinceLastCleanup without actually clearing
null references for the same reason as above. Having such read-only operations
invalidate existing iterators is just too error-prone.

Finally, I updated the AddResult constructor to avoid copying the
WeakHashMapIterator it is passed, given that the WeakHashMapIterator
constructor and destructor do some work.

  • Source/WTF/wtf/WeakHashMap.h:
  • Source/WebCore/dom/Element.cpp:

(WebCore::Element::identifier const):

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

(TestWebKitAPI::TEST):

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

9:55 AM Changeset in webkit [295091] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk

Fix Wasm referenced function calculation for globals
https://bugs.webkit.org/show_bug.cgi?id=239588

Patch by Asumu Takikawa <asumu@igalia.com> on 2022-06-01
Reviewed by Keith Miller.

JSTests:

  • wasm/regress/239588.js: Added.

(module):

Source/JavaScriptCore:

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

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

9:20 AM Changeset in webkit [295090] by Tyler Wilcock
  • 5 edits
    2 adds in trunk

AX: inert attribute doesn't cause display:contents element to be ignored
https://bugs.webkit.org/show_bug.cgi?id=241022

Reviewed by Chris Fleizach.

Prior to this patch, the inert attribute didn't cause node-only objects
(like those with display:contents) to be ignored. This was because
AccessibilityObject::defaultObjectInclusion only checked effectiveInert
for elements with renderers, even though you only need an element to
have style (not a renderer).

This patch fixes this by adding a new AccessibilityObject::style()
method which uses AccessibilityObject::element() to get
Element::computedStyle() and checking effectiveInert on that, which
works for both renderer and renderer-less objects.

  • LayoutTests/accessibility/node-only-inert-object-expected.txt: Added.
  • LayoutTests/accessibility/node-only-inert-object.html: Added.
  • LayoutTests/platform/ios/TestExpectations: Enable new test.
  • LayoutTests/platform/mac-wk1/TestExpectations: Skip new test.
  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::style const): Added.
(WebCore::AccessibilityObject::defaultObjectInclusion const):

  • Source/WebCore/accessibility/AccessibilityObject.h:

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

8:36 AM Changeset in webkit [295089] by Patrick Angle
  • 1 edit
    4 adds in trunk/LayoutTests/platform/mac-wk1

[Mac] http/tests/inspector/network/har/har-page.html constant failure on wk1
https://bugs.webkit.org/show_bug.cgi?id=229458
rdar://82301476

Reviewed by Devin Rousso.

This test ensures that the _serverPort, _priority, and request cookies are as-expected when exporting a HAR, but that
data is part of AdditionalNetworkLoadMetricsForWebInspector internally, which is not implemented for WK1. In order to
defend the rest of the results going forward, create WK1-specific expectations that exclude those three specific pieces
of data that are unavailable.

  • LayoutTests/platform/mac-wk1/TestExpectations:
  • LayoutTests/platform/mac-wk1/http/tests/inspector/network/har/har-page-expected.txt: Added.

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

8:06 AM Changeset in webkit [295088] by commit-queue@webkit.org
  • 19 edits in trunk/Source

Firing a fetch event should not be blocked on main thread
https://bugs.webkit.org/show_bug.cgi?id=241096

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-01
Reviewed by Chris Dumez.

The main thread might be blocked by work done by the web page, like executing JavaScript.
This might delay fetch events handling. This can cause PLT regressions when serving content through a service worker.
To limit the perf penalty, we are now hopping to a work queue to process all WebSWContextManagerConnection messages.
For fetch events and message events, we directly go from that thread to the service worker thread.
For install/activate/push/notification events, we keep going through the main thread as they are not as perf crtical.
Also install/activate should follow the same flow as other events like updatefound which are served through WebSWClientConnection.
We change skipWaiting accordingly to remove races in case the reply would go to main thread directly instead of going through the background work queue.

We do some refactoring to allow getting a ServiceWorkerThreadProxy from a background queue.

  • Source/WebCore/workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::didSaveScriptsToDisk): Deleted.

  • Source/WebCore/workers/service/context/SWContextManager.h:
  • Source/WebCore/workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::skipWaiting): Deleted.

  • Source/WebCore/workers/service/server/SWServerToContextConnection.h:
  • Source/WebCore/workers/service/server/SWServerWorker.h:
  • Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::convertFetchToDownload):
(WebCore::ServiceWorkerThreadProxy::continueDidReceiveFetchResponse):
(WebCore::ServiceWorkerThreadProxy::fireMessageEvent):
(WebCore::ServiceWorkerThreadProxy::didSaveScriptsToDisk):
(WebCore::ServiceWorkerThreadProxy::firePushEvent):
(WebCore::ServiceWorkerThreadProxy::firePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThreadProxy::fireNotificationEvent):
(WebCore::ServiceWorkerThreadProxy::willPostTaskToFireMessageEvent): Deleted.

  • Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.h:
  • Source/WebKit/Shared/WebPreferencesStore.h
  • Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::skipWaiting):

  • Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::~WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::cancelFetch):
(WebKit::WebSWContextManagerConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorker):
(WebKit::WebSWContextManagerConnection::didSaveScriptsToDisk):
(WebKit::WebSWContextManagerConnection::convertFetchToDownload):
(WebKit::WebSWContextManagerConnection::skipWaiting):
(WebKit::WebSWContextManagerConnection::skipWaitingCompleted):

  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:
  • Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.messages.in:

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

8:04 AM Changeset in webkit [295087] by pvollan@apple.com
  • 12 edits in trunk/Source/WebKit

[iOS][GPUP] Apply workaround for invalid Mobile Gestalt cache
https://bugs.webkit.org/show_bug.cgi?id=241036
<rdar://93614152>

Reviewed by Geoffrey Garen.

In the WebContent process on iOS, we have a workaround to repopulate the Mobile Gestalt cache in case
the disk version is invalid. This workaround should be applied to the GPU process as well.

  • Source/WebKit/GPUProcess/GPUProcessCreationParameters.cpp:

(WebKit::GPUProcessCreationParameters::encode const):
(WebKit::GPUProcessCreationParameters::decode):

  • Source/WebKit/GPUProcess/GPUProcessCreationParameters.h:
  • Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
  • Source/WebKit/Shared/AuxiliaryProcess.h:
  • Source/WebKit/Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::populateMobileGestaltCache):

  • Source/WebKit/Shared/ios/AuxiliaryProcessIOS.cpp:

(WebKit::AuxiliaryProcess::populateMobileGestaltCache):

  • Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::createMobileGestaltSandboxExtensionIfNeeded const):

  • Source/WebKit/UIProcess/AuxiliaryProcessProxy.h:
  • Source/WebKit/UIProcess/Cocoa/GPUProcessProxyCocoa.mm:

(WebKit::GPUProcessProxy::platformInitializeGPUProcessParameters):

  • Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

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

4:29 AM Changeset in webkit [295086] by Antti Koivisto
  • 15 edits
    43 adds in trunk/LayoutTests

Re-import container query WPTs
https://bugs.webkit.org/show_bug.cgi?id=241168

Reviewed by Tim Nguyen.

  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-002-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-002.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-003-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-003.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-004-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-004.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-cue-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-cue-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-cue.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-longhand-animation-type-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-longhand-animation-type.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-computed.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-size-invalidation-after-load-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-size-invalidation-after-load.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-gradient-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-gradient-invalidation-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-gradient-invalidation.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-gradient-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-gradient.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-media-queries-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-media-queries.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-shadow-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-shadow.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-svglength-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-svglength.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/br-crash.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/columns-in-table-002-crash.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/container-in-canvas-crash.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/orthogonal-replaced-crash.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/w3c-import.log:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/deep-nested-inline-size-containers.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/iframe-in-container-invalidation-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/iframe-in-container-invalidation.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/inner-first-line-non-matching-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/inner-first-line-non-matching-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/inner-first-line-non-matching.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-002-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-002-ref.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-004-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-004.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/style-change-in-container.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/support/cq-testcommon.js:

(polyfill_declarative_shadow_dom):

  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/support/test.vtt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/support/w3c-import.log:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-foreignobject-child-container-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-foreignobject-child-container.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-g-no-size-container-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-g-no-size-container-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-g-no-size-container.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/w3c-import.log:

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

4:05 AM Changeset in webkit [295085] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/wpe/backends/PlatformWPE.cmake

WPEToolingsBackend requires linking against libgobject
https://bugs.webkit.org/show_bug.cgi?id=241180

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-06-01
Unreviewed, WPEToolingsBackend library should link against the GObject library
as required by ATK code, avoiding linking issues that only pop up at the point
of linking the WebKitTestRunner binary, and in only some specific
configurations.

  • Tools/wpe/backends/PlatformWPE.cmake:

Have the WPEToolingsBackend link against GObject libraries.

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

3:30 AM Changeset in webkit [295084] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore/platform

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

Unreviewed non-unified build fix.

  • Source/WebCore/platform/audio/MultiChannelResampler.cpp: Add missing wtf/PrintStream.h inclusion.
  • Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp: Add missing inclusion of the <functional> stdlib header.

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

1:54 AM Changeset in webkit [295083] by Antti Koivisto
  • 1 edit
    2 adds in trunk

Assertion in RenderTreeBuilder::attachToRenderElementInternal
https://bugs.webkit.org/show_bug.cgi?id=239823
<rdar://92390285>

Reviewed by Alan Bujtas.

  • LayoutTests/fast/css/display-content-with-pending-stylesheet-crash-expected.txt: Added.
  • LayoutTests/fast/css/display-content-with-pending-stylesheet-crash.html: Added.
  • Source/WebCore/style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

We can't skip resolution for elements that we have already computed style for. This includes elements with display:contents.

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

12:04 AM Changeset in webkit [295082] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

Improve performance of many render passes.
https://bugs.webkit.org/show_bug.cgi?id=234008

Patch by Dan Glastonbury <djg@apple.com> on 2022-05-31
Reviewed by Kimmo Kinnunen.

Through experimentation, it was found that reducing the number of render passes
inflight in the system improves performance. Breaking command buffers with a
large number of render passes into smaller chunks, of at most 16 render passes,
brought the frame rate of ANGLE metal backend inline with ANGLE opengl on macOS
and iOS.

  • Source/ThirdParty/ANGLE/changes.diff:
  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h:
  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::flushCommandBuffer):
(rx::ContextMtl::flushCommandBufferIfNeeded):
(rx::ContextMtl::present):
(rx::ContextMtl::getRenderPassCommandEncoder):

  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_common.h:

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

May 31, 2022:

10:27 PM Changeset in webkit [295081] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

DOM order may not be sufficient when constructing the LogicalFlexItemList
https://bugs.webkit.org/show_bug.cgi?id=241166

Reviewed by Antti Koivisto.

We need to hold on to a reference to the layout box in case logical order != DOM order.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):

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

10:00 PM Changeset in webkit [295080] by achristensen@apple.com
  • 2 edits in trunk

Allow decidePolicyForNavigation* decisionHandlers to be called on non-main runloops
https://bugs.webkit.org/show_bug.cgi?id=241157
<rdar://94130705>

Reviewed by Brady Eidson.

Wouldn't it be nice if all apps used your APIs exactly how you want them to?
This is not the case. People call decision handlers on non-main threads.
When this happens, just hop to the main thread to avoid threading issues.

  • Source/WebKit/UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse):

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

8:00 PM Changeset in webkit [295079] by commit-queue@webkit.org
  • 32 edits
    25 adds in trunk/LayoutTests

Import css/css-text/text-align tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=241160

Patch by Kiet Ho <Kiet Ho> on 2022-05-31
Reviewed by Tim Nguyen.

Imported from WPT commit 9a7bbe40439176ace294a65474b3a9fed2f8b2d3.

  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-006-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-007-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-007.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-008.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-inline-end-crash.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-shy-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-shy-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-001-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-002-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-003-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-004-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-005-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-006-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justifyall-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-007.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-008.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-009.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-011.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-012.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-013.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-014.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-01-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-01.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-02-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-02.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-03-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-03.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-04-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-04.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-ltr-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-ltr-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-ltr.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-match-parent-root-rtl.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-webkit-match-parent-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-webkit-match-parent.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/w3c-import.log:

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

7:07 PM Changeset in webkit [295078] by commit-queue@webkit.org
  • 1 edit in trunk/Source/ThirdParty/ANGLE/changes.diff

Regenerate Source/ThirdParty/ANGLE/changes.diff
https://bugs.webkit.org/show_bug.cgi?id=241165

Patch by Dan Glastonbury <djg@apple.com> on 2022-05-31
Reviewed by Dean Jackson.

  • Source/ThirdParty/ANGLE/changes.diff:

Output of update-angle --regenerate-changes-diff

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

6:53 PM Changeset in webkit [295077] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Move conformance[2]/textures/image_bitmap_from_image_bitmap/ suppressions to top level
https://bugs.webkit.org/show_bug.cgi?id=241145

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-31
Unreviewed test gardening. Move suppressions from
webgl/TestExpectations to top-level TestExpectations.

  • LayoutTests/TestExpectations:
  • LayoutTests/webgl/TestExpectations:

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

6:33 PM Changeset in webkit [295076] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js

Web Inspector: CSS autocomplete: enable experimental feature for initial hint being the most commonly used property of the matching suggestions
https://bugs.webkit.org/show_bug.cgi?id=241146

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/Setting.js:

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

6:25 PM Changeset in webkit [295075] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/Setting.js

Web Inspector: Debugger: blackbox breakpoint evaluations by default
https://bugs.webkit.org/show_bug.cgi?id=241143

Reviewed by Patrick Angle.

According to <https://webkit.org/web-inspector/script-blackboxing/>

Script blackboxing is the ability to mark a <script> in Web Inspector so that it is ignored by
the JavaScript debugger, meaning that any JavaScript execution pauses that would happen in that
<script> are instead deferred until JavaScript execution has continued outside of that <script>.

Based on that, developers will likely expect that breakpoint evaluations fall under the category of
"things that the JavaScript debugger does" and would therefore expect that they're ignored/deferred.

  • Source/WebInspectorUI/UserInterface/Base/Setting.js:

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

6:16 PM Changeset in webkit [295074] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines Tab: Screenshots: enable by default
https://bugs.webkit.org/show_bug.cgi?id=241144

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • Source/WebInspectorUI/UserInterface/Base/Setting.js:
  • Source/WebInspectorUI/UserInterface/Models/ScreenshotsInstrument.js:

(WI.ScreenshotsInstrument.supported):

  • Source/WebInspectorUI/UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

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

4:42 PM Changeset in webkit [295073] by Elliott Williams
  • 45 edits in trunk/Source

[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK
https://bugs.webkit.org/show_bug.cgi?id=240408

Reviewed by Alexey Proskuryakov.

When building with WK_OVERRIDE_FRAMEWORKS_DIR, we assume that WebKit is
being built as part of a self-contained application, e.g. Safari
Technology Preview. This means that most content is installed to the
override directory, instead of the normal /System/Library/Frameworks
directory.

However, static library content (e.g. headers and archives
for bmalloc, webrtc, WTF) is _not_ installed to the override directory,
as it is not needed at runtime. It was being installed to the default
/usr/local prefix, where it would merge with and overwrite whatever
WebKit content was already present.

To prevent overwrites and other sorts of conflict with the
system-provided WebKit, introduce WK_LIBRARY_HEADERS_FOLDER_PATH and
WK_LIBRARY_INSTALL_PATH, which expand to /usr/local/include/safari-sdk
and /usr/local/lib/safari-sdk respectively when building in this mode.
Static library headers and archives are built to these locations, where
they're still in the expected SDK location, but won't clobber system
WebKit.

  • Source/bmalloc/Configurations/Base.xcconfig:
  • Source/bmalloc/Configurations/bmalloc.xcconfig:
  • Source/bmalloc/Configurations/mbmalloc.xcconfig:
  • Source/JavaScriptCore/Configurations/Base.xcconfig:
  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/JavaScriptCore/DerivedSources.make:
  • Source/JavaScriptCore/Scripts/generate-unified-sources.sh:
  • Source/JavaScriptCore/offlineasm/config.rb:
  • Source/JavaScriptCore/offlineasm/parser.rb:
  • Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/AngleMetalLib.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/Base.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/yasm.xcconfig:
  • Source/WebCore/PAL/Configurations/Base.xcconfig:
  • Source/WebCore/PAL/Configurations/PAL.xcconfig:
  • Source/WebGPU/Configurations/Base.xcconfig:
  • Source/WebGPU/Configurations/WGSL.xcconfig:
  • Source/WebGPU/Configurations/WGSLUnitTests.xcconfig:
  • Source/WebGPU/Configurations/WebGPU.xcconfig:
  • Source/WebKit/Configurations/Base.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/Configurations/SandboxProfiles.xcconfig:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKitLegacy/scripts/generate-unified-sources.sh:
  • Source/WebKitLegacy/mac/Configurations/Base.xcconfig:
  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:
  • Source/WTF/Configurations/Base.xcconfig:
  • Source/WTF/Configurations/WTF.xcconfig:
  • Source/WTF/Configurations/icu.xcconfig:
  • Source/WebCore/Configurations/Base.xcconfig:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/Configurations/WebCoreTestSupport.xcconfig:
  • Source/WebCore/DerivedSources.make:
  • Source/WebCore/Scripts/generate-unified-sources.sh:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

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

4:05 PM Changeset in webkit [295072] by Elliott Williams
  • 3 edits in trunk/Source

Fix whitespace paths in "Copy Profiling Data"
https://bugs.webkit.org/show_bug.cgi?id=240285

Unreviewed build fix. JAVASCRIPTCORE_PRIVATE_HEADERS_DIR may contain
spaces, so when we're invoking copy-profiling-data.sh from that
directory we need to defensively quote it.

  • Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

3:43 PM Changeset in webkit [295071] by Karl Rackler
  • 40 edits in trunk/Source

Revert "Perform media networking operations off the main thread"

This reverts commit be35d3c403e1c80fbc18a7a9c0389633448758ac.

Unreviewed revert due to causing 25 consistent crashes on bot.

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

3:24 PM Changeset in webkit [295070] by J Pascoe
  • 1 edit in trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm

[WebAuthn][ios] weakThis not checked before clearing ASCProxy
https://bugs.webkit.org/show_bug.cgi?id=241029
rdar://93932684

Reviewed by Brent Fulgham.

This issue causes crashes after cancelling some types of requests. This change
has been tested on device to verify it fixes the crash.

  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

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

3:22 PM Changeset in webkit [295069] by commit-queue@webkit.org
  • 1 edit in trunk/metadata/contributors.json

Add Nikita Vasilyev's GitHub username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=241158

Patch by Nikita Vasilyev <me@elv1s.ru> on 2022-05-31
Reviewed by Jonathan Bedard.

  • metadata/contributors.json:

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

3:08 PM Changeset in webkit [295068] by Brent Fulgham
  • 1 edit in trunk/Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm

PopUpSOAuthorization::initSecretWebView modifies parent web view configuration
https://bugs.webkit.org/show_bug.cgi?id=241155
<rdar://94176551>

Reviewed by Chris Dumez.

The AppSSO flows that create a new WKWebView pass through the method
'PopUpSOAuthorizationSession::initSecretWebView'. This conducts SSO flows in
an invisible Window for cases where other UI handles the actual authentication,
but a web view is needed to handle server interactions. It deactivates AppSSO
in the hidden view so that normal server authentication can happen without AppSSO
being triggered a second time.

This method made the common mistake of assuming that performing 'copy' on the
configuration member of the paren't WKWebView yielded a deep copy that could bei
manipulated to control the invisible view independently of the parent view. While
the method correctly disabled AppSSO for the hidden view, it also deactivated it
for the parent view.

This bug could lead to cases where someone who mistakenly terminated an AppSSO flow
would be unable to start the process a second time, as the view would now be
configured to block access to AppSSO authentication.

This patch corrects that bug.

Tested by SOAuthorizationPopUp.InterceptionSucceedTwice.

  • Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::initSecretWebView):

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

2:47 PM Changeset in webkit [295067] by Elliott Williams
  • 4 edits
    1 add in trunk/Source/WebKit

[Xcode] Fix dependency cycles caused by Safari header imports
https://bugs.webkit.org/show_bug.cgi?id=240285

Reviewed by Tim Horton.

We were including headers produced by targets which depend on WebKit.
For Xcode engineering builds, this is not a valid dependency, because
an engineering build does not distinguish between a "header"
dependency and a regular target dependency. These errors have survived
in the codebase because:

  • Xcode doesn't recognize header imports as "implicit dependencies",

so the build system hasn't traditionally known these dependencies
exist, except in some incremental builds.

  • These headers are available in internal SDKs, so it's possible for

the targets to build out-of-order but build successfully (as long as
the first target to build can use a possibly-outdated version of the
code from the SDK).

When building targets in parallel, we are emitting more information to
recognize these as implicit dependencies (revealing the cycle) and the
build system is laying down framework bundle directories earlier on in
the build (preventing reliance on SDK frameworks).

  • Source/WebKit/WebKit.xcodeproj/project.pbxproj: WebKit needs to build after AuthenticationServicesCore in internal builds. Add it as a product dependency.
  • Source/WebKit/Configurations/WebKit.xcconfig: Because AuthenticationServicesCore.framework is not available externally, add it to EXCLUDED_SOURCE_FILE_NAMES. The build system still honors the product dependency ordering, but won't fail when it's missing.
  • Source/WebKit/Platform/spi/ios/SafariServicesSPI.h: Added, contains interface declarations for needed SSReadingList API. Technically not SPI, but follows the convention of similar platform redeclaration headers.
  • Source/WebKit/UIProcess/API/Cocoa/_WKElementAction.mm: WebKit cannot depend on SafariServices. Replace the import of SSReadingList.h with SafariServicesSPI.h.
  • Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: WebKit cannot depend on AuthenticationServices.framework. Thankfully, this import was unused. Delete it.
  • Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm: WebKit cannot depend on SafariServices. Replace the import of SSReadingList.h with SafariServicesSPI.h.

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

2:22 PM Changeset in webkit [295066] by msaboff@apple.com
  • 3 edits
    1 add in trunk

ASSERTION FAILED: regExp->isValid() LLIntSlowPaths.cpp(625)
https://bugs.webkit.org/show_bug.cgi?id=241107
<rdar://93369481>

Reviewed by Mark Lam.

We can remove this ASSERT(regExp->isValid()) and others like it that are used for NewRegExp
bytecode processing because subsequent code already must handle the invalid case. These code
paths may create a new RegExp or retrieve a cached RegExp. For the case where a RegExp is
created for the first time it is valid or we wouldn't have generated the NewRegExp bytecode.
This valid RegExp can subsequently be marked with an error if it fails YARR RegExp engine JIT
code or interpreter bytecode generation. Matching with a RegExp with one of these generation
errors properly throws a Syntax error. These ASSERTs fail when the NewRegExp processing
retrieves an already cached RegExp, with a generation error. The matching code will still
throw a Syntax Error.

  • JSTests/stress/regexp-late-compilation-error.js: Added.

(testRegExp1):
(testRegExp2):
(test):

  • Source/JavaScriptCore/dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/jit/JITOperations.cpp:

(JSC::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

2:18 PM Changeset in webkit [295065] by Elliott Williams
  • 6 edits
    1 add in trunk/Source

Refer to correct profiling data in WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=239681

Reviewed by Alexey Proskuryakov.

Revert "Unreviewed, revert "[Xcode] Compute PGO profdata paths instead of searching for them at build time""
This reverts commit 2ee0d9d171e2ff7daa94d1a15727033a994e6414.

A bad copy-paste led to WebCore and WebKit's production builds using PGO
data from JavaScriptCore. Fix it, and add back a check that ensures
production builds fail instead of falling back to stub profiling data.

  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:

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

2:13 PM Changeset in webkit [295064] by J Pascoe
  • 2 edits in trunk/Source/WebKit/UIProcess/API/Cocoa

Remove setUsernameForLocalCredentialWithGroupAndID SPI
https://bugs.webkit.org/show_bug.cgi?id=240829
<rdar://93366441>

Reviewed by Brent Fulgham.

This SPI is no longer used internally and can be removed.

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

(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithID:username:]): Deleted.
(+[_WKWebAuthenticationPanel setUsernameForLocalCredentialWithGroupAndID:credential:username:]): Deleted.

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

1:53 PM Changeset in webkit [295063] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/dom/Element.cpp

REGRESSION (251042@main):[ iOS Debug ] ASSERTION FAILED: m_ptr in Ref.h(115) : T *WTF::Ref<WTF::WeakPtrImpl<>>::operator->() const [T = WTF::WeakPtrImpl<>, Traits = WTF::RawPtrTraits<WTF::WeakPtrImpl<>>]
https://bugs.webkit.org/show_bug.cgi?id=241141
<rdar://94168551>

Unreviewed, remove null references in the WeakHashMap before calling
WeakHashMap::ensure() to address assertion hits on iOS Debug bots.

This seems to indicate a potential WeakHashMap bug where
WeakHashMap::ensure() can get confused if the WeakMapHash contains
null references but I'll investigate separately.

  • Source/WebCore/dom/Element.cpp:

(WebCore::Element::identifier const):

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

1:19 PM Changeset in webkit [295062] by Wenson Hsieh
  • 1 edit
    2 adds in trunk

[macOS] Include text context menu actions when right clicking on selected Live Text in a link
https://bugs.webkit.org/show_bug.cgi?id=241069
rdar://91606522

Reviewed by Devin Rousso.

Currently, when right clicking selected text inside of an image that's inside of a link, we only
show context menu actions for the link and image. While it's still possible to copy this selected
text using the Menu Bar (Edit > Copy), this should be reflected in the context menu as well.

To fix this, we adjust a bit of macOS-specific logic in ContextMenuController to include the set
of text actions as well, in this scenario.

  • LayoutTests/fast/images/text-recognition/mac/context-menu-for-image-in-link-contains-copy-expected.txt: Added.
  • LayoutTests/fast/images/text-recognition/mac/context-menu-for-image-in-link-contains-copy.html: Added.

Add a layout test to verify the change.

  • Source/WebCore/page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Always show selected text options for selected Live Text. Additionally, simplify a bit of nearby
code to take advantage of "if statements with initializers".

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

12:14 PM Changeset in webkit [295061] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore/runtime

Simplify Structure::checkOffsetConsistency()
https://bugs.webkit.org/show_bug.cgi?id=241025

Reviewed by Geoffrey Garen.

Drop redundant isCompilationThread() check in checkOffsetConsistency() before calling
checkOffsetConsistency(PropertyTable*, const DetailsFunc&) since the callee already
does this check. Hopefully, the compiler was already optimizing out the duplicate
check but it is better to be sure given that this check shows on speedometer profiles,
mostly under checkOffsetConsistency().

Also drop the return value since no caller makes use of it.

  • Source/JavaScriptCore/runtime/Structure.h:
  • Source/JavaScriptCore/runtime/StructureInlines.h:

(JSC::Structure::checkOffsetConsistency const):

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

11:09 AM Changeset in webkit [295060] by Devin Rousso
  • 9 edits in trunk

Web Inspector: Open Resource dialog should support matching file paths
https://bugs.webkit.org/show_bug.cgi?id=178152
<rdar://problem/34925656>

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Controllers/ResourceQueryController.js:

(WI.ResourceQueryController.prototype.executeQuery):
(WI.ResourceQueryController.prototype._findSpecialCharacterIndicesInDisplayName): Added.
(WI.ResourceQueryController.prototype._findSpecialCharacterIndicesInURL): Added.
(WI.ResourceQueryController.prototype._findSpecialCharacterIndices): Deleted.
Do a second search for the entire URL. Use the result that has the better rank.

  • Source/WebInspectorUI/UserInterface/Controllers/QueryController.js:

(WI.QueryController.prototype.findSpecialCharacterIndices): Added.

  • Source/WebInspectorUI/UserInterface/Controllers/CSSQueryController.js:

(WI.CSSQueryController.prototype.executeQuery):
(WI.CSSQueryController.prototype._findSpecialCharacterIndicesInPropertyName): Added.
(WI.CSSQueryController.prototype._findSpecialCharacterIndices): Deleted.
Move the shared _findSpecialCharacterIndices to the base class to avoid repeated logic.

  • Source/WebInspectorUI/UserInterface/Models/ResourceQueryResult.js:

(WI.ResourceQueryResult):
(WI.ResourceQueryResult.prototype.get searchString): Added.
Include the string for the matches so callers can reason about what was matched.

  • Source/WebInspectorUI/UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
(WI.OpenResourceDialog.prototype._populateResourceTreeOutline.createHighlightedTitleFragment):
Shift the matches if it was for the entire URL, so that highlights still appear for the display name.

  • LayoutTests/inspector/unit-tests/css-query-controller.html:
  • LayoutTests/inspector/unit-tests/css-query-controller-expected.txt:
  • LayoutTests/inspector/unit-tests/resource-query-controller.html:
  • LayoutTests/inspector/unit-tests/resource-query-controller-expected.txt:

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

11:00 AM Changeset in webkit [295059] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/dom

Avoid GCReacheableRefMap lookup inside JSNodeOwner::isReachableFromOpaqueRoots()
https://bugs.webkit.org/show_bug.cgi?id=241063

Reviewed by Geoffrey Garen.

Avoid GCReacheableRefMap lookup inside JSNodeOwner::isReachableFromOpaqueRoots()
by leveraging a flag on Node. According to A/B testing this is a ~0.5%
progression on Speedometer on Apple Silicon.

  • Source/WebCore/dom/GCReachableRef.h:

(WebCore::GCReachableRefMap::contains):
(WebCore::GCReachableRefMap::add):
(WebCore::GCReachableRefMap::remove):

  • Source/WebCore/dom/Node.h:

(WebCore::Node::isInGCReacheableRefMap const):
(WebCore::Node::setIsInGCReacheableRefMap):

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

10:12 AM Changeset in webkit [295058] by Brent Fulgham
  • 3 edits in trunk

REGRESSION (250981@main): Two SOAuthorization API tests failing
https://bugs.webkit.org/show_bug.cgi?id=240979
<rdar://93996565>

Reviewed by Chris Dumez.

In Bug 240739 I modified AppSSO to lazily initialize the SOAuthenticationCoordinator. This introduced
two problems in the API Tests:

  1. SOAuthorizationRedirect.InterceptionSucceed3 expected SOAuthentiationCoordinator initialization to happen as soon as the WKWebsiteDataStore was created, but this is now too soon. The assertion just needed to be made after an AppSSO operation was called that would construct the SSO object.
  2. SOAuthorizationPopUp.InterceptionSucceedTwice revealed a real bug. We almost never start an AppSSO flow, then turn off the feature -- except in the case of a pop-up authentication, which creates a secret hidden window without AppSSO turned on. Hitting this test case caused a crash that needed to be addressed by checking for this rare case, and making sure we didn't dereference a nullptr.
  • Source/WebKit/UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Properly disable AppSSO through the WKPreference,
rather than reaching into the object to modify WebKit internal state.

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::trySOAuthorization): Don't attempt to dereference the SOAuthenticationCoordinator when the
AppSSO feature is turned off for a pop-up window.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(TestWebKitAPI::TEST): Move the assertion to after AppSSO initialization is complete.

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

10:05 AM Changeset in webkit [295057] by commit-queue@webkit.org
  • 2 edits in trunk/Source/cmake

[WPE][GTK] Expose ENABLE_VIDEO build option
https://bugs.webkit.org/show_bug.cgi?id=241128

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-31
Reviewed by Philippe Normand.

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

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

10:05 AM Changeset in webkit [295056] by sihui_liu@apple.com
  • 17 edits in trunk

Remove some WebSQL code from WebKit
https://bugs.webkit.org/show_bug.cgi?id=240857

Reviewed by Chris Dumez.

  • Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bubblewrapSpawn):

  • Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedMediaKeysDirectory const):
(WebKit::WebsiteDataStore::resolvedDatabaseDirectory const): Deleted.

  • Source/WebKit/UIProcess/WebsiteData/playstation/WebsiteDataStorePlayStation.cpp:

(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:

(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions):

  • Source/WebKit/UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):

  • Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleClearAllDatabases): Deleted.

  • Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exceededDatabaseQuota): Deleted.

  • Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
  • Source/WebKit/WebProcess/WebProcess.cpp:

(WebKit::WebProcess::prepareToSuspend):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.html:
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(runWebsiteDataStoreCustomPaths):

  • Tools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::clearAllDatabases):

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

9:59 AM Changeset in webkit [295055] by Devin Rousso
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.css

Web Inspector: Timelines Tab: Screenshots: the selected image should be on top in the overview
https://bugs.webkit.org/show_bug.cgi?id=240878

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineOverviewGraph.css:

(.timeline-overview-graph.screenshots > img.selected):

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

9:08 AM Changeset in webkit [295054] by fred.wang@free.fr
  • 5 edits in trunk/Source/WebCore/svg/properties

Handle start/stop conflicts with multiple SVG animators
https://bugs.webkit.org/show_bug.cgi?id=241121

Reviewed by Said Abou-Hallawa.

While animating an SVG property from multiple animators, and if there
are multiple instance of this property, then starting or stopping a
specific animator can override the shared m_animVal. This patch fixes
that issue by allowing instanceStartAnimation/instanceStopAnimation
to modify m_animVal only in the case where there are no other animators
for this property. The change is performed for each SVG type (Value,
Primitive, Decorated and List).

  • Source/WebCore/svg/properties/SVGAnimatedDecoratedProperty.h: Do not touch m_animVal if there are other animators for this property.
  • Source/WebCore/svg/properties/SVGAnimatedPrimitiveProperty.h: Ditto.
  • Source/WebCore/svg/properties/SVGAnimatedProperty.h: Ditto.
  • Source/WebCore/svg/properties/SVGAnimatedPropertyList.h: Ditto.
  • Source/WebCore/svg/properties/SVGAnimatedValueProperty.h: Fix a typo.

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

8:41 AM Changeset in webkit [295053] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/CISupport/ews-build/steps.py

EWS should email PR author in case Merge-Queue silently fails on their PR
https://bugs.webkit.org/show_bug.cgi?id=241101

Reviewed by Jonathan Bedard.

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

(ValidateChange.validate_github):
(ValidateChange.send_email_for_github_failure):

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

8:22 AM Changeset in webkit [295052] by Wenson Hsieh
  • 9 edits in trunk/Source

[iOS] Refactor some logic around VideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=241113

Reviewed by Eric Carlson.

Adjust the window level of VideoFullscreenInterfaceAVKit's window. No change in behavior.

  • Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

  • Source/WebKit/UIProcess/PageClient.h:
  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didEnterFullscreen):
(WebKit::WebPageProxy::didExitFullscreen):

Also refactor WebPageProxy::did(Enter|Exit)Fullscreen, such that we implement
didExitFullscreen(PlaybackSessionContextIdentifier) in the case where
ENABLE(VIDEO_PRESENTATION_MODE) is enabled, and didExitFullscreen() (with no arguments) in the
case where it's disabled.

Currently both versions of did(Enter|Exit)Fullscreen() exist if ENABLE(VIDEO_PRESENTATION_MODE)
is set, even though we only expect to call into did(Enter|Exit)Fullscreen() from outside of
WebPageProxy.

  • Source/WebKit/UIProcess/WebPageProxy.h:
  • Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
  • Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didEnterFullscreen):
(WebKit::PageClientImpl::didExitFullscreen):

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didEnterFullscreen]):
(-[WKContentView _didExitFullscreen]):

  • Source/WebKit/UIProcess/mac/PageClientImplMac.h:

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

6:41 AM Changeset in webkit [295051] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore/layout

Add support for margin: auto
https://bugs.webkit.org/show_bug.cgi?id=241111

Reviewed by Antti Koivisto.

Auto margins take up all of the space that they can in their axis.

  1. compute the space 'margin: auto' can take
  2. distribute it among flex items with 'margin: auto'
  3. adjust final top/left with the computed margin
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computedAutoMarginValueForFlexItems):
(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

6:39 AM Changeset in webkit [295050] by Oriol Brufau
  • 3 edits in trunk/Source/WebCore

Ensure logical properties have skip-builder
https://bugs.webkit.org/show_bug.cgi?id=241105

Reviewed by Tim Nguyen.

Builder::applyProperty resolves logical properties into physical ones.
So there is no need to define BuilderCustom methods for them.
Thus, most already have skip-builder:true. This patch covers the only
two exceptions.

No test since there should be no change in behavior.

  • Source/WebCore/css/CSSProperties.json:

Flag contain-intrinsic-block-size and contain-intrinsic-inline-size with
skip-builder:true.

  • Source/WebCore/css/makeprop.pl:

Require logical properties to have skip-builder:true.

  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialContainIntrinsicBlockSize): Deleted.
(WebCore::Style::BuilderCustom::applyInheritContainIntrinsicBlockSize): Deleted.
(WebCore::Style::BuilderCustom::applyValueContainIntrinsicBlockSize): Deleted.
(WebCore::Style::BuilderCustom::applyInitialContainIntrinsicInlineSize): Deleted.
(WebCore::Style::BuilderCustom::applyInheritContainIntrinsicInlineSize): Deleted.
(WebCore::Style::BuilderCustom::applyValueContainIntrinsicInlineSize): Deleted.
Remove unnecessary logic.

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

6:24 AM Changeset in webkit [295049] by ntim@apple.com
  • 32 edits
    27 adds
    1 delete in trunk

Unprefix -webkit-text-justify and add inter-character value
https://bugs.webkit.org/show_bug.cgi?id=229084
<rdar://82177456>

Reviewed by Antti Koivisto.

This is still disabled by default behind the cssTextJustifyEnabled setting.
We don't keep support for the -webkit- prefix, since only Firefox ships text-justify (without the prefix) and it was never enabled in WebKit for macOS/iOS.

distribute and inter-character are aliases, with distribute being the legacy one. The spec specifies it as parse-time, but we implement it compute-time (like Chrome).

https://github.com/w3c/csswg-drafts/issues/7322 is filed about potentially removing 'distribute' from the spec.

  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify-inherited.html: Removed.
  • LayoutTests/fast/css3-text/css3-text-justify/getComputedStyle/getComputedStyle-text-justify.html: Removed.

Removed parsing tests redundant with WPT.

  • LayoutTests/fast/css3-text/css3-text-justify/text-justify-none.html:
  • LayoutTests/fast/text/text-combine-crash.html:
  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-justify-computed-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-justify-valid-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-003.xht:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/distribute-alias.tentative-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/distribute-alias.tentative.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-002-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-002.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-003-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-003.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-004-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-004.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-005-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-005.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-006-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-and-trailing-spaces-006.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-distribute-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-distribute-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-character-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-character-001-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-character-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-word-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-word-001-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-inter-word-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-none-001-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-none-001-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-none-001.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/w3c-import.log:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:

Import new WPT from 6aa9a39, remove prefixes automatically added by the importer, and rebaseline tests.

  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextJustify const):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/StyleProperties.cpp:
  • Source/WebCore/css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

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

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::textAlignmentForLine const):

  • Source/WebCore/rendering/style/RenderStyleConstants.h:
  • Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

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

6:02 AM Changeset in webkit [295048] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk/Source/WebCore/platform

[Linux] TextureMapperPlatformLayerProxyDMABuf should support different colorspaces
https://bugs.webkit.org/show_bug.cgi?id=240633

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-31
Reviewed by Miguel Gomez and Philippe Normand.

Add the DMABufColorSpace enumeration, covering different colorspaces we
currently can support between decoded GStreamer data and the TextureMapper
DMABuf integration.

DMABufObject gains a DMABufColorSpace member variable, initially of an invalid
value but that can be overridden by whoever is constructing the object.

In MediaPlayerPrivateGStreamer, the desired colorspace can be retrieved from the
GstVideoInfo colorimetry information and set on the DMABufObject.

The colorspace is now respected in TextureMapperPlatformLayerProxyDMABuf,
choosing between different YUV-to-RGB matrices that are to be used when sampling
from the set of plane-assigned textures. The default is the BT.601 conversion
matrix. For RGBA-like formats, no conversion is required, so an assert is placed
to ensure that the colorspace is either unspecified or specified as SRGB.

  • Source/WebCore/platform/TextureMapper.cmake:
  • Source/WebCore/platform/graphics/gbm/DMABufColorSpace.h: Added.
  • Source/WebCore/platform/graphics/gbm/DMABufObject.h:

(WebCore::DMABufObject::encode const):
(WebCore::DMABufObject::encode):
(WebCore::DMABufObject::decode):

  • Source/WebCore/platform/graphics/gbm/GBMBufferSwapchain.cpp:
  • Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::colorSpaceForColorimetry):
(WebCore::MediaPlayerPrivateGStreamer::pushDMABufToCompositor):

  • Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):

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

5:33 AM Changeset in webkit [295047] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit/WebProcess/WebPage

[WPE][GTK] Build broken with ENABLE_VIDEO=OFF after r292252
https://bugs.webkit.org/show_bug.cgi?id=241123

Reviewed by Philippe Normand.

  • Source/WebKit/WebProcess/WebPage/WebPage.cpp: Add missing ENABLE(VIDEO) guard.
  • Source/WebKit/WebProcess/WebPage/WebPage.h: Ditto.

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

3:38 AM Changeset in webkit [295046] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp

[GStreamer] DMABufVideoSink fails to list NV21 as a supported format
https://bugs.webkit.org/show_bug.cgi?id=241119

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-05-31
Reviewed by Miguel Gomez and Philippe Normand.

  • Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp:

NV12 is listed twice in the DMABufVideoSink's list of supported formats. This
is a typo, one of those was supposed to be NV21, a different-but-similar format
that works just fine.

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

1:22 AM WebKitGTK/2.36.x edited by Adrian Perez de Castro
Started section of merges for the 2.36.x releases (diff)
1:15 AM Changeset in webkit [295045] by Adrian Perez de Castro
  • 1 edit in trunk/Source/WebCore/bindings/js/JSDOMMapLike.cpp

[GTK][WPE] Build failure when cross-building for 64-bit ARM
https://bugs.webkit.org/show_bug.cgi?id=241109

Unreviewed build fix.

  • Source/WebCore/bindings/js/JSDOMMapLike.cpp: Add missing JavaScriptCore/HashMapImplInlines.h header inclusion.

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

May 30, 2022:

11:43 PM Changeset in webkit [295044] by commit-queue@webkit.org
  • 2 edits in trunk/Source

RemoteVideoFrameProxy::pixelBuffer should properly compute canUseIOSurface
https://bugs.webkit.org/show_bug.cgi?id=241100

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-30
Reviewed by Eric Carlson.

We can use IOSurface when doing WebGL in WebProcess, instead of when doing WebGL in GPUProcess.
Update canUseIOSurface accordingly.
Add error logging when creating a CVPixelBufferRef.

  • Source/WebCore/platform/graphics/cv/CVUtilities.mm:

(WebCore::createCVPixelBuffer):

  • Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:

(WebKit::RemoteVideoFrameProxy::pixelBuffer const):

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

10:49 PM Changeset in webkit [295043] by Brandon
  • 1 edit in trunk/Source/bmalloc/libpas/src/libpas/pas_utils.c

[libpas] Build fix macOS
https://bugs.webkit.org/show_bug.cgi?id=241116

Reviewed by Yusuke Suzuki.

Convert from int to uint64_t. Line should always be a positive number.

  • Source/bmalloc/libpas/src/libpas/pas_utils.c:

(pas_assertion_failed_no_inline):
(pas_assertion_failed_no_inline_with_extra_detail):

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

9:50 PM Changeset in webkit [295042] by ysuzuki@apple.com
  • 1 edit in trunk/.clangd

Clangd should always interpret headers as C++
https://bugs.webkit.org/show_bug.cgi?id=241118

Reviewed by Saam Barati.

Attach -xc++ flag to headers in .clangd to interpret all headers as C++ by default.

  • .clangd:

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

9:18 PM Changeset in webkit [295041] by Fujii Hironori
  • 1 edit in trunk/Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp

REGRESSION(251043@main): "ASSERTION FAILED: channel" in WebCore::ThreadableWebSocketChannel::create
https://bugs.webkit.org/show_bug.cgi?id=241087

Reviewed by Don Olmstead.

Since 251043@main, WinCairo WK1 was crashing for WebSocket tests.
channel variable was null in ThreadableWebSocketChannel::create.
In the case, it should call WebSocketChannel::create like Mac port
does.

  • Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

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

9:13 PM Changeset in webkit [295040] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[JSC] Make VMEntryScope cheap
https://bugs.webkit.org/show_bug.cgi?id=241091

Reviewed by Mark Lam.

This patch makes VMEntryScope cheap. In some microbenchmarks, we observe repeated execution of VMEntryScope
because of many ticks driven by microtasks. And currently VMEntryScope is designed to be non-cheap based on
the assumption that this is not frequently executed.

  1. We add isJSThread flag to Thread so that we can skip some of unnecessary initializations.
  2. Appropriately set UNLIKELY / LIKELY for the major path.
  3. Make DateCache::resetIfNecessary fast path inlined.

ToT
Time(doxbee-async-es2017-native): 24 ms.
Time(doxbee-promises-es2015-native): 44.9 ms.
Time(fibonacci-async-es2017-native): 197.6 ms.
Time(parallel-async-es2017-native): 109.1 ms.
Time(parallel-promises-es2015-native): 80.4 ms.

Patched
Time(doxbee-async-es2017-native): 21.4 ms.
Time(doxbee-promises-es2015-native): 36.4 ms.
Time(fibonacci-async-es2017-native): 168.1 ms.
Time(parallel-async-es2017-native): 103.7 ms.
Time(parallel-promises-es2015-native): 70.9 ms.

  • Source/JavaScriptCore/runtime/JSDateMath.cpp:

(JSC::DateCache::resetIfNecessarySlow):
(JSC::DateCache::resetIfNecessary): Deleted.

  • Source/JavaScriptCore/runtime/JSDateMath.h:

(JSC::DateCache::resetIfNecessary):

  • Source/JavaScriptCore/runtime/VM.h:

(JSC::VM::firePrimitiveGigacageEnabledIfNecessary):

  • Source/JavaScriptCore/runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::~VMEntryScope):

  • Source/WTF/wtf/Threading.cpp:

(WTF::Thread::registerJSThread):

  • Source/WTF/wtf/Threading.h:

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

6:26 PM Changeset in webkit [295039] by Alan Bujtas
  • 5 edits
    1 copy
    1 add in trunk/Source/WebCore

Move core flex layout to FlexLayout
https://bugs.webkit.org/show_bug.cgi?id=241106

Reviewed by Antti Koivisto.

  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalVerticalSpace const): Deleted.
(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalHorizontalSpace const): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForShrinkingFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForStretchingFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::alignFlexItems): Deleted.
(WebCore::Layout::FlexFormattingContext::justifyFlexItems): Deleted.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:
  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp: Added.

(WebCore::Layout::FlexLayout::FlexLayout):
(WebCore::Layout::FlexLayout::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexLayout::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexLayout::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexLayout::alignFlexItems):
(WebCore::Layout::FlexLayout::justifyFlexItems):
(WebCore::Layout::FlexLayout::layout):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h: Copied from Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h.

(WebCore::Layout::FlexLayout::formattingState const):
(WebCore::Layout::FlexLayout::flexBoxStyle const):

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

4:59 PM Changeset in webkit [295038] by mmaxfield@apple.com
  • 1 edit in trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp

[Cocoa] Rename [de]normalizeWeight() to [de]normalizeGXWeight()
https://bugs.webkit.org/show_bug.cgi?id=241112

Reviewed by Alan Bujtas.

Weights are measured in 3 different scales:

  1. CSS weights (1 - 999)
  2. Core Text weights (-1.0 - 1.0)
  3. TrueType GX weights (0.0ish to 2.0ish, it's not really defined, only the "default" value

of 1.0 is defined).

Our current functions convert between CSS weights and TrueType GX weights, so this makes that more
clear. A subsequent patch will add conversions between CSS weights and Core Text weights.

No new tests because there is no behavior change.

  • Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::normalizeGXWeight):
(WebCore::denormalizeGXWeight):
(WebCore::preparePlatformFont):
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::normalizeWeight): Deleted.
(WebCore::denormalizeWeight): Deleted.

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

4:58 PM Changeset in webkit [295037] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/RAMSize.cpp

Include <sys/sysinfo.h> on FreeBSD too
https://bugs.webkit.org/show_bug.cgi?id=241099

Patch by Leonardo Taccari <leot@NetBSD.org> on 2022-05-30
Reviewed by Fujii Hironori.

sysinfo(2)/sysinfo(3) is used also in FreeBSD, include corresponding
<sys/sysinfo.h> header too.

  • Source/WTF/wtf/RAMSize.cpp:

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

4:41 PM Changeset in webkit [295036] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore/heap

[JSC] Make Strong::set cheap
https://bugs.webkit.org/show_bug.cgi?id=241090

Reviewed by Mark Lam.

HandleSet::writeBarrier is frequently called because it is called every time we set a value in Strong<>.
This patch optimizes it,

  1. We should make it inline function since it has a super fast path major use can be covered. And this function is small.
  2. We should not always remove a node from the list first. We should insert / remove it only when necessary.
  3. Remove m_immediateList since it is not necessary.
  4. Make HandleNode as a derived class of BasicRawSentinelNode to make implementation simpler.

This change improves promise benchmarks score since promise uses microtasks which hold values via Strong<>.

ToT
Time(doxbee-async-bluebird): 42.8 ms.
Time(doxbee-async-es2017-babel): 36.4 ms.
Time(doxbee-async-es2017-native): 28.3 ms.
Time(doxbee-promises-bluebird): 514.2 ms.
Time(doxbee-promises-es2015-native): 44.8 ms.
Time(fibonacci-async-es2017-babel): 380.5 ms.
Time(fibonacci-async-es2017-native): 218.2 ms.
Time(parallel-async-bluebird): 648.8 ms.
Time(parallel-async-es2017-babel): 116.9 ms.
Time(parallel-async-es2017-native): 115.6 ms.
Time(parallel-promises-bluebird): 638 ms.
Time(parallel-promises-es2015-native): 82 ms.

Patched
Time(doxbee-async-bluebird): 38 ms.
Time(doxbee-async-es2017-babel): 27 ms.
Time(doxbee-async-es2017-native): 19.5 ms.
Time(doxbee-promises-bluebird): 508.3 ms.
Time(doxbee-promises-es2015-native): 33.3 ms.
Time(fibonacci-async-es2017-babel): 349.1 ms.
Time(fibonacci-async-es2017-native): 151 ms.
Time(parallel-async-bluebird): 639.6 ms.
Time(parallel-async-es2017-babel): 100.9 ms.
Time(parallel-async-es2017-native): 101.9 ms.
Time(parallel-promises-bluebird): 614 ms.
Time(parallel-promises-es2015-native): 70.9 ms.

  • Source/JavaScriptCore/heap/HandleSet.cpp:

(JSC::HandleSet::writeBarrier): Deleted.

  • Source/JavaScriptCore/heap/HandleSet.h:

(JSC::HandleSet::heapFor):
(JSC::HandleSet::allocate):
(JSC::HandleSet::deallocate):
(JSC::HandleSet::writeBarrier):
(JSC::HandleSet::toHandle): Deleted.
(JSC::HandleSet::toNode): Deleted.
(JSC::HandleNode::HandleNode): Deleted.
(JSC::HandleNode::setPrev): Deleted.
(JSC::HandleNode::prev): Deleted.
(JSC::HandleNode::setNext): Deleted.
(JSC::HandleNode::next): Deleted.

  • Source/JavaScriptCore/heap/Strong.h:

(JSC::Strong::set):

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

3:10 PM Changeset in webkit [295035] by Antti Koivisto
  • 9 edits
    12 adds in trunk

Fix invalidation with scope breaking :is/not()
https://bugs.webkit.org/show_bug.cgi?id=241098

Reviewed by Alan Bujtas.

Selector like :has(:is(foo bar)) can be affected by mutations outside the :has scope.

  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/child-indexed-pseudo-classes-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/empty-pseudo-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/empty-pseudo-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-adjacent-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-ancestor-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-parent-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-in-sibling-position.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/link-pseudo-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/link-pseudo-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/w3c-import.log:

Reimport selector invalidation tests.

  • Source/WebCore/style/ChildChangeInvalidation.cpp:

(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
(WebCore::Style::needsDescendantTraversal):

  • Source/WebCore/style/RuleFeature.cpp:

(WebCore::Style::isSiblingOrSubject):
(WebCore::Style::isHasPseudoClassMatchElement):
(WebCore::Style::computeNextMatchElement):
(WebCore::Style::computeHasPseudoClassMatchElement):
(WebCore::Style::computeSubSelectorMatchElement):
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

Detect the case and fall back to very wide invalidation (same a non-subject :has() for now).

  • Source/WebCore/style/RuleFeature.h:

(WebCore::Style::RuleFeatureSet::usesHasPseudoClass const):

  • Source/WebCore/style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::invalidateStyleWithMatchElement):

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

3:03 PM Changeset in webkit [295034] by Fujii Hironori
  • 4 edits in trunk

WebKitTestRunner shouldn't link object files of JavaScriptCore and WebCore
https://bugs.webkit.org/show_bug.cgi?id=241002

Reviewed by Don Olmstead.

243269@main removed WebKit from WebKitTestRunner_FRAMEWORKS for
WPE. But, it should be there not to link object files of
JavaScriptCore and WebCore to WebKitTestRunner. In WPE builds,
JavaScriptCore and WebCore API are exported from WebKit shared
library. WebKit consumers shouldn't link with object files of
JavaScriptCore and WebCore.

However, adding WebKit to WebKitTestRunner_FRAMEWORKS introduced a
new problem that the object file of LowLevelInterpreter.cpp was linked
into WebKitTestRunner. This problem was fixed by changing
LowLevelInterpreterLib to a STATIC library.

  • Source/JavaScriptCore/CMakeLists.txt:
  • Tools/WebKitTestRunner/CMakeLists.txt:
  • Tools/WebKitTestRunner/PlatformGTK.cmake:
  • Tools/WebKitTestRunner/PlatformWin.cmake:

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

2:59 PM Changeset in webkit [295033] by commit-queue@webkit.org
  • 1 edit in trunk/Source/bmalloc/bmalloc/AvailableMemory.cpp

Include <sys/sysinfo.h> only on FreeBSD and Linux
https://bugs.webkit.org/show_bug.cgi?id=241077

Patch by Leonardo Taccari <leot@NetBSD.org> on 2022-05-30
Reviewed by Fujii Hironori.

sysinfo(2)/sysinfo(3) is used only on FreeBSD and Linux and could be not
available in other Unix-like operating systems.

  • Source/bmalloc/bmalloc/AvailableMemory.cpp:

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

11:07 AM Changeset in webkit [295032] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for justify-content: space-evenly
https://bugs.webkit.org/show_bug.cgi?id=241085

Reviewed by Antti Koivisto.

Distribute items evenly. Items have equal space around them.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justifyFlexItems):

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

9:48 AM Changeset in webkit [295031] by commit-queue@webkit.org
  • 17 edits in trunk

MediaStreamTrack.getConstraints is empty object
https://bugs.webkit.org/show_bug.cgi?id=240569

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-30
Reviewed by Eric Carlson.

Cover audio and video constraints in UserMediaRequest.
Set these constraints on the created tracks at promise resolution time.

Make a refactoring to move from using RefPtr<MediaStreamTrack> to Ref<MediaStreamTrack>.
Remove use of MediaStream::getTracks since it is not efficient.

Covered by updated tests.

  • Source/WebCore/Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia):
(WebCore::MediaDevices::getDisplayMedia):

  • Source/WebCore/Modules/mediastream/MediaDevices.h:
  • Source/WebCore/Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::clone):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::getFirstAudioTrack const):
(WebCore::MediaStream::getFirstVideoTrack const):
(WebCore::MediaStream::getTracks const):
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalTakeTrack):
(WebCore::MediaStream::mediaState const):
(WebCore::MediaStream::updateActiveState):
(WebCore::MediaStream::filteredTracks const):

  • Source/WebCore/Modules/mediastream/MediaStream.h:
  • Source/WebCore/Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::setConstraints):

  • Source/WebCore/Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::allow):

  • Source/WebCore/Modules/mediastream/UserMediaRequest.h:
  • LayoutTests/fast/mediastream/getDisplayMedia-max-constraints3.html:
  • LayoutTests/fast/mediastream/getUserMedia-webaudio.html:
  • LayoutTests/fast/mediastream/mediastreamtrack-video-clone.html:

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

9:44 AM Changeset in webkit [295030] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for justify-content: space-around
https://bugs.webkit.org/show_bug.cgi?id=241084

Reviewed by Antti Koivisto.

Distribute items evenly. Items have a half-size space on either end.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justifyFlexItems):

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

8:20 AM Changeset in webkit [295029] by Pablo Saavedra
  • 1 edit in trunk/Source/WebCore/platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h

[GPU Process][Filters] Don't use Uint8ClampedArray in software filter appliers also for FEGaussianBlurNEON
https://bugs.webkit.org/show_bug.cgi?id=240964

Reviewed by Said Abou-Hallawa.

This complement the changes done in r250982 by adapting the specific
method used for ARMv7 NEON.

  • Source/WebCore/platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h:

(WebCore::boxBlurNEON):

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

7:18 AM Changeset in webkit [295028] by Diego Pino Garcia
  • 34 edits in trunk/Source

Unreviewed, non-unified build fixes after 251082@main

  • Source/WebCore/bindings/js/JSAttrCustom.cpp:
  • Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp:
  • Source/WebCore/bindings/js/JSCSSRuleCustom.cpp:
  • Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp:
  • Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp:
  • Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:
  • Source/WebCore/bindings/js/JSDocumentCustom.cpp:
  • Source/WebCore/bindings/js/JSFetchEventCustom.cpp:
  • Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:
  • Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp:
  • Source/WebCore/bindings/js/JSIDBCursorCustom.cpp:
  • Source/WebCore/bindings/js/JSIntersectionObserverCustom.cpp:
  • Source/WebCore/bindings/js/JSIntersectionObserverEntryCustom.cpp:
  • Source/WebCore/bindings/js/JSMessageChannelCustom.cpp:
  • Source/WebCore/bindings/js/JSMessagePortCustom.cpp:
  • Source/WebCore/bindings/js/JSNodeCustom.cpp:
  • Source/WebCore/bindings/js/JSNodeIteratorCustom.cpp:
  • Source/WebCore/bindings/js/JSPaintRenderingContext2DCustom.cpp:
  • Source/WebCore/bindings/js/JSResizeObserverEntryCustom.cpp:
  • Source/WebCore/bindings/js/JSSVGViewSpecCustom.cpp:
  • Source/WebCore/bindings/js/JSStyleSheetCustom.cpp:
  • Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp:
  • Source/WebCore/bindings/js/JSUndoItemCustom.cpp:
  • Source/WebCore/bindings/js/JSWebGL2RenderingContextCustom.cpp:
  • Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp:
  • Source/WebCore/bindings/js/JSWebXRSessionCustom.cpp:
  • Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp:
  • Source/WebCore/bindings/js/JSWorkerNavigatorCustom.cpp:
  • Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp:
  • Source/WebCore/bindings/js/JSXPathResultCustom.cpp:
  • Source/WebCore/html/HTMLCanvasElement.cpp:
  • Source/WebCore/page/DOMWindowProperty.h:
  • Source/WebCore/page/UndoManager.h:
  • Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:

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

7:10 AM Changeset in webkit [295027] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for justify-content: space-between
https://bugs.webkit.org/show_bug.cgi?id=241080

Reviewed by Antti Koivisto.

Distribute items evenly. The first item is flush with the start, the last is flush with the end.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justifyFlexItems):

  • Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFlexLayout):

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

7:05 AM Changeset in webkit [295026] by commit-queue@webkit.org
  • 11 edits
    1 copy
    6 adds in trunk

REGRESSION (r293885): [ macOS wk2 ] webrtc/canvas-to-peer-connection.html is a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=240814

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-30
Reviewed by Eric Carlson.

With r293885, we stopped using a pixel conformer to convert frames to YUV.
Instead, we used libyuv routines.
Libyuv is using BT.601 while our pixel conformer was using BT.709.
BT.709 is preferred in WebRTC so we now simply remove our conversion routine from RealtimeOutgoingVideoSourceCocoa.
Our hardware codecs can directly take RGB and convert it to YUV using BT.709.
To ensure we use the proper conversion routine, we add a RGB -> YUV conformer in LibWebRTCCodecsProxy.

Libvpx will use BT.601 routine so we do not have a very good story with VP8.
A follow-up should fix this. We add dedicated tests for both H264 and VP8.
We skip the new tests in glib as GTK bots do not like it.

  • LayoutTests/platform/glib/TestExpectations:
  • LayoutTests/platform/ios-simulator/TestExpectations:
  • LayoutTests/platform/mac-wk2/TestExpectations:
  • LayoutTests/webrtc/canvas-to-peer-connection.html:
  • LayoutTests/webrtc/routines.js:
  • Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

(WebCore::RealtimeOutgoingVideoSourceCocoa::videoFrameAvailable):

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

(WebCore::RealtimeOutgoingVideoSourceCocoa::pixelBufferPool): Deleted.

  • Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h:
  • Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:

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

6:54 AM Changeset in webkit [295025] by ysuzuki@apple.com
  • 3 edits in trunk/Source/bmalloc/libpas/src/libpas

Unreviewed, build fix on Linux
https://bugs.webkit.org/show_bug.cgi?id=240331

  • Source/bmalloc/libpas/src/libpas/pas_heap_config.h:
  • Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.c:

(pas_probabilistic_guard_malloc_debug_info):

  • Source/bmalloc/libpas/src/libpas/pas_probabilistic_guard_malloc_allocator.h:

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

6:00 AM Changeset in webkit [295024] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/accessibility

Fix a11y build warnings
https://bugs.webkit.org/show_bug.cgi?id=241044

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-05-30
Reviewed by Adrian Perez de Castro.

  • Source/WebCore/accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::symmetricRelation):

  • Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

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

3:02 AM Changeset in webkit [295023] by ysuzuki@apple.com
  • 1 edit in trunk/Source/WTF/wtf/CompactPtr.h

Unreviewed, build fix for iOS debug build

  • Source/WTF/wtf/CompactPtr.h:

(WTF::CompactPtr::encode):
(WTF::CompactPtr::decode):
(WTF::CompactPtr::decode const): Deleted.

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

3:00 AM Changeset in webkit [295022] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore/runtime

[JSC] Shrink BrandedStructure
https://bugs.webkit.org/show_bug.cgi?id=241092

Reviewed by Mark Lam.

Use CompactRefPtr and WriteBarrierStructureID to shrink sizeof(BrandedStructure) from 112 to 104.
While it is not enough for 32byte alignment, anyway we can make it smaller, and if we make it 8byte
smaller further, it will become 96bytes.

  • Source/JavaScriptCore/runtime/BrandedStructure.cpp:

(JSC::BrandedStructure::BrandedStructure):

  • Source/JavaScriptCore/runtime/BrandedStructure.h:

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

1:29 AM Changeset in webkit [295021] by ntim@apple.com
  • 45 edits
    1 delete in trunk

Unprefix -webkit-text-align-last and add match-parent value support
https://bugs.webkit.org/show_bug.cgi?id=229083
<rdar://82176885>

Reviewed by Antti Koivisto.

We do not keep support for the prefixed version since no other browser supports it, and WebKit never exposed it on macOS/iOS.
Also, unprefix WPTs where prefixes were added automatically by the test importer.

Note that serialization of the match-parent value isn't as specified in the spec, but the behavior matches other browsers.

Original patch by Brent Fulgham.

  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited-expected.txt: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html: Removed.

These tests are redundant with the parsing ones on WPT.

  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-justify.html:
  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-non-justify.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-text-align-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-text-align-ref.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-text-align.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-percent-001-expected.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text-decor/text-decoration-thickness-percent-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/inheritance-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/letter-spacing/letter-spacing-bidi-003.xht:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-align-last-computed-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/parsing/text-align-last-valid-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-002.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-003.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-004.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-005.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-006.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-007.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-008.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-009.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-010.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-011.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-012.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-013.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-014.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-empty-inline.html:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-wins-001.html:
  • LayoutTests/imported/w3c/web-platform-tests/svg/styling/required-properties-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-revert-layer-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/StyleProperties.cpp:
  • Source/WebCore/css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

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

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

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

(WebCore::RenderStyle::textAlignLast const):
(WebCore::RenderStyle::textIndentType const):
(WebCore::RenderStyle::setTextAlignLast):
(WebCore::RenderStyle::setTextIndentType):
(WebCore::RenderStyle::initialTextAlignLast):
(WebCore::RenderStyle::initialTextIndentType):

  • Source/WebCore/style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertTextAlignLast):

  • Source/WebCore/style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialTextAlignLast):
(WebCore::Style::BuilderCustom::applyValueTextAlignLast):

  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json:
  • Source/WebInspectorUI/UserInterface/External/CSSDocumentation/CSSDocumentation.js:
  • Source/WebInspectorUI/UserInterface/Models/CSSKeywordCompletions.js:

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

12:19 AM Changeset in webkit [295020] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/Scripts/update-angle

Avoid staging autogenerated commit-message.txt
https://bugs.webkit.org/show_bug.cgi?id=240967

Patch by Kenneth Russell <kbr@chromium.org> on 2022-05-29
Unstage the autogenerated commit-message.txt before exiting the
update-angle script to make it easier for the user to remove.

Reviewed by Kimmo Kinnunen.

  • Source/ThirdParty/ANGLE/commit-message.txt: Added.
  • Tools/Scripts/update-angle:

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

May 29, 2022:

12:56 PM Changeset in webkit [295019] by ntim@apple.com
  • 1 edit in trunk/LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt

[Gardening] Rebaseline fast/dom/HTMLMeterElement/meter-element-markup.html after 9a73643
https://bugs.webkit.org/show_bug.cgi?id=240930

Unreviewed test gardening.

Just reflects the new unprefixed style.

  • LayoutTests/fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:

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

10:10 AM Changeset in webkit [295018] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/inline

LineBuilder::initialConstraintsForLine needs to know whether there is previous line and if it ended with line break
https://bugs.webkit.org/show_bug.cgi?id=241062

Reviewed by Antti Koivisto.

No need to pass in the PreviousLine struct.

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialConstraintsForLine const):

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.h:

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

10:09 AM Changeset in webkit [295017] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Add basic support for justify-content
https://bugs.webkit.org/show_bug.cgi?id=241073

Reviewed by Antti Koivisto.

"justify-content" property defines how space is distributed between and around flex items along the main-axis.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::justiftFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

8:34 AM Changeset in webkit [295016] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for align-self
https://bugs.webkit.org/show_bug.cgi?id=241071

Reviewed by Antti Koivisto.

Align-items behavior can be overwritten for individual flex items by applying the align-self property to them.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::alignFlexItems):

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

7:03 AM Changeset in webkit [295015] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Compute available space when ConstraintsForFlexContent does not provide one
https://bugs.webkit.org/show_bug.cgi?id=241070

Reviewed by Antti Koivisto.

e.g. if the flex box does not have fixed height in the cross axis direction, all flex items become as tall as the tallest flex item.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexFormattingContext::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexFormattingContext::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::alignFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):
(WebCore::Layout::availableLogicalVerticalSpace): Deleted.
(WebCore::Layout::availableLogicalHorizontalSpace): Deleted.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

6:44 AM Changeset in webkit [295014] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

Add support for flex-start/flex-end/start/end alignment
https://bugs.webkit.org/show_bug.cgi?id=241067

Reviewed by Antti Koivisto.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::alignFlexItems):

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

6:22 AM Changeset in webkit [295013] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Introduce FlexFormattingContext::alignFlexItems
https://bugs.webkit.org/show_bug.cgi?id=241064

Reviewed by Antti Koivisto.

This is cross axis alignment (add support for 'center' to showcase).

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexFormattingContext::alignFlexItems):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:

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

1:24 AM Changeset in webkit [295012] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/CompactPtr.h

REGRESSION(251103@main): Broke GTK/WPE
https://bugs.webkit.org/show_bug.cgi?id=241076

Patch by Philippe Normand <philn@igalia.com> on 2022-05-29
Unreviewed. Fix GTK/WPE build.

  • Source/WTF/wtf/CompactPtr.h:

(WTF::CompactPtr::swap):

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

1:14 AM Changeset in webkit [295011] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Async / Await should not wrap awaited value with one tick
https://bugs.webkit.org/show_bug.cgi?id=241072

Reviewed by Saam Barati.

This patch integrates spec change[1], which removes one level tick count when resolving promise with await.
Previously, regardless of whether the value is promise or not, we are always using resolveWithoutPromise,
but it introduces one tick before the handlers are resolved. The spec change makes it that we can call
performPromiseThen directly if the input value is promise, so we can skip one tick which looks up "then"
and register handlers.

This is beneficial for await performance and it also fixes a bug tested via test262 and attached test due
to the spec change.

We observed performance improvement in async + native promise tests.

ToT
Time(doxbee-async-es2017-native): 35.6 ms.
Time(fibonacci-async-es2017-native): 292.3 ms.
Time(parallel-async-es2017-native): 117.3 ms.

Patched
Time(doxbee-async-es2017-native): 24.2 ms.
Time(fibonacci-async-es2017-native): 198.1 ms.
Time(parallel-async-es2017-native): 109.5 ms.

[1]: https://github.com/tc39/ecma262/pull/1250

  • JSTests/stress/async-await-basic.js:
  • JSTests/stress/async-await-tick-count.js: Added.

(shouldBe):
(async returnDirectPrimitive):
(async returnAwaitPrimitive):
(async returnDirectPromisePrimitive):
(async returnAwaitPromisePrimitive):
(async test):
(async tests):
(globalThis.setUnhandledRejectionCallback.setUnhandledRejectionCallback):

  • JSTests/test262/expectations.yaml:
  • LayoutTests/inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
  • LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt:
  • LayoutTests/inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
  • LayoutTests/inspector/console/message-stack-trace-expected.txt:
  • Source/JavaScriptCore/builtins/AsyncFromSyncIteratorPrototype.js:
  • Source/JavaScriptCore/builtins/AsyncFunctionPrototype.js:

(globalPrivate.asyncFunctionResume):

  • Source/JavaScriptCore/builtins/AsyncGeneratorPrototype.js:

(globalPrivate.awaitValue):
(globalPrivate.asyncGeneratorResumeNext):

  • Source/JavaScriptCore/builtins/PromiseOperations.js:

(globalPrivate.newPromiseCapabilitySlow):
(globalPrivate.promiseResolve):
(globalPrivate.promiseResolveSlow):
(globalPrivate.promiseRejectSlow):
(globalPrivate.resolvePromiseWithFirstResolvingFunctionCallCheck):
(globalPrivate.fulfillPromiseWithFirstResolvingFunctionCallCheck):
(globalPrivate.rejectPromiseWithFirstResolvingFunctionCallCheck):
(globalPrivate.resolveWithoutPromiseForAsyncAwait):

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

12:57 AM Changeset in webkit [295010] by commit-queue@webkit.org
  • 35 edits in trunk

Replace CSS3_TEXT build flag with Experimental feature settings
https://bugs.webkit.org/show_bug.cgi?id=121875

Patch by Kiet Ho <Kiet Ho> on 2022-05-29
Reviewed by Tim Nguyen and Myles C. Maxfield.

Currently, -webkit-text-align-last and -webkit-text-justify are gated behind
the ENABLE(CSS3_TEXT) build flag. EWS bots doesn't enable it, hence the properties
aren't tested even though tests are available for them. This patch replaces the build
flag with two experimental settings, which is on during layout tests, allowing the
properties to be tested.

  • LayoutTests/TestExpectations:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • LayoutTests/platform/win/TestExpectations:
  • LayoutTests/platform/wincairo/TestExpectations:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
  • Source/WTF/Scripts/Preferences/WebPreferencesExperimental.yaml:
  • Source/WTF/wtf/PlatformEnable.h:
  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
Temporarily mark -webkit-text-align-last and -webkit-text-justify as not animatable
to avoid the assert. CSS animations for those properties will be implemented in
webkit.org/b/240591.

  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator TextJustify const):

  • Source/WebCore/css/CSSProperties.json:
  • Source/WebCore/css/StyleProperties.cpp:
  • Source/WebCore/css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::add):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • Source/WebCore/css/parser/CSSParserContext.h:
  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::textAlignmentForLine const):

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

(WebCore::rareInheritedDataChangeRequiresLayout):

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

(WebCore::RenderStyle::textIndentType const):
(WebCore::RenderStyle::textJustify const):
(WebCore::RenderStyle::setTextIndentType):
(WebCore::RenderStyle::setTextJustify):
(WebCore::RenderStyle::initialTextIndentType):
(WebCore::RenderStyle::initialTextJustify):

  • Source/WebCore/rendering/style/RenderStyleConstants.h:
  • Source/WebCore/rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • Source/WebCore/rendering/style/StyleRareInheritedData.h:
  • Source/WebKitLegacy/win/WebPreferences.cpp:

(WebPreferences::cssTextAlignLastEnabled):
(WebPreferences::cssTextJustifyEnabled):

  • Source/WebKitLegacy/win/WebPreferences.h:
  • Source/WebKitLegacy/win/WebView.cpp:

(WebView::notifyPreferencesChanged):

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
  • Tools/DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • Tools/Scripts/webkitperl/FeatureList.pm:

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

Note: See TracTimeline for information about the timeline view.