#!/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=}"
		;;
	--url )
		url="$2"
		;;
esac

# 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
exit 0
