[GTK] Add support for GTK3 plugins
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 31 Mar 2014 10:39:09 +0000 (10:39 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 31 Mar 2014 10:39:09 +0000 (10:39 +0000)
commit33b78088272dd7000853c80ad3f6f4ebbb27d1f5
tree3312209d86c0863c4e6ecb76b282c11d54475c3b
parent2f7675d4ec7b0891f7d83258ced639e82890ef94
[GTK] Add support for GTK3 plugins
https://bugs.webkit.org/show_bug.cgi?id=130599

Reviewed by Martin Robinson.

.:

* Source/cmake/OptionsGTK.cmake:

Source/WebKit2:

We currently have a gtk2 based plugin process mainly for flash
and a few other plugins that use GTK2, but many other plugins
don't even use gtk at all. This patch builds a lighter plugin
process based on GTK3, used by default for all the plugins expect
the ones requiring GTK2. And of course the default plugin process
supports GTK3 plugins.

* CMakeLists.txt: Add common rules to build the default plugin process.
* PlatformEfl.cmake: Remove common cmake code that is now in CMakeLists.txt.
* PlatformGTK.cmake: Rename WebKitPluginProcess to
WebKitPluginProcess2 and add the platform specific rules to build
the default plugin process.
* Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
(WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin):
Check if the loaded plugin module uses GTK2.
(WebKit::NetscapePluginModule::getPluginInfo): Set requiresGtk2 accordingly.
(WebKit::NetscapePluginModule::scanPlugin): Write "requires-gtk2"
line to stdout if the plugin requires GTK2.
* Shared/Plugins/PluginModuleInfo.h: Add requiresGtk2 boolean member.
* UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
(WebKit::ProcessLauncher::launchProcess): Use the
WebKitPluginProcess2 executable when the plugin requires GTK2.
* UIProcess/Plugins/PluginProcessProxy.h: Add requiresGtk2 boolean
member to RawPluginMetaData struct.
* UIProcess/Plugins/gtk/PluginInfoCache.cpp: Bump the cache schema version.
(WebKit::PluginInfoCache::getPluginInfo): Read also requires-gtk2
key from the cache.
(WebKit::PluginInfoCache::updatePluginInfo): Save also
requires-gtk2 key in the cache.
* UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::platformGetLaunchOptions): Add an
extra initialization data parameter if the plugin requires GTK2.
(WebKit::PluginProcessProxy::scanPlugin): Check if "requires-gtk2"
was written to stdout.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@166492 268f45cc-cd09-0410-ab3c-d52691b4dbfc
12 files changed:
ChangeLog
Source/WebKit2/CMakeLists.txt
Source/WebKit2/ChangeLog
Source/WebKit2/PlatformEfl.cmake
Source/WebKit2/PlatformGTK.cmake
Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp
Source/WebKit2/Shared/Plugins/PluginModuleInfo.h
Source/WebKit2/UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp
Source/WebKit2/UIProcess/Plugins/PluginProcessProxy.h
Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.cpp
Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
Source/cmake/OptionsGTK.cmake