WebKit Bugzilla
Attachment 360179 Details for
Bug 193847
: Move parentProcessConnection from ChildProcess to {NetworkProcess, WebProcess, PluginProcess}
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193847-20190125155318.patch (text/plain), 17.66 KB, created by
Alex Christensen
on 2019-01-25 15:53:19 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Alex Christensen
Created:
2019-01-25 15:53:19 PST
Size:
17.66 KB
patch
obsolete
>Index: Source/WebKit/ChangeLog >=================================================================== >--- Source/WebKit/ChangeLog (revision 240521) >+++ Source/WebKit/ChangeLog (working copy) >@@ -1,3 +1,41 @@ >+2019-01-25 Alex Christensen <achristensen@webkit.org> >+ >+ Move parentProcessConnection from ChildProcess to {NetworkProcess, WebProcess, PluginProcess} >+ https://bugs.webkit.org/show_bug.cgi?id=193847 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ This is paving the way for the NetworkProcess to be split into a NetworkProcess and set of NetworkConnectionToUIProcess containing the connections. >+ >+ * NetworkProcess/NetworkProcess.cpp: >+ (WebKit::NetworkProcess::NetworkProcess): >+ * NetworkProcess/NetworkProcess.h: >+ (WebKit::NetworkProcess::parentProcessConnection const): >+ * Platform/IPC/MessageSender.h: >+ * PluginProcess/PluginProcess.cpp: >+ (WebKit::PluginProcess::initializeProcess): >+ * PluginProcess/PluginProcess.h: >+ (WebKit::PluginProcess::parentProcessConnection const): >+ * Shared/Authentication/AuthenticationManager.cpp: >+ (WebKit::AuthenticationManager::AuthenticationManager): >+ * Shared/Authentication/AuthenticationManager.h: >+ * Shared/ChildProcess.cpp: >+ (WebKit::ChildProcess::initialize): >+ (WebKit::ChildProcess::terminate): >+ (WebKit::ChildProcess::messageSenderConnection): Deleted. >+ (WebKit::ChildProcess::messageSenderDestinationID): Deleted. >+ * Shared/ChildProcess.h: >+ (WebKit::ChildProcess::parentProcessConnection const): Deleted. >+ * Shared/WebSQLiteDatabaseTracker.cpp: >+ * Shared/WebSQLiteDatabaseTracker.h: >+ * Shared/mac/SecItemShim.cpp: >+ (WebKit::initializeSecItemShim): >+ * Shared/mac/SecItemShim.h: >+ * WebProcess/WebProcess.cpp: >+ (WebKit::WebProcess::initializeProcess): >+ * WebProcess/WebProcess.h: >+ (WebKit::WebProcess::parentProcessConnection const): >+ > 2019-01-25 Alex Christensen <achristensen@webkit.org> > > Move logic from ChildProcess::setApplicationIsDaemon to NetworkProcess::initializeProcess >Index: Source/WebKit/NetworkProcess/NetworkProcess.cpp >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcess.cpp (revision 240521) >+++ Source/WebKit/NetworkProcess/NetworkProcess.cpp (working copy) >@@ -156,6 +156,10 @@ NetworkProcess::NetworkProcess(ChildProc > webProcessConnection->setOnLineState(isOnLine); > }); > >+ m_connection = IPC::Connection::createClientConnection(parameters.connectionIdentifier, *this); >+ initializeConnection(m_connection.get()); >+ m_connection->open(); >+ > initialize(WTFMove(parameters)); > } > >Index: Source/WebKit/NetworkProcess/NetworkProcess.h >=================================================================== >--- Source/WebKit/NetworkProcess/NetworkProcess.h (revision 240521) >+++ Source/WebKit/NetworkProcess/NetworkProcess.h (working copy) >@@ -100,11 +100,10 @@ namespace NetworkCache { > class Cache; > } > >-class NetworkProcess : public ChildProcess, private DownloadManager::Client, public ThreadSafeRefCounted<NetworkProcess> >+class NetworkProcess : public ChildProcess, private DownloadManager::Client, public ThreadSafeRefCounted<NetworkProcess>, public CanMakeWeakPtr<NetworkProcess>, public IPC::MessageSender > #if ENABLE(INDEXED_DATABASE) > , public WebCore::IDBServer::IDBBackingStoreTemporaryFileHandler > #endif >- , public CanMakeWeakPtr<NetworkProcess> > { > WTF_MAKE_NONCOPYABLE(NetworkProcess); > public: >@@ -126,6 +125,8 @@ public: > > void removeNetworkConnectionToWebProcess(NetworkConnectionToWebProcess*); > >+ IPC::Connection* parentProcessConnection() const { return m_connection.get(); } >+ > AuthenticationManager& authenticationManager(); > DownloadManager& downloadManager(); > #if ENABLE(PROXIMITY_NETWORKING) >@@ -294,6 +295,10 @@ private: > void platformInitializeNetworkProcess(const NetworkProcessCreationParameters&); > std::unique_ptr<WebCore::NetworkStorageSession> platformCreateDefaultStorageSession() const; > >+ // IPC::MessageSender >+ IPC::Connection* messageSenderConnection() override { return m_connection.get(); } >+ uint64_t messageSenderDestinationID() override { return 0; } >+ > void terminate() override; > void platformTerminate(); > >@@ -425,6 +430,9 @@ private: > // Connections to WebProcesses. > Vector<RefPtr<NetworkConnectionToWebProcess>> m_webProcessConnections; > >+ // Connection to UIProcess. >+ RefPtr<IPC::Connection> m_connection; >+ > String m_diskCacheDirectory; > bool m_hasSetCacheModel { false }; > CacheModel m_cacheModel { CacheModel::DocumentViewer }; >Index: Source/WebKit/Platform/IPC/MessageSender.h >=================================================================== >--- Source/WebKit/Platform/IPC/MessageSender.h (revision 240521) >+++ Source/WebKit/Platform/IPC/MessageSender.h (working copy) >@@ -74,6 +74,7 @@ public: > virtual bool sendMessage(std::unique_ptr<Encoder>, OptionSet<SendOption>); > > private: >+ // FIXME: These should be const. > virtual Connection* messageSenderConnection() = 0; > virtual uint64_t messageSenderDestinationID() = 0; > }; >Index: Source/WebKit/PluginProcess/PluginProcess.cpp >=================================================================== >--- Source/WebKit/PluginProcess/PluginProcess.cpp (revision 240521) >+++ Source/WebKit/PluginProcess/PluginProcess.cpp (working copy) >@@ -82,6 +82,10 @@ void PluginProcess::initializeProcess(co > WebCore::NetworkStorageSession::permitProcessToUseCookieAPI(true); > m_pluginPath = parameters.extraInitializationData.get("plugin-path"); > platformInitializeProcess(parameters); >+ >+ m_connection = IPC::Connection::createClientConnection(parameters.connectionIdentifier, *this); >+ initializeConnection(m_connection.get()); >+ m_connection->open(); > } > > void PluginProcess::initializeConnection(IPC::Connection* connection) >Index: Source/WebKit/PluginProcess/PluginProcess.h >=================================================================== >--- Source/WebKit/PluginProcess/PluginProcess.h (revision 240521) >+++ Source/WebKit/PluginProcess/PluginProcess.h (working copy) >@@ -42,17 +42,17 @@ class NetscapePluginModule; > class WebProcessConnection; > struct PluginProcessCreationParameters; > >-class PluginProcess : public ChildProcess >-{ >+class PluginProcess : public ChildProcess, public IPC::MessageSender { > WTF_MAKE_NONCOPYABLE(PluginProcess); > friend NeverDestroyed<PluginProcess>; >- > public: > static PluginProcess& singleton(); > static constexpr ProcessType processType = ProcessType::Plugin; > > void removeWebProcessConnection(WebProcessConnection*); > >+ IPC::Connection* parentProcessConnection() const { return m_connection.get(); } >+ > NetscapePluginModule* netscapePluginModule(); > > const String& pluginPath() const { return m_pluginPath; } >@@ -75,6 +75,10 @@ private: > PluginProcess(); > ~PluginProcess(); > >+ // IPC::MessageSender >+ IPC::Connection* messageSenderConnection() override { return m_connection.get(); } >+ uint64_t messageSenderDestinationID() override { return 0; } >+ > #if PLATFORM(MAC) > bool shouldOverrideQuarantine() final; > #endif >@@ -107,6 +111,9 @@ private: > > void setMinimumLifetime(Seconds); > void minimumLifetimeTimerFired(); >+ >+ RefPtr<IPC::Connection> m_connection; >+ > // Our web process connections. > Vector<RefPtr<WebProcessConnection>> m_webProcessConnections; > >Index: Source/WebKit/Shared/ChildProcess.cpp >=================================================================== >--- Source/WebKit/Shared/ChildProcess.cpp (revision 240521) >+++ Source/WebKit/Shared/ChildProcess.cpp (working copy) >@@ -77,10 +77,6 @@ void ChildProcess::initialize(const Chil > > // In WebKit2, only the UI process should ever be generating non-default PAL::SessionIDs. > PAL::SessionID::enableGenerationProtection(); >- >- m_connection = IPC::Connection::createClientConnection(parameters.connectionIdentifier, *this); >- initializeConnection(m_connection.get()); >- m_connection->open(); > } > > void ChildProcess::setProcessSuppressionEnabled(bool enabled) >@@ -150,16 +146,6 @@ void ChildProcess::enableTermination() > m_terminationTimer.startOneShot(m_terminationTimeout); > } > >-IPC::Connection* ChildProcess::messageSenderConnection() >-{ >- return m_connection.get(); >-} >- >-uint64_t ChildProcess::messageSenderDestinationID() >-{ >- return 0; >-} >- > void ChildProcess::terminationTimerFired() > { > if (!shouldTerminate()) >@@ -182,8 +168,6 @@ void ChildProcess::platformStopRunLoop() > > void ChildProcess::terminate() > { >- m_connection->invalidate(); >- > stopRunLoop(); > } > >Index: Source/WebKit/Shared/ChildProcess.h >=================================================================== >--- Source/WebKit/Shared/ChildProcess.h (revision 240521) >+++ Source/WebKit/Shared/ChildProcess.h (working copy) >@@ -41,7 +41,7 @@ namespace WebKit { > class SandboxInitializationParameters; > struct ChildProcessInitializationParameters; > >-class ChildProcess : protected IPC::Connection::Client, public IPC::MessageSender { >+class ChildProcess : protected IPC::Connection::Client { > WTF_MAKE_NONCOPYABLE(ChildProcess); > > public: >@@ -72,8 +72,6 @@ public: > void setQOS(int latencyQOS, int throughputQOS); > #endif > >- IPC::Connection* parentProcessConnection() const { return m_connection.get(); } >- > IPC::MessageReceiverMap& messageReceiverMap() { return m_messageReceiverMap; } > > #if PLATFORM(MAC) >@@ -114,10 +112,6 @@ protected: > private: > virtual bool shouldOverrideQuarantine() { return true; } > >- // IPC::MessageSender >- IPC::Connection* messageSenderConnection() override; >- uint64_t messageSenderDestinationID() override; >- > // IPC::Connection::Client. > void didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) final; > void didClose(IPC::Connection&) override; >@@ -139,7 +133,6 @@ private: > > RunLoop::Timer<ChildProcess> m_terminationTimer; > >- RefPtr<IPC::Connection> m_connection; > IPC::MessageReceiverMap m_messageReceiverMap; > > UserActivity m_processSuppressionDisabled; >Index: Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp >=================================================================== >--- Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp (revision 240521) >+++ Source/WebKit/Shared/WebSQLiteDatabaseTracker.cpp (working copy) >@@ -44,14 +44,6 @@ WebSQLiteDatabaseTracker::WebSQLiteDatab > SQLiteDatabaseTracker::setClient(this); > } > >-WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker(WebProcess& process) >- : m_process(process) >- , m_hysteresis([this](PAL::HysteresisState state) { hysteresisUpdated(state); }) >- , m_childProcessType(ChildProcessType::WebContent) >-{ >- SQLiteDatabaseTracker::setClient(this); >-} >- > void WebSQLiteDatabaseTracker::willBeginFirstTransaction() > { > callOnMainThread([this] { >Index: Source/WebKit/Shared/WebSQLiteDatabaseTracker.h >=================================================================== >--- Source/WebKit/Shared/WebSQLiteDatabaseTracker.h (revision 240521) >+++ Source/WebKit/Shared/WebSQLiteDatabaseTracker.h (working copy) >@@ -23,8 +23,7 @@ > * THE POSSIBILITY OF SUCH DAMAGE. > */ > >-#ifndef WebSQLiteDatabaseTracker_h >-#define WebSQLiteDatabaseTracker_h >+#pragma once > > #include <WebCore/SQLiteDatabaseTrackerClient.h> > #include <pal/HysteresisActivity.h> >@@ -40,7 +39,6 @@ class WebSQLiteDatabaseTracker : public > WTF_MAKE_NONCOPYABLE(WebSQLiteDatabaseTracker) > public: > explicit WebSQLiteDatabaseTracker(NetworkProcess&); >- explicit WebSQLiteDatabaseTracker(WebProcess&); > > // WebCore::SQLiteDatabaseTrackerClient > void willBeginFirstTransaction() override; >@@ -49,12 +47,10 @@ public: > private: > void hysteresisUpdated(PAL::HysteresisState); > >- ChildProcess& m_process; >+ NetworkProcess& m_process; > PAL::HysteresisActivity m_hysteresis; > enum class ChildProcessType { Network, WebContent }; > ChildProcessType m_childProcessType; > }; > > } // namespace WebKit >- >-#endif // WebSQLiteDatabaseTracker_h >Index: Source/WebKit/Shared/Authentication/AuthenticationManager.cpp >=================================================================== >--- Source/WebKit/Shared/Authentication/AuthenticationManager.cpp (revision 240521) >+++ Source/WebKit/Shared/Authentication/AuthenticationManager.cpp (working copy) >@@ -27,9 +27,9 @@ > #include "AuthenticationManager.h" > > #include "AuthenticationManagerMessages.h" >-#include "ChildProcess.h" > #include "Download.h" > #include "DownloadProxyMessages.h" >+#include "NetworkProcess.h" > #include "NetworkProcessProxyMessages.h" > #include "PendingDownload.h" > #include "WebCoreArgumentCoders.h" >@@ -60,7 +60,7 @@ const char* AuthenticationManager::suppl > return "AuthenticationManager"; > } > >-AuthenticationManager::AuthenticationManager(ChildProcess& process) >+AuthenticationManager::AuthenticationManager(NetworkProcess& process) > : m_process(process) > { > m_process.addMessageReceiver(Messages::AuthenticationManager::messageReceiverName(), *this); >Index: Source/WebKit/Shared/Authentication/AuthenticationManager.h >=================================================================== >--- Source/WebKit/Shared/Authentication/AuthenticationManager.h (revision 240521) >+++ Source/WebKit/Shared/Authentication/AuthenticationManager.h (working copy) >@@ -46,9 +46,9 @@ class Credential; > > namespace WebKit { > >-class ChildProcess; > class Download; > class DownloadID; >+class NetworkProcess; > class WebFrame; > > enum class AuthenticationChallengeDisposition : uint8_t; >@@ -57,7 +57,7 @@ using ChallengeCompletionHandler = Compl > class AuthenticationManager : public NetworkProcessSupplement, public IPC::MessageReceiver, public CanMakeWeakPtr<AuthenticationManager> { > WTF_MAKE_NONCOPYABLE(AuthenticationManager); > public: >- explicit AuthenticationManager(ChildProcess&); >+ explicit AuthenticationManager(NetworkProcess&); > > static const char* supplementName(); > >@@ -88,7 +88,7 @@ private: > > Vector<uint64_t> coalesceChallengesMatching(uint64_t challengeID) const; > >- ChildProcess& m_process; >+ NetworkProcess& m_process; > > HashMap<uint64_t, Challenge> m_challenges; > }; >Index: Source/WebKit/Shared/mac/SecItemShim.cpp >=================================================================== >--- Source/WebKit/Shared/mac/SecItemShim.cpp (revision 240521) >+++ Source/WebKit/Shared/mac/SecItemShim.cpp (working copy) >@@ -29,7 +29,7 @@ > #if ENABLE(SEC_ITEM_SHIM) > > #include "BlockingResponseMap.h" >-#include "ChildProcess.h" >+#include "NetworkProcess.h" > #include "SecItemRequestData.h" > #include "SecItemResponseData.h" > #include "SecItemShimLibrary.h" >@@ -58,7 +58,7 @@ extern "C" void _CFURLConnectionSetFrame > > namespace WebKit { > >-static ChildProcess* sharedProcess; >+static NetworkProcess* sharedProcess; > > static WorkQueue& workQueue() > { >@@ -134,7 +134,7 @@ static OSStatus webSecItemDelete(CFDicti > return response->resultCode(); > } > >-void initializeSecItemShim(ChildProcess& process) >+void initializeSecItemShim(NetworkProcess& process) > { > sharedProcess = &process; > >Index: Source/WebKit/Shared/mac/SecItemShim.h >=================================================================== >--- Source/WebKit/Shared/mac/SecItemShim.h (revision 240521) >+++ Source/WebKit/Shared/mac/SecItemShim.h (working copy) >@@ -27,9 +27,9 @@ > > namespace WebKit { > >-class ChildProcess; >+class NetworkProcess; > >-void initializeSecItemShim(ChildProcess&); >+void initializeSecItemShim(NetworkProcess&); > > } // namespace WebKit > >Index: Source/WebKit/WebProcess/WebProcess.cpp >=================================================================== >--- Source/WebKit/WebProcess/WebProcess.cpp (revision 240521) >+++ Source/WebKit/WebProcess/WebProcess.cpp (working copy) >@@ -230,6 +230,10 @@ void WebProcess::initializeProcess(const > MessagePortChannelProvider::setSharedProvider(WebMessagePortChannelProvider::singleton()); > > platformInitializeProcess(parameters); >+ >+ m_connection = IPC::Connection::createClientConnection(parameters.connectionIdentifier, *this); >+ initializeConnection(m_connection.get()); >+ m_connection->open(); > } > > void WebProcess::initializeConnection(IPC::Connection* connection) >Index: Source/WebKit/WebProcess/WebProcess.h >=================================================================== >--- Source/WebKit/WebProcess/WebProcess.h (revision 240521) >+++ Source/WebKit/WebProcess/WebProcess.h (working copy) >@@ -105,7 +105,7 @@ struct WebProcessCreationParameters; > struct WebsiteData; > struct WebsiteDataStoreParameters; > >-class WebProcess : public ChildProcess { >+class WebProcess : public ChildProcess, public IPC::MessageSender { > public: > static WebProcess& singleton(); > static constexpr ProcessType processType = ProcessType::WebContent; >@@ -124,6 +124,8 @@ public: > > WebConnectionToUIProcess* webConnectionToUIProcess() const { return m_webConnection.get(); } > >+ IPC::Connection* parentProcessConnection() const { return m_connection.get(); } >+ > WebPage* webPage(uint64_t pageID) const; > void createWebPage(uint64_t pageID, WebPageCreationParameters&&); > void removeWebPage(uint64_t pageID); >@@ -247,6 +249,10 @@ private: > WebProcess(); > ~WebProcess(); > >+ // IPC::MessageSender >+ IPC::Connection* messageSenderConnection() override { return m_connection.get(); } >+ uint64_t messageSenderDestinationID() override { return 0; } >+ > void initializeWebProcess(WebProcessCreationParameters&&); > void platformInitializeWebProcess(WebProcessCreationParameters&&); > >@@ -396,6 +402,7 @@ private: > > void clearCurrentModifierStateForTesting(); > >+ RefPtr<IPC::Connection> m_connection; > RefPtr<WebConnectionToUIProcess> m_webConnection; > > HashMap<uint64_t, RefPtr<WebPage>> m_pageMap;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193847
:
360168
| 360179