Bug 18883

Summary: nspluginwrapper gets X11 BadWindow on PluginView::stop()
Product: WebKit Reporter: Chris Lord <chris>
Component: Plug-insAssignee: Nobody <webkit-unassigned>
Status: RESOLVED WORKSFORME    
Severity: Normal CC: gb.devel, marc.ordinasillopis, markybob, mrobinson, vicki
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   

Description Chris Lord 2008-05-04 04:20:04 PDT
After applying the patch in bug #18882 to fix the segfault with nspluginwrapper, one can navigate to youtube.com, where the flash works correctly, and navigate to a video page, where the flash still works correctly.

However, after navigating away from the video, npviewer.bin will receive an X11 BadWindow (invalid Window parameter) error and crash, stopping all subsequent flash from working.

Relevant part of the debugging log from nspluginwrapper/viewer:

*** NSPlugin Wrapper *** NPP_SetWindow instance=0xfbc2f0
*** NSPlugin Viewer  *** handle_NPP_SetWindow
The program 'npviewer.bin' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 15 error_code 3 request_code 3 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
*** NSPlugin Wrapper *** ERROR: NPP_SetWindow() wait for reply: Connection closed
*** NSPlugin Wrapper ***  return: 1 [NPERR_GENERIC_ERROR]
*** NSPlugin Wrapper *** NPP_Destroy instance=0xfbc2f0
*** NSPlugin Wrapper *** ERROR: NPP_Destroy() invoke: Connection closed

I guess this is happening in PluginView::stop, in WebCore/plugins/gtk/PluginViewGtk.cpp. SetWindow is being called with a NULL window, to signal that the plugin shouldn't do anything more with the window, as specified in the ns plugin API docs, but looking at the nspluginwrapper/viewer code, the case of a NULL window should be handled correctly...

I've no idea why this happens.
Comment 1 Gwenole Beauchesne 2008-06-27 06:38:41 PDT
Hi, this should be fixed for nspluginwrapper 1.0.0 (in particular, rev 585). If not, please tell me. Thanks.

$ svn co http://svn.beauchesne.info/svn/gwenole/projects/nspluginwrapper/branches/nspluginwrapper-1.0-branch
Comment 2 Vicki Murley 2008-12-17 15:49:13 PST
Filed <rdar://problem/6453738> on the SetWindow issue.
Comment 3 Martin Robinson 2010-12-01 17:41:04 PST
Is this still an issue? There's been no activity for about two years. I'm unsure why this WebKitGTK+ bug has a radar issue as well.
Comment 4 Martin Robinson 2011-06-23 15:39:13 PDT
No response for six months, so I'm just going to close this one. If it's still an issue, feel free to reopen with a comment.