WebKit Bugzilla
Attachment 359202 Details for
Bug 193462
: ServiceWorkerContainer is leaking due to a ref cycle
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193462-20190115140553.patch (text/plain), 1.80 KB, created by
youenn fablet
on 2019-01-15 14:05:53 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2019-01-15 14:05:53 PST
Size:
1.80 KB
patch
obsolete
>Subversion Revision: 239989 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index ad34c6dfdd3a5d9bc1f4626d55f9f49871ca405b..47e24b6b5ff676bdf306515f4a033b06c8919021 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2019-01-15 Youenn Fablet <youenn@apple.com> >+ >+ ServiceWorkerContainer is leaking due to a ref cycle >+ https://bugs.webkit.org/show_bug.cgi?id=193462 >+ <rdar://problem/47026303> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ ServiceWorkerContainer keeps a reference to its ready promise. >+ The ready promise keeps a ref to its value which is a ServiceWorkerRegistration. >+ ServiceWorkerRegistration keeps a ref to ServiceWorkerContainer. >+ >+ To break the reference cycle, set the ready promise to zero when ServiceWorkerContainer is stopped. >+ >+ Covered by imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html no longer leaking. >+ >+ * workers/service/ServiceWorkerContainer.cpp: >+ (WebCore::ServiceWorkerContainer::stop): >+ > 2019-01-15 Devin Rousso <drousso@apple.com> > > Web Inspector: Audit: provide a way to determine whether a give node has event listeners >diff --git a/Source/WebCore/workers/service/ServiceWorkerContainer.cpp b/Source/WebCore/workers/service/ServiceWorkerContainer.cpp >index 1d3c448e0859ddca78e9e2faebc7360ac7bb5b93..7a96d978cc9b833b92326e082b39680fe2953177 100644 >--- a/Source/WebCore/workers/service/ServiceWorkerContainer.cpp >+++ b/Source/WebCore/workers/service/ServiceWorkerContainer.cpp >@@ -632,6 +632,7 @@ void ServiceWorkerContainer::stop() > m_isStopped = true; > removeAllEventListeners(); > m_pendingPromises.clear(); >+ m_readyPromise = nullptr; > for (auto& job : m_jobMap.values()) > job->cancelPendingLoad(); > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193462
: 359202