44036f0330
http://www.mozilla.org/products/firefox/releases/1.0.7.html#new for the list of fixes in this release. Security: Fixes http://vuxml.FreeBSD.org/2e28cefb-2aee-11da-a263-0001020eed82.html among other things
471 lines
12 KiB
Text
471 lines
12 KiB
Text
--- browser/app/mozilla.in.orig Tue Oct 26 11:26:11 2004
|
|
+++ browser/app/mozilla.in Wed Mar 23 20:43:07 2005
|
|
@@ -29,51 +29,83 @@
|
|
## the mozilla-bin binary to work.
|
|
##
|
|
|
|
+#
|
|
+# MOZ_PIS, "Mozilla Plugable Init Scripts"
|
|
+# MOZ_PIS_ is the name space used
|
|
+# These variables and there meaning are specified in
|
|
+# mozilla/xpfe/bootstrap/init.d/README
|
|
moz_pis_startstop_scripts()
|
|
{
|
|
- MOZ_USER_DIR="%MOZ_USER_DIR%"
|
|
- # MOZ_PIS_ is the name space for "Mozilla Plugable Init Scripts"
|
|
- # These variables and there meaning are specified in
|
|
- # mozilla/xpfe/bootstrap/init.d/README
|
|
- MOZ_PIS_API=2
|
|
- MOZ_PIS_MOZBINDIR="${dist_bin}"
|
|
- MOZ_PIS_SESSION_PID="$$"
|
|
- MOZ_PIS_USER_DIR="${MOZ_USER_DIR}"
|
|
- export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR
|
|
-
|
|
- case "${1}" in
|
|
- "start")
|
|
- for curr_pis in "${dist_bin}/init.d"/S* "${HOME}/${MOZ_USER_DIR}/init.d"/S* ; do
|
|
- if [ -x "${curr_pis}" ] ; then
|
|
- case "${curr_pis}" in
|
|
- *.sh) . "${curr_pis}" ;;
|
|
- *) "${curr_pis}" "start" ;;
|
|
- esac
|
|
- fi
|
|
- done
|
|
- ;;
|
|
- "stop")
|
|
- for curr_pis in "${HOME}/${MOZ_USER_DIR}/init.d"/K* "${dist_bin}/init.d"/K* ; do
|
|
- if [ -x "${curr_pis}" ] ; then
|
|
- case "${curr_pis}" in
|
|
- *.sh) . "${curr_pis}" ;;
|
|
- *) "${curr_pis}" "stop" ;;
|
|
- esac
|
|
- fi
|
|
- done
|
|
- ;;
|
|
- *)
|
|
- echo 1>&2 "$0: Internal error in moz_pis_startstop_scripts."
|
|
- exit 1
|
|
- ;;
|
|
- esac
|
|
+ MOZ_PIS_API=2
|
|
+ MOZ_PIS_MOZBINDIR="${dist_bin}"
|
|
+ MOZ_PIS_SESSION_PID="$$"
|
|
+ MOZ_PIS_USER_DIR="${MOZ_USER_DIR}"
|
|
+ export MOZ_PIS_API MOZ_PIS_MOZBINDIR MOZ_PIS_SESSION_PID MOZ_PIS_USER_DIR
|
|
+
|
|
+ case "${1}" in
|
|
+ "start")
|
|
+ for curr_pis in "${MOZ_PIS_MOZBINDIR}/init.d"/S* \
|
|
+ "${HOME}/${MOZ_PIS_USER_DIR}/init.d"/S*; do
|
|
+ if [ -x "${curr_pis}" ]; then
|
|
+ case "${curr_pis}" in
|
|
+ *.sh)
|
|
+ . "${curr_pis}"
|
|
+ ;;
|
|
+ *)
|
|
+ ${curr_pis} "start"
|
|
+ ;;
|
|
+ esac
|
|
+ fi
|
|
+ done
|
|
+ ;;
|
|
+ "stop")
|
|
+ for curr_pis in "${MOZ_PIS_MOZBINDIR}/init.d"/K* \
|
|
+ "${HOME}/${MOZ_PIS_USER_DIR}/init.d"/K*; do
|
|
+ if [ -x "${curr_pis}" ]; then
|
|
+ case "${curr_pis}" in
|
|
+ *.sh)
|
|
+ . "${curr_pis}"
|
|
+ ;;
|
|
+ *)
|
|
+ ${curr_pis} "stop"
|
|
+ ;;
|
|
+ esac
|
|
+ fi
|
|
+ done
|
|
+ ;;
|
|
+ *)
|
|
+ echo "$0: Internal error in moz_pis_startstop_scripts." 1>&2
|
|
+ exit 1
|
|
+ ;;
|
|
+ esac
|
|
}
|
|
|
|
-#uncomment for debugging
|
|
+# uncomment for debugging
|
|
#set -x
|
|
|
|
-moz_libdir=%MOZAPPDIR%
|
|
-MRE_HOME=%MREDIR%
|
|
+#
|
|
+# variables
|
|
+#
|
|
+#location="new-tab"
|
|
+#MOZILLA_UILOCALE="en-US"
|
|
+#MOZILLA_UIREGION="US"
|
|
+
|
|
+#
|
|
+# working definitions
|
|
+#
|
|
+MOZ_USER_DIR="%MOZ_USER_DIR%"
|
|
+moz_libdir="%MOZAPPDIR%"
|
|
+MRE_HOME="%MREDIR%"
|
|
+
|
|
+debugging= # set the debugging level
|
|
+use_openFile="yes" # use openFile() for file/dir
|
|
+here=`pwd`
|
|
+
|
|
+if [ ! -d "${MRE_HOME}" ]; then
|
|
+ # use moz_libdir as MRE_HOME
|
|
+ MRE_HOME="${moz_libdir}"
|
|
+fi
|
|
+export MRE_HOME
|
|
|
|
# Use run-mozilla.sh in the current dir if it exists
|
|
# If not, then start resolving symlinks until we find run-mozilla.sh
|
|
@@ -82,151 +114,221 @@
|
|
curdir=`dirname "$progname"`
|
|
progbase=`basename "$progname"`
|
|
run_moz="$curdir/run-mozilla.sh"
|
|
-if test -x "$run_moz"; then
|
|
- dist_bin="$curdir"
|
|
- found=1
|
|
+if [ -x "$run_moz" ]; then
|
|
+ dist_bin="$curdir"
|
|
+ found=1
|
|
else
|
|
- here=`/bin/pwd`
|
|
- while [ -h "$progname" ]; do
|
|
- bn=`basename "$progname"`
|
|
- cd `dirname "$progname"`
|
|
- progname=`/bin/ls -l "$bn" | sed -e 's/^.* -> //' `
|
|
- if [ ! -x "$progname" ]; then
|
|
- break
|
|
- fi
|
|
- curdir=`dirname "$progname"`
|
|
- run_moz="$curdir/run-mozilla.sh"
|
|
- if [ -x "$run_moz" ]; then
|
|
- cd "$curdir"
|
|
- dist_bin=`pwd`
|
|
- run_moz="$dist_bin/run-mozilla.sh"
|
|
- found=1
|
|
- break
|
|
- fi
|
|
- done
|
|
- cd "$here"
|
|
+ while [ -h "${progname}" ]; do
|
|
+ bn=`basename "${progname}"`
|
|
+ cd `dirname "${progname}"`
|
|
+ progname=`ls -l "${bn}" | sed -e 's/^.* -> //'`
|
|
+ if [ ! -x "$progname" ]; then
|
|
+ break
|
|
+ fi
|
|
+ curdir=`dirname "${progname}"`
|
|
+ run_moz="${curdir}/run-mozilla.sh"
|
|
+ if [ -x "${run_moz}" ]; then
|
|
+ cd "$curdir"
|
|
+ dist_bin=`pwd`
|
|
+ run_moz="${dist_bin}/run-mozilla.sh"
|
|
+ found=1
|
|
+ break
|
|
+ fi
|
|
+ done
|
|
+ cd "${here}"
|
|
fi
|
|
if [ $found = 0 ]; then
|
|
- # Check default compile-time libdir
|
|
- if [ -x "$moz_libdir/run-mozilla.sh" ]; then
|
|
- dist_bin="$moz_libdir"
|
|
- else
|
|
- echo "Cannot find mozilla runtime directory. Exiting."
|
|
- exit 1
|
|
- fi
|
|
-fi
|
|
-
|
|
-script_args=""
|
|
-debugging=0
|
|
-MOZILLA_BIN="${progbase}-bin"
|
|
-
|
|
-# The following is to check for a currently running instance.
|
|
-# This is taken almost verbatim from the Mozilla RPM package's launch script.
|
|
-MOZ_CLIENT_PROGRAM="$dist_bin/mozilla-xremote-client"
|
|
-check_running() {
|
|
- "${run_moz}" "$MOZ_CLIENT_PROGRAM" -a "${progbase}" 'ping()' 2>/dev/null >/dev/null
|
|
- RETURN_VAL=$?
|
|
- if [ $RETURN_VAL -eq 0 ]; then
|
|
- echo 1
|
|
- return 1
|
|
+ # Check default compile-time libdir
|
|
+ if [ -x "${moz_libdir}/run-mozilla.sh" ]; then
|
|
+ dist_bin="$moz_libdir"
|
|
+ run_moz="${dist_bin}/run-mozilla.sh"
|
|
else
|
|
- echo 0
|
|
- return 0
|
|
+ echo "$0: Cannot find mozilla runtime directory. Exiting." 1>&2
|
|
+ exit 1
|
|
fi
|
|
-}
|
|
+fi
|
|
|
|
+MOZILLA_BIN="${progbase}-bin"
|
|
if [ "$OSTYPE" = "beos" ]; then
|
|
- mimeset -F "$MOZILLA_BIN"
|
|
+ mimeset -F "$MOZILLA_BIN"
|
|
fi
|
|
|
|
-ALREADY_RUNNING=`check_running`
|
|
+# test for binary apps in ${dist_bin}
|
|
+if [ -x "${dist_bin}/${MOZILLA_BIN}" ]; then
|
|
+ MOZILLA_BIN="${dist_bin}/${progbase}-bin"
|
|
+else
|
|
+ echo "$0: Cannot find mozilla binary executable. Exiting." 1>&2
|
|
+ exit 1
|
|
+fi
|
|
+if [ -x "${dist_bin}/mozilla-xremote-client" ]; then
|
|
+ MOZ_CLIENT_PROGRAM="${dist_bin}/mozilla-xremote-client -a ${progbase}"
|
|
+else
|
|
+ MOZ_CLIENT_PROGRAM="${MOZILLA_BIN} -remote -a ${progbase}"
|
|
+fi
|
|
|
|
-################################################################ Parse Arguments
|
|
-# If there's a command line argument but it doesn't begin with a -
|
|
-# it's probably a url. Try to send it to a running instance.
|
|
-_USE_EXIST=0
|
|
-_optOne="$1"
|
|
-case "${_optOne}" in
|
|
- -*)
|
|
- ;;
|
|
+# guest a default remote command
|
|
+_remote_cmd="xfeDoCommand(openBrowser)"
|
|
+
|
|
+# parse options
|
|
+script_args= # null
|
|
+moreargs= # null
|
|
+target= # null
|
|
+ALREADY_RUNNING="test"
|
|
+while [ $# -gt 0 ]
|
|
+do
|
|
+ if [ -n "${target}" ]; then
|
|
+ # well, this can't be the target if not last
|
|
+ moreargs="${moreargs} \"${target}\""
|
|
+ target= # null
|
|
+ fi
|
|
+ case "$1" in
|
|
+ # preserve [pP] for profile
|
|
+ --pure | -pure)
|
|
+ MOZILLA_BIN="${MOZILLA_BIN}.pure"
|
|
+ shift
|
|
+ ;;
|
|
+ -g | --debug)
|
|
+ script_args="${script_args} -g"
|
|
+ debugging=1
|
|
+ shift
|
|
+ ;;
|
|
+ -d | --debugger)
|
|
+ if [ -n "$2" ]; then
|
|
+ script_args="${script_args} -d $2"
|
|
+ shift 2
|
|
+ else
|
|
+ "$0: ERROR, $1 needs an argument. Exiting" 1>&2
|
|
+ exit 1
|
|
+ fi
|
|
+ ;;
|
|
+ -[Uu][Ii][Ll]ocale)
|
|
+ if [ -n "$2" ]; then
|
|
+ uilocale="$2"
|
|
+ shift 2
|
|
+ else
|
|
+ echo "$0: ERROR, $1 needs an argument. Exiting" 1>&2
|
|
+ exit 1
|
|
+ fi
|
|
+ ;;
|
|
+ -[Uu][Ii][Rr]egion)
|
|
+ if [ -n "$2" ]; then
|
|
+ uiregion="$2"
|
|
+ shift 2
|
|
+ else
|
|
+ echo "$0: ERROR, $1 needs an argument. Exiting" 1>&2
|
|
+ exit 1
|
|
+ fi
|
|
+ ;;
|
|
+ -browser)
|
|
+ # browser is default for firefox
|
|
+ shift
|
|
+ ;;
|
|
+ -turbo | -nosplash | -quiet)
|
|
+ # use remote even with this
|
|
+ moreargs="${moreargs} $1"
|
|
+ shift
|
|
+ ;;
|
|
+ -*)
|
|
+ # don't use remote with options
|
|
+ ALREADY_RUNNING= # null
|
|
+ moreargs="${moreargs} $1"
|
|
+ shift
|
|
+ ;;
|
|
*)
|
|
- _USE_EXIST=1
|
|
- ;;
|
|
-esac
|
|
-
|
|
-_optLast=
|
|
-for i in "$@"; do
|
|
- _optLast="${i}"
|
|
-done #last arg
|
|
-
|
|
-if [ `expr "${_optLast}" : '.*:/.*'` -eq 0 -a \( -f "${_optLast}" -o -d "${_optLast}" \) ]; then
|
|
- # Last argument seems to be a local file/directory
|
|
- # Check, if it is absolutely specified (ie. /home/foo/file vs. ./file)
|
|
- # If it is just "relatively" (./file) specified, make it absolutely
|
|
- [ `expr "${_optLast}" : '/.*'` -eq 0 ] && _optLast="file://`pwd`/${_optLast}"
|
|
-fi
|
|
-################################################################ Parse Arguments
|
|
-
|
|
-########################################################################### Main
|
|
-if [ $ALREADY_RUNNING -eq 1 ]; then
|
|
- # There's an instance already running. Use it.
|
|
- # Any command line args passed in?
|
|
- if [ $# -gt 0 ]; then
|
|
- # There were "some" command line args.
|
|
- if [ ${_USE_EXIST} -eq 1 ]; then
|
|
- # We should use an existing instance, as _USE_EXIST=$_USE_EXIST=-1
|
|
- _remote_cmd="openURL(${_optLast})"
|
|
- "${run_moz}" "$MOZ_CLIENT_PROGRAM" -a "${progbase}" "${_remote_cmd}"
|
|
- unset _remote_cmd
|
|
- exit $?
|
|
- fi
|
|
+ target="$1"
|
|
+ shift
|
|
+ ;;
|
|
+ esac
|
|
+done
|
|
+
|
|
+# test for a running copy of firefox
|
|
+# seems this is not needed
|
|
+#if [-n "${ALREADY_RUNNING}" ]; then
|
|
+# if [ -n "${DISPLAY}" ]; then
|
|
+# if [ -n "${debugging}" ]; then
|
|
+# echo "${run_moz} ${MOZ_CLIENT_PROGRAM} ping()"
|
|
+# ${run_moz} ${MOZ_CLIENT_PROGRAM} 'ping()' && ALREADY_RUNNING="yes"
|
|
+# else
|
|
+# ${run_moz} ${MOZ_CLIENT_PROGRAM} 'ping()' >/dev/null 2>&1 &&
|
|
+# ALREADY_RUNNING="yes"
|
|
+# fi
|
|
+# elif [ -n "${debugging}" ]; then
|
|
+# echo "$0: WARN, no DISPLAY environment" 1>&2
|
|
+# fi
|
|
+#fi
|
|
+
|
|
+# process target
|
|
+if [ -n "${target}" ]; then
|
|
+ moreargs="${moreargs} \"${target}\""
|
|
+ if [ -n "${ALREADY_RUNNING}" ]; then
|
|
+ if [ `expr "${target}" : '.*:.*'` -eq 0 ]; then
|
|
+ if [ `expr "${target}" : '/.*'` -eq 0 ]; then
|
|
+ target="${here}/${target}"
|
|
+ fi
|
|
+ if [ -r "${target}" -o -d "${target}" ]; then
|
|
+ [ -n "${use_openFile}" ] || target="file://${target}"
|
|
+ else
|
|
+ echo "$0: WARN, target: ${target} not an URI/file/dir" 1>&2
|
|
+ ALREADY_RUNNING= # null
|
|
+ fi
|
|
else
|
|
- # No command line args. Open new window/tab
|
|
- #exec "${run_moz}" "$MOZ_CLIENT_PROGRAM" -a "${progbase}" "xfeDoCommand(openBrowser)"
|
|
- "${run_moz}" "$MOZ_CLIENT_PROGRAM" -a "${progbase}" "xfeDoCommand(openBrowser)"
|
|
- exit $?
|
|
+ # an former URI, don't use openFile
|
|
+ use_openFile= # null
|
|
fi
|
|
+ fi
|
|
fi
|
|
-# Default action - no running instance or _USE_EXIST (${_USE_EXIST}) ! -eq 1
|
|
-########################################################################### Main
|
|
|
|
-pass_arg_count=0
|
|
-while [ $# -gt $pass_arg_count ]
|
|
-do
|
|
- case "$1" in
|
|
- -p | --pure | -pure)
|
|
- MOZILLA_BIN="${MOZILLA_BIN}.pure"
|
|
- shift
|
|
- ;;
|
|
- -g | --debug)
|
|
- script_args="$script_args -g"
|
|
- debugging=1
|
|
- shift
|
|
- ;;
|
|
- -d | --debugger)
|
|
- script_args="$script_args -d $2"
|
|
- shift 2
|
|
- ;;
|
|
- *)
|
|
- # Move the unrecognized argument to the end of the list.
|
|
- arg="$1"
|
|
- shift
|
|
- set -- "$@" "$arg"
|
|
- pass_arg_count=`expr $pass_arg_count + 1`
|
|
- ;;
|
|
- esac
|
|
-done
|
|
+# try remote protocol if running
|
|
+if [ -n "${ALREADY_RUNNING}" ]; then
|
|
+ if [ -n "${target}" ]; then
|
|
+ if [ -n "${use_openFile}" ]; then
|
|
+ _remote_cmd="openFile(${target})"
|
|
+ elif [ -n "${location}" ]; then
|
|
+ _remote_cmd="openURL(${target},${location})"
|
|
+ else
|
|
+ _remote_cmd="openURL(${target})"
|
|
+ fi
|
|
+ fi
|
|
+ # FIXME problems with freedesktop StartupNotify
|
|
+ if [ -n "${debugging}" ]; then
|
|
+ echo "${run_moz} ${script_args} ${MOZ_CLIENT_PROGRAM} ${_remote_cmd}"
|
|
+ ${run_moz} ${script_args} ${MOZ_CLIENT_PROGRAM} ${_remote_cmd} &&
|
|
+ exit 0
|
|
+ else
|
|
+ ${run_moz} ${script_args} ${MOZ_CLIENT_PROGRAM} ${_remote_cmd} \
|
|
+ >/dev/null 2>&1 && exit 0
|
|
+ fi
|
|
+fi
|
|
+
|
|
+# fallback to direct invocation
|
|
+
|
|
+# UILocale, UIRegion
|
|
+if [ -z "${uilocale}" -a -n "${MOZILLA_UILOCALE}" ]; then
|
|
+ uilocale="${MOZILLA_UILOCALE}"
|
|
+fi
|
|
+if [ -z "${uiregion}" -a -n "${MOZILLA_UIREGION}" ]; then
|
|
+ uiregion="${MOZILLA_UIREGION}"
|
|
+fi
|
|
+if [ -n "${uiregion}" -a -z "${uilocale}" ]; then
|
|
+ uilocale="en-US"
|
|
+fi
|
|
+if [ -n "${uilocale}" ]; then
|
|
+ if [ -n "${uiregion}" ]; then
|
|
+ moreargs="-UIRegion ${uiregion} ${moreargs}"
|
|
+ fi
|
|
+ moreargs="-UILocale ${uilocale} ${moreargs}"
|
|
+fi
|
|
|
|
-export MRE_HOME
|
|
+# real invocation
|
|
+eval "set -- ${moreargs}"
|
|
|
|
## Start addon scripts
|
|
moz_pis_startstop_scripts "start"
|
|
|
|
-if [ $debugging = 1 ]
|
|
-then
|
|
- echo $dist_bin/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN "$@"
|
|
+if [ -n "${debugging}" ]; then
|
|
+ echo "${run_moz} ${script_args} ${MOZILLA_BIN} $@"
|
|
fi
|
|
-"$dist_bin/run-mozilla.sh" $script_args "$dist_bin/$MOZILLA_BIN" "$@"
|
|
+${run_moz} ${script_args} ${MOZILLA_BIN} "$@"
|
|
exitcode=$?
|
|
|
|
## Stop addon scripts
|