X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=blobdiff_plain;f=microb;h=ed7c0061a0e29d3dd0c66897b8c0803e1db169ea;hp=334523fd455861bcec3566a99800ee439ac34f7e;hb=e3ec5ec543a7a76d230d3102666a6a33ae20c496;hpb=e59a225f28a6db6e931acb52a4a0ae7a71eaf0f7 diff --git a/microb b/microb index 334523f..ed7c006 100755 --- a/microb +++ b/microb @@ -1,5 +1,15 @@ #!/bin/sh +get_name_owner() { + output=$(dbus-send --session --type=method_call --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:"$1" 2>/dev/null) + RETVAL=$? + if [ $RETVAL -ne 0 ]; then + return $RETVAL + fi + echo "$output" | tail -1 + return 0 +} + case "$1" in --url=* ) url="${1#--url=}" @@ -9,10 +19,24 @@ case "$1" in ;; esac -if pidof browser > /dev/null 2>&1; then - method=open_new_window -else +# Check whether Browser Switchboard owns the com.nokia.osso_browser name or not +osso_browser_owner=$(get_name_owner com.nokia.osso_browser) +if [ $? -ne 0 ]; then + # No one owns com.nokia.osso_browser -- let D-Bus start + # browser-switchboard to handle this request method=switchboard_launch_microb +else + # If com.nokia.osso_browser is owned by the owner of + # org.maemo.garage.browser-switchboard, then Browser Switchboard must + # be the owner + browser_switchboard_owner=$(get_name_owner org.maemo.garage.browser-switchboard) + if [ "$osso_browser_owner" = "$browser_switchboard_owner" ]; then + # Browser Switchboard owns com.nokia.osso_browser + method=switchboard_launch_microb + else + # Assume MicroB owns com.nokia.osso_browser + method=open_new_window + fi fi dbus-send --session --type=method_call --print-reply --dest="com.nokia.osso_browser" /com/nokia/osso_browser/request com.nokia.osso_browser.$method string:${url:-"new_window"} > /dev/null 2>&1