Title: [108954] trunk/Source/WebCore
Revision
108954
Author
[email protected]
Date
2012-02-26 21:10:08 -0800 (Sun, 26 Feb 2012)

Log Message

ContextDestructionObserver should live in its own file
https://bugs.webkit.org/show_bug.cgi?id=79619

Reviewed by Hajime Morita.

WebKit prefers to have one class per file.  (This patch is paying a
build system hacking debt I incurred earlier.)

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/ActiveDOMObject.cpp:
(WebCore):
* dom/ActiveDOMObject.h:
(ActiveDOMObject):
(WebCore::ActiveDOMObject::suspendIfNeededCalled):
(WebCore::ActiveDOMObject::setPendingActivity):
(WebCore::ActiveDOMObject::unsetPendingActivity):
* dom/ContextDestructionObserver.cpp: Added.
(WebCore):
(WebCore::ContextDestructionObserver::ContextDestructionObserver):
(WebCore::ContextDestructionObserver::~ContextDestructionObserver):
(WebCore::ContextDestructionObserver::contextDestroyed):
* dom/ContextDestructionObserver.h: Added.
(WebCore):
(ContextDestructionObserver):
(WebCore::ContextDestructionObserver::scriptExecutionContext):
* dom/DOMAllInOne.cpp:

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (108953 => 108954)


--- trunk/Source/WebCore/CMakeLists.txt	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/CMakeLists.txt	2012-02-27 05:10:08 UTC (rev 108954)
@@ -535,6 +535,7 @@
     dom/Comment.cpp
     dom/CompositionEvent.cpp
     dom/ContainerNode.cpp
+    dom/ContextDestructionObserver.cpp
     dom/CustomEvent.cpp
     dom/DatasetDOMStringMap.cpp
     dom/DecodedDataDocumentParser.cpp

Modified: trunk/Source/WebCore/ChangeLog (108953 => 108954)


--- trunk/Source/WebCore/ChangeLog	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/ChangeLog	2012-02-27 05:10:08 UTC (rev 108954)
@@ -1,3 +1,37 @@
+2012-02-26  Adam Barth  <[email protected]>
+
+        ContextDestructionObserver should live in its own file
+        https://bugs.webkit.org/show_bug.cgi?id=79619
+
+        Reviewed by Hajime Morita.
+
+        WebKit prefers to have one class per file.  (This patch is paying a
+        build system hacking debt I incurred earlier.)
+
+        * CMakeLists.txt:
+        * GNUmakefile.list.am:
+        * Target.pri:
+        * WebCore.gypi:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/ActiveDOMObject.cpp:
+        (WebCore):
+        * dom/ActiveDOMObject.h:
+        (ActiveDOMObject):
+        (WebCore::ActiveDOMObject::suspendIfNeededCalled):
+        (WebCore::ActiveDOMObject::setPendingActivity):
+        (WebCore::ActiveDOMObject::unsetPendingActivity):
+        * dom/ContextDestructionObserver.cpp: Added.
+        (WebCore):
+        (WebCore::ContextDestructionObserver::ContextDestructionObserver):
+        (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
+        (WebCore::ContextDestructionObserver::contextDestroyed):
+        * dom/ContextDestructionObserver.h: Added.
+        (WebCore):
+        (ContextDestructionObserver):
+        (WebCore::ContextDestructionObserver::scriptExecutionContext):
+        * dom/DOMAllInOne.cpp:
+
 2012-02-26  Dirk Schulze  <[email protected]>
 
         Cleanup of Adobes copyright text. The text got harmonized with copyright texts of other companies. 

Modified: trunk/Source/WebCore/GNUmakefile.list.am (108953 => 108954)


--- trunk/Source/WebCore/GNUmakefile.list.am	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/GNUmakefile.list.am	2012-02-27 05:10:08 UTC (rev 108954)
@@ -1552,6 +1552,8 @@
 	Source/WebCore/dom/ContainerNodeAlgorithms.h \
 	Source/WebCore/dom/ContainerNode.cpp \
 	Source/WebCore/dom/ContainerNode.h \
+	Source/WebCore/dom/ContextDestructionObserver.cpp \
+	Source/WebCore/dom/ContextDestructionObserver.h \
 	Source/WebCore/dom/CrossThreadTask.h \
 	Source/WebCore/dom/CustomEvent.cpp \
 	Source/WebCore/dom/CustomEvent.h \

Modified: trunk/Source/WebCore/Target.pri (108953 => 108954)


--- trunk/Source/WebCore/Target.pri	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/Target.pri	2012-02-27 05:10:08 UTC (rev 108954)
@@ -488,6 +488,7 @@
     dom/Comment.cpp \
     dom/CompositionEvent.cpp \
     dom/ContainerNode.cpp \
+    dom/ContextDestructionObserver.cpp \
     dom/CustomEvent.cpp \
     dom/DecodedDataDocumentParser.cpp \
     dom/DeviceMotionController.cpp \

Modified: trunk/Source/WebCore/WebCore.gypi (108953 => 108954)


--- trunk/Source/WebCore/WebCore.gypi	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/WebCore.gypi	2012-02-27 05:10:08 UTC (rev 108954)
@@ -578,6 +578,7 @@
             'dom/Clipboard.h',
             'dom/ClipboardAccessPolicy.h',
             'dom/ContainerNode.h',
+            'dom/ContextDestructionObserver.h',
             'dom/DOMImplementation.h',
             'dom/DOMTimeStamp.h',
             'dom/DeviceOrientation.h',
@@ -5003,6 +5004,7 @@
             'dom/CompositionEvent.h',
             'dom/ContainerNode.cpp',
             'dom/ContainerNodeAlgorithms.h',
+            'dom/ContextDestructionObserver.cpp',
             'dom/CrossThreadTask.h',
             'dom/CustomEvent.cpp',
             'dom/CustomEvent.h',

Modified: trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj (108953 => 108954)


--- trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj	2012-02-27 05:10:08 UTC (rev 108954)
@@ -46970,6 +46970,62 @@
 				>
 			</File>
 			<File
+				RelativePath="..\dom\ContextDestructionObserver.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_Cairo_CFLite|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release_Cairo_CFLite|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug_All|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Production|Win32"
+					ExcludedFromBuild="true"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\dom\ContextDestructionObserver.h"
+				>
+			</File>
+			<File
 				RelativePath="..\dom\CrossThreadTask.h"
 				>
 			</File>

Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (108953 => 108954)


--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj	2012-02-27 05:10:08 UTC (rev 108954)
@@ -3350,6 +3350,8 @@
 		975CA28B130365F800E99AD9 /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 975CA288130365F800E99AD9 /* Crypto.h */; };
 		975CA2A11303679D00E99AD9 /* JSCrypto.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 975CA29F1303679D00E99AD9 /* JSCrypto.cpp */; };
 		975CA2A21303679D00E99AD9 /* JSCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 975CA2A01303679D00E99AD9 /* JSCrypto.h */; };
+		97627B8D14FB3CEE002CDCA1 /* ContextDestructionObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97627B8B14FB3CEE002CDCA1 /* ContextDestructionObserver.cpp */; };
+		97627B8E14FB3CEE002CDCA1 /* ContextDestructionObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 97627B8C14FB3CEE002CDCA1 /* ContextDestructionObserver.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		97665013144FAA4200F6BB51 /* EventFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 97665011144FAA4200F6BB51 /* EventFactory.h */; };
 		9766504F144FBFFE00F6BB51 /* EventFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9766504E144FBFFE00F6BB51 /* EventFactory.cpp */; };
 		9767CE0B145ABC13005E64DB /* ExceptionHeaders.h in Headers */ = {isa = PBXBuildFile; fileRef = 9767CE09145ABC12005E64DB /* ExceptionHeaders.h */; };
@@ -10233,6 +10235,8 @@
 		975CA289130365F800E99AD9 /* Crypto.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Crypto.idl; sourceTree = "<group>"; };
 		975CA29F1303679D00E99AD9 /* JSCrypto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCrypto.cpp; sourceTree = "<group>"; };
 		975CA2A01303679D00E99AD9 /* JSCrypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCrypto.h; sourceTree = "<group>"; };
+		97627B8B14FB3CEE002CDCA1 /* ContextDestructionObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ContextDestructionObserver.cpp; sourceTree = "<group>"; };
+		97627B8C14FB3CEE002CDCA1 /* ContextDestructionObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextDestructionObserver.h; sourceTree = "<group>"; };
 		97665011144FAA4200F6BB51 /* EventFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EventFactory.h; sourceTree = "<group>"; };
 		9766504E144FBFFE00F6BB51 /* EventFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EventFactory.cpp; sourceTree = "<group>"; };
 		9767CE09145ABC12005E64DB /* ExceptionHeaders.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExceptionHeaders.h; sourceTree = "<group>"; };
@@ -20626,6 +20630,8 @@
 				A81872140977D3C0005826D9 /* ContainerNode.cpp */,
 				A81872110977D3C0005826D9 /* ContainerNode.h */,
 				E1A1470711102B1500EEC0F3 /* ContainerNodeAlgorithms.h */,
+				97627B8B14FB3CEE002CDCA1 /* ContextDestructionObserver.cpp */,
+				97627B8C14FB3CEE002CDCA1 /* ContextDestructionObserver.h */,
 				2E3FAA0811A36BF100576624 /* CrossThreadTask.h */,
 				62CD32561157E57C0063B0A7 /* CustomEvent.cpp */,
 				62CD32571157E57C0063B0A7 /* CustomEvent.h */,
@@ -21458,6 +21464,7 @@
 				57B791A614C6A62900F202D1 /* ContentSelectorQuery.h in Headers */,
 				41D015CA0F4B5C71004A662F /* ContentType.h in Headers */,
 				370D6EDB138454550044103E /* ContentTypeParser.h in Headers */,
+				97627B8E14FB3CEE002CDCA1 /* ContextDestructionObserver.h in Headers */,
 				93B6A0E60B0BCA5C00F5027A /* ContextMenu.h in Headers */,
 				065AD4F50B0C2EDA005A2B1D /* ContextMenuClient.h in Headers */,
 				065AD4F70B0C2EDA005A2B1D /* ContextMenuController.h in Headers */,
@@ -24890,6 +24897,7 @@
 				57B791A514C6A62900F202D1 /* ContentSelectorQuery.cpp in Sources */,
 				41D015CB0F4B5C71004A662F /* ContentType.cpp in Sources */,
 				370D6EDA138454550044103E /* ContentTypeParser.cpp in Sources */,
+				97627B8D14FB3CEE002CDCA1 /* ContextDestructionObserver.cpp in Sources */,
 				065AD4F60B0C2EDA005A2B1D /* ContextMenuController.cpp in Sources */,
 				06027CB30B1CC03D00884B2D /* ContextMenuItemMac.mm in Sources */,
 				93B6A0EA0B0BCA8400F5027A /* ContextMenuMac.mm in Sources */,

Modified: trunk/Source/WebCore/dom/ActiveDOMObject.cpp (108953 => 108954)


--- trunk/Source/WebCore/dom/ActiveDOMObject.cpp	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/dom/ActiveDOMObject.cpp	2012-02-27 05:10:08 UTC (rev 108954)
@@ -33,30 +33,6 @@
 
 namespace WebCore {
 
-ContextDestructionObserver::ContextDestructionObserver(ScriptExecutionContext* scriptExecutionContext)
-    : m_scriptExecutionContext(scriptExecutionContext)
-{
-    if (!m_scriptExecutionContext)
-        return;
-
-    ASSERT(m_scriptExecutionContext->isContextThread());
-    m_scriptExecutionContext->didCreateDestructionObserver(this);
-}
-
-ContextDestructionObserver::~ContextDestructionObserver()
-{
-    if (!m_scriptExecutionContext)
-        return;
-
-    ASSERT(m_scriptExecutionContext->isContextThread());
-    m_scriptExecutionContext->willDestroyDestructionObserver(this);
-}
-
-void ContextDestructionObserver::contextDestroyed()
-{
-    m_scriptExecutionContext = 0;
-}
-
 ActiveDOMObject::ActiveDOMObject(ScriptExecutionContext* scriptExecutionContext, void* upcastPointer)
     : ContextDestructionObserver(scriptExecutionContext)
     , m_pendingActivityCount(0)

Modified: trunk/Source/WebCore/dom/ActiveDOMObject.h (108953 => 108954)


--- trunk/Source/WebCore/dom/ActiveDOMObject.h	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/dom/ActiveDOMObject.h	2012-02-27 05:10:08 UTC (rev 108954)
@@ -27,78 +27,63 @@
 #ifndef ActiveDOMObject_h
 #define ActiveDOMObject_h
 
+#include "ContextDestructionObserver.h"
 #include <wtf/Assertions.h>
 
 namespace WebCore {
 
-    class ScriptExecutionContext;
+class ActiveDOMObject : public ContextDestructionObserver {
+public:
+    ActiveDOMObject(ScriptExecutionContext*, void* upcastPointer);
 
-    // FIXME: Move this class to it's own file.
-    class ContextDestructionObserver {
-    public:
-        explicit ContextDestructionObserver(ScriptExecutionContext*);
-        virtual void contextDestroyed();
-
-        ScriptExecutionContext* scriptExecutionContext() const { return m_scriptExecutionContext; }
-
-    protected:
-        virtual ~ContextDestructionObserver();
-
-        ScriptExecutionContext* m_scriptExecutionContext;
-    };
-
-    class ActiveDOMObject : public ContextDestructionObserver {
-    public:
-        ActiveDOMObject(ScriptExecutionContext*, void* upcastPointer);
-
-        // suspendIfNeeded() should be called exactly once after object construction to synchronize
-        // the suspend state with that in ScriptExecutionContext.
-        void suspendIfNeeded();
+    // suspendIfNeeded() should be called exactly once after object construction to synchronize
+    // the suspend state with that in ScriptExecutionContext.
+    void suspendIfNeeded();
 #if !ASSERT_DISABLED
-        bool suspendIfNeededCalled() const { return m_suspendIfNeededCalled; }
+    bool suspendIfNeededCalled() const { return m_suspendIfNeededCalled; }
 #endif
 
-        virtual bool hasPendingActivity() const;
+    virtual bool hasPendingActivity() const;
 
-        // canSuspend() is used by the caller if there is a choice between suspending and stopping.
-        // For example, a page won't be suspended and placed in the back/forward cache if it has
-        // the objects that can not be suspended.
-        // However, 'suspend' can be called even if canSuspend() would return 'false'. That
-        // happens in step-by-step JS debugging for example - in this case it would be incorrect
-        // to stop the object. Exact semantics of suspend is up to the object then.
-        enum ReasonForSuspension {
-            _javascript_DebuggerPaused,
-            WillShowDialog,
-            DocumentWillBecomeInactive
-        };
-        virtual bool canSuspend() const;
-        virtual void suspend(ReasonForSuspension);
-        virtual void resume();
-        virtual void stop();
+    // canSuspend() is used by the caller if there is a choice between suspending and stopping.
+    // For example, a page won't be suspended and placed in the back/forward cache if it has
+    // the objects that can not be suspended.
+    // However, 'suspend' can be called even if canSuspend() would return 'false'. That
+    // happens in step-by-step JS debugging for example - in this case it would be incorrect
+    // to stop the object. Exact semantics of suspend is up to the object then.
+    enum ReasonForSuspension {
+        _javascript_DebuggerPaused,
+        WillShowDialog,
+        DocumentWillBecomeInactive
+    };
+    virtual bool canSuspend() const;
+    virtual void suspend(ReasonForSuspension);
+    virtual void resume();
+    virtual void stop();
 
-        template<class T> void setPendingActivity(T* thisObject)
-        {
-            ASSERT(thisObject == this);
-            thisObject->ref();
-            m_pendingActivityCount++;
-        }
+    template<class T> void setPendingActivity(T* thisObject)
+    {
+        ASSERT(thisObject == this);
+        thisObject->ref();
+        m_pendingActivityCount++;
+    }
 
-        template<class T> void unsetPendingActivity(T* thisObject)
-        {
-            ASSERT(m_pendingActivityCount > 0);
-            --m_pendingActivityCount;
-            thisObject->deref();
-        }
+    template<class T> void unsetPendingActivity(T* thisObject)
+    {
+        ASSERT(m_pendingActivityCount > 0);
+        --m_pendingActivityCount;
+        thisObject->deref();
+    }
 
-    protected:
-        virtual ~ActiveDOMObject();
+protected:
+    virtual ~ActiveDOMObject();
 
-    private:
-        unsigned m_pendingActivityCount;
+private:
+    unsigned m_pendingActivityCount;
 #if !ASSERT_DISABLED
-        bool m_suspendIfNeededCalled;
+    bool m_suspendIfNeededCalled;
 #endif
-    };
+};
 
 } // namespace WebCore
 

Added: trunk/Source/WebCore/dom/ContextDestructionObserver.cpp (0 => 108954)


--- trunk/Source/WebCore/dom/ContextDestructionObserver.cpp	                        (rev 0)
+++ trunk/Source/WebCore/dom/ContextDestructionObserver.cpp	2012-02-27 05:10:08 UTC (rev 108954)
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ *
+ */
+
+#include "config.h"
+#include "ContextDestructionObserver.h"
+
+#include "ScriptExecutionContext.h"
+
+namespace WebCore {
+
+ContextDestructionObserver::ContextDestructionObserver(ScriptExecutionContext* scriptExecutionContext)
+    : m_scriptExecutionContext(scriptExecutionContext)
+{
+    if (!m_scriptExecutionContext)
+        return;
+
+    ASSERT(m_scriptExecutionContext->isContextThread());
+    m_scriptExecutionContext->didCreateDestructionObserver(this);
+}
+
+ContextDestructionObserver::~ContextDestructionObserver()
+{
+    if (!m_scriptExecutionContext)
+        return;
+
+    ASSERT(m_scriptExecutionContext->isContextThread());
+    m_scriptExecutionContext->willDestroyDestructionObserver(this);
+}
+
+void ContextDestructionObserver::contextDestroyed()
+{
+    m_scriptExecutionContext = 0;
+}
+
+} // namespace WebCore

Added: trunk/Source/WebCore/dom/ContextDestructionObserver.h (0 => 108954)


--- trunk/Source/WebCore/dom/ContextDestructionObserver.h	                        (rev 0)
+++ trunk/Source/WebCore/dom/ContextDestructionObserver.h	2012-02-27 05:10:08 UTC (rev 108954)
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ *
+ */
+
+#ifndef ContextDestructionObserver_h
+#define ContextDestructionObserver_h
+
+namespace WebCore {
+
+class ScriptExecutionContext;
+
+class ContextDestructionObserver {
+public:
+    explicit ContextDestructionObserver(ScriptExecutionContext*);
+    virtual void contextDestroyed();
+
+    ScriptExecutionContext* scriptExecutionContext() const { return m_scriptExecutionContext; }
+
+protected:
+    virtual ~ContextDestructionObserver();
+
+    ScriptExecutionContext* m_scriptExecutionContext;
+};
+
+} // namespace WebCore
+
+#endif // ContextDestructionObserver_h

Modified: trunk/Source/WebCore/dom/DOMAllInOne.cpp (108953 => 108954)


--- trunk/Source/WebCore/dom/DOMAllInOne.cpp	2012-02-27 05:05:49 UTC (rev 108953)
+++ trunk/Source/WebCore/dom/DOMAllInOne.cpp	2012-02-27 05:10:08 UTC (rev 108954)
@@ -43,6 +43,7 @@
 #include "Comment.cpp"
 #include "CompositionEvent.cpp"
 #include "ContainerNode.cpp"
+#include "ContextDestructionObserver.cpp"
 #include "CustomEvent.cpp"
 #include "DOMCoreException.cpp"
 #include "DOMImplementation.cpp"
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to