Title: [91015] trunk
Revision
91015
Author
carlo...@webkit.org
Date
2011-07-14 10:49:47 -0700 (Thu, 14 Jul 2011)

Log Message

Reviewed by Martin Robinson.

[GTK] Implement Plugin Process
https://bugs.webkit.org/show_bug.cgi?id=60546

.:

* configure.ac: Always check for gtk2 when building the plugin
process.

Source/WebKit2:

* GNUmakefile.am: Add new files to compilation.
* PluginProcess/gtk/PluginProcessMainGtk.cpp: Added.
(WebKit::PluginProcessMainGtk):
* PluginProcess/gtk/PluginProcessMainGtk.h: Added.
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess):
* WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
(WebKit::moduleMixesGtkSymbols):
* gtk/PluginMainGtk.cpp: Added.
(main):

Modified Paths

Added Paths

Diff

Modified: trunk/ChangeLog (91014 => 91015)


--- trunk/ChangeLog	2011-07-14 17:45:04 UTC (rev 91014)
+++ trunk/ChangeLog	2011-07-14 17:49:47 UTC (rev 91015)
@@ -1,3 +1,13 @@
+2011-07-14  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Implement Plugin Process
+        https://bugs.webkit.org/show_bug.cgi?id=60546
+
+        * configure.ac: Always check for gtk2 when building the plugin
+        process.
+
 2011-07-14  MORITA Hajime  <morr...@google.com>
 
         Unreviewed, rolling out r90976, r90981, and r90985.

Modified: trunk/Source/WebKit2/ChangeLog (91014 => 91015)


--- trunk/Source/WebKit2/ChangeLog	2011-07-14 17:45:04 UTC (rev 91014)
+++ trunk/Source/WebKit2/ChangeLog	2011-07-14 17:49:47 UTC (rev 91015)
@@ -1,3 +1,21 @@
+2011-07-14  Carlos Garcia Campos  <cgar...@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GTK] Implement Plugin Process
+        https://bugs.webkit.org/show_bug.cgi?id=60546
+
+        * GNUmakefile.am: Add new files to compilation.
+        * PluginProcess/gtk/PluginProcessMainGtk.cpp: Added.
+        (WebKit::PluginProcessMainGtk):
+        * PluginProcess/gtk/PluginProcessMainGtk.h: Added.
+        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
+        (WebKit::ProcessLauncher::launchProcess):
+        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
+        (WebKit::moduleMixesGtkSymbols):
+        * gtk/PluginMainGtk.cpp: Added.
+        (main):
+
 2011-07-14  Balazs Kelemen  <kbal...@webkit.org> and Carlos Garcia Campos  <cgar...@igalia.com>
 
         Reviewed by Anders Carlsson.

Modified: trunk/Source/WebKit2/GNUmakefile.am (91014 => 91015)


--- trunk/Source/WebKit2/GNUmakefile.am	2011-07-14 17:45:04 UTC (rev 91014)
+++ trunk/Source/WebKit2/GNUmakefile.am	2011-07-14 17:49:47 UTC (rev 91015)
@@ -978,6 +978,7 @@
 
 Programs_WebKitWebProcess_CFLAGS = \
 	$(global_cflags) \
+	$(CAIRO_CFLAGS) \
 	$(GLIB_CFLAGS) \
 	$(GTK_CFLAGS) \
 	$(LIBSOUP_CFLAGS)
@@ -994,3 +995,225 @@
 Programs_WebKitWebProcess_LDFLAGS = \
 	-no-fast-install \
 	-no-install
+
+# PluginProcess
+if ENABLE_PLUGIN_PROCESS
+
+# We need to make sure plugin process is always built with gtk2, because plugins like flash
+# still use gtk2. Since webcore was built with gtk3, we need to build webcoregtk sources again with gtk2
+noinst_LTLIBRARIES += \
+	libWebCoreGtk2.la
+
+libWebCoreGtk2_la_SOURCES = \
+	$(webcoregtk_sources)
+
+libWebCoreGtk2_la_CXXFLAGS = \
+	$(SYMBOL_VISIBILITY_INLINES) \
+	$(global_cxxflags)
+
+libWebCoreGtk2_la_CFLAGS = \
+	$(SYMBOL_VISIBILITY) \
+	$(global_cflags)
+
+libWebCoreGtk2_la_CPPFLAGS = \
+	-DBUILDING_WEBKIT \
+	-DGTK_API_VERSION_2=1 \
+	$(global_cppflags) \
+	$(webcore_cppflags) \
+	$(webcoregtk_cppflags) \
+	$(_javascript_core_cppflags) \
+	-fno-strict-aliasing \
+	$(COVERAGE_CFLAGS) \
+	$(ENCHANT_CFLAGS) \
+	$(GEOCLUE_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	$(GSTREAMER_CFLAGS) \
+	$(GTK2_CFLAGS) \
+	$(LIBSOUP_CFLAGS) \
+	$(LIBXML_CFLAGS) \
+	$(LIBXSLT_CFLAGS) \
+	$(SQLITE3_CFLAGS) \
+	$(UNICODE_CFLAGS) \
+	$(XRENDER_CFLAGS) \
+	$(XT_CFLAGS)
+
+plugin_process_built_sources = \
+	DerivedSources/WebKit2/NPObjectMessageReceiverMessageReceiver.cpp \
+	DerivedSources/WebKit2/NPObjectMessageReceiverMessages.h \
+	DerivedSources/WebKit2/PluginControllerProxyMessageReceiver.cpp \
+	DerivedSources/WebKit2/PluginControllerProxyMessages.h \
+	DerivedSources/WebKit2/PluginProcessMessageReceiver.cpp \
+	DerivedSources/WebKit2/PluginProcessMessages.h \
+	DerivedSources/WebKit2/WebProcessConnectionMessageReceiver.cpp \
+	DerivedSources/WebKit2/WebProcessConnectionMessages.h
+
+bin_PROGRAMS += \
+	Programs/WebKitPluginProcess
+
+Programs_WebKitPluginProcess_CPPFLAGS = \
+	-include $(srcdir)/Source/WebKit2/WebKit2Prefix.h \
+	-I$(srcdir)/Source/WebKit2 \
+	-I$(srcdir)/Source/WebKit2/Platform \
+	-I$(srcdir)/Source/WebKit2/Platform/CoreIPC/ \
+	-I$(srcdir)/Source/WebKit2/PluginProcess/ \
+	-I$(srcdir)/Source/WebKit2/PluginProcess/gtk \
+	-I$(srcdir)/Source/WebKit2/Shared \
+	-I$(srcdir)/Source/WebKit2/Shared/Plugins \
+	-I$(srcdir)/Source/WebKit2/Shared/Plugins/Netscape/ \
+	-I$(srcdir)/Source/WebKit2/UIProcess/Plugins/ \
+	-I$(srcdir)/Source/WebKit2/WebProcess/Plugins/ \
+	-I$(srcdir)/Source/WebKit2/WebProcess/Plugins/Netscape/ \
+	-I$(top_builddir)/DerivedSources/WebKit2 \
+	-I$(top_builddir)/DerivedSources/WebKit2/include \
+	-I$(top_builddir)/DerivedSources/WebKit2/include/_javascript_Core \
+	-I$(top_builddir)/DerivedSources/WebKit2/include/WebCore \
+	-I$(top_builddir)/DerivedSources/WebKit2/include/WebKit2 \
+	-DBUILDING_WEBKIT \
+	-DGTK_API_VERSION_2=1 \
+	-DENABLE_PLUGIN_PROCESS=1 \
+	$(global_cppflags) \
+	$(webcore_cppflags) \
+	$(webcoregtk_cppflags) \
+	$(_javascript_core_cppflags) \
+	-fno-strict-aliasing \
+	$(CAIRO_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	$(GSTREAMER_CFLAGS) \
+	$(GTK2_CFLAGS) \
+	$(LIBSOUP_CFLAGS) \
+	$(UNICODE_CFLAGS)
+
+Programs_WebKitPluginProcess_CFLAGS = \
+	$(SYMBOL_VISIBILITY) \
+	$(global_cflags) \
+	$(CAIRO_CFLAGS) \
+	$(GLIB_CFLAGS) \
+	$(GSTREAMER_CFLAGS) \
+	$(GTK2_CFLAGS) \
+	$(LIBSOUP_CFLAGS) \
+	$(UNICODE_CFLAGS)
+
+Programs_WebKitPluginProcess_SOURCES = \
+	$(plugin_process_built_sources) \
+	Source/WebKit2/Platform/CoreIPC/ArgumentCoder.h \
+	Source/WebKit2/Platform/CoreIPC/ArgumentCoders.h \
+	Source/WebKit2/Platform/CoreIPC/ArgumentCoders.cpp \
+	Source/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp \
+	Source/WebKit2/Platform/CoreIPC/ArgumentDecoder.h \
+	Source/WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp \
+	Source/WebKit2/Platform/CoreIPC/ArgumentEncoder.h \
+	Source/WebKit2/Platform/CoreIPC/Arguments.h \
+	Source/WebKit2/Platform/CoreIPC/Attachment.cpp \
+	Source/WebKit2/Platform/CoreIPC/Attachment.h \
+	Source/WebKit2/Platform/CoreIPC/BinarySemaphore.cpp \
+	Source/WebKit2/Platform/CoreIPC/BinarySemaphore.h \
+	Source/WebKit2/Platform/CoreIPC/Connection.cpp \
+	Source/WebKit2/Platform/CoreIPC/Connection.h \
+	Source/WebKit2/Platform/CoreIPC/CoreIPCMessageKinds.h \
+	Source/WebKit2/Platform/CoreIPC/DataReference.cpp \
+	Source/WebKit2/Platform/CoreIPC/DataReference.h \
+	Source/WebKit2/Platform/CoreIPC/HandleMessage.h \
+	Source/WebKit2/Platform/CoreIPC/MessageID.h \
+	Source/WebKit2/Platform/CoreIPC/MessageSender.h \
+	Source/WebKit2/Platform/CoreIPC/unix/AttachmentUnix.cpp \
+	Source/WebKit2/Platform/CoreIPC/unix/ConnectionUnix.cpp \
+	Source/WebKit2/Platform/Module.cpp \
+	Source/WebKit2/Platform/Module.h \
+	Source/WebKit2/Platform/WorkItem.h \
+	Source/WebKit2/Platform/WorkQueue.cpp \
+	Source/WebKit2/Platform/WorkQueue.h \
+	Source/WebKit2/Platform/RunLoop.cpp \
+	Source/WebKit2/Platform/RunLoop.h \
+	Source/WebKit2/Platform/SharedMemory.h \
+	Source/WebKit2/Platform/gtk/ModuleGtk.cpp \
+	Source/WebKit2/Platform/gtk/RunLoopGtk.cpp \
+	Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp \
+	Source/WebKit2/Platform/unix/SharedMemoryUnix.cpp \
+	Source/WebKit2/PluginProcess/PluginControllerProxy.cpp \
+	Source/WebKit2/PluginProcess/PluginControllerProxy.h \
+	Source/WebKit2/PluginProcess/PluginCreationParameters.cpp \
+	Source/WebKit2/PluginProcess/PluginCreationParameters.h \
+	Source/WebKit2/PluginProcess/PluginProcess.cpp \
+	Source/WebKit2/PluginProcess/PluginProcess.h \
+	Source/WebKit2/PluginProcess/PluginProcessMain.h \
+	Source/WebKit2/PluginProcess/WebProcessConnection.cpp \
+	Source/WebKit2/PluginProcess/WebProcessConnection.h \
+	Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.cpp \
+	Source/WebKit2/Shared/Plugins/PluginProcessCreationParameters.h \
+	Source/WebKit2/PluginProcess/gtk/PluginControllerProxyGtk.cpp \
+	Source/WebKit2/PluginProcess/gtk/PluginProcessGtk.cpp \
+	Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h \
+	Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp \
+	Source/WebKit2/Shared/ChildProcess.cpp \
+	Source/WebKit2/Shared/ChildProcess.h \
+	Source/WebKit2/Shared/Plugins/NPIdentifierData.cpp \
+	Source/WebKit2/Shared/Plugins/NPIdentifierData.h \
+	Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp \
+	Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.h \
+	Source/WebKit2/Shared/Plugins/NPObjectProxy.cpp \
+	Source/WebKit2/Shared/Plugins/NPObjectProxy.h \
+	Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.cpp \
+	Source/WebKit2/Shared/Plugins/NPRemoteObjectMap.h \
+	Source/WebKit2/Shared/Plugins/NPVariantData.cpp \
+	Source/WebKit2/Shared/Plugins/NPVariantData.h \
+	Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.cpp \
+	Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.h \
+	Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp \
+	Source/WebKit2/Shared/ShareableBitmap.cpp \
+	Source/WebKit2/Shared/ShareableBitmap.h \
+	Source/WebKit2/Shared/WebCoreArgumentCoders.cpp \
+	Source/WebKit2/Shared/WebCoreArgumentCoders.h \
+	Source/WebKit2/Shared/WebEvent.cpp \
+	Source/WebKit2/Shared/WebEvent.h \
+	Source/WebKit2/Shared/WebKeyboardEvent.cpp \
+	Source/WebKit2/Shared/WebMouseEvent.cpp \
+	Source/WebKit2/Shared/WebWheelEvent.cpp \
+	Source/WebKit2/Shared/gtk/WebCoreArgumentCodersGtk.cpp \
+	Source/WebKit2/Shared/gtk/NativeWebKeyboardEventGtk.cpp \
+	Source/WebKit2/Shared/gtk/NativeWebWheelEventGtk.cpp \
+	Source/WebKit2/Shared/gtk/NativeWebMouseEventGtk.cpp \
+	Source/WebKit2/Shared/gtk/WebEventFactory.cpp \
+	Source/WebKit2/Shared/cairo/ShareableBitmapCairo.cpp \
+	Source/WebKit2/WebProcess/Plugins/Plugin.cpp \
+	Source/WebKit2/WebProcess/Plugins/Plugin.h \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeUtilities.cpp \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeUtilities.h \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.h \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp \
+	Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h \
+	Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp \
+	Source/WebKit2/gtk/PluginMainGtk.cpp
+
+Programs_WebKitPluginProcess_LDADD = \
+	-lpthread \
+	libWebCore.la \
+	libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \
+	libWebCoreGtk2.la \
+	$(CAIRO_LIBS) \
+	$(COVERAGE_LDFLAGS) \
+	$(GEOCLUE_LIBS) \
+	$(GLIB_LIBS) \
+	$(GSTREAMER_LIBS) \
+	$(GTK2_LIBS) \
+	$(JPEG_LIBS) \
+	$(LIBSOUP_LIBS) \
+	$(LIBXML_LIBS) \
+	$(LIBXSLT_LIBS) \
+	$(PANGO_LIBS) \
+	$(PNG_LIBS) \
+	$(SQLITE3_LIBS) \
+	$(UNICODE_LIBS) \
+	$(XT_LIBS)
+
+Programs_WebKitPluginProcess_LDFLAGS = \
+	-no-fast-install \
+	-no-install
+
+Programs_WebKitPluginProcess_CXXFLAGS = \
+	$(SYMBOL_VISIBILITY_INLINES) \
+	$(global_cxxflags)
+
+endif
\ No newline at end of file

Added: trunk/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp (0 => 91015)


--- trunk/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp	                        (rev 0)
+++ trunk/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp	2011-07-14 17:49:47 UTC (rev 91015)
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2011 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 "config.h"
+#include "PluginProcessMainGtk.h"
+
+#include "PluginProcess.h"
+#include <WebKit2/RunLoop.h>
+#include <gtk/gtk.h>
+#include <runtime/InitializeThreading.h>
+#include <wtf/Threading.h>
+
+namespace WebKit {
+
+WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[])
+{
+    ASSERT(argc == 2);
+
+    gtk_init(&argc, &argv);
+
+    JSC::initializeThreading();
+    WTF::initializeMainThread();
+    RunLoop::initializeMainRunLoop();
+
+    int socket = atoi(argv[1]);
+    WebKit::PluginProcess::shared().initialize(socket, RunLoop::main());
+    RunLoop::run();
+
+    return 0;
+}
+
+} // namespace WebKit
+
+

Added: trunk/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h (0 => 91015)


--- trunk/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h	                        (rev 0)
+++ trunk/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.h	2011-07-14 17:49:47 UTC (rev 91015)
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Portions Copyright (c) 2010 Motorola Mobility, 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.
+ */
+
+#ifndef PluginProcessMainGtk_h
+#define PluginProcessMainGtk_h
+
+#include <WebKit2/WKBase.h>
+
+namespace WebKit {
+
+#ifdef __cplusplus
+extern "C" {
+WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[]);
+} // extern "C"
+#endif // __cplusplus
+
+} // namespace WebKit
+
+#endif // PluginProcessMain_h

Modified: trunk/Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp (91014 => 91015)


--- trunk/Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp	2011-07-14 17:45:04 UTC (rev 91014)
+++ trunk/Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp	2011-07-14 17:49:47 UTC (rev 91015)
@@ -44,6 +44,7 @@
 namespace WebKit {
 
 const char* gWebKitWebProcessName = "WebKitWebProcess";
+const char* gWebKitPluginProcessName = "WebKitPluginProcess";
 
 static void childSetupFunction(gpointer userData)
 {
@@ -75,7 +76,8 @@
         return;
     }
 
-    GOwnPtr<gchar> binaryPath(g_build_filename(applicationDirectoryPath().data(), gWebKitWebProcessName, NULL));
+    GOwnPtr<gchar> binaryPath(g_build_filename(applicationDirectoryPath().data(),
+                                               m_launchOptions.processType == ProcessLauncher::WebProcess ? gWebKitWebProcessName : gWebKitPluginProcessName, NULL));
     GOwnPtr<gchar> socket(g_strdup_printf("%d", sockets[0]));
     char* argv[3];
     argv[0] = binaryPath.get();

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp (91014 => 91015)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp	2011-07-14 17:45:04 UTC (rev 91014)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp	2011-07-14 17:49:47 UTC (rev 91015)
@@ -134,7 +134,11 @@
 #if PLATFORM(GTK)
 static bool moduleMixesGtkSymbols(Module* module)
 {
+#ifdef GTK_API_VERSION_2
+    return module->functionPointer<gpointer>("gtk_application_get_type");
+#else
     return module->functionPointer<gpointer>("gtk_object_get_type");
+#endif
 }
 #endif
 

Added: trunk/Source/WebKit2/gtk/PluginMainGtk.cpp (0 => 91015)


--- trunk/Source/WebKit2/gtk/PluginMainGtk.cpp	                        (rev 0)
+++ trunk/Source/WebKit2/gtk/PluginMainGtk.cpp	2011-07-14 17:49:47 UTC (rev 91015)
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Portions Copyright (c) 2010 Motorola Mobility, 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.
+ */
+
+#include "PluginProcessMainGtk.h"
+
+int main(int argc, char** argv)
+{
+    return WebKit::PluginProcessMainGtk(argc, argv);
+}

Modified: trunk/configure.ac (91014 => 91015)


--- trunk/configure.ac	2011-07-14 17:45:04 UTC (rev 91014)
+++ trunk/configure.ac	2011-07-14 17:49:47 UTC (rev 91015)
@@ -196,24 +196,29 @@
         [with_gtk=2.0])
 AC_MSG_RESULT([$with_gtk])
 
+GTK2_REQUIRED_VERSION=2.10
+GAIL2_REQUIRED_VERSION=1.8
+GTK3_REQUIRED_VERSION=3.0
+GAIL3_REQUIRED_VERSION=3.0
+
 case "$with_gtk" in
-     2.0) GTK_REQUIRED_VERSION=2.10
+     2.0) GTK_REQUIRED_VERSION=$GTK2_REQUIRED_VERSION
           GTK_API_VERSION=2.0
           WEBKITGTK_API_MAJOR_VERSION=1
           WEBKITGTK_API_MINOR_VERSION=0
           WEBKITGTK_API_VERSION=1.0
           WEBKITGTK_PC_NAME=webkit
           GAIL_PC_NAME=gail
-          GAIL_REQUIRED_VERSION=1.8
+          GAIL_REQUIRED_VERSION=$GAIL2_REQUIRED_VERSION
           ;;
-     3.0) GTK_REQUIRED_VERSION=3.0
+     3.0) GTK_REQUIRED_VERSION=$GTK3_REQUIRED_VERSION
           GTK_API_VERSION=3.0
           WEBKITGTK_API_MAJOR_VERSION=3
           WEBKITGTK_API_MINOR_VERSION=0
           WEBKITGTK_API_VERSION=3.0
           WEBKITGTK_PC_NAME=webkitgtk
           GAIL_PC_NAME=gail-3.0
-          GAIL_REQUIRED_VERSION=3.0
+          GAIL_REQUIRED_VERSION=$GAIL3_REQUIRED_VERSION
           ;;
 esac
 
@@ -1110,6 +1115,15 @@
 if test "$enable_webkit2" = "no"; then
     enable_plugin_process=no
 fi
+
+# Make sure we have gtk+ 2.x to build the plugin process
+if test "$enable_plugin_process" = "yes"; then
+   PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= $GTK2_REQUIRED_VERSION gail >= $GAIL2_REQUIRED_VERSION)
+fi
+
+AC_SUBST(GTK2_CFLAGS)
+AC_SUBST(GTK2_LIBS)
+
 AC_MSG_RESULT([$enable_plugin_process])
 
 GTK_DOC_CHECK([1.10])
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to