On Thu, 2007-05-10 at 11:27 -0400, Benjamin Smedberg wrote:
> Andrew Gough wrote:
> 
<snip>
> This is not a recommended embedding configuration. Please build XULRunner
> and use that for all new embedding. You do not need/should not use
> embedding/config
> 
done. 

> > One issue was no 'nsIBaseWindow.idl' or 'nsIDocShellTreeItem.idl' in
> > 'sdk/idl', so I added it manually, ran xpidl on it and got header files.
> 
> Indeed, the sdk/ directory contains only frozen interfaces that are
> guaranteed not to break, and those interfaces are not frozen.
> 
Same issue with XULRunner - I just symlinked the headers it appeared I
needed.

> > App links, loads, and succeeds to initialise, but I get the follwoing
> > errors on stderr:
> > 
> > Couldn't convert chrome URL: 
This error has disappeared.

I am sooo close, now, I know it.  My app compiles/links/executes.  I do
all the Gecko initialisation stuff (using GRE_Startup), and everything
seems happy.  I point the engine to 'http://www.slashdot.org', and it
heads off and loads all the content, seems to do some serious layout
work, and then....SEGV

About to create new ws_info...
About to create new xtbin of 300 X 250 from 0x81cb788...
About to show xtbin(0x838e968)...
completed gtk_widget_show(0x838e968)
[New Thread -1333068912 (LWP 15294)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1234094416 (LWP 15276)]
0xb69159aa in XtWidgetToApplicationContext () from /usr/lib/libXt.so.6
(gdb) bt
#0  0xb69159aa in XtWidgetToApplicationContext ()
from /usr/lib/libXt.so.6
#1  0xb6930309 in XtSetValues () from /usr/lib/libXt.so.6
#2  0xb5bb40b3 in gtk_xtbin_resize (widget=0x838e968, width=300,
height=250)
    at /home/goughy/devel/mozilla/widget/src/gtkxtbin/gtk2xtbin.c:425
#3  0xb5823c1f in ns4xPluginInstance::SetWindow (this=0x87fc8f0,
window=0x87e9a9c)

at 
/home/goughy/devel/mozilla/modules/plugin/base/src/ns4xPluginInstance.cpp:1224
#4  0xb5842060 in nsPluginNativeWindowGtk2::CallSetWindow
(this=0x87e9a98, [EMAIL PROTECTED])

at 
/home/goughy/devel/mozilla/modules/plugin/base/src/nsPluginNativeWindowGtk2.cpp:136
#5  0xb5122f34 in nsObjectFrame::DidReflow (this=0x891bb88,
aPresContext=0x83ef900, aReflowState=0xbfbe41fc, aStatus=1)
    at /home/goughy/devel/mozilla/layout/generic/nsObjectFrame.cpp:919

... <snipped> ...

#67 0xb50ada12 in PresShell::ReflowEvent::Run (this=0x8803690)
at /home/goughy/devel/mozilla/layout/base/nsPresShell.cpp:5931
#68 0xb5b62ce2 in nsThread::ProcessNextEvent (this=0x826dba0, mayWait=0,
result=0xbfbeb0d8)
    at /home/goughy/devel/mozilla/xpcom/threads/nsThread.cpp:482
#69 0xb5b0d6b6 in NS_ProcessPendingEvents_P (thread=0x826dba0,
timeout=20) at nsThreadUtils.cpp:180
#70 0xb5a4145f in nsBaseAppShell::NativeEventCallback (this=0x8279e18)

at /home/goughy/devel/mozilla/widget/src/xpwidgets/nsBaseAppShell.cpp:112
#71 0xb5a29778 in nsAppShell::EventProcessorCallback (source=0x82ac270,
condition=G_IO_IN, data=0x8279e18)
    at /home/goughy/devel/mozilla/widget/src/gtk2/nsAppShell.cpp:69
#72 0xb6ed8fef in ?? () from /usr/lib/libglib-2.0.so.0

Looking at frame
#2 /home/goughy/devel/mozilla/widget/src/gtkxtbin/gtk2xtbin.c:425

(gdb) print *((GtkXtBin*)widget) 
$1 = {gsocket = {container = {widget = {object = {parent_instance =
{g_type_instance = {g_class = 0x87fd5b0}, ref_count = 1, 
            qdata = 0x8902e00}, flags = 2098944}, private_flags = 15360,
state = 0 '\0', saved_state = 0 '\0', name = 0x0, 
        style = 0x81d8178, requisition = {width = 0, height = 0},
allocation = {x = -1, y = -1, width = 1, height = 1}, window = 0x0, 
        parent = 0x81eee88}, focus_child = 0x0, border_width = 0,
need_resize = 0, resize_mode = 0, reallocate_redraws = 0, 
      has_focus_chain = 0}, request_width = 0, request_height = 0,
current_width = 0, current_height = 0, plug_window = 0x0, 
    plug_widget = 0x0, xembed_version = 0, same_app = 0, focus_in = 0,
have_size = 0, need_map = 0, is_mapped = 0, active = 0, 
    accel_group = 0x872ad80, toplevel = 0x0}, parent_window = 0x81cb788,
xtdisplay = 0x891bd78, xtwindow = 0, x = 0, y = 0, width = 0, 
  height = 0, xtclient = {xtdisplay = 0x891bd78, top_widget = 0x0,
child_widget = 0x0, xtvisual = 0x81bc368, xtdepth = 24, 
    xtcolormap = 32, oldwindow = 0}}

It looks to me that the SEGV is due to 'xtbin->xtclient.top_widget ==
0x0'

Anyone have any ideas?

Goughy

_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding

Reply via email to