summaryrefslogtreecommitdiff
path: root/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp')
-rw-r--r--Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp b/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp
index 992d74075..870c01c27 100644
--- a/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp
+++ b/Source/WebKit2/PluginProcess/gtk/PluginProcessMainGtk.cpp
@@ -26,6 +26,7 @@
#include "config.h"
#include "PluginProcessMainGtk.h"
+#include "NetscapePlugin.h"
#include "PluginProcess.h"
#include <WebCore/RunLoop.h>
#include <gdk/gdkx.h>
@@ -53,12 +54,22 @@ static int webkitgtkXError(Display* xdisplay, XErrorEvent* error)
WK_EXPORT int PluginProcessMainGtk(int argc, char* argv[])
{
- ASSERT(argc == 2);
+ ASSERT(argc == 2 || argc == 3);
+ bool scanPlugin = !strcmp(argv[1], "-scanPlugin");
+ ASSERT(argc == 2 || (argc == 3 && scanPlugin));
gtk_init(&argc, &argv);
JSC::initializeThreading();
WTF::initializeMainThread();
+
+ if (scanPlugin) {
+ String pluginPath(argv[2]);
+ if (!NetscapePluginModule::scanPlugin(pluginPath))
+ return EXIT_FAILURE;
+ return EXIT_SUCCESS;
+ }
+
RunLoop::initializeMainRunLoop();
// Plugins can produce X errors that are handled by the GDK X error handler, which