Closed Aeva closed 7 years ago
I decoupled BrowserTab from Universe, and updated the message passing scheme to be more robust, so it should be fairly easy to implement this now.
Actually, all of the infrastructure is in place for this now - you just pass the universe object you want to add the new tab into when you call the new_tab method.
So, all that is really needed for this now is to add some method into the UI to create new tabs in-universe.
Ok, so this kind of works except that the path for closing tabs causes the browser to break, but I think maybe its better to address that in issue #14?
I think part of the problem is that I'm not closing down the plugs and sockets correctly, and so Gtk is exhibiting Strange Behavior as a result. This kind of makes sense because only the Plugs corresponding to other tabs in the universe go blank - the plugs of tabs in other universes will continue to work fine.
Also there is a segfault if you try to close a universe - I'm not sure what that is about :| Also the segfault only happens if you have multiple tabs open in the universe. Its fine if you only have one.
I'm going to mark this as closed and open up a new issue to track the close bugs.
Issue #4 should probably be implemented before this one. Issue #5 also.Issue 4 is complete, 5 probably doesn't matter that much in relation to this one, actually. Issue #14 will probably be resolved concurrently with this one.This issue might engender some rearchitecting of the IPC system. The basic idea is that a single universe subprocess might provide multiple webkit windows through multiple Gtk.Plug objects. These windows then have a 1:1 mapping to tabs. They should be able to share the same universe policy settings, cache, cookies, and so on.