Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WebGPU] RemoteGPU instances accumulate during page reload / navigation #11561

Conversation

mwyrzykowski
Copy link
Contributor

@mwyrzykowski mwyrzykowski commented Mar 15, 2023

6bdf7d0

[WebGPU] RemoteGPU instances accumulate during page reload / navigation
https://bugs.webkit.org/show_bug.cgi?id=253971
<radar://106760497>

Reviewed by Kimmo Kinnunen.

As a first step prior to https://bugs.webkit.org/show_bug.cgi?id=250865
make sure RemoteGPU instance gets destroyed in the GPU process when
the RemoteGPUProxy instance in the web process is destroyed.

Patch from Kimmo Kinnunen.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::releaseRemoteGPU):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
Add message to remove the RemoteGPU instance.

* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::disconnectGpuProcessIfNeeded):

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

cd8f07c

Misc iOS, tvOS & watchOS macOS Linux Windows
βœ… πŸ§ͺ style βœ… πŸ›  ios βœ… πŸ›  mac βœ… πŸ›  wpe βœ… πŸ›  wincairo
βœ… πŸ›  ios-sim βœ… πŸ›  mac-AS-debug βœ… πŸ§ͺ wpe-wk2
βœ… πŸ§ͺ webkitperl βœ… πŸ§ͺ ios-wk2 βœ… πŸ§ͺ api-mac βœ… πŸ›  gtk
βœ… πŸ§ͺ api-ios βœ… πŸ§ͺ mac-wk1 βœ… πŸ§ͺ gtk-wk2
βœ… πŸ›  tv βœ… πŸ§ͺ mac-wk2 ⏳ πŸ§ͺ api-gtk
βœ… πŸ›  tv-sim βœ… πŸ§ͺ mac-AS-debug-wk2
βœ… πŸ›  watch βœ… πŸ§ͺ mac-wk2-stress
βœ… πŸ›  πŸ§ͺ merge βœ… πŸ›  watch-sim

@mwyrzykowski mwyrzykowski self-assigned this Mar 15, 2023
@mwyrzykowski mwyrzykowski added the WebGPU For bugs in WebGPU label Mar 15, 2023
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Mar 15, 2023
@mwyrzykowski mwyrzykowski removed the merging-blocked Applied to prevent a change from being merged label Mar 15, 2023
@mwyrzykowski mwyrzykowski force-pushed the eng/WebGPU-RemoteGPU-instances-accumulate-during-page-reload--navigation branch from fc9c848 to 013a93e Compare March 15, 2023 17:57
@webkit-ews-buildbot webkit-ews-buildbot added the merging-blocked Applied to prevent a change from being merged label Mar 15, 2023
@mwyrzykowski mwyrzykowski removed the merging-blocked Applied to prevent a change from being merged label Mar 15, 2023
@mwyrzykowski mwyrzykowski force-pushed the eng/WebGPU-RemoteGPU-instances-accumulate-during-page-reload--navigation branch from 013a93e to b3dba7a Compare March 15, 2023 18:10
Copy link
Contributor

@kkinnunen-apple kkinnunen-apple left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think your slack comment revealed some issues you ran into that you are probably trying to work around a bit incorrectly here. I'll try to split up #8002 and get reviewers for it in order to fix the underlying issues so this patch would be easier to do semi-correctly

@@ -84,8 +87,18 @@ void RemoteGPUProxy::gpuProcessConnectionDidClose(GPUProcessConnection& connecti

void RemoteGPUProxy::abandonGPUProcess()
{
m_streamConnection->invalidate();
m_gpuProcessConnection = nullptr;
if (m_streamConnection) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not abandoning. The abandoning is when the connection has gone away, and you have to abandon the process.

This is disconnecting. The disconnecting is when the connection exists, and you let the other side know you are disconnecting.

(Terms of course are my own invention, so it's natural it's not entirely easy to guess outside my head)

{
#if PLATFORM(COCOA) && !defined(NDEBUG)
// "notifyutil -p com.apple.WebKit.WebGPU.PrintObjectHeap"
notify_register_dispatch("com.apple.WebKit.WebGPU.PrintObjectHeap", &m_printObjectHeapToken, dispatch_get_main_queue(), ^(int) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This cannot be thread safe. Either you are registering the notification to wrong thread, or you are accessing the objects from wrong thread.

I understand why you want to do this, but I'm not terribly fond of this sort of bespoke logic complicating things.
If it's a valid use-case, it should be valid use-case for everything in GPU Process.

All in all, this sort of stuff could be submitted as a separate patch.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll just remove this and keep it around locally. I noticed the thread safety issue after uploading this PR, which I changed to:

    notify_register_dispatch("com.apple.WebKit.WebGPU.PrintObjectHeap", &m_printObjectHeapToken, dispatch_get_main_queue(), ^(int) {
        this->m_workQueue.dispatch([this] {
            this->printObjectHeap();
        });
    });

which I think addresses it, but if we prefer not to have this logic checked in, I will just keep it locally.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

well it certainly does not keep this alive as needed, there is still a race there, but I'll remove these changes in any case

workQueue().dispatch([protectedThis = WTFMove(refFromConnection)]() {
protectedThis->workQueueUninitialize();

// This item is dispatched to the WorkQueue such that it will process it last, after any existing work.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're adding the invalidate twice.
Your commit message describes what the code does, in literal sense. This is also what the code changes describe.
However, hunks like these would benefit from describing what is the purpose, why the code does what it does.

});

m_streamConnection->invalidate();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, this is incorrect way to do it, but it's hard to know since I haven't fixed the stuff. :( I have had #8002 pending but I got no reviewers on that one.

@mwyrzykowski mwyrzykowski force-pushed the eng/WebGPU-RemoteGPU-instances-accumulate-during-page-reload--navigation branch from b3dba7a to ae7c5f5 Compare March 17, 2023 17:56
@mwyrzykowski mwyrzykowski changed the title [WebGPU] RemoteGPU instances accumulate during page reload / navigation [WebGPU] Mar 18, 2023
@mwyrzykowski mwyrzykowski force-pushed the eng/WebGPU-RemoteGPU-instances-accumulate-during-page-reload--navigation branch from ae7c5f5 to 0979f49 Compare March 18, 2023 05:14
@mwyrzykowski mwyrzykowski changed the title [WebGPU] [WebGPU] Simplify samples after writeBuffer fixes Mar 18, 2023
@mwyrzykowski mwyrzykowski changed the title [WebGPU] Simplify samples after writeBuffer fixes [WebGPU] RemoteGPU instances accumulate during page reload / navigation Mar 18, 2023
@mwyrzykowski mwyrzykowski force-pushed the eng/WebGPU-RemoteGPU-instances-accumulate-during-page-reload--navigation branch from 0979f49 to cd8f07c Compare March 18, 2023 05:18
@webkit-early-warning-system
Copy link
Collaborator

Starting EWS tests for cd8f07c. Live statuses available at the PR page, #11561

smfr and others added 3 commits March 18, 2023 08:38
https://bugs.webkit.org/show_bug.cgi?id=254091
rdar://106875525

Reviewed by Tim Horton.

Add a WebKit "RemoteLayerBuffers" log channel, subsuming RemoteRenderingBufferVolatility logging. Use this
log channel to show information about the buffer swapping done under RemoteRenderingBackendProxy::prepareBuffersForDisplay().

Have RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay() return an enum for easier logging of the reason for display.

Make ImageBuffer loggable, via a virtual `debugDescription()` function that in future subclasses can override to show more info,
and make some related enum types loggable.

Fix some issues caused by unified sources reshuffling.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::debugDescription const):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/platform/graphics/RenderingMode.cpp: Copied from Source/WebCore/platform/graphics/RenderingMode.h.
(WebCore::operator<<):
* Source/WebCore/platform/graphics/RenderingMode.h:
* Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp:
* Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::prepareLayerBuffersForDisplay):
(WebKit::RemoteRenderingBackend::markSurfacesVolatile):
* Source/WebKit/Platform/Logging.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::needsDisplay const):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::takePendingFlushers):
(WebKit::operator<<):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay const):
(WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay): Deleted.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay const):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markBackingStoreVolatileAfterReachabilityChange):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::sendMarkBuffersVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay): Deleted.
* Source/WebKit/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h.
(WebKit::operator<<):
* Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):
* Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp:

Canonical link: https://commits.webkit.org/261822@main
https://bugs.webkit.org/show_bug.cgi?id=254111
rdar://106085436

Reviewed by Tim Nguyen.

This patch makes the list-style-types
that are supported by predefined counter-styles-at-rules
at counterSytyles.css to be handled according to these
rules if counterStylesAtRules is enabled. Otherwise,
they are handled like before.

* LayoutTests/TestExpectations:
* LayoutTests/fast/lists/decimal-leading-zero-expected.txt:
* LayoutTests/fast/lists/decimal-leading-zero.html:
* Source/WebCore/css/CSSCounterStyle.cpp:
* Source/WebCore/css/CSSCounterStyle.h:
* Source/WebCore/css/CSSCounterStyleRegistry.cpp:
(WebCore::isCounterStyleUnsupportedByUserAgent):
* Source/WebCore/css/CSSCounterStyleRegistry.h:
* Source/WebCore/css/CSSValueKeywords.in:
* Source/WebCore/css/counterStyles.css:
(@counter-style square):
(@counter-style cjk-earthly-branch):
(@counter-style cjk-heavenly-stem):
* Source/WebCore/editing/Editor.cpp:
(WebCore::editableTextListsAtPositionInDescendingOrder):
* Source/WebCore/editing/FontAttributes.h:
* Source/WebCore/editing/cocoa/FontAttributesCocoa.mm:
(WebCore::cocoaTextListMarkerName):
(WebCore::TextList::createTextList const):
* Source/WebCore/rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::textRun const):
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::updateMargins):
(WebCore::RenderListMarker::relativeMarkerRect):
(WebCore::RenderListMarker::counterStyle const):
(WebCore::RenderListMarker::widthUsesMetricsOfPrimaryFont const):
* Source/WebCore/rendering/RenderListMarker.h:
* Source/WebCore/rendering/style/ListStyleType.cpp:
(WebCore::ListStyleType::isCircle const):
(WebCore::ListStyleType::isSquare const):
(WebCore::ListStyleType::isDisc const):
(WebCore::ListStyleType::isDisclosureClosed const):
* Source/WebCore/rendering/style/ListStyleType.h:
(WebCore::ListStyleType::operator== const):
(WebCore::ListStyleType::operator!= const):
(WebCore::ListStyleType::encode const):
(WebCore::ListStyleType::decode):
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertListStyleType):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Canonical link: https://commits.webkit.org/261823@main
https://bugs.webkit.org/show_bug.cgi?id=254115
<radar://106898357>

Unreviewed change requested by Alex Christensen, no review needed.

Nomination approved, updating the metadata file.

* metadata/contributors.json:

Canonical link: https://commits.webkit.org/261824@main
philn and others added 23 commits March 19, 2023 15:38
https://bugs.webkit.org/show_bug.cgi?id=254138

Reviewed by Michael Catanzaro.

UserAgentQuirks is specific to GLib ports and should thus be located in platform/glib.

* Source/WebCore/SourcesGTK.txt:
* Source/WebCore/SourcesWPE.txt:
* Source/WebCore/platform/SourcesGLib.txt:
* Source/WebCore/platform/glib/UserAgentQuirks.cpp: Renamed from Source/WebCore/platform/UserAgentQuirks.cpp.
(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
* Source/WebCore/platform/glib/UserAgentQuirks.h: Renamed from Source/WebCore/platform/UserAgentQuirks.h.
(WebCore::UserAgentQuirks::UserAgentQuirks):
(WebCore::UserAgentQuirks::add):
(WebCore::UserAgentQuirks::contains const):
(WebCore::UserAgentQuirks::isEmpty const):

Canonical link: https://commits.webkit.org/261847@main
… modified

https://bugs.webkit.org/show_bug.cgi?id=253883
rdar://106695698

Reviewed by Eric Carlson.

Per spec https://w3c.github.io/media-source/#dom-sourcebuffer-buffered
step 5. "If intersection ranges does not contain the exact same range
information as the current value of this attribute, then update the current
value of this attribute to intersection ranges."

A change following a bug lodged in https://www.w3.org/Bugs/Public/show_bug.cgi?id=27790

* LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-buffered-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/media-source/mediasource-buffered.html:
* Source/WebCore/Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::buffered):
(WebCore::SourceBuffer::buffered const): Deleted.
* Source/WebCore/Modules/mediasource/SourceBuffer.h:

Canonical link: https://commits.webkit.org/261848@main
https://bugs.webkit.org/show_bug.cgi?id=254113

Reviewed by Darin Adler.

Speed up Node refcounting via its EventTarget base class by
avoiding virtual function calls.

* Source/WebCore/dom/EventTarget.h:
(WebCore::EventTarget::ref): Deleted.
(WebCore::EventTarget::deref): Deleted.
* Source/WebCore/dom/Node.h:
(WebCore::EventTarget::ref):
(WebCore::EventTarget::deref):

Canonical link: https://commits.webkit.org/261849@main
…streaming/endstreaming events

https://bugs.webkit.org/show_bug.cgi?id=253996
rdar://106783581

Reviewed by Jer Noble.

Narrow detection of media related streaming activity to only be set
while the ManagedMediaSource's streaming activity is true.
With plain MSE we keep the existing behaviour.

Fly-by fix: when the MediaSource was ended, `endstreaming` wasn't fired
even if the entire file content had been buffered already.

API test added.

* Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp:
(WebCore::ManagedMediaSource::setStreaming):
(WebCore::ManagedMediaSource::monitorSourceBuffers):
(WebCore::ManagedMediaSource::startStreaming): Deleted.
(WebCore::ManagedMediaSource::endStreaming): Deleted.
* Source/WebCore/Modules/mediasource/ManagedMediaSource.h:
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::setDurationInternal):
* Source/WebCore/Modules/mediasource/MediaSource.h:
* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaState const):
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit/file-with-managedmse.html: Added.
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKPageHasMediaStreamingActivity.mm:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/261850@main
https://bugs.webkit.org/show_bug.cgi?id=254100
rdar://106885457

Reviewed by Wenson Hsieh.

Add a debug mode to show the URL change, the script accessing the URL, and where we navigated from.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::urlForBindings const):

Canonical link: https://commits.webkit.org/261851@main
The following tests are randomly failing.
http/wpt/service-workers/fetch-service-worker-preload-changing-request.https.html
http/wpt/service-workers/fetch-service-worker-preload.https.html
http/wpt/service-workers/fetch-service-worker-preload-download.https.html

* LayoutTests/TestExpectations:

Canonical link: https://commits.webkit.org/261852@main
… side compositing

https://bugs.webkit.org/show_bug.cgi?id=254096
rdar://104037445

Reviewed by Simon Fraser.

RemoteLayerTreeDrawingArea should implement autosizing code. This is needed when enabling
UI side compositing on Mac.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::didUpdateGeometry):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry):
(WebKit::RemoteLayerTreeDrawingAreaProxy::minimumSizeForAutoLayoutDidChange):
(WebKit::RemoteLayerTreeDrawingAreaProxy::sizeToContentAutoSizeMaximumSizeDidChange):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):

Canonical link: https://commits.webkit.org/261853@main
* LayoutTests/platform/wincairo/TestExpectations:

Canonical link: https://commits.webkit.org/261854@main
…pressure.html is a constant failure.

https://bugs.webkit.org/show_bug.cgi?id=254143
<rdar://problem/106926097>

Unreviewed.

Setting expectations while bug is investigated.

* LayoutTests/TestExpectations:

Canonical link: https://commits.webkit.org/261855@main
https://bugs.webkit.org/show_bug.cgi?id=254131
rdar://problem/106909555

Reviewed by Chris Fleizach.

This property is only ever used by layout tests, not VoiceOver, so we
shouldn't spend the memory or CPU to cache it.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeProperties):
(WebCore::AXIsolatedObject::computedRoleString const):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
* Source/WebCore/accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::computedRoleString const):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper _computedRoleString]):
Rename `computedRoleString` to `_computedRoleString` to signify it's
private and AX clients shouldn't use it.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper computedRoleString]): Deleted.

Canonical link: https://commits.webkit.org/261856@main
https://bugs.webkit.org/show_bug.cgi?id=254144

js/dom/dfg-inline-resolve.html is flaky

Reverted changeset:

"[IFC][Partial layout] Populate InlineDamage::m_trailingDisplayBoxes for subsequent partial layout"
https://bugs.webkit.org/show_bug.cgi?id=253763
https://commits.webkit.org/261836@main

Canonical link: https://commits.webkit.org/261857@main
…tioned RenderLineBreaks too (and not just for RenderText)

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

Reviewed by Antti Koivisto.

Do not use the computed value for out-of-flow position as some of the renderers may override it (e.g. RenderLineBreak). Using incorrect containing blocks while dirtying the ancestor chain puts the render tree to an unexpected state.

* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::markContainingBlocksForLayout):

Canonical link: https://commits.webkit.org/261859@main
…cts https://bugs.webkit.org/show_bug.cgi?id=253820

Reviewed by Darin Adler.

As we use __bridged_release when converting to NS Objects,
it makes sense to do the inverse when converting to CF Objects.

* Source/WTF/wtf/RetainPtr.h: Statically assert that adoptNS is only used
  for NS objects.

* Source/WTF/wtf/cocoa/TypeCastsCocoa.h: Use __bridge_retained to
  convert NS objects to CF objects.

Canonical link: https://commits.webkit.org/261860@main
…ule when tabbing through or editing selector

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

Reviewed by Patrick Angle.

There are two issues here:
1) changing the selector of an empty CSS rule causes the first added CSS property to be dropped.
2) tabbing through the editable text field for a CSS selector marks it as changed even when it's not.

The core problem is the order of operations.

Tabbing out of a CSS selector text field first calls
`SpreadsheetCSSStyleDeclarationSection.spreadsheetRuleHeaderFieldWillNavigate()`
from the `SpreadsheetRuleHeaderField._handleKeyDown` handler.

For an empty CSS rule, this creates a new blank CSS property with:
`SpreadsheetCSSStyleDeclarationEditor.startEditingFirstProperty()` -> `CSSStyleDeclaration.newBlankProperty()`.

At this point, the frontend model for the CSS rule contains a `CSSStyleDeclaration` with one `CSSProperty`.

In quick succession, the second operation happens when the selector text field loses focus:
`SpreadsheetCSSStyleDeclarationSection.spreadsheetRuleHeaderFieldDidCommit()`
from the `SpreadsheetRuleHeaderField._handleBlur` handler.

If the selector text has changed, a request is sent to the backend via `DOMNodeStyles.changeRuleSelector()`.
A request is then made for the latest matching styles via `DOMNodeStyles.refresh()`.

For an empty CSS rule, there are no matching styles. As a result, the `CSSStyleDeclaration` of the corresponding
CSS rule is updated with an empty list of CSS properties in `DOMNodeStyles._parseStyleDeclarationPayload()`:

```
if (style) {
    style.update(text, properties, styleSheetTextRange);
    return style;
}
```

This has the effect of orphaning the new blank `CSSProperty` introduced earlier.

`CSSProperty._updateOwnerStyleText()` is called to persist the `CSSProperty` to the backend.
This calls `CSSStyleDeclaration.generateFormattedText()` to serialize the whole CSS declaration block.
But our `CSSStyleDeclaration` was just emptied of properties by the update in
`DOMNodeStyles._parseStyleDeclarationPayload()` so it falls back to returning an empty string:

```
let styleText = "";
...
let properties = this._styleSheetTextRange ? this.visibleProperties : this._properties;
...
return styleText;
```

When the `CSSProperty` commits with an empty name and value, the matching styles obtained
in response to `DOMNodeStyles.refresh()` are empty, and the orphaned property is dropped.

Trying again with the newly created blank CSS property will work because this time
there's no race with `DOMNodeStyles.refresh()` from the selector change.

To fix the first issue, we must ensure that the operation to update the selector
and the style refresh it causes occurs before adding a new CSS property to avoid
the style refresh invalidating the models on the frontend.

To fix the second issue, we don't call `SpreadsheetRuleHeaderField.stopEditing()` in the
keydown handler for Tab or Enter  because that resets `_valueBeforeEditing` which causes
the check in  `SpreadsheetRuleHeaderField._handleBlur` to always consider the selector
as having been changed, thus triggering the operations described above.

* Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleSpreadsheetSelectorFieldDidCommit):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleSpreadsheetSelectorFieldWillNavigate):
* Source/WebInspectorUI/UserInterface/Views/SpreadsheetRuleHeaderField.js:
(WI.SpreadsheetRuleHeaderField):
(WI.SpreadsheetRuleHeaderField.prototype.stopEditing):
(WI.SpreadsheetRuleHeaderField.prototype._handleBlur):
(WI.SpreadsheetRuleHeaderField.prototype._handleKeyDown):

Canonical link: https://commits.webkit.org/261861@main
…t were affected by display list state management bug

https://bugs.webkit.org/show_bug.cgi?id=253948
rdar://problem/106744103

Reviewed by Simon Fraser.

Revert the parts that pass after fixing the display list drawing issues
in
261618@main (b9e5c91) DisplayListRecorder fails to record state change before multiple commands https://bugs.webkit.org/show_bug.cgi?id=253693 rdar://problem/106542943
261451@main (0ccc458) [UI-side compositing] css3/masking/clip-path-overflow-hidden-bounds.html fails https://bugs.webkit.org/show_bug.cgi?id=253575 rdar://106115074

Tests that still have pixel tolerance due to GPU Process:
LayoutTests/fast/layers/overflow-scroll-transform-border-radius.html
LayoutTests/fast/masking/clip-path-inset-large-radii.html

* LayoutTests/fast/gradients/conic-from-angle.html:
* LayoutTests/fast/gradients/conic-gradient-alpha-unpremultiplied.html:
* LayoutTests/fast/gradients/conic-gradient-alpha.html:
* LayoutTests/fast/gradients/conic-gradient-extended-stops.html:
* LayoutTests/fast/gradients/conic-gradient.html:
* LayoutTests/fast/gradients/linear-two-hints-angle.html:

Canonical link: https://commits.webkit.org/261862@main
https://bugs.webkit.org/show_bug.cgi?id=254019
rdar://problem/106803255

Reviewed by Eric Carlson.

This is a refactoring to make code easier to read.
Instead of taintsOrigin returning false if canvas is already tainted, we are now checking whether canvas is already tainted in checkOrigin before calling taintsOrigin.
Other callers of taintsOrigin like WebGLRenderingContextBase::validateXXXElement are closer to spec with this change.

* Source/WebCore/html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::taintsOrigin):
(WebCore::CanvasRenderingContext::checkOrigin):
* Source/WebCore/html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::checkOrigin):

Canonical link: https://commits.webkit.org/261863@main
rdar://problem/106848127

Unreviewed, to be reviewed by Dean Jackson.

Contains upstream commits:
git log --oneline f76ecaeed1d0188b52f293af27922518a23d878e..12aefbc0dbfb8942723c061f6727638f0739fe02 --pretty=%h %s
12aefbc0d Vulkan: add MESA Virtio-GPU Venus driver feature conditions
108c0cefd Roll SwiftShader from 6c1ab2e36382 to fa0e42592666 (1 revision)
d11aa33bf Roll vulkan-deps from 46e5f8237dea to 88a74be445b7 (8 revisions)
80bdfe833 Roll Chromium from d828200ebd12 to 0abde2e3b92a (587 revisions)
f4e71351b Vulkan: Switch acquireAndUpdate to use Buddy pool
4c157b4bf Vulkan: Switch staging buffer to Buddy algorithm
a8401f03f Mark the context as needing flush in TextureGL set*Image operations
6fb7883d6 Roll SwiftShader from 64e470f7b9b0 to 6c1ab2e36382 (3 revisions)
6c38e5962 Roll vulkan-deps from 6269f2d7cf86 to 46e5f8237dea (7 revisions)
756d592df Roll Chromium from ce6a8c2bfc28 to d828200ebd12 (596 revisions)
4982b9030 Revert "Vulkan: Remove inUseAndRespecifiedWithoutData from BufferVk"
a8720455f D3D11: Add logic to disassociate EGL image storages.
9c167fd21 Mark the context as needing flush in TextureGL copy/blit operations
513ca7236 Delete GL_LOAD_OP_DISABLE_ANGLE from PLS
5103c3e60 Roll vulkan-deps from d17e7dad8e87 to 6269f2d7cf86 (22 revisions)
e1935fddd Roll SwiftShader from 3764eb85917a to 64e470f7b9b0 (1 revision)
4abfa52ef Roll Chromium from 2bcf4b3eb3f2 to ce6a8c2bfc28 (1220 revisions)
b26b01a28 Implement EXT_render_snorm
bf5e9dbc8 GL: Reset clip origin before scissored clears
755bfe471 Vulkan: Remove inUseAndRespecifiedWithoutData from BufferVk
c3ffae10a Suppress failing capture/replay test
d6a25bfa9 Vulkan: Optimize glBufferData call to improve storage reuse
98735ee09 Revert "Fixed bugs in "FastVector" class."
006d826dc Roll VK-GL-CTS from 4ac540bc62cf to 20d674342f00 (12 revisions)
67ad3ddcf Vulkan: Relax size limit for dynamicBuffer to pick buddy algorithm
4edccb15e Vulkan: Fixed Context Priority mixing problems.
cd901cdde Vulkan: Add and use rx::vk::ReleasableResource class.
233c128bc Vulkan: Fix UBs when deleted attachment is used in a RenderPass.
eb1cb31da Vulkan: Remove code left after introduce of "vk::SharedGarbage"
a1bf828d7 Vulkan: Rename "RendererVk::waitFor*ToBeSubmitted()" methods.
b194c21ad Vulkan: Enforce ContextPriority in ShareGroup and with EGLImage
cd0c1d228 Roll VMA forward
4cbe85484 Expose shader extensions based on ESSL version
b468e4dd0 Add back "non-robust" PLS queries
ffdcfb942 Roll vulkan-deps from 315bf0e37102 to d17e7dad8e87 (5 revisions)
f2e13539b Implicitly enable PLS dependency extensions
84fec4c72 Roll Chromium from a811a4fbb723 to 2bcf4b3eb3f2 (598 revisions)
377216093 Manual roll vulkan-deps from fb9155b074e3 to 315bf0e37102 (18 revisions)
63a602258 Ignore VUID-VkGraphicsPipelineCreateInfo-None-06573.
9824b4e6e Skip street_fighter_duel trace on win nvidia.
7ee613662 Revert "Vulkan: SurfaceVk should only wait for GPU work that uses it"
36111b25f Fix more cases of racy waitForStep usage.
ca2378b78 Assert that waitForStep steps go in increasing order.
c2aa8b58a Roll SwiftShader from 0ba0b45490cd to 3764eb85917a (1 revision)
475025e39 Roll Chromium from 52ec1cb28f1b to a811a4fbb723 (335 revisions)
aa5b97de8 ANGLE_metal_shared_event_sync: Control signaling external events
b78a0c498 Tests: Add Street Fighter: Duel trace
f1717ba9c Tests: Add Merge Dragons trace
2c8358455 Fix race condition in ProgramUseAndDestroyInTwoContexts
0cb090743 Manual roll Chromium from 4d26ea50cec7 to 52ec1cb28f1b (235 revisions)
52ba6071e Add EXT_texture_filter_minmax stubs
397f89dcd Support stencil texturing in WebGL
e6ac77d9a Tests: Enable RunLockStepThreads OpenGL/GLES backend support.
244e19311 Vulkan: Fix use of pending Outside RenderPass CommandBuffer.
bfa2fe361 Roll vulkan-deps from eca4b370b5aa to fb9155b074e3 (9 revisions)
1023c18fe Roll Chromium from 2821f7bf7cf2 to 4d26ea50cec7 (587 revisions)
a65f6a9df Make PLS queries robust
2143c146c Tests: Add Jackpot World Trace
156efe9e2 Fix the alloc error with enabled backtrace feature
b0d99f72e Move the memory tracking classes to new files
877cd04cb Reland "Add vulkan format image fallback for R16G16B16"
bd08c3093 Capture/Replay: Don't serialize shader refcount with context
cf1bf3e4e Skip TextureNorm16R16RenderTest and variants
1174582a3 GL: Implement EXT_clip_control
56259f301 Manual roll vulkan-deps from 5d7ca659e804 to eca4b370b5aa (34 revisions)
ad7949c6c Vulkan: Remove "rx::vk::ImageHelper" move constructor.
815a4aae4 Fix stencil format exposure
267c556ec Vulkan: Move PersistentCommandPool out of the CommandsState.
b84737c11 Roll VK-GL-CTS from 49ce61395065 to 4ac540bc62cf (1 revision)
8abf71534 GL: Complete EXT_blend_func_extended
ac8513fa6 Vulkan: Add and use ScopedQueueSerialIndex helper class.
4256c0224 Metal: Implement ANGLE_stencil_texturing
b31784118 Revert "Add vulkan format image fallback for R16G16B16"
01d78586d Roll Chromium from 868e24501649 to 2821f7bf7cf2 (569 revisions)
a8ba5112b Capture/Replay: Deal with swap called in different contexts
4448ce5c5 Capture/Replay: Add fixture SetCurrentContextID
0e9b8f363 Capture/Replay: Drop context ID from file and frame func names
cee1237c6 Vulkan: Fix reserved UBOs for default uniforms
868b63ab4 Vulkan: Remove reserved UBO for driver uniforms from limits
991fca065 Vulkan: Minor clean up in CommandProcessor.cpp
5331491b0 SYNC-HAZARD-READ-AFTER-WRITE: VkNonDispatchableHandle on x86
5b63e1dc1 Vulkan: SurfaceVk should only wait for GPU work that uses it
569a881f2 Make SYNC-HAZARD-READ-AFTER-WRITE case less specific.
8ba78abdb Reland "MSRTSS uses AppendToPNextChain due to non-NULL pNext."
dbece66f8 Vulkan: Fix move constructor/assignment of Resource classes.
7eb6869a4 Vulkan: Change ResourceAccess::Write to ResourceAccess::ReadWrite
4f87f4e92 Vulkan: Add useResetCommandBufferBitForSecondaryPools feature.
0eea2893f Vulkan: Use *_POOL_CREATE_TRANSIENT_BIT in OneOffCommandPool
390fa1162 Suppress another SYNC-HAZARD-READ-AFTER-WRITE case.
71f6d54c8 Add vulkan format image fallback for R16G16B16
fee173f92 Vulkan: Fix freeing Command Buffers with wrong Pool.
06aaa0c05 Tests: Add Harry Potter: Hogwarts Mystery trace
24eb3fcf5 Vulkan: Condition in "collectGarbage()" replaced with "ASSERT".
957bb8f50 Roll VK-GL-CTS from 04e5d38379bd to 49ce61395065 (7 revisions)
3105ca09d Roll Chromium from 1ad22b27f996 to 868e24501649 (579 revisions)
3aa64876b Revert "Vulkan: Attempt to fix the tsan complain regarding volk."
51ddcabfd Enable pixel local storage by default
8a9ed2656 Call XFlush after XDestroyWindow.
84644dd34 Improve logging to make batch failures more clear.
d9fa5524d Temporarily disable multisampled render to texture on Android
256e7d6d5 Vulkan: Always checkCompletedCommands from finishResourceUse
764cdbad3 Vulkan: Add missing mutex lock into resetCommandBuffer().
a2a30eac9 Revert "MSRTSS uses AppendToPNextChain due to non-NULL pNext."
6967b40ed Roll Chromium from 051119636a02 to 1ad22b27f996 (594 revisions)
3fed0866a Implement EXT_texture_mirror_clamp_to_edge
044612ec1 Vulkan: Remove iterator from FixedQueue class
31bd0c58e Vulkan: Do immediate cleanup after finishOneCommandBatch
62e587045 Vulkan: Attempt to fix the tsan complain regarding volk.
839cfa13a Roll Chromium from 03859909b0fa to 051119636a02 (640 revisions)
8019f2939 Manual roll vulkan-deps from 385df753e370 to 5d7ca659e804 (62 revisions)
18a1022e8 Manual roll VK-GL-CTS from c0a0038a1bed to 04e5d38379bd (12 revisions)
6e58328d4 Add Mac AMD experimental bot
024114b21 Reland "Replace zlib from chrome by Android's zlib."
a2efea13c Add ANGLE_stencil_texturing
35c44b401 PoolAlloc: unpoison memory before potentially re-using it
a07361350 Revert "Replace zlib from chrome by Android's zlib."
5fd68d590 Skip FramebufferTest_ES3.RenderSharedExponent on iOS Metal
eb0475c05 Vulkan: Cleanup RendererVk::allocateQueueSerialIndex method.
d0056bc5d Roll Chromium from dc2706bd2987 to 03859909b0fa (653 revisions)
1ca860aca Add extension stubs
190a32144 Tests: Add Arknights trace
e2cf65ed9 Implement QCOM_render_shared_exponent
e180ed5ec Vulkan: Apply postSubmitCheck to async submission code path
e88b061c5 Vulkan: Follow up fix and enable asyncCommandBufferReset flag
39f0eaf80 Replace zlib from chrome by Android's zlib.
d3fcf08d0 Manual roll vulkan-deps from 3c1556cc7322 to 385df753e370 (1 revision)
33df630f9 MSRTSS uses AppendToPNextChain due to non-NULL pNext.
6d282d62b Vulkan: Move retireFinishedCommands/garbageCleanup to worker thread
dd6d8302a Suppress VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912
df642b98b Roll SwiftShader from dca80fc3a894 to 0ba0b45490cd (2 revisions)
0a4af608d Roll Chromium from 59912d50f1af to dc2706bd2987 (606 revisions)
a1f9b9aaa Implement more texture border color adjustments
9ee816c9d Manual roll vulkan-deps from d03d09324f14 to 3c1556cc7322 (1 revision)
2c7447e2c Always keep track of memory allocation counts
a841f24aa Manual roll VK-GL-CTS from 16e24521578d to c0a0038a1bed (5 revisions)
6f7fec7b1 Convert all raw pointers in Renderer11 to ComPtr
d2bd5ee31 Manual roll VK-GL-CTS from a13cbc855993 to 16e24521578d (1 revision)
aa97369fc Use C++20 for MSVC builds as well
1365f5b31 Vulkan: Fix Swapchain Acquire Image Semaphore wait stage flags.
8875ba4e4 Rename WebSwapCGLLayer to ANGLESwapCGLLayer outside WebKit.
f524e4b8a Roll Chromium from 37f4bbb7be8f to 59912d50f1af (435 revisions)
ef6d14737 Tests: Add Into the Dead 2 trace
5bc6bf325 Include DXT1 sRGB in RGBDXT1TexturesSampleZeroAlpha
a4e23c668 Manual roll Chromium from 779fe76a4b87 to 37f4bbb7be8f (299 revisions)
13f246de5 Tests: Add Cookie Run Oven Break trace
47c0659ee Re-enable safe_libcxx on Linux
8fef41a83 vulkan: improve EtcToBc transcoding precision.
9f4ebedfb Tests: Add TMNT: Shredder's Revenge trace
2ec90ada0 TraceTests: Update screenshot name for keyframe
e21c1efb0 Roll SwiftShader from 64eb04027b9f to dca80fc3a894 (2 revisions)
9566011bd Add support for permissive pixel comparison
0745e4025 Roll Chromium from 6aac6345f869 to 779fe76a4b87 (655 revisions)
f8e56b0c1 Tests: Add SLAM DUNK from TV Animation trace
d9dbc20e6 TraceTests: Add a screenshot frame member variable
8c96e9dce Update yapf style from "chromium" to "yapf"
7189e4cfe vulkan: fix depth buffer renderpass loadOp issue.
05bb784a8 Define enable_safe_libcxx in build_overrides/build.gni.
b07394368 Traces: Add key frame support
b42c23321 Refine sRGB mipmap generation
3a7904e13 Vulkan: Use VMA suballocation for images
48588a890 Update the common cube map texture in MipmapTest
2678b8307 Reenable GLES 1.0 conformance tests on Win/Intel
cba2a0d53 Keep MemoryBarrier macro defined
7934094a3 Update extension data
8105a8010 Change enum allocation for EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE
452a7179d Remove obsolete additional_readme_paths.json entries
a3af3645e Copy d3dcompiler_47.dll on ARM64 Windows builds
389b86e7d Roll Chromium from d9b79c6b8b96 to 6aac6345f869 (614 revisions)
177936ace Metal: disable 32-bit float filtering on iOS
75901296a Roll Chromium from 5d2ee2959f28 to d9b79c6b8b96 (576 revisions)
31684d8c3 Vulkan: Lazily create swapchain image views
7d8e27784 Vulkan: Remove usage of VK_EXT_external_memory_host
1633a1bb6 Fix EGLImage importing problem
9a4a9f3f8 Revert "Fix dEQP-EGL.functional.mutable_render_buffer#basic"
dd1cf777e Add EXT_texture_mirror_clamp_to_edge entry points
facd07ec0 Vulkan: Prune all statements without side effect
b7505d98e Metal: Fix crashes in EXT_b_f_e using temporaries
dbd5d6dfe Vulkan: Fix border color adjustment for emulated formats
278b5d02e EGL: Enable wayland types with autogen
7586f8c84 Translator: Validate correct op usage in nodes
057a92bf2 Vulkan: Fix invalid assert in ContextVk::onSurfaceUnMakeCurrent
c23dbe331 Roll Chromium from 36ad54ddae32 to 5d2ee2959f28 (282 revisions)

Canonical link: https://commits.webkit.org/261864@main
https://bugs.webkit.org/show_bug.cgi?id=254141

Reviewed by Don Olmstead.

WinCairo legacy WK1 was removed. It's no longer needed.

* Source/WebCore/platform/Curl.cmake:
* Source/WebCore/platform/network/ResourceHandle.h:
(WebCore::ResourceHandle::getInternal): Deleted.
* Source/WebCore/platform/network/ResourceHandleInternal.h:
* Source/WebCore/platform/network/SocketStreamHandleImpl.cpp:
* Source/WebCore/platform/network/curl/CurlCacheEntry.cpp: Removed.
* Source/WebCore/platform/network/curl/CurlCacheEntry.h: Removed.
* Source/WebCore/platform/network/curl/CurlCacheManager.cpp: Removed.
* Source/WebCore/platform/network/curl/CurlCacheManager.h: Removed.
* Source/WebCore/platform/network/curl/CurlDownload.cpp:
* Source/WebCore/platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::invalidateClient):
(WebCore::CurlRequest::runOnMainThread):
* Source/WebCore/platform/network/curl/CurlRequest.h:
(WebCore::CurlRequest::create):
* Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.cpp: Removed.
* Source/WebCore/platform/network/curl/CurlResourceHandleDelegate.h: Removed.
* Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::~ResourceHandle):
(WebCore::ResourceHandle::platformContinueSynchronousDidReceiveResponse):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedCancellation):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandleInternal::~ResourceHandleInternal): Deleted.
(WebCore::ResourceHandle::cancelledOrClientless): Deleted.
(WebCore::ResourceHandle::addCacheValidationHeaders): Deleted.
(WebCore::ResourceHandle::createCurlRequest): Deleted.
(WebCore::ResourceHandle::delegate): Deleted.
(WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate): Deleted.
(WebCore::ResourceHandle::setClientCertificateInfo): Deleted.
(WebCore::ResourceHandle::getCredential): Deleted.
(WebCore::ResourceHandle::restartRequestWithCredential): Deleted.
(WebCore::ResourceHandle::continueAfterDidReceiveResponse): Deleted.
(WebCore::ResourceHandle::shouldRedirectAsGET): Deleted.
(WebCore::ResourceHandle::willSendRequest): Deleted.
(WebCore::ResourceHandle::continueAfterWillSendRequest): Deleted.
(WebCore::ResourceHandle::handleDataURL): Deleted.
* Source/WebCore/platform/network/curl/SocketStreamHandleImpl.h:
(WebCore::SocketStreamHandleImpl::create):
(WebCore::SocketStreamHandleImpl::isStreamInvalidated): Deleted.
* Source/WebCore/platform/network/curl/SocketStreamHandleImplCurl.cpp: Removed.
* Source/WebCore/platform/network/curl/SynchronousLoaderClientCurl.cpp:
(WebCore::SynchronousLoaderClient::didReceiveAuthenticationChallenge):
(WebCore::SynchronousLoaderClient::platformBadResponseError):

Canonical link: https://commits.webkit.org/261865@main
https://bugs.webkit.org/show_bug.cgi?id=253903
rdar://problem/106719208

Reviewed by Philippe Normand and Eric Carlson.

ERROR_LOG allows to correctly set WebRTC as category.

* Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::supportsSizeFrameRateAndZoom):
(WebCore::RealtimeMediaSource::selectSettings):

Canonical link: https://commits.webkit.org/261866@main
…ons after 261731@main

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

Tests were failing to run because there were duplicated entries in API
GTK test expectations.

* Tools/TestWebKitAPI/glib/TestExpectations.json:

Canonical link: https://commits.webkit.org/261867@main
https://bugs.webkit.org/show_bug.cgi?id=254153

Probable cause of MM Leaves regression

Reverted changeset:

"WebCore::IOSurface should not store a reference to a CGContext"
https://bugs.webkit.org/show_bug.cgi?id=253698
https://commits.webkit.org/261699@main

Canonical link: https://commits.webkit.org/261868@main
https://bugs.webkit.org/show_bug.cgi?id=254137

Reviewed by Antti Koivisto.

This checks the unexpected state when
1, inline content is damaged by destroyed renderer(s)
2, we fail to mark the containing block dirty (see webkit.org/b/254090)
3, subsequent layout does not reach the damaged inline content (see WebKit#2)
4, inline display content becomes stale

* Source/WebCore/layout/formattingContexts/inline/invalidation/InlineDamage.h:
(WebCore::Layout::InlineDamage::hasDetachedContent const):
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::hasDetachedContent const):
* Source/WebCore/page/LocalFrameViewLayoutContext.cpp:
(WebCore::RenderTreeNeedsLayoutChecker::~RenderTreeNeedsLayoutChecker):
(WebCore::LocalFrameViewLayoutContext::performLayout):

Canonical link: https://commits.webkit.org/261869@main
@mwyrzykowski mwyrzykowski added the merge-queue Applied to send a pull request to merge-queue label Mar 20, 2023
rwlbuis and others added 2 commits March 20, 2023 08:09
https://bugs.webkit.org/show_bug.cgi?id=253961

Reviewed by Tim Nguyen.

Based on web-platform-tests/wpt@6189b07.

* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-all-elements.html:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-attribute-basic.html:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2.html:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus.html:
* LayoutTests/imported/w3c/web-platform-tests/html/semantics/popovers/resources/popover-utils.js:
(assertPopoverVisibility):
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-2-expected.txt
* LayoutTests/platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/popovers/popover-focus-expected.txt

Canonical link: https://commits.webkit.org/261870@main
https://bugs.webkit.org/show_bug.cgi?id=253971
<radar://106760497>

Reviewed by Kimmo Kinnunen.

As a first step prior to https://bugs.webkit.org/show_bug.cgi?id=250865
make sure RemoteGPU instance gets destroyed in the GPU process when
the RemoteGPUProxy instance in the web process is destroyed.

Patch from Kimmo Kinnunen.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::releaseRemoteGPU):
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.messages.in:
Add message to remove the RemoteGPU instance.

* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::initialize):
(WebKit::RemoteGPU::stopListeningForIPC):
(WebKit::RemoteGPU::workQueueInitialize):
(WebKit::RemoteGPU::workQueueUninitialize):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::disconnectGpuProcessIfNeeded):

Canonical link: https://commits.webkit.org/261871@main
@webkit-commit-queue webkit-commit-queue merged commit 6bdf7d0 into WebKit:main Mar 20, 2023
@webkit-commit-queue
Copy link
Collaborator

Committed 261871@main (6bdf7d0): https://commits.webkit.org/261871@main

Reviewed commits have been landed. Closing PR #11561 and removing active labels.

@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Mar 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
WebGPU For bugs in WebGPU
Projects
None yet