From a2687527c49d073cf9d658dff803c6f6d3b948ef Mon Sep 17 00:00:00 2001 From: Neeraj Deshpande Date: Fri, 4 Mar 2016 10:47:58 +0530 Subject: [PATCH 1/2] Changes made to make IndexedDB work. --- Source/WebKit2/CMakeLists.txt | 5 ----- .../WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp | 7 ++++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt index bcb47b4ed1e70..6216ba90777a6 100644 --- a/Source/WebKit2/CMakeLists.txt +++ b/Source/WebKit2/CMakeLists.txt @@ -169,9 +169,6 @@ endif () set(WebKit2_SOURCES DatabaseProcess/DatabaseProcess.cpp - DatabaseProcess/DatabaseToWebProcessConnection.cpp - - DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp NetworkProcess/NetworkConnectionToWebProcess.cpp NetworkProcess/NetworkLoad.cpp @@ -504,8 +501,6 @@ set(WebKit2_SOURCES WebProcess/Databases/WebDatabaseProvider.cpp WebProcess/Databases/WebToDatabaseProcessConnection.cpp - WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp - WebProcess/FileAPI/BlobRegistryProxy.cpp WebProcess/FullScreen/WebFullScreenManager.cpp diff --git a/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp b/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp index ae5591b6c02b2..0b06b94cdbfb6 100644 --- a/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp +++ b/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp @@ -71,7 +71,8 @@ WebDatabaseProvider::~WebDatabaseProvider() WebCore::IDBClient::IDBConnectionToServer& WebDatabaseProvider::idbConnectionToServerForSession(const WebCore::SessionID& sessionID) { - if (sessionID.isEphemeral()) { +// if (sessionID.isEphemeral()) + { auto result = m_idbEphemeralConnectionMap.add(sessionID.sessionID(), nullptr); if (result.isNewEntry) result.iterator->value = WebCore::InProcessIDBServer::create(); @@ -79,8 +80,8 @@ WebCore::IDBClient::IDBConnectionToServer& WebDatabaseProvider::idbConnectionToS return result.iterator->value->connectionToServer(); } - ASSERT(WebProcess::singleton().webToDatabaseProcessConnection()); - return WebProcess::singleton().webToDatabaseProcessConnection()->idbConnectionToServerForSession(sessionID).coreConnectionToServer(); +// ASSERT(WebProcess::singleton().webToDatabaseProcessConnection()); +// return WebProcess::singleton().webToDatabaseProcessConnection()->idbConnectionToServerForSession(sessionID).coreConnectionToServer(); } #endif From acffade1b2dcd3de13bcf5b833c02dcb0d3a571f Mon Sep 17 00:00:00 2001 From: Neeraj Deshpande Date: Thu, 10 Mar 2016 17:42:57 +0530 Subject: [PATCH 2/2] Changes to launch DatabaseProcess. --- Source/WebKit2/CMakeLists.txt | 5 ++++ .../wpe/DatabaseProcessMainWPE.cpp | 28 +++++++++++++++++++ Source/WebKit2/PlatformWPE.cmake | 9 ++++++ .../Shared/wpe/ProcessExecutablePathWPE.cpp | 5 ++++ .../Databases/wpe/DatabaseProcessProxyWPE.cpp | 14 ++++++++++ .../Launcher/wpe/ProcessLauncherWPE.cpp | 3 ++ .../Databases/WebDatabaseProvider.cpp | 7 ++--- Source/cmake/OptionsWPE.cmake | 1 + 8 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 Source/WebKit2/DatabaseProcess/wpe/DatabaseProcessMainWPE.cpp create mode 100644 Source/WebKit2/UIProcess/Databases/wpe/DatabaseProcessProxyWPE.cpp diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt index 6216ba90777a6..bcb47b4ed1e70 100644 --- a/Source/WebKit2/CMakeLists.txt +++ b/Source/WebKit2/CMakeLists.txt @@ -169,6 +169,9 @@ endif () set(WebKit2_SOURCES DatabaseProcess/DatabaseProcess.cpp + DatabaseProcess/DatabaseToWebProcessConnection.cpp + + DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp NetworkProcess/NetworkConnectionToWebProcess.cpp NetworkProcess/NetworkLoad.cpp @@ -501,6 +504,8 @@ set(WebKit2_SOURCES WebProcess/Databases/WebDatabaseProvider.cpp WebProcess/Databases/WebToDatabaseProcessConnection.cpp + WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp + WebProcess/FileAPI/BlobRegistryProxy.cpp WebProcess/FullScreen/WebFullScreenManager.cpp diff --git a/Source/WebKit2/DatabaseProcess/wpe/DatabaseProcessMainWPE.cpp b/Source/WebKit2/DatabaseProcess/wpe/DatabaseProcessMainWPE.cpp new file mode 100644 index 0000000000000..df2e52a1db69d --- /dev/null +++ b/Source/WebKit2/DatabaseProcess/wpe/DatabaseProcessMainWPE.cpp @@ -0,0 +1,28 @@ +#include "config.h" +#include "DatabaseProcessMainUnix.h" + +#if ENABLE(DATABASE_PROCESS) + +#include "ChildProcessMain.h" +#include "DatabaseProcess.h" + +using namespace WebCore; + +namespace WebKit { + +class DatabaseProcessMain final: public ChildProcessMainBase { +public: + bool platformInitialize() override + { + return true; + } +}; + +int DatabaseProcessMainUnix(int argc, char** argv) +{ + return ChildProcessMain(argc, argv); +} + +} // namespace WebKit + +#endif // ENABLE(DATABASE_PROCESS) diff --git a/Source/WebKit2/PlatformWPE.cmake b/Source/WebKit2/PlatformWPE.cmake index 51b30af003461..ad8aea26d21c0 100644 --- a/Source/WebKit2/PlatformWPE.cmake +++ b/Source/WebKit2/PlatformWPE.cmake @@ -20,11 +20,17 @@ list(APPEND WebProcess_SOURCES WebProcess/EntryPoint/unix/WebProcessMain.cpp ) +list(APPEND DatabaseProcess_SOURCES + DatabaseProcess/EntryPoint/unix/DatabaseProcessMain.cpp +) + list(APPEND NetworkProcess_SOURCES NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp ) list(APPEND WebKit2_SOURCES + DatabaseProcess/wpe/DatabaseProcessMainWPE.cpp + NetworkProcess/CustomProtocols/soup/CustomProtocolManagerImpl.cpp NetworkProcess/CustomProtocols/soup/CustomProtocolManagerSoup.cpp @@ -109,6 +115,8 @@ list(APPEND WebKit2_SOURCES UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp + UIProcess/Databases/wpe/DatabaseProcessProxyWPE.cpp + UIProcess/Network/soup/NetworkProcessProxySoup.cpp UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp @@ -205,6 +213,7 @@ list(APPEND WebKit2_INCLUDE_DIRECTORIES "${WEBCORE_DIR}/platform/graphics/opentype" "${WEBCORE_DIR}/platform/graphics/texmap/coordinated" "${WEBCORE_DIR}/platform/network/soup" + "${WEBKIT2_DIR}/DatabaseProcess/unix" "${WEBKIT2_DIR}/NetworkProcess/CustomProtocols/soup" "${WEBKIT2_DIR}/NetworkProcess/Downloads/soup" "${WEBKIT2_DIR}/NetworkProcess/unix" diff --git a/Source/WebKit2/Shared/wpe/ProcessExecutablePathWPE.cpp b/Source/WebKit2/Shared/wpe/ProcessExecutablePathWPE.cpp index 60c0b269d1d8f..8af7bf433eac3 100644 --- a/Source/WebKit2/Shared/wpe/ProcessExecutablePathWPE.cpp +++ b/Source/WebKit2/Shared/wpe/ProcessExecutablePathWPE.cpp @@ -77,4 +77,9 @@ String executablePathOfNetworkProcess() return findWebKitProcess("WPENetworkProcess"); } +String executablePathOfDatabaseProcess() +{ + return findWebKitProcess("WPEDatabaseProcess"); +} + } // namespace WebKit diff --git a/Source/WebKit2/UIProcess/Databases/wpe/DatabaseProcessProxyWPE.cpp b/Source/WebKit2/UIProcess/Databases/wpe/DatabaseProcessProxyWPE.cpp new file mode 100644 index 0000000000000..5f6fe30ee0d66 --- /dev/null +++ b/Source/WebKit2/UIProcess/Databases/wpe/DatabaseProcessProxyWPE.cpp @@ -0,0 +1,14 @@ +#include "config.h" +#include "DatabaseProcessProxy.h" + +#if ENABLE(DATABASE_PROCESS) + +namespace WebKit { + +void DatabaseProcessProxy::platformGetLaunchOptions(ProcessLauncher::LaunchOptions&) +{ +} + +} // namespace WebKit + +#endif // ENABLE(DATABASE_PROCESS) diff --git a/Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp b/Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp index 493f784e25e50..92d87fa8df4b0 100644 --- a/Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp +++ b/Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp @@ -66,6 +66,9 @@ void ProcessLauncher::launchProcess() case ProcessLauncher::ProcessType::Network: executablePath = executablePathOfNetworkProcess(); break; + case ProcessLauncher::ProcessType::Database: + executablePath = executablePathOfDatabaseProcess(); + break; default: ASSERT_NOT_REACHED(); return; diff --git a/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp b/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp index 0b06b94cdbfb6..ae5591b6c02b2 100644 --- a/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp +++ b/Source/WebKit2/WebProcess/Databases/WebDatabaseProvider.cpp @@ -71,8 +71,7 @@ WebDatabaseProvider::~WebDatabaseProvider() WebCore::IDBClient::IDBConnectionToServer& WebDatabaseProvider::idbConnectionToServerForSession(const WebCore::SessionID& sessionID) { -// if (sessionID.isEphemeral()) - { + if (sessionID.isEphemeral()) { auto result = m_idbEphemeralConnectionMap.add(sessionID.sessionID(), nullptr); if (result.isNewEntry) result.iterator->value = WebCore::InProcessIDBServer::create(); @@ -80,8 +79,8 @@ WebCore::IDBClient::IDBConnectionToServer& WebDatabaseProvider::idbConnectionToS return result.iterator->value->connectionToServer(); } -// ASSERT(WebProcess::singleton().webToDatabaseProcessConnection()); -// return WebProcess::singleton().webToDatabaseProcessConnection()->idbConnectionToServerForSession(sessionID).coreConnectionToServer(); + ASSERT(WebProcess::singleton().webToDatabaseProcessConnection()); + return WebProcess::singleton().webToDatabaseProcessConnection()->idbConnectionToServerForSession(sessionID).coreConnectionToServer(); } #endif diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake index 456e783afc8f0..8afbbf73855d9 100644 --- a/Source/cmake/OptionsWPE.cmake +++ b/Source/cmake/OptionsWPE.cmake @@ -64,6 +64,7 @@ set(WebCore_LIBRARY_TYPE STATIC) set(WebKit2_OUTPUT_NAME WPEWebKit) set(WebKit2_WebProcess_OUTPUT_NAME WPEWebProcess) set(WebKit2_NetworkProcess_OUTPUT_NAME WPENetworkProcess) +set(WebKit2_DatabaseProcess_OUTPUT_NAME WPEDatabaseProcess) find_package(ICU REQUIRED) find_package(Threads REQUIRED)