diff options
Diffstat (limited to 'Source/WebKit2/PluginProcess/EntryPoint')
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); +} |