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

Side by Side Diff: Source/bindings/dart/DartDOMData.h

Issue 24294002: Dartium changes for custom element lifecycle events. (Closed) Base URL: svn://svn.chromium.org/multivm/trunk/webkit
Patch Set: Created 7 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 14 matching lines...) Expand all
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef DartDOMData_h 31 #ifndef DartDOMData_h
32 #define DartDOMData_h 32 #define DartDOMData_h
33 33
34 #include "DartWebkitClassIds.h" 34 #include "DartWebkitClassIds.h"
35 #include "bindings/dart/DartCustomElementBinding.h"
35 #include "bindings/dart/DartStringCache.h" 36 #include "bindings/dart/DartStringCache.h"
36 37
37 #include "wtf/HashMap.h" 38 #include "wtf/HashMap.h"
38 #include "wtf/HashSet.h" 39 #include "wtf/HashSet.h"
39 #include "wtf/RefPtr.h" 40 #include "wtf/RefPtr.h"
40 #include "wtf/Threading.h" 41 #include "wtf/Threading.h"
41 #include "wtf/ThreadingPrimitives.h" 42 #include "wtf/ThreadingPrimitives.h"
42 #include "wtf/Vector.h" 43 #include "wtf/Vector.h"
43 #include "wtf/text/WTFString.h" 44 #include "wtf/text/WTFString.h"
45
44 #include <dart_api.h> 46 #include <dart_api.h>
45 47
46 namespace WebCore { 48 namespace WebCore {
47 49
48 class ActiveDOMObject; 50 class ActiveDOMObject;
51 class CustomElementDefinition;
49 class DOMWindow; 52 class DOMWindow;
50 class DartApplicationLoader; 53 class DartApplicationLoader;
51 class DartEventListener; 54 class DartEventListener;
52 class DartIsolateDestructionObserver; 55 class DartIsolateDestructionObserver;
53 class DartWeakCallback; 56 class DartWeakCallback;
54 class EventTarget; 57 class EventTarget;
55 class MessagePort; 58 class MessagePort;
56 class Node; 59 class Node;
57 class ScriptExecutionContext; 60 class ScriptExecutionContext;
58 class ThreadSafeDartIsolateWrapper; 61 class ThreadSafeDartIsolateWrapper;
59 62
60 typedef HashMap<Node*, Dart_WeakPersistentHandle> DartDOMNodeMap; 63 typedef HashMap<Node*, Dart_WeakPersistentHandle> DartDOMNodeMap;
61 typedef HashMap<void*, Dart_WeakPersistentHandle> DartDOMObjectMap; 64 typedef HashMap<void*, Dart_WeakPersistentHandle> DartDOMObjectMap;
62 typedef HashMap<MessagePort*, Dart_WeakPersistentHandle> DartMessagePortMap; 65 typedef HashMap<MessagePort*, Dart_WeakPersistentHandle> DartMessagePortMap;
63 typedef HashMap<ActiveDOMObject*, Dart_WeakPersistentHandle> DartActiveDOMObject Map; 66 typedef HashMap<ActiveDOMObject*, Dart_WeakPersistentHandle> DartActiveDOMObject Map;
64 typedef HashMap<EventTarget*, Dart_WeakPersistentHandle> DartEventTargetMap; 67 typedef HashMap<EventTarget*, Dart_WeakPersistentHandle> DartEventTargetMap;
65 typedef HashSet<DartWeakCallback*> DartWeakCallbacks; 68 typedef HashSet<DartWeakCallback*> DartWeakCallbacks;
66 typedef HashSet<DartIsolateDestructionObserver*> DartIsolateDestructionObservers ; 69 typedef HashSet<DartIsolateDestructionObserver*> DartIsolateDestructionObservers ;
67 typedef HashMap<String, Dart_PersistentHandle> DartCustomElementMap; 70 typedef HashMap<CustomElementDefinition*, OwnPtr<DartCustomElementBinding> > Dar tCustomElementBindingMap;
68 typedef Dart_PersistentHandle ClassTable[NumWebkitClassIds]; 71 typedef Dart_PersistentHandle ClassTable[NumWebkitClassIds];
69 72
70 class DartDOMData { 73 class DartDOMData {
71 public: 74 public:
72 DartDOMData(ScriptExecutionContext*, bool isDOMEnabled); 75 DartDOMData(ScriptExecutionContext*, bool isDOMEnabled);
73 ~DartDOMData(); 76 ~DartDOMData();
74 77
75 static DartDOMData* current(); 78 static DartDOMData* current();
76 79
77 ScriptExecutionContext* scriptExecutionContext() { return m_scriptExecutionC ontext; } 80 ScriptExecutionContext* scriptExecutionContext() { return m_scriptExecutionC ontext; }
(...skipping 12 matching lines...) Expand all
90 void setReachableWeakHandle(Dart_WeakPersistentHandle reachableWeakHandle) { m_reachableWeakHandle = reachableWeakHandle; } 93 void setReachableWeakHandle(Dart_WeakPersistentHandle reachableWeakHandle) { m_reachableWeakHandle = reachableWeakHandle; }
91 Dart_WeakPersistentHandle reachableWeakHandle() { return m_reachableWeakHand le; } 94 Dart_WeakPersistentHandle reachableWeakHandle() { return m_reachableWeakHand le; }
92 95
93 DartDOMNodeMap* nodeMap() { return &m_nodeMap; } 96 DartDOMNodeMap* nodeMap() { return &m_nodeMap; }
94 DartDOMObjectMap* objectMap() { return &m_objectMap; } 97 DartDOMObjectMap* objectMap() { return &m_objectMap; }
95 DartMessagePortMap* messagePortMap() { return &m_messagePortMap; } 98 DartMessagePortMap* messagePortMap() { return &m_messagePortMap; }
96 DartActiveDOMObjectMap* activeObjectMap() { return &m_activeObjectMap; } 99 DartActiveDOMObjectMap* activeObjectMap() { return &m_activeObjectMap; }
97 DartEventTargetMap* eventTargetMap() { return &m_eventTargetMap; } 100 DartEventTargetMap* eventTargetMap() { return &m_eventTargetMap; }
98 DartWeakCallbacks* weakCallbacks() { return &m_weakCallbacks; } 101 DartWeakCallbacks* weakCallbacks() { return &m_weakCallbacks; }
99 DartIsolateDestructionObservers* isolateDestructionObservers() { return &m_i solateDestructionObservers; } 102 DartIsolateDestructionObservers* isolateDestructionObservers() { return &m_i solateDestructionObservers; }
100 DartCustomElementMap* customElementMap() { return &m_customElementMap; }
101 DartCustomElementMap* customBaseElementMap() { return &m_customBaseElementMa p; }
102 ClassTable* classHandleCache() { return &m_classHandleCache; } 103 ClassTable* classHandleCache() { return &m_classHandleCache; }
103 104
105 void addCustomElementBinding(CustomElementDefinition*, PassOwnPtr<DartCustom ElementBinding>);
106 void clearCustomElementBinding(CustomElementDefinition*);
107 DartCustomElementBinding* customElementBinding(CustomElementDefinition*);
108
104 private: 109 private:
105 ScriptExecutionContext* m_scriptExecutionContext; 110 ScriptExecutionContext* m_scriptExecutionContext;
106 bool m_isDOMEnabled; 111 bool m_isDOMEnabled;
107 int m_recursion; 112 int m_recursion;
108 DartStringCache m_stringCache; 113 DartStringCache m_stringCache;
109 RefPtr<ThreadSafeDartIsolateWrapper> m_threadSafeIsolateWrapper; 114 RefPtr<ThreadSafeDartIsolateWrapper> m_threadSafeIsolateWrapper;
110 Mutex m_isolateWrapperMutex; 115 Mutex m_isolateWrapperMutex;
111 RefPtr<DartApplicationLoader> m_applicationLoader; 116 RefPtr<DartApplicationLoader> m_applicationLoader;
112 Vector<uint8_t> m_applicationSnapshot; 117 Vector<uint8_t> m_applicationSnapshot;
113 Dart_WeakPersistentHandle m_reachableWeakHandle; 118 Dart_WeakPersistentHandle m_reachableWeakHandle;
114 119
115 DartDOMNodeMap m_nodeMap; 120 DartDOMNodeMap m_nodeMap;
116 DartDOMObjectMap m_objectMap; 121 DartDOMObjectMap m_objectMap;
117 DartMessagePortMap m_messagePortMap; 122 DartMessagePortMap m_messagePortMap;
118 DartActiveDOMObjectMap m_activeObjectMap; 123 DartActiveDOMObjectMap m_activeObjectMap;
119 DartEventTargetMap m_eventTargetMap; 124 DartEventTargetMap m_eventTargetMap;
120 DartWeakCallbacks m_weakCallbacks; 125 DartWeakCallbacks m_weakCallbacks;
121 DartIsolateDestructionObservers m_isolateDestructionObservers; 126 DartIsolateDestructionObservers m_isolateDestructionObservers;
122 DartCustomElementMap m_customElementMap; 127 DartCustomElementBindingMap m_customElementBindings;
123 DartCustomElementMap m_customBaseElementMap;
124 ClassTable m_classHandleCache; 128 ClassTable m_classHandleCache;
125 }; 129 };
126 130
127 } 131 }
128 132
129 #endif // DartDOMData_h 133 #endif // DartDOMData_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698