Aeva / ridinghood

An experimental web browser for the paranoid
GNU General Public License v3.0
3 stars 2 forks source link

multi-tab universes #7

Closed Aeva closed 7 years ago

Aeva commented 7 years ago

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.

Aeva commented 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.

Aeva commented 7 years ago

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.

Aeva commented 7 years ago

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.

Aeva commented 7 years ago

I'm going to mark this as closed and open up a new issue to track the close bugs.