Changeset 98799 in webkit
- Timestamp:
- Oct 29, 2011, 12:19:26 AM (15 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
dom/ActiveDOMObject.cpp (modified) (1 diff)
-
dom/MessagePort.cpp (modified) (2 diffs)
-
dom/MessagePort.h (modified) (3 diffs)
-
dom/ScriptExecutionContext.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r98796 r98799 1 2011-10-29 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r98795. 4 http://trac.webkit.org/changeset/98795 5 https://bugs.webkit.org/show_bug.cgi?id=71171 6 7 Causes worker tests to crash (Requested by abarth on #webkit). 8 9 * dom/ActiveDOMObject.cpp: 10 (WebCore::ContextDestructionObserver::contextDestroyed): 11 * dom/MessagePort.cpp: 12 (WebCore::MessagePort::MessagePort): 13 (WebCore::MessagePort::contextDestroyed): 14 * dom/MessagePort.h: 15 * dom/ScriptExecutionContext.cpp: 16 (WebCore::ScriptExecutionContext::~ScriptExecutionContext): 17 (WebCore::ScriptExecutionContext::closeMessagePorts): 18 1 19 2011-10-28 Ryosuke Niwa <rniwa@webkit.org> 2 20 -
trunk/Source/WebCore/dom/ActiveDOMObject.cpp
r98795 r98799 55 55 void ContextDestructionObserver::contextDestroyed() 56 56 { 57 ASSERT(m_scriptExecutionContext);58 57 m_scriptExecutionContext = 0; 59 58 } -
trunk/Source/WebCore/dom/MessagePort.cpp
r98795 r98799 42 42 43 43 MessagePort::MessagePort(ScriptExecutionContext& scriptExecutionContext) 44 : ContextDestructionObserver(&scriptExecutionContext) 45 , m_started(false) 44 : m_started(false) 46 45 , m_closed(false) 46 , m_scriptExecutionContext(&scriptExecutionContext) 47 47 { 48 48 m_scriptExecutionContext->createdMessagePort(this); … … 153 153 void MessagePort::contextDestroyed() 154 154 { 155 ASSERT(m_scriptExecutionContext); 155 156 // Must be closed before blowing away the cached context, to ensure that we get no more calls to messageAvailable(). 156 157 // ScriptExecutionContext::closeMessagePorts() takes care of that. 157 158 ASSERT(m_closed); 158 ContextDestructionObserver::contextDestroyed();159 m_scriptExecutionContext = 0; 159 160 } 160 161 -
trunk/Source/WebCore/dom/MessagePort.h
r98795 r98799 28 28 #define MessagePort_h 29 29 30 #include "ActiveDOMObject.h"31 30 #include "EventListener.h" 32 31 #include "EventTarget.h" … … 54 53 // ActiveDOMObject's features and relying on JavaScript garbage collection 55 54 // to get its lifetime right. 56 class MessagePort : public RefCounted<MessagePort>, public EventTarget , public ContextDestructionObserver{55 class MessagePort : public RefCounted<MessagePort>, public EventTarget { 57 56 public: 58 57 static PassRefPtr<MessagePort> create(ScriptExecutionContext& scriptExecutionContext) { return adoptRef(new MessagePort(scriptExecutionContext)); } … … 123 122 bool m_closed; 124 123 124 ScriptExecutionContext* m_scriptExecutionContext; 125 125 EventTargetData m_eventTargetData; 126 126 }; -
trunk/Source/WebCore/dom/ScriptExecutionContext.cpp
r98795 r98799 113 113 } 114 114 115 HashSet<MessagePort*>::iterator messagePortsEnd = m_messagePorts.end(); 116 for (HashSet<MessagePort*>::iterator iter = m_messagePorts.begin(); iter != messagePortsEnd; ++iter) { 117 ASSERT((*iter)->scriptExecutionContext() == this); 118 (*iter)->contextDestroyed(); 119 } 115 120 #if ENABLE(SQL_DATABASE) 116 121 if (m_databaseThread) { … … 296 301 } 297 302 298 void ScriptExecutionContext::closeMessagePorts() 299 { 303 void ScriptExecutionContext::closeMessagePorts() { 300 304 HashSet<MessagePort*>::iterator messagePortsEnd = m_messagePorts.end(); 301 305 for (HashSet<MessagePort*>::iterator iter = m_messagePorts.begin(); iter != messagePortsEnd; ++iter) {
Note:
See TracChangeset
for help on using the changeset viewer.