Changeset 30218 in webkit
- Timestamp:
- Feb 13, 2008 6:13:53 PM (16 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r30215 r30218 1 2008-02-13 Jon Honeycutt <jhoneycutt@apple.com> 2 3 Reviewed by Anders. 4 5 <rdar://problem/5739282> Hangs after closing video trailer popup with 6 VLC plugin 7 8 VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window 9 handle. 10 11 * plugins/PluginQuirkSet.h: Added new quirk 12 PluginQuirkDontSetNullWindowHandleOnDestroy. 13 (WebCore::): 14 * plugins/win/PluginViewWin.cpp: 15 (WebCore::PluginView::stop): Selectively call NPP_SetWindow. 16 (WebCore::PluginView::determineQuirks): Set new quirk for VLC plug-in. 17 1 18 2008-02-13 Rodney Dawes <dobey@wayofthemonkey.com> 2 19 -
trunk/WebCore/plugins/PluginQuirkSet.h
r29974 r30218 44 44 PluginQuirkFlashURLNotifyBug = 1 << 8, 45 45 PluginQuirkDontClipToZeroRectWhenScrolling = 1 << 9, 46 PluginQuirkDontSetNullWindowHandleOnDestroy = 1 << 10, 46 47 }; 47 48 -
trunk/WebCore/plugins/win/PluginViewWin.cpp
r30203 r30218 786 786 // Clear the window 787 787 m_npWindow.window = 0; 788 if (m_plugin->pluginFuncs()->setwindow ) {788 if (m_plugin->pluginFuncs()->setwindow && !m_quirks.contains(PluginQuirkDontSetNullWindowHandleOnDestroy)) { 789 789 setCallingPlugin(true); 790 790 m_plugin->pluginFuncs()->setwindow(m_instance, &m_npWindow); … … 1474 1474 static const unsigned lastKnownUnloadableRealPlayerVersionMS = 0x00060000; 1475 1475 1476 // The flash plugin only requests windowless plugins if we return a mozilla user agent1477 1476 if (mimeType == "application/x-shockwave-flash") { 1477 // The flash plugin only requests windowless plugins if we return a mozilla user agent 1478 1478 m_quirks.add(PluginQuirkWantsMozillaUserAgent); 1479 1479 m_quirks.add(PluginQuirkThrottleInvalidate); … … 1482 1482 } 1483 1483 1484 // The WMP plugin sets its size on the first NPP_SetWindow call and never updates its size, so1485 // call SetWindow when the plugin view has a correct size1486 1484 if (m_plugin->name().contains("Microsoft") && m_plugin->name().contains("Windows Media")) { 1485 // The WMP plugin sets its size on the first NPP_SetWindow call and never updates its size, so 1486 // call SetWindow when the plugin view has a correct size 1487 1487 m_quirks.add(PluginQuirkDeferFirstSetWindowCall); 1488 1488 … … 1498 1498 m_quirks.add(PluginQuirkHasModalMessageLoop); 1499 1499 } 1500 1501 // VLC hangs on NPP_Destroy if we call NPP_SetWindow with a null window handle 1502 if (m_plugin->name() == "VLC Multimedia Plugin") 1503 m_quirks.add(PluginQuirkDontSetNullWindowHandleOnDestroy); 1500 1504 1501 1505 // The DivX plugin sets its size on the first NPP_SetWindow call and never updates its size, so
Note: See TracChangeset
for help on using the changeset viewer.