Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(894)

Unified Diff: Source/core/inspector/InjectedScriptManager.h

Issue 452043002: InjectedScriptManager::CallbackData should be disposed when an associated worker thread terminates (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/inspector/InjectedScriptManager.h
diff --git a/Source/core/inspector/InjectedScriptManager.h b/Source/core/inspector/InjectedScriptManager.h
index d3e47aeaed8e1545bff1ccd3e641858229b1b069..289613a5dbfdb75e063fa28b9780d85da15a3a31 100644
--- a/Source/core/inspector/InjectedScriptManager.h
+++ b/Source/core/inspector/InjectedScriptManager.h
@@ -47,6 +47,12 @@ class InjectedScriptManager : public NoBaseWillBeGarbageCollectedFinalized<Injec
WTF_MAKE_NONCOPYABLE(InjectedScriptManager);
WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
public:
+ struct CallbackData {
+ ScopedPersistent<v8::Object> handle;
+ RefPtrWillBePersistent<InjectedScriptHost> host;
+ InjectedScriptManager* injectedScriptManager;
+ };
+
static PassOwnPtrWillBeRawPtr<InjectedScriptManager> createForPage();
static PassOwnPtrWillBeRawPtr<InjectedScriptManager> createForWorker();
~InjectedScriptManager();
@@ -67,8 +73,10 @@ public:
typedef bool (*InspectedStateAccessCheck)(ScriptState*);
InspectedStateAccessCheck inspectedStateAccessCheck() const { return m_inspectedStateAccessCheck; }
- struct CallbackData;
static void setWeakCallback(const v8::WeakCallbackData<v8::Object, CallbackData>&);
+ CallbackData* createCallbackData(InjectedScriptManager*);
+ void removeCallbackData(CallbackData*);
+
private:
explicit InjectedScriptManager(InspectedStateAccessCheck);
@@ -85,6 +93,7 @@ private:
InspectedStateAccessCheck m_inspectedStateAccessCheck;
typedef HashMap<RefPtr<ScriptState>, int> ScriptStateToId;
ScriptStateToId m_scriptStateToId;
+ HashSet<OwnPtr<CallbackData> > m_callbackDataSet;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698