Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9e0be52714870b41c87cbc959458931757631918 https://github.com/WebKit/WebKit/commit/9e0be52714870b41c87cbc959458931757631918 Author: Ryan Reno <rr...@apple.com> Date: 2024-07-11 (Thu, 11 Jul 2024)
Changed paths: A LayoutTests/fast/reporting/reporting-observer-lifetime-expected.txt A LayoutTests/fast/reporting/reporting-observer-lifetime.html M Source/WebCore/Modules/reporting/ReportingObserver.cpp M Source/WebCore/Modules/reporting/ReportingObserver.h M Source/WebCore/Modules/reporting/ReportingObserver.idl M Source/WebCore/Modules/reporting/ReportingScope.cpp M Source/WebCore/Modules/reporting/ReportingScope.h Log Message: ----------- ReportingObserver can be kept alive longer than necessary. https://bugs.webkit.org/show_bug.cgi?id=276500 rdar://131559195 Reviewed by Brent Fulgham. ReportingObserver has the GenerateIsReachable=ImplScriptExecutionContext extended IDL attribute. This will generate a isReachableFromOpaqueRoots implementation which will keep the observer alive for as long as the ScriptExecutionContext exists. However, if we are no longer observing reports and all JS references to the object are gone, we should allow ourselves to garbage collect it. This change turns the ReportingObserver into an ActiveDOMObject whose pending activity state depends on whether or not it is registered with the ReportingScope. * LayoutTests/fast/reporting/reporting-observer-lifetime-expected.txt: Added. * LayoutTests/fast/reporting/reporting-observer-lifetime.html: Added. * Source/WebCore/Modules/reporting/ReportingObserver.cpp: (WebCore::ReportingObserver::create): (WebCore::ReportingObserver::ReportingObserver): (WebCore::ReportingObserver::virtualHasPendingActivity const): * Source/WebCore/Modules/reporting/ReportingObserver.h: * Source/WebCore/Modules/reporting/ReportingObserver.idl: * Source/WebCore/Modules/reporting/ReportingScope.cpp: (WebCore::ReportingScope::containsObserver const): * Source/WebCore/Modules/reporting/ReportingScope.h: Canonical link: https://commits.webkit.org/280886@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes