Changeset 167759 in webkit
- Timestamp:
- Apr 24, 2014 8:59:37 AM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r167749 r167759 1 2014-04-24 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] wmode='transparent' for flash plugin doesn't work 4 https://bugs.webkit.org/show_bug.cgi?id=120055 5 6 Reviewed by Gustavo Noronha Silva. 7 8 Force opaque window mode for flash plugin when wmode='transparent', 9 since X11 backend doesn't support transparency. We should add 10 proper transparency support because forcing opaque window mode 11 doesn't really work. Handle this as a plugin quirk instead of 12 adding X11 specific code to WebFrameLoaderClient::createPlugin(). 13 14 * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp: 15 (WebKit::NetscapePluginModule::determineQuirks): Add 16 ForceFlashWindowlessMode quirk for flash in case of EFL platform 17 because EFL port doesn't support windowed plugins. 18 * Shared/Plugins/PluginQuirks.h: Add ForceFlashWindowlessMode X11 19 plugin quirk. 20 * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: 21 (WebKit::NetscapePlugin::initialize): Modify or add wmode 22 parameter for flash plugin, to force opaque window mode when 23 transparent mode is specified or when ForceFlashWindowlessMode 24 quirk is present. 25 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: 26 (WebKit::WebFrameLoaderClient::createPlugin): Remove X11 specific code. 27 1 28 2014-04-23 Simon Fraser <simon.fraser@apple.com> 2 29 -
trunk/Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp
r166492 r167759 177 177 void NetscapePluginModule::determineQuirks() 178 178 { 179 #if CPU(X86_64)180 179 RawPluginMetaData metaData; 181 180 if (!getPluginInfoForLoadedPlugin(metaData)) … … 186 185 for (size_t i = 0; i < mimeTypes.size(); ++i) { 187 186 if (mimeTypes[i].type == "application/x-shockwave-flash") { 187 #if CPU(X86_64) 188 188 m_pluginQuirks.add(PluginQuirks::IgnoreRightClickInWindowlessMode); 189 #endif 190 #if PLATFORM(EFL) 191 m_pluginQuirks.add(PluginQuirks::ForceFlashWindowlessMode); 192 #endif 189 193 break; 190 194 } 191 195 } 192 #endif193 196 } 194 197 -
trunk/Source/WebKit2/Shared/Plugins/PluginQuirks.h
r157341 r167759 90 90 IgnoreRightClickInWindowlessMode, 91 91 92 // Some ports don't support windowed plugins. 93 ForceFlashWindowlessMode, 94 92 95 // Windows specific quirks: 93 96 #elif PLUGIN_ARCHITECTURE(WIN) -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
r165746 r167759 601 601 } 602 602 603 #if PLUGIN_ARCHITECTURE(X11) 604 if (equalIgnoringCase(parameters.mimeType, "application/x-shockwave-flash")) { 605 size_t wmodeIndex = parameters.names.find("wmode"); 606 if (wmodeIndex != notFound) { 607 // Transparent window mode is not supported by X11 backend. 608 if (equalIgnoringCase(parameters.values[wmodeIndex], "transparent") 609 || (m_pluginModule->pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode) && equalIgnoringCase(parameters.values[wmodeIndex], "window"))) 610 paramValues[wmodeIndex] = "opaque"; 611 } else if (m_pluginModule->pluginQuirks().contains(PluginQuirks::ForceFlashWindowlessMode)) { 612 paramNames.append("wmode"); 613 paramValues.append("opaque"); 614 } 615 } 616 #endif 617 603 618 // The strings that these pointers point to are kept alive by paramNames and paramValues. 604 619 Vector<const char*> names; -
trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
r167496 r167759 1322 1322 #endif 1323 1323 1324 #if PLUGIN_ARCHITECTURE(X11)1325 // FIXME: This should really be X11-specific plug-in quirks.1326 if (equalIgnoringCase(mimeType, "application/x-shockwave-flash")) {1327 // Currently we don't support transparency and windowed mode.1328 // Inject wmode=opaque to make Flash work in these conditions.1329 size_t wmodeIndex = parameters.names.find("wmode");1330 if (wmodeIndex == notFound) {1331 parameters.names.append("wmode");1332 parameters.values.append("opaque");1333 } else if (equalIgnoringCase(parameters.values[wmodeIndex], "window"))1334 parameters.values[wmodeIndex] = "opaque";1335 } else if (equalIgnoringCase(mimeType, "application/x-webkit-test-netscape")) {1336 parameters.names.append("windowedPlugin");1337 parameters.values.append("false");1338 }1339 #endif1340 1341 1324 #if ENABLE(NETSCAPE_PLUGIN_API) 1342 1325 RefPtr<Plugin> plugin = m_frame->page()->createPlugin(m_frame, pluginElement, parameters, parameters.mimeType);
Note: See TracChangeset
for help on using the changeset viewer.