Sat 27 May 2006 06:01:14 PM UTC, comment #3:
This is currently still broken for me (just grabbed fresh CVS code just now).
13:55:01: xEmbed supported in this Mozilla version
13:55:01: Gtk2+ supported in this Mozilla version
13:55:01: TRACE: nsPluginInstanceBase* NS_NewPluginInstance(nsPluginCreateData*) enter
13:55:01: TRACE: nsPluginInstance::nsPluginInstance(NPP_t*) enter
13:55:01: TRACE: virtual NPError nsPluginInstance::GetValue(NPPVariable, void*): enter for instance 0x111c62a8
13:55:01: TRACE: NPError NS_PluginGetValue(NPPVariable, void*) enter
13:55:01: TRACE: virtual NPError nsPluginInstance::SetWindow(NPWindow*): enter for instance 0x111c62a8
13:55:01: TRACE: void nsPluginInstance::lockGL(): for instance 0x111c62a8
13:55:01: TRACE: void nsPluginInstance::lockX(): for instance 0x111c62a8
13:55:01: SetWindow: Got new glxContext 0x10f69c88
13:55:01: TRACE: void nsPluginInstance::setGL(): gxDisplay = 0x111c5290, _window = 0x3205b9a, _glxContext = 0x10f69c88 for instance 0x111c62a8
The program 'Gecko' received an X Window System error.
Seems to crash on every SWF applet I come across.
Ubuntu/ppc Firefox 1.5.0.1
I can get a backtrace if that will help.
|
Tue 28 Feb 2006 04:15:39 AM UTC, original submission:
i was trying to get gnash to play youtube videos when i came across this.
this is with firefox 1.0.4 on debian and the latest gnash cvs sources (2/27/06). the crash occurs in nsPluginInstance::SetWindow() when it calls SetGL(). i can't say for sure, but it looks like the attributes of the GLXContext created here don't match the attributes of the plugin's window. (is colormap the problem?) here's a transcript of the gdb session.
$ firefox --debugger gdb --sync flash.html
GNU gdb 6.4-debian
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) b NS_PluginInitialize
Function "NS_PluginInitialize" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (NS_PluginInitialize) pending.
(gdb) r
Breakpoint 2 at 0xb44c334c: file plugin.cpp, line 117.
Pending breakpoint "NS_PluginInitialize" resolved
Breakpoint 2, NS_PluginInitialize () at plugin.cpp:117
117 printf("%s: Initializing the Plugin\n",
Current language: auto; currently c++
(gdb) b plugin.cpp:386
Breakpoint 3 at 0xb44c3d60: file plugin.cpp, line 386.
(gdb) c
Continuing.
NPError NS_PluginInitialize(): Initializing the Plugin
nsPluginInstanceBase* NS_NewPluginInstance(nsPluginCreateData*)(184): Entering
nsPluginInstance::nsPluginInstance(NPP_t*)(219): Entering
virtual NPBool nsPluginInstance::init(NPWindow*): X origin = 8, Y Origin = 8, Wi
dth = 470, Height = 390 WindowID = 0x1600001 this = 0x9430808
void nsPluginInstance::initGL()(616): Entering
void nsPluginInstance::initGL(): Initializing OpenGL...
virtual NPError nsPluginInstance::SetWindow(NPWindow*): X origin = 8, Y Origin =
8, Width = 470, Height = 390 WindowID = 0x1600001 this = 0x9430808
Breakpoint 3, nsPluginInstance::SetWindow (this=0x9430808, aWindow=0x94ce98c)
at plugin.cpp:386
386 mContext = glXCreateContext(gxDisplay, vi, 0, GL_TRUE);
(gdb) p (NPSetWindowCallbackStruct)*ws_info
$1 = {type = 0, display = 0x92d3000, visual = 0x8e50488, colormap = 32,
depth = 24}
(gdb) p (XVisualInfo)*vi
$2 = {visual = 0x9095040, visualid = 39, screen = 0, depth = 24, c_class = 4,
red_mask = 16711680, green_mask = 65280, blue_mask = 255,
colormap_size = 256, bits_per_rgb = 8}
(gdb) l
381 vi = glXChooseVisual(gxDisplay, DefaultScreen(gxDisplay), at
tributeList_noFSAA);
382 } else {
383 vi->visual = mVisual;
384 }
385
386 mContext = glXCreateContext(gxDisplay, vi, 0, GL_TRUE);
387 if (mContext) {
388 printf("Got new glx Context\n");
389 _glInitialized = TRUE;
390 setGL();
(gdb) n
387 if (mContext) {
(gdb) s
388 printf("Got new glx Context\n");
(gdb) n
Got new glx Context
389 _glInitialized = TRUE;
(gdb) n
390 setGL();
(gdb) s
nsPluginInstance::setGL (this=0x9430808) at plugin.h:78
78 glXMakeCurrent(gxDisplay, mWindow, mContext);
(gdb) n
The program 'Gecko' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadMatch (invalid parameter attributes)'.
(Details: serial 23 error_code 8 request_code 145 minor_code 5)
(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.)
Program exited with code 01.
(gdb) q
|