#!/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=}"
;;
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