[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

andersca at apple.com andersca at apple.com
Wed Dec 22 15:32:01 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 059f5fb5a47b6eb24a534c3021aa161d7146af7a
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Nov 5 22:55:41 2010 +0000

    WebProcess won't kill itself if UIProcess goes away while WebProcess is spinning
    https://bugs.webkit.org/show_bug.cgi?id=49090
    <rdar://problem/7834575>
    
    Reviewed by Darin Adler.
    
    * Platform/CoreIPC/Connection.cpp:
    (CoreIPC::Connection::connectionDidClose):
    Call Client::didCloseOnConnectionWorkQueue.
    
    * Platform/CoreIPC/Connection.h:
    (CoreIPC::Connection::Client::didCloseOnConnectionWorkQueue):
    Add new client function. Will be called on the connection work queue when the connection is closed.
    
    * Platform/WorkItem.h:
    (FunctionWorkItem0::FunctionWorkItem0):
    (FunctionWorkItem0::execute):
    (WorkItem::create):
    Add a new WorkItem subclass that will invoke a C function.
    
    * Platform/WorkQueue.h:
    * Platform/mac/WorkQueueMac.cpp:
    (WorkQueue::scheduleWorkAfterDelay):
    New function which will schedule the given work item to be executed in at least 'delay' seconds.
    
    * Platform/qt/WorkQueueQt.cpp:
    (WorkQueue::scheduleWorkAfterDelay):
    Add empty stub.
    
    * Platform/win/WorkQueueWin.cpp:
    (WorkQueue::scheduleWorkAfterDelay):
    Ditto.
    
    * PluginProcess/PluginProcess.h:
    Derive from ChildProcess.
    
    * Shared/ChildProcess.cpp: Added.
    (WebKit::ChildProcess::ChildProcess):
    (WebKit::ChildProcess::~ChildProcess):
    (WebKit::watchdogCallback):
    Call _exit.
    
    (WebKit::ChildProcess::didCloseOnConnectionWorkQueue):
    When the connection is closed, schedule a work item to be run in 10 seconds. If the process hasn't
    exited normally by then, we'll exit.
    
    * Shared/ChildProcess.h:
    Add new ChildProcess class which is a common base class of WebProcess and PluginProcess and which contains
    the watchdog timer logic.
    
    * WebKit2.pro:
    * WebKit2.xcodeproj/project.pbxproj:
    Add new files.
    
    * WebProcess/WebProcess.h:
    Derive from ChildProcess.
    
    * win/WebKit2.vcproj:
    Add new files.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@71456 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index d5d0474..bf6fe93 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,65 @@
+2010-11-05  Anders Carlsson  <andersca at apple.com>
+
+        Reviewed by Darin Adler.
+
+        WebProcess won't kill itself if UIProcess goes away while WebProcess is spinning
+        https://bugs.webkit.org/show_bug.cgi?id=49090
+        <rdar://problem/7834575>
+
+        * Platform/CoreIPC/Connection.cpp:
+        (CoreIPC::Connection::connectionDidClose):
+        Call Client::didCloseOnConnectionWorkQueue.
+
+        * Platform/CoreIPC/Connection.h:
+        (CoreIPC::Connection::Client::didCloseOnConnectionWorkQueue):
+        Add new client function. Will be called on the connection work queue when the connection is closed.
+
+        * Platform/WorkItem.h:
+        (FunctionWorkItem0::FunctionWorkItem0):
+        (FunctionWorkItem0::execute):
+        (WorkItem::create):
+        Add a new WorkItem subclass that will invoke a C function.
+
+        * Platform/WorkQueue.h:
+        * Platform/mac/WorkQueueMac.cpp:
+        (WorkQueue::scheduleWorkAfterDelay):
+        New function which will schedule the given work item to be executed in at least 'delay' seconds.
+
+        * Platform/qt/WorkQueueQt.cpp:
+        (WorkQueue::scheduleWorkAfterDelay):
+        Add empty stub.
+        
+        * Platform/win/WorkQueueWin.cpp:
+        (WorkQueue::scheduleWorkAfterDelay):
+        Ditto.
+
+        * PluginProcess/PluginProcess.h:
+        Derive from ChildProcess.
+
+        * Shared/ChildProcess.cpp: Added.
+        (WebKit::ChildProcess::ChildProcess):
+        (WebKit::ChildProcess::~ChildProcess):
+        (WebKit::watchdogCallback):
+        Call _exit.
+
+        (WebKit::ChildProcess::didCloseOnConnectionWorkQueue):
+        When the connection is closed, schedule a work item to be run in 10 seconds. If the process hasn't
+        exited normally by then, we'll exit.
+
+        * Shared/ChildProcess.h: 
+        Add new ChildProcess class which is a common base class of WebProcess and PluginProcess and which contains
+        the watchdog timer logic.
+
+        * WebKit2.pro:
+        * WebKit2.xcodeproj/project.pbxproj:
+        Add new files.
+
+        * WebProcess/WebProcess.h:
+        Derive from ChildProcess.
+
+        * win/WebKit2.vcproj:
+        Add new files.
+
 2010-11-05  Adam Roben  <aroben at apple.com>
 
         Implement PluginInfoStore::shouldUsePlugin on Windows
diff --git a/WebKit2/Platform/CoreIPC/Connection.cpp b/WebKit2/Platform/CoreIPC/Connection.cpp
index 569ea23..931a78d 100644
--- a/WebKit2/Platform/CoreIPC/Connection.cpp
+++ b/WebKit2/Platform/CoreIPC/Connection.cpp
@@ -316,6 +316,8 @@ void Connection::connectionDidClose()
             m_waitForSyncReplySemaphore.signal();
     }
 
+    m_client->didCloseOnConnectionWorkQueue(&m_connectionQueue, this);
+
     m_clientRunLoop->scheduleWork(WorkItem::create(this, &Connection::dispatchConnectionDidClose));
 }
 
diff --git a/WebKit2/Platform/CoreIPC/Connection.h b/WebKit2/Platform/CoreIPC/Connection.h
index 25b8cee..0869c92 100644
--- a/WebKit2/Platform/CoreIPC/Connection.h
+++ b/WebKit2/Platform/CoreIPC/Connection.h
@@ -77,6 +77,10 @@ public:
     public:
         virtual void didClose(Connection*) = 0;
         virtual void didReceiveInvalidMessage(Connection*, MessageID) = 0;
+
+        // Called on the connection work queue when the connection is closed, before
+        // didCall is called on the client thread.
+        virtual void didCloseOnConnectionWorkQueue(WorkQueue*, Connection*) { }
     };
 
 #if PLATFORM(MAC)
diff --git a/WebKit2/Platform/WorkItem.h b/WebKit2/Platform/WorkItem.h
index e3c7700..64bff58 100644
--- a/WebKit2/Platform/WorkItem.h
+++ b/WebKit2/Platform/WorkItem.h
@@ -39,6 +39,8 @@ public:
     template<typename C, typename T0, typename T1>
     static PassOwnPtr<WorkItem> create(C*, void (C::*)(T0, T1), T0, T1);
 
+    static PassOwnPtr<WorkItem> create(void (*)());
+
     virtual ~WorkItem() { }
     virtual void execute() = 0;
 
@@ -69,7 +71,7 @@ class MemberFunctionWorkItem0 : private WorkItem {
         m_ptr->deref();
     }
 
-    void execute()
+    virtual void execute()
     {
         (m_ptr->*m_function)();
     }
@@ -98,7 +100,7 @@ class MemberFunctionWorkItem1 : private WorkItem {
         m_ptr->deref();
     }
 
-    void execute()
+    virtual void execute()
     {
         (m_ptr->*m_function)(m_t0);
     }
@@ -129,7 +131,7 @@ class MemberFunctionWorkItem2 : private WorkItem {
         m_ptr->deref();
     }
 
-    void execute()
+    virtual void execute()
     {
         (m_ptr->*m_function)(m_t0, m_t1);
     }
@@ -158,4 +160,28 @@ PassOwnPtr<WorkItem> WorkItem::create(C* ptr, void (C::*function)(T0, T1), T0 t0
     return adoptPtr(static_cast<WorkItem*>(new MemberFunctionWorkItem2<C, T0, T1>(ptr, function, t0, t1)));
 }
 
+class FunctionWorkItem0 : private WorkItem {
+    // We only allow WorkItem to create this.
+    friend class WorkItem;
+
+    typedef void (*FunctionType)();
+    
+    FunctionWorkItem0(FunctionType function)
+        : m_function(function)
+    {
+    }
+
+    virtual void execute()
+    {
+        (*m_function)();
+    }
+
+    FunctionType m_function;
+};
+
+inline PassOwnPtr<WorkItem> WorkItem::create(void (*function)())
+{
+    return adoptPtr(static_cast<WorkItem*>(new FunctionWorkItem0(function)));
+}
+
 #endif // WorkItem_h
diff --git a/WebKit2/Platform/WorkQueue.h b/WebKit2/Platform/WorkQueue.h
index f7c7dca..9803f61 100644
--- a/WebKit2/Platform/WorkQueue.h
+++ b/WebKit2/Platform/WorkQueue.h
@@ -50,7 +50,12 @@ public:
     explicit WorkQueue(const char* name);
     ~WorkQueue();
 
+    // Will schedule the given work item to run as soon as possible.
     void scheduleWork(PassOwnPtr<WorkItem>);
+
+    // Will schedule the given work item to run after the given delay (in seconds).
+    void scheduleWorkAfterDelay(PassOwnPtr<WorkItem>, double delay);
+
     void invalidate();
 
 #if PLATFORM(MAC)
diff --git a/WebKit2/Platform/mac/WorkQueueMac.cpp b/WebKit2/Platform/mac/WorkQueueMac.cpp
index 7cb08b9..3651f8c 100644
--- a/WebKit2/Platform/mac/WorkQueueMac.cpp
+++ b/WebKit2/Platform/mac/WorkQueueMac.cpp
@@ -49,6 +49,13 @@ void WorkQueue::scheduleWork(PassOwnPtr<WorkItem> item)
     dispatch_async_f(m_dispatchQueue, item.leakPtr(), executeWorkItem);
 }
 
+void WorkQueue::scheduleWorkAfterDelay(PassOwnPtr<WorkItem> item, double delay)
+{
+    dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, delay * NSEC_PER_SEC);
+
+    dispatch_after_f(delayTime, m_dispatchQueue, item.leakPtr(), executeWorkItem);
+}
+
 class WorkQueue::EventSource {
 public:
     EventSource(MachPortEventType eventType, dispatch_source_t dispatchSource, PassOwnPtr<WorkItem> workItem)
diff --git a/WebKit2/Platform/qt/WorkQueueQt.cpp b/WebKit2/Platform/qt/WorkQueueQt.cpp
index 814bbc1..271984f 100644
--- a/WebKit2/Platform/qt/WorkQueueQt.cpp
+++ b/WebKit2/Platform/qt/WorkQueueQt.cpp
@@ -30,6 +30,7 @@
 #include <QObject>
 #include <QThread>
 #include <wtf/Threading.h>
+#include "NotImplemented.h"
 
 class WorkQueue::WorkItemQt : public QObject {
     Q_OBJECT
@@ -123,4 +124,9 @@ void WorkQueue::scheduleWork(PassOwnPtr<WorkItem> item)
     itemQt->moveToThread(m_workThread);
 }
 
+void WorkQueue::scheduleWorkAfterDelay(PassOwnPtr<WorkItem>, double)
+{
+    notImplemented();
+}
+
 #include "WorkQueueQt.moc"
diff --git a/WebKit2/Platform/win/WorkQueueWin.cpp b/WebKit2/Platform/win/WorkQueueWin.cpp
index 98e2802..f527432 100644
--- a/WebKit2/Platform/win/WorkQueueWin.cpp
+++ b/WebKit2/Platform/win/WorkQueueWin.cpp
@@ -26,6 +26,7 @@
 #include "WorkQueue.h"
 
 #include <wtf/Threading.h>
+#include "NotImplemented.h"
 
 inline WorkQueue::WorkItemWin::WorkItemWin(PassOwnPtr<WorkItem> item, WorkQueue* queue)
     : m_item(item)
@@ -202,6 +203,11 @@ void WorkQueue::scheduleWork(PassOwnPtr<WorkItem> item)
         ::QueueUserWorkItem(workThreadCallback, this, WT_EXECUTEDEFAULT);
 }
 
+void WorkQueue::scheduleWorkAfterDelay(PassOwnPtr<WorkItem>, double)
+{
+    notImplemented();
+}
+
 void WorkQueue::unregisterWaitAndDestroyItemSoon(PassRefPtr<HandleWorkItem> item)
 {
     // We're going to make a blocking call to ::UnregisterWaitEx before closing the handle. (The
diff --git a/WebKit2/PluginProcess/PluginProcess.h b/WebKit2/PluginProcess/PluginProcess.h
index 6468007..670e1a3 100644
--- a/WebKit2/PluginProcess/PluginProcess.h
+++ b/WebKit2/PluginProcess/PluginProcess.h
@@ -28,7 +28,7 @@
 
 #if ENABLE(PLUGIN_PROCESS)
 
-#include "Connection.h"
+#include "ChildProcess.h"
 #include "RunLoop.h"
 #include <wtf/Forward.h>
 
@@ -38,7 +38,7 @@ class NetscapePluginModule;
 class WebProcessConnection;
 struct PluginProcessCreationParameters;
         
-class PluginProcess : Noncopyable, CoreIPC::Connection::Client {
+class PluginProcess : ChildProcess {
 public:
     static PluginProcess& shared();
 
diff --git a/WebKit2/Shared/ChildProcess.cpp b/WebKit2/Shared/ChildProcess.cpp
new file mode 100644
index 0000000..8d926af
--- /dev/null
+++ b/WebKit2/Shared/ChildProcess.cpp
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2010 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 "ChildProcess.h"
+
+namespace WebKit {
+
+ChildProcess::ChildProcess()
+{
+}
+
+ChildProcess::~ChildProcess()
+{
+}
+
+NO_RETURN static void watchdogCallback()
+{
+    // We use _exit here since the watchdog callback is called from another thread and we don't want 
+    // global destructors or atexit handlers to be called from this thread while the main thread is busy
+    // doing its thing.
+    _exit(EXIT_FAILURE);
+}
+
+void ChildProcess::didCloseOnConnectionWorkQueue(WorkQueue* workQueue, CoreIPC::Connection*)
+{
+    // If the connection has been closed and we haven't responded in the main thread for 10 seconds
+    // the process will exit forcibly.
+    static const double watchdogDelay = 10.0;
+    
+    workQueue->scheduleWorkAfterDelay(WorkItem::create(watchdogCallback), watchdogDelay);
+}
+    
+} // namespace WebKit
diff --git a/WebKit2/Shared/ChildProcess.h b/WebKit2/Shared/ChildProcess.h
new file mode 100644
index 0000000..78fe1f4
--- /dev/null
+++ b/WebKit2/Shared/ChildProcess.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2010 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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 ChildProcess_h
+#define ChildProcess_h
+
+#include "Connection.h"
+#include <wtf/Noncopyable.h>
+
+namespace WebKit {
+
+class ChildProcess : protected CoreIPC::Connection::Client {
+    WTF_MAKE_NONCOPYABLE(ChildProcess);
+
+protected:
+    ChildProcess();
+    ~ChildProcess();
+
+private:
+    void didCloseOnConnectionWorkQueue(WorkQueue*, CoreIPC::Connection*);
+};
+
+} // namespace WebKit
+
+#endif // ChildProcess_h
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 754460a..a283ca1 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -207,6 +207,7 @@ HEADERS += \
     Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h \
     Shared/BackingStore.h \
     Shared/CacheModel.h \
+    Shared/ChildProcess.h \
     Shared/DrawingAreaBase.h \
     Shared/ImmutableArray.h \
     Shared/ImmutableDictionary.h \
@@ -377,6 +378,7 @@ SOURCES += \
     Shared/API/c/WKURLResponse.cpp \
     Shared/API/c/WKUserContentURLPattern.cpp \
     Shared/BackingStore.cpp \
+    Shared/ChildProcess.cpp \
     Shared/ImmutableArray.cpp \
     Shared/ImmutableDictionary.cpp \
     Shared/MutableArray.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index a5bf28e..6a86196 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -98,6 +98,8 @@
 		1A2D90D31281C966001EB962 /* PluginProcessCreationParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2D90D11281C966001EB962 /* PluginProcessCreationParameters.cpp */; };
 		1A2D91A61281D739001EB962 /* PluginControllerProxyMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A2D91A51281D739001EB962 /* PluginControllerProxyMac.mm */; };
 		1A2D92211281DC1B001EB962 /* PluginProxyMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A2D92201281DC1B001EB962 /* PluginProxyMac.mm */; };
+		1A2D956F12848564001EB962 /* ChildProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2D956D12848564001EB962 /* ChildProcess.h */; };
+		1A2D957012848564001EB962 /* ChildProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2D956E12848564001EB962 /* ChildProcess.cpp */; };
 		1A30066E1110F4F70031937C /* ResponsivenessTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A30066C1110F4F70031937C /* ResponsivenessTimer.h */; };
 		1A30EAC6115D7DA30053E937 /* ConnectionMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A30EAC5115D7DA30053E937 /* ConnectionMac.cpp */; };
 		1A3DD1FD125E59F3004515E6 /* WebFindClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3DD1FC125E59F3004515E6 /* WebFindClient.cpp */; };
@@ -619,6 +621,8 @@
 		1A2D90D11281C966001EB962 /* PluginProcessCreationParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginProcessCreationParameters.cpp; sourceTree = "<group>"; };
 		1A2D91A51281D739001EB962 /* PluginControllerProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginControllerProxyMac.mm; sourceTree = "<group>"; };
 		1A2D92201281DC1B001EB962 /* PluginProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PluginProxyMac.mm; sourceTree = "<group>"; };
+		1A2D956D12848564001EB962 /* ChildProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildProcess.h; sourceTree = "<group>"; };
+		1A2D956E12848564001EB962 /* ChildProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ChildProcess.cpp; sourceTree = "<group>"; };
 		1A30066C1110F4F70031937C /* ResponsivenessTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResponsivenessTimer.h; sourceTree = "<group>"; };
 		1A30EAC5115D7DA30053E937 /* ConnectionMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConnectionMac.cpp; sourceTree = "<group>"; };
 		1A3DD1FC125E59F3004515E6 /* WebFindClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebFindClient.cpp; sourceTree = "<group>"; };
@@ -1315,11 +1319,13 @@
 				BCF04C8C11FF9B7D00F86A58 /* APIObject.h */,
 				1A043D79124FEFC100FFBFB5 /* BackingStore.cpp */,
 				1A043D78124FEFC100FFBFB5 /* BackingStore.h */,
+				BC3065F91259344E00E71278 /* CacheModel.h */,
+				1A2D956E12848564001EB962 /* ChildProcess.cpp */,
+				1A2D956D12848564001EB962 /* ChildProcess.h */,
 				1A6F9F8E11E13EFC00DB1371 /* CommandLine.h */,
 				0FB659221208B4DB0044816C /* DrawingAreaBase.h */,
 				1A90C1ED1264FD50003E44D4 /* FindOptions.h */,
 				762B7481120BBA0100819339 /* FontSmoothingLevel.h */,
-				BC3065F91259344E00E71278 /* CacheModel.h */,
 				BC64696D11DBE603006455B0 /* ImmutableArray.cpp */,
 				BC64696E11DBE603006455B0 /* ImmutableArray.h */,
 				BCBCB0CC1215E33A00DE59CA /* ImmutableDictionary.cpp */,
@@ -2305,6 +2311,7 @@
 				1C8E2A361277852400BC7BD0 /* WebInspectorMessages.h in Headers */,
 				1A2D90D21281C966001EB962 /* PluginProcessCreationParameters.h in Headers */,
 				BCEE7AD112817988009827DA /* WebProcessProxyMessages.h in Headers */,
+				1A2D956F12848564001EB962 /* ChildProcess.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2648,6 +2655,7 @@
 				1A2D91A61281D739001EB962 /* PluginControllerProxyMac.mm in Sources */,
 				1A2D92211281DC1B001EB962 /* PluginProxyMac.mm in Sources */,
 				BCEE7AD012817988009827DA /* WebProcessProxyMessageReceiver.cpp in Sources */,
+				1A2D957012848564001EB962 /* ChildProcess.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebKit2/WebProcess/WebProcess.h b/WebKit2/WebProcess/WebProcess.h
index f865465..e95ccd4 100644
--- a/WebKit2/WebProcess/WebProcess.h
+++ b/WebKit2/WebProcess/WebProcess.h
@@ -27,7 +27,7 @@
 #define WebProcess_h
 
 #include "CacheModel.h"
-#include "Connection.h"
+#include "ChildProcess.h"
 #include "DrawingArea.h"
 #include "SharedMemory.h"
 #include "VisitedLinkTable.h"
@@ -53,7 +53,7 @@ struct WebPageCreationParameters;
 struct WebPreferencesStore;
 struct WebProcessCreationParameters;
 
-class WebProcess : CoreIPC::Connection::Client {
+class WebProcess : ChildProcess {
 public:
     static WebProcess& shared();
 
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 22f39ef..30f03b1 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -413,6 +413,14 @@
 				>
 			</File>
 			<File
+				RelativePath="..\Shared\ChildProcess.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\Shared\ChildProcess.h"
+				>
+			</File>
+			<File
 				RelativePath="..\Shared\CommandLine.h"
 				>
 			</File>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list