X-Git-Url: http://git.maemo.org/git/?p=browser-switch;a=blobdiff_plain;f=microb;h=ed7c0061a0e29d3dd0c66897b8c0803e1db169ea;hp=2e00f5efe760a152f89427d2cb62b673aa9187f2;hb=74d509caaae2d82f8938176c2492bdc4310f84b3;hpb=846e68b8ffa979d30ed331c43020212ffdee2bf2 diff --git a/microb b/microb index 2e00f5e..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,15 +19,25 @@ case "$1" in ;; esac -if pidof browser > /dev/null 2>&1; then - dest="com.nokia.osso_browser" - path="/com/nokia/osso_browser/request" - method="com.nokia.osso_browser.open_new_window" +# 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 - dest="org.maemo.garage.browser_switchboard" - path="/org/maemo/garage/browser_switchboard" - method="org.maemo.garage.browser_switchboard.launch_microb" + # 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="$dest" "$path" "$method" string:${url:-"new_window"} > /dev/null 2>&1 +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 exit 0