Changeset 212891 in webkit
- Timestamp:
- Feb 23, 2017 8:47:04 AM (7 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r212883 r212891 1 2017-02-23 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Crash attempting to load Flash plugin in Wayland 4 https://bugs.webkit.org/show_bug.cgi?id=163159 5 6 Reviewed by Michael Catanzaro. 7 8 The problem is that we check if the current diplay is X11 or Wayland also in the plugin process, but with GTK2 9 plugins the display is always X11. We should early reject plugins requiring GTK2 in the UI process when the 10 current display is Wayland. 11 12 * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp: 13 (WebKit::PluginInfoStore::getPluginInfo): 14 * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: 15 (WebKit::PluginProcessProxy::scanPlugin): 16 * UIProcess/gtk/WebPageProxyGtk.cpp: 17 (WebKit::WebPageProxy::createPluginContainer): Add an assert to ensure this message is never received on a 18 non-X11 display. 19 * WebProcess/Plugins/PluginView.cpp: 20 (WebKit::PluginView::createPluginContainer): Never send CreatePluginContainer message to the UI process if the 21 display is not X11. 22 1 23 2017-02-23 Eric Carlson <eric.carlson@apple.com> 2 24 -
trunk/Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
r208273 r212891 36 36 #include "ProcessExecutablePath.h" 37 37 #include <WebCore/FileSystem.h> 38 #include <WebCore/PlatformDisplay.h> 38 39 #include <limits.h> 39 40 #include <stdlib.h> … … 76 77 #if ENABLE(PLUGIN_PROCESS_GTK2) 77 78 if (plugin.requiresGtk2) { 79 if (PlatformDisplay::sharedDisplay().type() != PlatformDisplay::Type::X11) 80 return false; 78 81 String pluginProcessPath = executablePathOfPluginProcess(); 79 82 pluginProcessPath.append('2'); -
trunk/Source/WebKit2/UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp
r212557 r212891 34 34 #include "ProcessExecutablePath.h" 35 35 #include <WebCore/FileSystem.h> 36 #include <WebCore/PlatformDisplay.h> 36 37 #include <sys/wait.h> 37 38 #include <wtf/text/CString.h> … … 85 86 bool requiresGtk2 = pluginRequiresGtk2(pluginPath); 86 87 if (requiresGtk2) { 88 if (PlatformDisplay::sharedDisplay().type() != PlatformDisplay::Type::X11) 89 return false; 87 90 #if ENABLE(PLUGIN_PROCESS_GTK2) 88 91 pluginProcessPath.append('2'); -
trunk/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp
r207406 r212891 35 35 #include "WebProcessProxy.h" 36 36 #include "WebsiteDataStore.h" 37 #include <WebCore/PlatformDisplay.h> 37 38 #include <WebCore/UserAgent.h> 38 39 #include <gtk/gtkx.h> … … 103 104 void WebPageProxy::createPluginContainer(uint64_t& windowID) 104 105 { 106 RELEASE_ASSERT(WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::X11); 105 107 GtkWidget* socket = gtk_socket_new(); 106 108 g_signal_connect(socket, "plug-removed", G_CALLBACK(pluginContainerPlugRemoved), 0); -
trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp
r211946 r212891 73 73 #include <wtf/text/StringBuilder.h> 74 74 75 #if PLUGIN_ARCHITECTURE(X11) 76 #include <WebCore/PlatformDisplay.h> 77 #endif 78 75 79 using namespace JSC; 76 80 using namespace WebCore; … … 1678 1682 { 1679 1683 uint64_t windowID = 0; 1680 m_webPage->sendSync(Messages::WebPageProxy::CreatePluginContainer(), Messages::WebPageProxy::CreatePluginContainer::Reply(windowID)); 1684 if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::X11) 1685 m_webPage->sendSync(Messages::WebPageProxy::CreatePluginContainer(), Messages::WebPageProxy::CreatePluginContainer::Reply(windowID)); 1681 1686 return windowID; 1682 1687 }
Note: See TracChangeset
for help on using the changeset viewer.