Fremantle: Coexist with a running MicroB process; don't kill MicroB at end of session... fremantle-microb-improvements
authorSteven Luo <steven+maemo@steven676.net>
Sun, 30 May 2010 07:58:08 +0000 (00:58 -0700)
committerSteven Luo <steven+maemo@steven676.net>
Sun, 30 May 2010 12:39:22 +0000 (05:39 -0700)
commit2128e00d3af65276bca25d1c7d55a8c8877fd60e
tree9613915695fc9870c671ca824b4969af3fee8e64
parentf6959716471c0f008bc2ef3dc1a4fb322e5bcfe3
Fremantle: Coexist with a running MicroB process; don't kill MicroB at end of session if MicroB is the default browser

With commit 07a0e091... ("Tweak detection of com.nokia.osso_browser
acquisition slightly"), it's almost possible to support opening a new
window in an already-running MicroB.  All we have to do is avoid
invoking a new browser process in that case, so do that here.

It also turns out to be possible to take back the com.nokia.osso_browser
D-Bus name from MicroB without killing it, which is interesting to us
because the need to kill MicroB is what necessitates the behavior
changes we force on MicroB.

On the other hand, if we choose to avoid killing MicroB, we lose the
ability to have MicroB take over handling osso_browser requests while a
MicroB window is open, and we waste memory for users who aren't using
MicroB very often.

Therefore, we take a compromise approach: if MicroB is set as the
default browser, we don't bother killing MicroB when the last browser
window closes (which simplifies the code considerably, since we no
longer need to monitor MicroB while it's running, and also means that
MicroB should behave as it does when browser-switchboard isn't running).
Otherwise, we act as before (watch the running MicroB and kill it when the
last browser window closes, with the behavior changes this requires).

For control freaks, there's also a new autostart_microb config option
which allows you to override this heuristic.  Setting autostart_microb
to 0 forces us to kill MicroB even when MicroB is the configured default
browser, and setting it to 1 forces us to leave MicroB running even when
MicroB isn't the default.
README
browser-switchboard.h
config.c
config.h
launcher.c
main.c