Index: Source/core/workers/WorkerGlobalScope.h |
diff --git a/Source/core/workers/WorkerGlobalScope.h b/Source/core/workers/WorkerGlobalScope.h |
index 3648d24ca677ec7a9e6cfffefb88aee541d16ffb..9a1bc4d0c6433d2a6176460f965b88fcf0ba893e 100644 |
--- a/Source/core/workers/WorkerGlobalScope.h |
+++ b/Source/core/workers/WorkerGlobalScope.h |
@@ -57,8 +57,9 @@ namespace WebCore { |
class WorkerNavigator; |
class WorkerThread; |
- class WorkerGlobalScope : public RefCounted<WorkerGlobalScope>, public ScriptWrappable, public SecurityContext, public ExecutionContext, public ExecutionContextClient, public WorkerSupplementable, public EventTargetWithInlineData { |
- REFCOUNTED_EVENT_TARGET(WorkerGlobalScope); |
+ class WorkerGlobalScope : public RefCountedWillBeRefCountedGarbageCollected<WorkerGlobalScope>, public ScriptWrappable, public SecurityContext, public ExecutionContext, public ExecutionContextClient, public WorkerSupplementable, public EventTargetWithInlineData { |
sof
2014/02/24 22:46:24
Just noticed: we now need to address Supplementabl
haraken
2014/02/25 01:30:49
Just to help me understand: Why do we need to addr
sof
2014/02/25 08:56:35
The problem isn't that such Persistents won't be c
haraken
2014/02/25 11:16:28
Let me make sure that I'm understanding correctly:
sof
2014/02/25 11:38:02
Correct.
sof
2014/02/25 21:56:43
WorkerGlobalScope is now a GCed Supplementable alo
|
+ DECLARE_GC_INFO; |
+ DEFINE_EVENT_TARGET_REFCOUNTING(RefCountedWillBeRefCountedGarbageCollected<WorkerGlobalScope>); |
public: |
virtual ~WorkerGlobalScope(); |
@@ -123,6 +124,8 @@ namespace WebCore { |
using SecurityContext::securityOrigin; |
using SecurityContext::contentSecurityPolicy; |
+ virtual void trace(Visitor*); |
+ |
protected: |
WorkerGlobalScope(const KURL&, const String& userAgent, WorkerThread*, double timeOrigin, PassOwnPtr<WorkerClients>); |
void applyContentSecurityPolicyFromString(const String& contentSecurityPolicy, ContentSecurityPolicy::HeaderType); |
@@ -146,9 +149,9 @@ namespace WebCore { |
KURL m_url; |
String m_userAgent; |
- mutable RefPtr<WorkerConsole> m_console; |
- mutable RefPtr<WorkerLocation> m_location; |
- mutable RefPtr<WorkerNavigator> m_navigator; |
+ mutable RefPtrWillBeMember<WorkerConsole> m_console; |
+ mutable RefPtrWillBeMember<WorkerLocation> m_location; |
+ mutable RefPtrWillBeMember<WorkerNavigator> m_navigator; |
OwnPtr<WorkerScriptController> m_script; |
WorkerThread* m_thread; |
haraken
2014/02/25 01:30:49
This raw pointer will cause an issue.
- WorkerThr
sof
2014/02/25 07:46:44
If you look at WorkerThread::workerThread(), it as
Vyacheslav Egorov (Chromium)
2014/02/25 10:41:27
WorkerGlobalScope can't outlive the thread because
|
@@ -156,8 +159,6 @@ namespace WebCore { |
OwnPtr<WorkerInspectorController> m_workerInspectorController; |
bool m_closing; |
- HashSet<Observer*> m_workerObservers; |
- |
OwnPtr<WorkerEventQueue> m_eventQueue; |
OwnPtr<WorkerClients> m_workerClients; |