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

Unified Diff: Source/WebCore/bindings/dart/DartDOMData.h

Issue 9837116: DOM wrappers that are not retained from Dart should be collected. (Closed) Base URL: svn://svn.chromium.org/multivm/trunk/webkit
Patch Set: Rebased with proper shutdown semantics. Created 8 years, 9 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/WebCore/bindings/dart/DartDOMData.h
diff --git a/Source/WebCore/bindings/dart/DartDOMData.h b/Source/WebCore/bindings/dart/DartDOMData.h
index c5878553dd0332c8ce341fdb1f77ad18af4d11f9..b6d8d90e150b8178caeec450546167659114e664 100644
--- a/Source/WebCore/bindings/dart/DartDOMData.h
+++ b/Source/WebCore/bindings/dart/DartDOMData.h
@@ -33,28 +33,33 @@
#include <dart_api.h>
#include <wtf/HashMap.h>
+#include <wtf/HashSet.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
namespace WebCore {
+class DOMWindow;
class DartApplicationLoader;
class DartEventListener;
class ScriptExecutionContext;
-class DOMWindow;
+class WeakCallbackData;
typedef HashMap<void*, Dart_Handle> DartDOMMap;
typedef Vector< RefPtr<DartEventListener> > DartEventListenerList;
+typedef HashSet<WeakCallbackData*> DartWeakCallbacks;
Anton Muhin 2012/03/29 19:18:45 nit: name mismatch: CallbackData vs. Callbacks
podivilov 2012/03/30 10:36:28 Done.
class DartDOMData {
public:
DartDOMData(PassRefPtr<DartApplicationLoader> applicationLoader, ScriptExecutionContext* context);
+ ~DartDOMData();
PassRefPtr<DartApplicationLoader> applicationLoader();
ScriptExecutionContext* scriptExecutionContext() { return m_scriptExecutionContext; }
DOMWindow* domWindow() { return m_domWindow; }
DartDOMMap* domMap() { return &m_domMap; }
DartEventListenerList* eventListeners() { return &m_eventListeners; }
+ DartWeakCallbacks* weakCallbacks() { return &m_weakCallbacks; }
int* recursion() { return &m_recursion; }
private:
@@ -63,6 +68,7 @@ private:
DOMWindow* m_domWindow;
DartDOMMap m_domMap;
DartEventListenerList m_eventListeners;
+ DartWeakCallbacks m_weakCallbacks;
int m_recursion;
};

Powered by Google App Engine
This is Rietveld 408576698