Branch: refs/heads/webkitglib/2.52
Home: https://github.com/WebKit/WebKit
Commit: 857093a57c0d19d51608001c95d5a1fa4bd8cd82
https://github.com/WebKit/WebKit/commit/857093a57c0d19d51608001c95d5a1fa4bd8cd82
Author: Fujii Hironori <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
M Source/WebCore/html/OffscreenCanvas.cpp
M Source/WebCore/html/OffscreenCanvas.h
Log Message:
-----------
Cherry-pick 313384@main (2be1403ca6cd).
https://bugs.webkit.org/show_bug.cgi?id=314269
Keep alive OffscreenCanvas's wrapper object until webglcontextlost event is
dispatched
https://bugs.webkit.org/show_bug.cgi?id=314269
Reviewed by Chris Dumez.
webgl/lose-context-after-context-lost.html randomly caused an assertion
failure
for GTK and WPE.
> ASSERTION FAILED: m_wrapper
> Source/WebCore/bindings/js/JSEventListener.h(171) :
> JSC::JSObject*
WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext&)
const
OffscreenCanvas's wrapper object was reclaimed when the webglcontextlost
event
was dispatched.
222794@main fixed the same issue for HTMLCanvasElement by adding
HTMLCanvasElement::virtualHasPendingActivity(). Do the same for
OffscreenCanvas.
Tests: webgl/lose-context-after-context-lost.html
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::virtualHasPendingActivity const):
(WebCore::OffscreenCanvas::eventListenersDidChange):
* Source/WebCore/html/OffscreenCanvas.h:
Canonical link: https://commits.webkit.org/313384@main
Canonical link: https://commits.webkit.org/305877.571@webkitglib/2.52
Commit: 8967ed588e936104162400bff467fe623658a0e8
https://github.com/WebKit/WebKit/commit/8967ed588e936104162400bff467fe623658a0e8
Author: Simon Fraser <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-overflow-transformed-child-001-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-overflow-transformed-child-001.html
A
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-overflow-transformed-child-001-ref.html
M Source/WebCore/rendering/RenderLayer.cpp
Log Message:
-----------
Cherry-pick 313316@main (42cae1dc020a).
https://bugs.webkit.org/show_bug.cgi?id=313665
REGRESSION (296844@main): drop-shadow and translation transforms render
incorrectly clipped
https://bugs.webkit.org/show_bug.cgi?id=313665
rdar://175905543
Reviewed by Brent Fulgham.
In setupFilters, calculateLayerBounds was called with {
PreserveAncestorFlags }. This flag causes
descendant layers to inherit the parent's empty flags, which crucially
omits IncludeSelfTransform.
Without that flag, CSS transforms on descendant layers (like the inner
circle's transform) are
ignored when computing the filter source image bounds. This makes the
filter source image buffer
positioned incorrectly, clipping parts of the painted content.
Fix by passing empty flags.
Tests:
imported/w3c/web-platform-tests/css/filter-effects/filter-overflow-transformed-child-001.html
imported/w3c/web-platform-tests/css/filter-effects/reference/filter-overflow-transformed-child-001-ref.html
*
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-overflow-transformed-child-001-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/filter-overflow-transformed-child-001.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/filter-effects/reference/filter-overflow-transformed-child-001-ref.html:
Added.
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupFilters):
Canonical link: https://commits.webkit.org/313316@main
Canonical link: https://commits.webkit.org/305877.572@webkitglib/2.52
Commit: 9399dfb8c46167a1df3ce93f2e8704c25d54cb2a
https://github.com/WebKit/WebKit/commit/9399dfb8c46167a1df3ce93f2e8704c25d54cb2a
Author: Anne van Kesteren <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
M LayoutTests/TestExpectations
A
LayoutTests/imported/w3c/web-platform-tests/xhr/send-redirect-bogus-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/xhr/send-redirect-to-cors-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/xhr/send-redirect-to-non-cors-expected.txt
M LayoutTests/platform/wpe/TestExpectations
M Source/WebCore/platform/network/HTTPHeaderMap.h
M Source/WebCore/platform/network/ResourceRequestBase.cpp
M Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp
M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
Log Message:
-----------
Cherry-pick 312092@main (0ae02b1bfe4a).
https://bugs.webkit.org/show_bug.cgi?id=169420
Fix Fetch 301 & 302 redirect behavior
https://bugs.webkit.org/show_bug.cgi?id=169420
rdar://98459882
Reviewed by Youenn Fablet and Chris Dumez.
We incorrectly dropped the request body too often and did not clear
HTTP headers sufficiently when the body should be dropped. Covered by
existing web-platform-tests, which we can finally enable on EWS.
Canonical link: https://commits.webkit.org/312092@main
Canonical link: https://commits.webkit.org/305877.573@webkitglib/2.52
Commit: 63bda658a9668ec12bd46d9a323b9dea4f9c1482
https://github.com/WebKit/WebKit/commit/63bda658a9668ec12bd46d9a323b9dea4f9c1482
Author: Sammy Gill <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-stale-layoutbox-crash.html
M Source/WebCore/layout/integration/grid/LayoutIntegrationGridLayout.cpp
M Source/WebCore/layout/integration/grid/LayoutIntegrationGridLayout.h
Log Message:
-----------
Cherry-pick 311552@main (889513d41a34).
https://bugs.webkit.org/show_bug.cgi?id=312602
canva.com: web content crash when moving elements around.
(WebCore::LayoutIntegration::BoxGeometryUpdater::updateLayoutBoxDimensions)
https://bugs.webkit.org/show_bug.cgi?id=312602
rdar://174932208
Reviewed by Brent Fulgham, Alan Baradlay, and Vitor Roriz.
When a grid item is removed from underneath a grid box we fail to
properly clean up the tree. This is because we do not have any
integration logic that hooks into the layout tree for grid when a
RenderGrid loses a renderer. This may end up causing a crash in the grid
integration code when we try to access a renderer that was removed from
the render tree.
For now we can just tear down the subtree at the end of grid layout,
which is what we currently do for FFC as well. We will probably want to
revisit this later but it is a good start to at least avoid these types
of crashes.
Test:
imported/w3c/web-platform-tests/css/css-grid/grid-stale-layoutbox-crash.html
Canonical link: https://commits.webkit.org/311552@main
Canonical link: https://commits.webkit.org/305877.574@webkitglib/2.52
Commit: 8c4a479f89c09ce82d430c7ca8ebebde502c91c3
https://github.com/WebKit/WebKit/commit/8c4a479f89c09ce82d430c7ca8ebebde502c91c3
Author: Karl Dubost <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
A LayoutTests/fast/css/expedia-group-animation-quirk-expected.txt
A LayoutTests/fast/css/expedia-group-animation-quirk.html
R LayoutTests/fast/css/hotels-animation-quirk-expected.txt
R LayoutTests/fast/css/hotels-animation-quirk.html
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebCore/page/QuirksData.h
M Source/WebCore/style/StyleAdjuster.cpp
Log Message:
-----------
Cherry-pick 311522@main (11d366a3775f).
https://bugs.webkit.org/show_bug.cgi?id=312549
[quirk] extend the hotels.com quirk to the full expedia group of sites
https://bugs.webkit.org/show_bug.cgi?id=312549
rdar://174852031
Reviewed by Brent Fulgham.
This extends the previous quirk done for https://webkit.org/b/312549 to
the full group of domains operated by Expedia Group. All these domains
exhibit exactly the same issue and luckily enough have the same markup
for the flickering menu.
This requires an outreach to Expedia to ask them to fix their code, which
targets Safari and create the issue in the first place. Once it is fixed
on their side, it will be simplify both expedia code and WebKit code.
Test: fast/css/expedia-group-animation-quirk.html
* LayoutTests/fast/css/expedia-group-animation-quirk-expected.txt: Added.
* LayoutTests/fast/css/expedia-group-animation-quirk.html: Added.
* LayoutTests/fast/css/hotels-animation-quirk-expected.txt: Removed.
* LayoutTests/fast/css/hotels-animation-quirk.html: Removed.
* Source/WebCore/page/Quirks.cpp:
* Source/WebCore/page/Quirks.h:
* Source/WebCore/page/QuirksData.h:
* Source/WebCore/style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):
Canonical link: https://commits.webkit.org/311522@main
Canonical link: https://commits.webkit.org/305877.575@webkitglib/2.52
Commit: cd8463220c97a8a4674923a274ec15aeb5fd10ee
https://github.com/WebKit/WebKit/commit/cd8463220c97a8a4674923a274ec15aeb5fd10ee
Author: Youenn Fablet <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
M LayoutTests/http/wpt/fetch/resources/wrong-form-data.py
M LayoutTests/http/wpt/fetch/wrong-form-data-expected.txt
M LayoutTests/http/wpt/fetch/wrong-form-data.html
M Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp
Log Message:
-----------
Cherry-pick 311089@main (d9c3d2e9d1dd).
https://bugs.webkit.org/show_bug.cgi?id=312136
Multipart form data parser should not expect CRLF at the end
rdar://174348783
https://bugs.webkit.org/show_bug.cgi?id=312136
Reviewed by Chris Dumez.
Our checks added in rdar://172038722 were too strict.
While form generators include CRLF after the close delimiter, RFC 2046 does
not mandate this.
We update the implementation accordingly, which aligns with other UAs.
We also check for transport-padding as requested by RFC 2046, which aligns
with Chrome, not Firefox.
Finally, we keep allowing a start delimiter finishing with '--', which is
counted as a close delimiter.
The reason is that, even though not allowed by RFC and Chrome, it is
allowed by Firefox and is the way an empty FormData is serialized by User
Agents.
We add tests for close delimiter without CRLF and for transport-padding.
* LayoutTests/http/wpt/fetch/resources/wrong-form-data.py:
(main):
* LayoutTests/http/wpt/fetch/wrong-form-data-expected.txt:
* LayoutTests/http/wpt/fetch/wrong-form-data.html:
* Source/WebCore/Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::packageFormData):
Canonical link: https://commits.webkit.org/311089@main
Canonical link: https://commits.webkit.org/305877.576@webkitglib/2.52
Commit: e030ff7b291e197a5363443139e490bb56c4fede
https://github.com/WebKit/WebKit/commit/e030ff7b291e197a5363443139e490bb56c4fede
Author: Sammy Gill <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-tall-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-tall-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-tall.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size.html
M Source/WebCore/rendering/RenderBox.cpp
Log Message:
-----------
Cherry-pick 310931@main (9ebcc420fbbe).
https://bugs.webkit.org/show_bug.cgi?id=311689
REGRESSION(302241@main): CSS "aspect-ratio" is not honored when window is
zoomed in
https://bugs.webkit.org/show_bug.cgi?id=311689
rdar://174361289
Reviewed by Alan Baradlay.
When we are computing a box's size in an axis (e.g. height) using an
aspect-ratio and its minimum size in that axis (e.g. min-height) is
auto, we need to compute its min-content size as the automatic minimum
size.
https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum
For the logical height, we have this behavior implemented in
RenderBox::constrainLogicalHeightByMinMax.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-tall-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-tall-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size-tall.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-viewport/zoom/aspect-ratio-height-with-automatic-minimum-size.html:
Added.
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
When we are in the branch to compute the automatic minimum size we use
blockSizeFromAspectRatio to get the logical height we want from the
aspect-ratio. However, both this and intrinsicLogicalHeight are used
sizes, which means they are already zoomed. Constructing a
Style::MinimumSize::Fixed directly from these values results in the bug
since we will apply zoom *again* when it is evaluated. Instead, we
should remove the zoom from this value before constructing it.
Canonical link: https://commits.webkit.org/310931@main
Canonical link: https://commits.webkit.org/305877.577@webkitglib/2.52
Commit: fb39ecd0963a43ab2931d7f65281a39881782dd2
https://github.com/WebKit/WebKit/commit/fb39ecd0963a43ab2931d7f65281a39881782dd2
Author: Chris Dumez <[email protected]>
Date: 2026-05-19 (Tue, 19 May 2026)
Changed paths:
M Source/WTF/wtf/CheckedArithmetic.h
M Tools/TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp
Log Message:
-----------
Cherry-pick 310033@main (88e8afba6872).
https://bugs.webkit.org/show_bug.cgi?id=310811
Fix two overflow bugs in CheckedArithmetic's division operations
https://bugs.webkit.org/show_bug.cgi?id=310811
Reviewed by Geoffrey Garen.
Test: Tools/TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp
* Source/WTF/wtf/CheckedArithmetic.h:
(WTF::ArithmeticOperations::divide): For signed types, detect INT_MIN / -1
as overflow instead of executing undefined behavior. On x86, this would
cause SIGFPE; on narrower types it silently wraps to the wrong value.
(WTF::ArithmeticOperations<int, unsigned>::divide): Add an isInBounds
check on the int64_t quotient before casting to ResultType. Without this,
dividing a negative int by an unsigned (e.g. -1 / 1u) silently produces
UINT_MAX instead of signaling overflow.
* Tools/TestWebKitAPI/Tests/WTF/CheckedArithmeticOperations.cpp:
(TestWebKitAPI::TEST(CheckedArithmeticTest,
SignedDivisionMinByNegativeOneShouldOverflow)):
(TestWebKitAPI::TEST(CheckedArithmeticTest,
MixedSignDivisionShouldOverflowWhenResultIsNegative)):
Canonical link: https://commits.webkit.org/310033@main
Canonical link: https://commits.webkit.org/305877.578@webkitglib/2.52
Compare: https://github.com/WebKit/WebKit/compare/e9754ced5605...fb39ecd0963a
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications