Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 002bcd5e72150ed17b53a718853ca784544080bc
https://github.com/WebKit/WebKit/commit/002bcd5e72150ed17b53a718853ca784544080bc
Author: Ryan Reno <[email protected]>
Date: 2024-09-11 (Wed, 11 Sep 2024)
Changed paths:
A LayoutTests/css-typedom/computed-style-map-lifetime-expected.txt
A LayoutTests/css-typedom/computed-style-map-lifetime.html
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
A Source/WebCore/bindings/js/JSStylePropertyMapReadOnlyCustom.cpp
M Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.cpp
M Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.h
M Source/WebCore/css/typedom/DeclaredStylePropertyMap.h
M Source/WebCore/css/typedom/HashMapStylePropertyMapReadOnly.h
M Source/WebCore/css/typedom/InlineStylePropertyMap.h
M Source/WebCore/css/typedom/StylePropertyMapReadOnly.h
M Source/WebCore/css/typedom/StylePropertyMapReadOnly.idl
Log Message:
-----------
[CSS Typed OM] Fix reference cycle between the computed style property map
and DOM elements
https://bugs.webkit.org/show_bug.cgi?id=279268
rdar://135356992
Reviewed by Chris Dumez and Matthieu Dubet.
There is a ref cycle between Element.computedStylePropertyMap and the
element itself. This change makes the back reference between
ComputedStylePropertyMapReadOnly and the element weak. To cover the case
where a JS reference is held to the computedStylePropertyMap but the
element has been disconnected from the document and is eligible for GC
the map will keep the element alive.
Verified fix with run-webkit-tests --world-leaks
imported/w3c/web-platform-tests/css/css-typed-om
and the new layout test to verify GC behavior.
* LayoutTests/css-typedom/computed-style-map-lifetime-expected.txt: Added.
* LayoutTests/css-typedom/computed-style-map-lifetime.html: Added.
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/bindings/js/JSStylePropertyMapReadOnlyCustom.cpp: Copied from
Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.h.
(WebCore::JSStylePropertyMapReadOnly::visitAdditionalChildren):
* Source/WebCore/css/typedom/ComputedStylePropertyMapReadOnly.h:
* Source/WebCore/css/typedom/DeclaredStylePropertyMap.h:
* Source/WebCore/css/typedom/HashMapStylePropertyMapReadOnly.h:
* Source/WebCore/css/typedom/InlineStylePropertyMap.h:
* Source/WebCore/css/typedom/StylePropertyMapReadOnly.h:
* Source/WebCore/css/typedom/StylePropertyMapReadOnly.idl:
Canonical link: https://commits.webkit.org/283490@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes