RESOLVED WONTFIX 46399
Implement plugin quirks in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=46399
Summary Implement plugin quirks in WebKit2
Adam Roben (:aroben)
Reported 2010-09-23 13:22:00 PDT
2010-09-23 16:18:39 Adam Roben: WebCore's plugin implementation has a set of quirks that are implemented for specific plugins. We should implement these quirks in WebKit2, too. <rdar://problem/8470824>
Attachments
[PATCH] Mozilla User Agent Quirk (4.44 KB, patch)
2011-05-12 14:02 PDT, Brian Weinstein
no flags
Brian Weinstein
Comment 1 2011-05-12 14:02:45 PDT
Created attachment 93333 [details] [PATCH] Mozilla User Agent Quirk
Adam Roben (:aroben)
Comment 2 2011-05-12 14:06:18 PDT
Comment on attachment 93333 [details] [PATCH] Mozilla User Agent Quirk View in context: https://bugs.webkit.org/attachment.cgi?id=93333&action=review > Source/WebKit2/Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp:126 > + // Pre Flash v10 only requests windowless plugins if we use a Mozilla user agent. > + > + // To test: Install Flash version < 10 (http://kb2.adobe.com/cps/142/tn_14266.html) > + // and test at http://communitymx.com/content/source/E5141/wmodetrans.htm. You should > + // see a star behind the bouncing ball. I'd move these comments inside the if (mimeTypes[i].type == ...) test. That way they are closer to the code that is actually dealing with Flash. I think it would be a little better to put the test case info in the bug and have the comment just reference the bug. > Source/WebKit2/Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp:129 > + if (mimeTypes[i].type == "application/x-shockwave-flash") { You could add a FIXME here saying that it's a little strange to assume that any plugin that handles this MIME type needs this quirk. (Maybe we should be checking the plugin's name instead, e.g.) > Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:137 > +#if PLUGIN_ARCHITECTURE(MAC) > + "Macintosh; U; Intel Mac OS X;" I don't think Apple's Mac port ever had this behavior before. (Only Qt/mac and GTK+/mac did.) We should test to make sure it's really desired.
Brian Weinstein
Comment 3 2011-05-12 14:14:45 PDT
Comment on attachment 93333 [details] [PATCH] Mozilla User Agent Quirk Not putting patches in this bug - using child bugs and treating this as an umbrella bug. See https://bugs.webkit.org/show_bug.cgi?id=60726 for this patch.
Adam Roben (:aroben)
Comment 4 2011-05-13 06:39:15 PDT
Here are all the plugin quirks that WebKit1 uses on Windows, and the revisions in which they were added. http://trac.webkit.org/browser/trunk/Source/WebCore/plugins/win/PluginPackageWin.cpp?rev=86242#L91 PluginQuirkFlashURLNotifyBug http://trac.webkit.org/changeset/29778 PluginQuirkDeferFirstSetWindowCall http://trac.webkit.org/changeset/23424 PluginQuirkDontAllowMultipleInstances http://trac.webkit.org/changeset/30698 PluginQuirkDontCallWndProcForSameMessageRecursively http://trac.webkit.org/changeset/25642 PluginQuirkDontClipToZeroRectWhenScrolling http://trac.webkit.org/changeset/29974 PluginQuirkDontSetNullWindowHandleOnDestroy http://trac.webkit.org/changeset/30218 PluginQuirkDontUnloadPlugin http://trac.webkit.org/changeset/25606 PluginQuirkHasModalMessageLoop http://trac.webkit.org/changeset/28700 PluginQuirkRemoveWindowlessVideoParam http://trac.webkit.org/changeset/23947 PluginQuirkThrottleInvalidate http://trac.webkit.org/changeset/23441 PluginQuirkThrottleWMUserPlusOneMessages http://trac.webkit.org/changeset/25310 PluginQuirkWantsMozillaUserAgent http://trac.webkit.org/changeset/22693 This quirk doesn't exist anymore, but once did, so might warrant investigation: PluginQuirksWantsAsciiWindowProc http://trac.webkit.org/changeset/23450
Adam Roben (:aroben)
Comment 5 2011-05-13 06:43:47 PDT
We should go through the above list and test which of these quirks are needed in WebKit2.
Adam Roben (:aroben)
Comment 6 2011-05-13 06:44:06 PDT
…and split each needed quirk into its own bug that blocks this one.
Adam Roben (:aroben)
Comment 7 2011-05-13 06:44:27 PDT
(In reply to comment #4) > PluginQuirkWantsMozillaUserAgent > http://trac.webkit.org/changeset/22693 This is bug 60726.
Adam Roben (:aroben)
Comment 8 2011-05-13 11:22:32 PDT
(In reply to comment #4) > PluginQuirkDeferFirstSetWindowCall > http://trac.webkit.org/changeset/23424 See also http://trac.webkit.org/changeset/23956
Adam Roben (:aroben)
Comment 9 2011-05-13 11:23:18 PDT
Adam Roben (:aroben)
Comment 10 2011-05-13 11:25:48 PDT
Adam Roben (:aroben)
Comment 11 2011-05-13 11:50:18 PDT
(In reply to comment #4) > PluginQuirkDontClipToZeroRectWhenScrolling > http://trac.webkit.org/changeset/29974 I filed bug 60782 about the QuickTime bug that r29974 was fixing. I haven't tested yet what would happen to Java if we were to fix that bug in the same way.
Adam Roben (:aroben)
Comment 12 2011-05-13 12:59:49 PDT
(In reply to comment #8) > (In reply to comment #4) > > PluginQuirkDeferFirstSetWindowCall > > http://trac.webkit.org/changeset/23424 > > See also http://trac.webkit.org/changeset/23956 WebKit2 always does the "defer first SetWindow call" behavior currently (as did WebKit1 before r23424). We haven't seen any issues with this behavior so far, so at the moment there's no reason to implement this quirk. (Maybe more testing with Flash 9 would expose an issue?) (See also bug 46716.)
Adam Roben (:aroben)
Comment 13 2011-05-13 13:06:22 PDT
(In reply to comment #4) > PluginQuirkThrottleWMUserPlusOneMessages > http://trac.webkit.org/changeset/25310 This is now bug 60792.
Adam Roben (:aroben)
Comment 14 2011-05-13 13:12:44 PDT
(In reply to comment #4) > PluginQuirkThrottleInvalidate > http://trac.webkit.org/changeset/23441 The original bug says that you couldn't select text at kids.yahoo.com. It was filed when Flash 9 was the newest version of Flash available. I can't repro the bug anymore (but the site has surely changed in the last 4 years). Seems pretty similar to bug 60792, though.
Adam Roben (:aroben)
Comment 15 2011-05-13 13:15:42 PDT
(In reply to comment #4) > PluginQuirkFlashURLNotifyBug > http://trac.webkit.org/changeset/29778 Original repro steps: 1. Go to http://mail.yahoo.com/ and sign in 2. Click "New" button on the left 3. Type anything in the "To:" field 4. Click the Back button 5. Confirm that you want to leave the page I can't reproduce any problem using these steps with Flash 9 installed (though of course the site has changed in the last 3.5 years). Seems like we're OK without this one.
Adam Roben (:aroben)
Comment 16 2011-05-13 13:17:42 PDT
(In reply to comment #11) > (In reply to comment #4) > > PluginQuirkDontClipToZeroRectWhenScrolling > > http://trac.webkit.org/changeset/29974 > > I filed bug 60782 about the QuickTime bug that r29974 was fixing. I haven't tested yet what would happen to Java if we were to fix that bug in the same way. To be clear: We definitely don't need this quirk until we fix bug 60782. If we fix bug 60782 the same way we fixed it in WebKit1 (by clipping to a zero rect while scrolling), then we'll need to test to see whether we need this quirk.
Adam Roben (:aroben)
Comment 17 2011-05-13 13:29:31 PDT
(In reply to comment #4) > PluginQuirkDontAllowMultipleInstances > http://trac.webkit.org/changeset/30698 This is now bug 60795.
Adam Roben (:aroben)
Comment 18 2011-05-13 13:58:09 PDT
(In reply to comment #4) > PluginQuirkDontSetNullWindowHandleOnDestroy > http://trac.webkit.org/changeset/30218 Original steps to reproduce: 1. Go to http://wdshe.jp/ghibli/special/iblard/ 2. Select Trailers 3. Select any of the WMP versions 4. Wait for the video to finish 5. Press Close This would cause a hang. That URL no longer exists. I can't reproduce a hang on http://revolunet.github.com/VLCcontrols/src/simple.html with VLC 0.8.6d or 1.1.9. Seems like we don't need this quirk for now.
Adam Roben (:aroben)
Comment 19 2011-05-13 14:13:47 PDT
(In reply to comment #4) > PluginQuirkRemoveWindowlessVideoParam > http://trac.webkit.org/changeset/23947 Original steps to reproduce: 1. Go to http://www.cnbc.com/ 2. Scroll down the page 3. Click on any movie from the right side of the page This would crash. CNBC uses Flash instead of Windows Media Player now. I tried to reproduce by modifying <http://www.vdat.com/techsupport/PRNwindowstest.asp> to pass "1" for "WindowlessVideo", but couldn't reproduce a crash. However, the plugin definitely doesn't paint, so I filed bug 60803.
Adam Roben (:aroben)
Comment 20 2011-05-13 14:38:36 PDT
(In reply to comment #10) > (In reply to comment #9) > > (In reply to comment #4) > > > PluginQuirkDontUnloadPlugin > > > http://trac.webkit.org/changeset/25606 Original repro steps: 1. Install Silverlight 1.0 2. Go to http://microsoft.com/silverlight/getassistance.aspx You'd crash. I can't find Silverlight 1.0 anywhere on microsoft.com anymore. That URL also no longer exists. Other Silverlight pages seem to work fine. And Anders tells me that the NPRuntime bug that is referenced in the comment for this quirk doesn't exist in WK2. So I think Silverlight is OK in WebKit2. > > See also http://trac.webkit.org/changeset/26898 Original repro steps: 1. Install Java 6 Update 3 2. Go to http://java.sun.com/products/plugin/1.4.1/demos/plugin/applets.html You'd crash. That URL no longer exists. I haven't yet tested Java 6 Update 3 on other pages. Anders says that the comment from that revision ("We purposefully do not destroy our Java VM when its reference count reaches 0") is still true. So it's possible this is still a problem for Java. > And http://trac.webkit.org/changeset/29871 Original repro steps: 1. Install RealPlayer 6.0.14 2. Go to http://www.pbs.org/wgbh/nova/genome/program_t.html 3. Click on any of the RealVideo links 4. Close the popup window You'd crash. I can't find RealPlayer 6.0.14 on any legitimate websites. The crash does not occur with RealPlayer 12.0.1.647. I guess we're probably OK. So, we need to test Java 6 Update 3 to see if it has issues.
Adam Roben (:aroben)
Comment 21 2011-05-13 14:43:27 PDT
(In reply to comment #4) > PluginQuirkHasModalMessageLoop > http://trac.webkit.org/changeset/28700 Original repro steps: 1. Go to <http://www.wptv.wp.pl/news.html?wid=9256941&type=1&rfbawp=1191311831.081&ticaid=14911> 2. Click on round button below the video You'd crash. wptv now uses Flash for their videos, so this can no longer be tested.
Adam Roben (:aroben)
Comment 22 2011-05-13 14:46:23 PDT
(In reply to comment #4) > PluginQuirkDontCallWndProcForSameMessageRecursively > http://trac.webkit.org/changeset/25642 Original repro steps: 1. Delete all cookies/preferences/cache 2. Go to bbcnews.co.uk 3. Scroll down to video and audio news 4. Click Watch button 5. Select RealPlayer and High quality in popup window You'd crash. BBC now uses Flash, so this can't be tested.
Adam Roben (:aroben)
Comment 23 2011-05-13 14:50:18 PDT
(In reply to comment #20) > So, we need to test Java 6 Update 3 to see if it has issues. Download link: http://java.sun.com/products/archive/j2se/6u3/index.html
Ahmad Saleem
Comment 24 2022-06-23 13:06:39 PDT
NPAPI plugin and Webkit plugins ae not supported anymore. Can this be marked as "RESOLVED WONTFIX"? Thanks! I think Plugin support and related quirks are not needed anymore. Can we also mark other "Dependent" bug as "RESOLVED WONTFIX", since they are plugin related? Thanks!
Note You need to log in before you can comment on or make changes to this bug.