summaryrefslogtreecommitdiff
path: root/Source/WebCore/dom/ActiveDOMObject.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-02-24 16:36:50 +0100
committerSimon Hausmann <simon.hausmann@nokia.com>2012-02-24 16:36:50 +0100
commitad0d549d4cc13433f77c1ac8f0ab379c83d93f28 (patch)
treeb34b0daceb7c8e7fdde4b4ec43650ab7caadb0a9 /Source/WebCore/dom/ActiveDOMObject.cpp
parent03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (diff)
downloadqtwebkit-ad0d549d4cc13433f77c1ac8f0ab379c83d93f28.tar.gz
Imported WebKit commit bb52bf3c0119e8a128cd93afe5572413a8617de9 (http://svn.webkit.org/repository/webkit/trunk@108790)
Diffstat (limited to 'Source/WebCore/dom/ActiveDOMObject.cpp')
-rw-r--r--Source/WebCore/dom/ActiveDOMObject.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/WebCore/dom/ActiveDOMObject.cpp b/Source/WebCore/dom/ActiveDOMObject.cpp
index 39a4c4c6b..bb2ec2209 100644
--- a/Source/WebCore/dom/ActiveDOMObject.cpp
+++ b/Source/WebCore/dom/ActiveDOMObject.cpp
@@ -60,6 +60,9 @@ void ContextDestructionObserver::contextDestroyed()
ActiveDOMObject::ActiveDOMObject(ScriptExecutionContext* scriptExecutionContext, void* upcastPointer)
: ContextDestructionObserver(scriptExecutionContext)
, m_pendingActivityCount(0)
+#if !ASSERT_DISABLED
+ , m_suspendIfNeededCalled(false)
+#endif
{
if (!m_scriptExecutionContext)
return;
@@ -73,10 +76,23 @@ ActiveDOMObject::~ActiveDOMObject()
if (!m_scriptExecutionContext)
return;
+ ASSERT(m_suspendIfNeededCalled);
ASSERT(m_scriptExecutionContext->isContextThread());
m_scriptExecutionContext->willDestroyActiveDOMObject(this);
}
+void ActiveDOMObject::suspendIfNeeded()
+{
+#if !ASSERT_DISABLED
+ ASSERT(!m_suspendIfNeededCalled);
+ m_suspendIfNeededCalled = true;
+#endif
+ if (!m_scriptExecutionContext)
+ return;
+
+ m_scriptExecutionContext->suspendActiveDOMObjectIfNeeded(this);
+}
+
bool ActiveDOMObject::hasPendingActivity() const
{
return m_pendingActivityCount;