[webkit-changes] [WebKit/WebKit] 002bcd: [CSS Typed OM] Fix reference cycle between the com...
Ryan Reno
noreply at github.com
Wed Sep 11 10:22:46 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 002bcd5e72150ed17b53a718853ca784544080bc
https://github.com/WebKit/WebKit/commit/002bcd5e72150ed17b53a718853ca784544080bc
Author: Ryan Reno <rreno at apple.com>
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
More information about the webkit-changes
mailing list