On Wed, Aug 5, 2009 at 5:51 PM, Albert Bachand<[email protected]> wrote:
> Thanks, that was useful. The IPC messages right before the crash are:
>
> ipc 1855.ba2d400.22596386 3  ViewHostMsg_PaintRect (171016409, (0, 0, 1, 1),
> (1, 1), , 1)
> ipc 1855.ba2d400.22596386 3  ViewHostMsg_RenderViewReady
> ipc 1855.ba2d400.22596386 3  ViewHostMsg_DidStartLoading
> ipc 1855.ba2d400.22596386 3  ViewHostMsg_DidStartProvisionalLoadForFrame
> true, chrome://about/linux-splash
>
> Digging through the code it looks like the problem has to do with drawing
> the TabContentsViewGtk widgets. As far as I can tell, those widgets are not
> children of the GtkWindow widget which I'm drawing on the remote X screen.
> And since TabContentsViewGtk creates a custom widget (GtkFloatingContainer)
> that doesn't define a set_screen() function, I can't move that widget to the
> remote X screen.
>
> There's a few widgets that support being moved to a remote X screen
> (GtkWindow, GtkMenu, GtkInvisible, etc.) maybe the solution is to make
> GtkFloatingContainer support that as well. I'll keep digging...

Only top-level widgets should need a set_screen function, as otherwise
(as I understand it) the screen is inherited from the parent widget.
That's why for example GtkMenu has it (menus are top-level windows,
not children of the thing that popped it up).

As we discussed earlier, if I had to guess I'd say it's related to the
way we handle backing stores.  Generally we don't do any tricks with X
so it all should Just Work but the way renderers paint is very
complicated.

You could try stubbing out some of the functions in backing_store_x.cc
to see if you can make it neither crash nor draw anything, then go
from there.  I see a call to a function "x11_util::GetXDisplay()" that
seems like a good one to set a breakpoint on so you can trace it
backwards up to its caller, as that kind of call is surely the source
of these sorts of errors.

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: [email protected] 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to