summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp')
-rw-r--r--Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp75
1 files changed, 6 insertions, 69 deletions
diff --git a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
index f20c19c5a..089c17c33 100644
--- a/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
+++ b/Source/WebKit2/UIProcess/Launcher/ProcessLauncher.cpp
@@ -26,42 +26,32 @@
#include "config.h"
#include "ProcessLauncher.h"
-#include "WorkQueue.h"
#include <wtf/StdLibExtras.h>
+#include <wtf/WorkQueue.h>
namespace WebKit {
-static WorkQueue* processLauncherWorkQueue()
-{
- static WorkQueue* processLauncherWorkQueue = WorkQueue::create("com.apple.WebKit.ProcessLauncher").leakRef();
- return processLauncherWorkQueue;
-}
-
ProcessLauncher::ProcessLauncher(Client* client, const LaunchOptions& launchOptions)
: m_client(client)
+ , m_weakPtrFactory(this)
, m_launchOptions(launchOptions)
, m_processIdentifier(0)
{
- // Launch the process.
m_isLaunching = true;
- processLauncherWorkQueue()->dispatch(bind(&ProcessLauncher::launchProcess, this));
+ launchProcess();
}
-void ProcessLauncher::didFinishLaunchingProcess(PlatformProcessIdentifier processIdentifier, IPC::Connection::Identifier identifier)
+void ProcessLauncher::didFinishLaunchingProcess(pid_t processIdentifier, IPC::Connection::Identifier identifier)
{
m_processIdentifier = processIdentifier;
m_isLaunching = false;
if (!m_client) {
// FIXME: Make Identifier a move-only object and release port rights/connections in the destructor.
-#if PLATFORM(MAC)
+#if OS(DARWIN) && !PLATFORM(GTK)
+ // FIXME: Should really be something like USE(MACH)
if (identifier.port)
mach_port_mod_refs(mach_task_self(), identifier.port, MACH_PORT_RIGHT_RECEIVE, -1);
-
- if (identifier.xpcConnection) {
- xpc_release(identifier.xpcConnection);
- identifier.xpcConnection = 0;
- }
#endif
return;
}
@@ -75,57 +65,4 @@ void ProcessLauncher::invalidate()
platformInvalidate();
}
-const char* ProcessLauncher::processTypeAsString(ProcessType processType)
-{
- switch (processType) {
- case WebProcess:
- return "webprocess";
-#if ENABLE(NETSCAPE_PLUGIN_API)
- case PluginProcess:
- return "pluginprocess";
-#endif
-#if ENABLE(NETWORK_PROCESS)
- case NetworkProcess:
- return "networkprocess";
-#endif
-#if ENABLE(DATABASE_PROCESS)
- case DatabaseProcess:
- return "databaseprocess";
-#endif
- }
-
- ASSERT_NOT_REACHED();
- return 0;
-}
-
-bool ProcessLauncher::getProcessTypeFromString(const char* string, ProcessType& processType)
-{
- if (!strcmp(string, "webprocess")) {
- processType = WebProcess;
- return true;
- }
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
- if (!strcmp(string, "pluginprocess")) {
- processType = PluginProcess;
- return true;
- }
-#endif
-
-#if ENABLE(NETWORK_PROCESS)
- if (!strcmp(string, "networkprocess")) {
- processType = NetworkProcess;
- return true;
- }
-#endif
-
-#if ENABLE(DATABASE_PROCESS)
- if (!strcmp(string, "databaseprocess")) {
- processType = DatabaseProcess;
- return true;
- }
-#endif
- return false;
-}
-
} // namespace WebKit