Index: third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp |
diff --git a/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp b/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp |
index 530aee3d338b7529ad0aed1f37fa86912648c35f..298931c6c9cc0bdeeace13f2f9ff74390874b9ba 100644 |
--- a/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp |
+++ b/third_party/WebKit/Source/modules/notifications/NotificationImageLoader.cpp |
@@ -65,7 +65,11 @@ |
m_stopped = true; |
if (m_threadableLoader) { |
m_threadableLoader->cancel(); |
- m_threadableLoader = nullptr; |
+ // WorkerThreadableLoader keeps a Persistent<WorkerGlobalScope> to the |
+ // ExecutionContext it received in |create|. Kill it to prevent |
+ // reference cycles involving a mix of GC and non-GC types that fail to |
+ // clear in ThreadState::cleanup. |
+ m_threadableLoader.reset(); |
} |
} |