mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 15:23:51 +00:00
0943e68b5e
In some unusual cases, WorkerGlobalScope could live longer than WorkerPrivate since some other objects hold a reference on WorkerGlobalScope. We try to use CC/GC to release WorkerGlobalScope and force disconnect them from the WorkerPrivate before releasing WorkerPrivate. https://searchfox.org/mozilla-central/rev/83b86005c6913c2062419efb8aabdf2e683aa47f/dom/workers/RuntimeService.cpp#2068-2109 The previous implementation focused on nulling the WorkerGlobalScopeBase::mWorkerPrivate. However, it is not enough since WorkerGlobalScope's member could possibly hold a CheckedUnsafePtr<WorkerPrivate>, i.e. WorkerGlobalScope::mPerformance. In this patch, we focus on breaking these connections. Differential Revision: https://phabricator.services.mozilla.com/D162575 |
||
---|---|---|
.. | ||
tests | ||
EventCounts.cpp | ||
EventCounts.h | ||
moz.build | ||
Performance.cpp | ||
Performance.h | ||
PerformanceEntry.cpp | ||
PerformanceEntry.h | ||
PerformanceEventTiming.cpp | ||
PerformanceEventTiming.h | ||
PerformanceMainThread.cpp | ||
PerformanceMainThread.h | ||
PerformanceMark.cpp | ||
PerformanceMark.h | ||
PerformanceMeasure.cpp | ||
PerformanceMeasure.h | ||
PerformanceNavigation.cpp | ||
PerformanceNavigation.h | ||
PerformanceNavigationTiming.cpp | ||
PerformanceNavigationTiming.h | ||
PerformanceObserver.cpp | ||
PerformanceObserver.h | ||
PerformanceObserverEntryList.cpp | ||
PerformanceObserverEntryList.h | ||
PerformancePaintTiming.cpp | ||
PerformancePaintTiming.h | ||
PerformanceResourceTiming.cpp | ||
PerformanceResourceTiming.h | ||
PerformanceServerTiming.cpp | ||
PerformanceServerTiming.h | ||
PerformanceService.cpp | ||
PerformanceService.h | ||
PerformanceStorage.h | ||
PerformanceStorageWorker.cpp | ||
PerformanceStorageWorker.h | ||
PerformanceTiming.cpp | ||
PerformanceTiming.h | ||
PerformanceTimingTypes.ipdlh | ||
PerformanceWorker.cpp | ||
PerformanceWorker.h |