OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 class DatabaseTaskSynchronizer; | 53 class DatabaseTaskSynchronizer; |
54 class DatabaseThread; | 54 class DatabaseThread; |
55 #endif | 55 #endif |
56 class DOMTimer; | 56 class DOMTimer; |
57 class EventListener; | 57 class EventListener; |
58 class EventTarget; | 58 class EventTarget; |
59 #if ENABLE(BLOB) || ENABLE(FILE_SYSTEM) | 59 #if ENABLE(BLOB) || ENABLE(FILE_SYSTEM) |
60 class FileThread; | 60 class FileThread; |
61 #endif | 61 #endif |
62 class MessagePort; | 62 class MessagePort; |
| 63 class DOMURL; |
63 class SecurityOrigin; | 64 class SecurityOrigin; |
64 class ScriptCallStack; | 65 class ScriptCallStack; |
65 | 66 |
66 class ScriptExecutionContext { | 67 class ScriptExecutionContext { |
67 public: | 68 public: |
68 ScriptExecutionContext(); | 69 ScriptExecutionContext(); |
69 virtual ~ScriptExecutionContext(); | 70 virtual ~ScriptExecutionContext(); |
70 | 71 |
71 virtual bool isDocument() const { return false; } | 72 virtual bool isDocument() const { return false; } |
72 virtual bool isWorkerContext() const { return false; } | 73 virtual bool isWorkerContext() const { return false; } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 typedef const HashMap<ActiveDOMObject*, void*> ActiveDOMObjectsMap; | 106 typedef const HashMap<ActiveDOMObject*, void*> ActiveDOMObjectsMap; |
106 ActiveDOMObjectsMap& activeDOMObjects() const { return m_activeDOMObject
s; } | 107 ActiveDOMObjectsMap& activeDOMObjects() const { return m_activeDOMObject
s; } |
107 | 108 |
108 // MessagePort is conceptually a kind of ActiveDOMObject, but it needs t
o be tracked separately for message dispatch. | 109 // MessagePort is conceptually a kind of ActiveDOMObject, but it needs t
o be tracked separately for message dispatch. |
109 void processMessagePortMessagesSoon(); | 110 void processMessagePortMessagesSoon(); |
110 void dispatchMessagePortEvents(); | 111 void dispatchMessagePortEvents(); |
111 void createdMessagePort(MessagePort*); | 112 void createdMessagePort(MessagePort*); |
112 void destroyedMessagePort(MessagePort*); | 113 void destroyedMessagePort(MessagePort*); |
113 const HashSet<MessagePort*>& messagePorts() const { return m_messagePort
s; } | 114 const HashSet<MessagePort*>& messagePorts() const { return m_messagePort
s; } |
114 | 115 |
| 116 #if ENABLE(BLOB) |
| 117 void createdDomUrl(DOMURL*); |
| 118 void destroyedDomUrl(DOMURL*); |
| 119 const HashSet<DOMURL*>& domUrls() const { return m_domUrls; } |
| 120 #endif |
115 void ref() { refScriptExecutionContext(); } | 121 void ref() { refScriptExecutionContext(); } |
116 void deref() { derefScriptExecutionContext(); } | 122 void deref() { derefScriptExecutionContext(); } |
117 | 123 |
118 class Task { | 124 class Task { |
119 WTF_MAKE_NONCOPYABLE(Task); WTF_MAKE_FAST_ALLOCATED; | 125 WTF_MAKE_NONCOPYABLE(Task); WTF_MAKE_FAST_ALLOCATED; |
120 public: | 126 public: |
121 Task() { } | 127 Task() { } |
122 virtual ~Task(); | 128 virtual ~Task(); |
123 virtual void performTask(ScriptExecutionContext*) = 0; | 129 virtual void performTask(ScriptExecutionContext*) = 0; |
124 // Certain tasks get marked specially so that they aren't discarded,
and are executed, when the context is shutting down its message queue. | 130 // Certain tasks get marked specially so that they aren't discarded,
and are executed, when the context is shutting down its message queue. |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 RefPtr<SecurityOrigin> m_securityOrigin; | 170 RefPtr<SecurityOrigin> m_securityOrigin; |
165 | 171 |
166 HashSet<MessagePort*> m_messagePorts; | 172 HashSet<MessagePort*> m_messagePorts; |
167 | 173 |
168 HashMap<ActiveDOMObject*, void*> m_activeDOMObjects; | 174 HashMap<ActiveDOMObject*, void*> m_activeDOMObjects; |
169 | 175 |
170 HashMap<int, DOMTimer*> m_timeouts; | 176 HashMap<int, DOMTimer*> m_timeouts; |
171 | 177 |
172 #if ENABLE(BLOB) | 178 #if ENABLE(BLOB) |
173 HashSet<String> m_publicBlobURLs; | 179 HashSet<String> m_publicBlobURLs; |
| 180 HashSet<DOMURL*> m_domUrls; |
174 #endif | 181 #endif |
175 | 182 |
176 virtual void refScriptExecutionContext() = 0; | 183 virtual void refScriptExecutionContext() = 0; |
177 virtual void derefScriptExecutionContext() = 0; | 184 virtual void derefScriptExecutionContext() = 0; |
178 | 185 |
179 bool m_inDispatchErrorEvent; | 186 bool m_inDispatchErrorEvent; |
180 class PendingException; | 187 class PendingException; |
181 OwnPtr<Vector<OwnPtr<PendingException> > > m_pendingExceptions; | 188 OwnPtr<Vector<OwnPtr<PendingException> > > m_pendingExceptions; |
182 | 189 |
183 #if ENABLE(DATABASE) | 190 #if ENABLE(DATABASE) |
184 RefPtr<DatabaseThread> m_databaseThread; | 191 RefPtr<DatabaseThread> m_databaseThread; |
185 bool m_hasOpenDatabases; // This never changes back to false, even after
the database thread is closed. | 192 bool m_hasOpenDatabases; // This never changes back to false, even after
the database thread is closed. |
186 #endif | 193 #endif |
187 | 194 |
188 #if ENABLE(BLOB) || ENABLE(FILE_SYSTEM) | 195 #if ENABLE(BLOB) || ENABLE(FILE_SYSTEM) |
189 RefPtr<FileThread> m_fileThread; | 196 RefPtr<FileThread> m_fileThread; |
190 #endif | 197 #endif |
191 }; | 198 }; |
192 | 199 |
193 } // namespace WebCore | 200 } // namespace WebCore |
194 | 201 |
195 | 202 |
196 #endif // ScriptExecutionContext_h | 203 #endif // ScriptExecutionContext_h |
OLD | NEW |