summaryrefslogtreecommitdiff
path: root/Source/WebKit2/PluginProcess/EntryPoint
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/PluginProcess/EntryPoint')
-rw-r--r--Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist36
-rw-r--r--Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm123
-rw-r--r--Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist54
-rw-r--r--Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist49
-rw-r--r--Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm81
-rw-r--r--Source/WebKit2/PluginProcess/EntryPoint/unix/PluginProcessMain.cpp33
6 files changed, 33 insertions, 343 deletions
diff --git a/Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist b/Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist
deleted file mode 100644
index 9ca9563e2..000000000
--- a/Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/Info.plist
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleExecutable</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundleGetInfoString</key>
- <string>${BUNDLE_VERSION}, Copyright 2003-2013 Apple Inc.</string>
- <key>CFBundleIdentifier</key>
- <string>com.apple.WebKit.${PRODUCT_NAME}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>${SHORT_VERSION_STRING}</string>
- <key>CFBundleVersion</key>
- <string>${BUNDLE_VERSION}</string>
- <key>LSFileQuarantineEnabled</key>
- <true/>
- <key>LSMinimumSystemVersion</key>
- <string>${MACOSX_DEPLOYMENT_TARGET}</string>
- <key>LSUIElement</key>
- <true/>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
- <key>WebKitEntryPoint</key>
- <string>PluginProcessMain</string>
- <key>NSSupportsAutomaticGraphicsSwitching</key>
- <true/>
- <key>NSSupportsAppNap</key>
- <true/>
-</dict>
-</plist>
diff --git a/Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm b/Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm
deleted file mode 100644
index 73045d391..000000000
--- a/Source/WebKit2/PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2010, 2011 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.
- */
-
-#import "config.h"
-
-#if ENABLE(PLUGIN_PROCESS)
-
-#import "ChildProcessEntryPoint.h"
-#import "EnvironmentUtilities.h"
-#import "NetscapePluginModule.h"
-#import "PluginProcess.h"
-#import "WKBase.h"
-#import <WebCore/RunLoop.h>
-
-#if USE(APPKIT)
-@interface NSApplication (WebNSApplicationDetails)
--(void)_installAutoreleasePoolsOnCurrentThreadIfNecessary;
-@end
-#endif
-
-using namespace WebCore;
-
-namespace WebKit {
-
-class PluginProcessMainDelegate : public ChildProcessMainDelegate {
-public:
- PluginProcessMainDelegate(const CommandLine& commandLine)
- : ChildProcessMainDelegate(commandLine)
- {
- }
-
- virtual void doPreInitializationWork()
- {
- // Remove the PluginProcess shim from the DYLD_INSERT_LIBRARIES environment variable so any processes
- // spawned by the PluginProcess don't try to insert the shim and crash.
- EnvironmentUtilities::stripValuesEndingWithString("DYLD_INSERT_LIBRARIES", "/PluginProcessShim.dylib");
-
-#if USE(APPKIT)
- RunLoop::setUseApplicationRunLoopOnMainRunLoop();
-
- // Initialize AppKit.
- [NSApplication sharedApplication];
-
- // Installs autorelease pools on the current runloop which prevents memory from accumulating between user events.
- // FIXME: Remove when <rdar://problem/8929426> is fixed.
- [NSApp _installAutoreleasePoolsOnCurrentThreadIfNecessary];
-#endif
-
- // Check if we're being spawned to write a MIME type preferences file.
- String pluginPath = m_commandLine["createPluginMIMETypesPreferences"];
- if (!pluginPath.isEmpty()) {
- // We are never going to get to the actual initialization, so initialize WebKit2 now.
- InitializeWebKit2();
-
- if (!NetscapePluginModule::createPluginMIMETypesPreferences(pluginPath))
- exit(EXIT_FAILURE);
- exit(EXIT_SUCCESS);
- }
- }
-
- virtual bool getExtraInitializationData(HashMap<String, String>& extraInitializationData)
- {
- String pluginPath = m_commandLine["plugin-path"];
- if (pluginPath.isEmpty())
- return false;
- extraInitializationData.add("plugin-path", pluginPath);
-
- String disableSandbox = m_commandLine["disable-sandbox"];
- if (!disableSandbox.isEmpty())
- extraInitializationData.add("disable-sandbox", disableSandbox);
-
- return true;
- }
-
- virtual void doPostRunWork()
- {
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
- // If we have private temporary and cache directories, clean them up.
- if (getenv("DIRHELPER_USER_DIR_SUFFIX")) {
- char darwinDirectory[PATH_MAX];
- if (confstr(_CS_DARWIN_USER_TEMP_DIR, darwinDirectory, sizeof(darwinDirectory)))
- [[NSFileManager defaultManager] removeItemAtPath:[[NSFileManager defaultManager] stringWithFileSystemRepresentation:darwinDirectory length:strlen(darwinDirectory)] error:nil];
- if (confstr(_CS_DARWIN_USER_CACHE_DIR, darwinDirectory, sizeof(darwinDirectory)))
- [[NSFileManager defaultManager] removeItemAtPath:[[NSFileManager defaultManager] stringWithFileSystemRepresentation:darwinDirectory length:strlen(darwinDirectory)] error:nil];
- }
-#endif
- }
-};
-
-} // namespace WebKit
-
-using namespace WebKit;
-
-extern "C" WK_EXPORT int PluginProcessMain(int argc, char** argv);
-
-int PluginProcessMain(int argc, char** argv)
-{
- return ChildProcessMain<PluginProcess, PluginProcessMainDelegate>(argc, argv);
-}
-
-#endif // ENABLE(PLUGIN_PROCESS)
diff --git a/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist b/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist
deleted file mode 100644
index 31e554130..000000000
--- a/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.32-64.Info.plist
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleGetInfoString</key>
- <string>${BUNDLE_VERSION}, Copyright 2003-2013 Apple Inc.</string>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>${EXECUTABLE_NAME}</string>
- <key>CFBundleIdentifier</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>XPC!</string>
- <key>CFBundleShortVersionString</key>
- <string>${SHORT_VERSION_STRING}</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>${BUNDLE_VERSION}</string>
- <key>LSFileQuarantineEnabled</key>
- <true/>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
- <key>WebKitEntryPoint</key>
- <string>PluginServiceInitializer</string>
- <key>LSUIElement</key>
- <true/>
- <key>NSSupportsAutomaticGraphicsSwitching</key>
- <true/>
- <key>NSSupportsAppNap</key>
- <true/>
- <key>XPCService</key>
- <dict>
- <key>ServiceType</key>
- <string>Application</string>
- <key>RunLoopType</key>
- <string>_NSApplicationMain</string>
- <key>JoinExistingSession</key>
- <true/>
- <key>_MultipleInstances</key>
- <true/>
- <key>EnvironmentVariables</key>
- <dict>
- <key>DYLD_INSERT_LIBRARIES</key>
- <string>$(WEBKIT2_FRAMEWORKS_DIR)/WebKit2.framework/PluginProcess.app/Contents/MacOS/PluginProcessShim.dylib</string>
- </dict>
- </dict>
-</dict>
-</plist>
diff --git a/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist b/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist
deleted file mode 100644
index c220404eb..000000000
--- a/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginService.Development/Info.plist
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleGetInfoString</key>
- <string>${BUNDLE_VERSION}, Copyright 2003-2013 Apple Inc.</string>
- <key>CFBundleDevelopmentRegion</key>
- <string>English</string>
- <key>CFBundleExecutable</key>
- <string>${EXECUTABLE_NAME}</string>
- <key>CFBundleIdentifier</key>
- <string>com.apple.WebKit.Plugin.Development</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>${PRODUCT_NAME}</string>
- <key>CFBundlePackageType</key>
- <string>XPC!</string>
- <key>CFBundleShortVersionString</key>
- <string>${SHORT_VERSION_STRING}</string>
- <key>CFBundleSignature</key>
- <string>????</string>
- <key>CFBundleVersion</key>
- <string>${BUNDLE_VERSION}</string>
- <key>LSFileQuarantineEnabled</key>
- <true/>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
- <key>WebKitEntryPoint</key>
- <string>PluginServiceInitializer</string>
- <key>LSUIElement</key>
- <true/>
- <key>NSSupportsAutomaticGraphicsSwitching</key>
- <true/>
- <key>NSSupportsAppNap</key>
- <true/>
- <key>XPCService</key>
- <dict>
- <key>ServiceType</key>
- <string>Application</string>
- <key>RunLoopType</key>
- <string>_NSApplicationMain</string>
- <key>JoinExistingSession</key>
- <true/>
- <key>_MultipleInstances</key>
- <true/>
- </dict>
-</dict>
-</plist>
diff --git a/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm b/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm
deleted file mode 100644
index 87fcc4fd3..000000000
--- a/Source/WebKit2/PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2013 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.
- */
-
-#import "config.h"
-
-#if HAVE(XPC)
-
-#import "EnvironmentUtilities.h"
-#import "PluginProcess.h"
-#import "WKBase.h"
-#import "XPCServiceEntryPoint.h"
-#import <WebCore/RunLoop.h>
-
-namespace WebKit {
-
-class PluginServiceInitializerDelegate : public XPCServiceInitializerDelegate {
-public:
- PluginServiceInitializerDelegate(xpc_connection_t connection, xpc_object_t initializerMessage)
- : XPCServiceInitializerDelegate(connection, initializerMessage)
- {
- }
-
- virtual bool getExtraInitializationData(HashMap<String, String>& extraInitializationData)
- {
- xpc_object_t extraDataInitializationDataObject = xpc_dictionary_get_value(m_initializerMessage, "extra-initialization-data");
-
- String pluginPath = xpc_dictionary_get_string(extraDataInitializationDataObject, "plugin-path");
- if (pluginPath.isEmpty())
- return false;
- extraInitializationData.add("plugin-path", pluginPath);
-
- String disableSandbox = xpc_dictionary_get_string(extraDataInitializationDataObject, "disable-sandbox");
- if (!disableSandbox.isEmpty())
- extraInitializationData.add("disable-sandbox", disableSandbox);
-
- return true;
- }
-};
-
-} // namespace WebKit
-
-using namespace WebCore;
-using namespace WebKit;
-
-extern "C" WK_EXPORT void PluginServiceInitializer(xpc_connection_t connection, xpc_object_t initializerMessage);
-
-void PluginServiceInitializer(xpc_connection_t connection, xpc_object_t initializerMessage)
-{
- // FIXME: Add support for teardown from PluginProcessMain.mm
-
- // Remove the PluginProcess shim from the DYLD_INSERT_LIBRARIES environment variable so any processes
- // spawned by the PluginProcess don't try to insert the shim and crash.
- EnvironmentUtilities::stripValuesEndingWithString("DYLD_INSERT_LIBRARIES", "/PluginProcessShim.dylib");
- RunLoop::setUseApplicationRunLoopOnMainRunLoop();
-
- XPCServiceInitializer<PluginProcess, PluginServiceInitializerDelegate>(connection, initializerMessage);
-}
-
-#endif // HAVE(XPC)
diff --git a/Source/WebKit2/PluginProcess/EntryPoint/unix/PluginProcessMain.cpp b/Source/WebKit2/PluginProcess/EntryPoint/unix/PluginProcessMain.cpp
new file mode 100644
index 000000000..3df509057
--- /dev/null
+++ b/Source/WebKit2/PluginProcess/EntryPoint/unix/PluginProcessMain.cpp
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2014 Igalia S.L.
+ *
+ * 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 "PluginProcessMainUnix.h"
+
+using namespace WebKit;
+
+int main(int argc, char** argv)
+{
+ return PluginProcessMainUnix(argc, argv);
+}