Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / tools / test / reference_build / chrome_linux / installer / common / wrapper
index 774a83d..d06b674 100755 (executable)
@@ -9,6 +9,25 @@ export CHROME_WRAPPER="`readlink -f "$0"`"
 
 HERE="`dirname "$CHROME_WRAPPER"`"
 
+# Check if the CPU supports SSE2. If not, try to pop up a dialog to explain the
+# problem and exit. Otherwise the browser will just crash with a SIGILL.
+# http://crbug.com/348761
+grep ^flags /proc/cpuinfo|grep -qs sse2
+if [ $? != 0 ]; then
+  SSE2_DEPRECATION_MSG="This computer can no longer run Google Chrome because \
+its hardware is no longer supported."
+  if which zenity &> /dev/null; then
+    zenity --warning --text="$SSE2_DEPRECATION_MSG"
+  elif which gmessage &> /dev/null; then
+    gmessage "$SSE2_DEPRECATION_MSG"
+  elif which xmessage &> /dev/null; then
+    xmessage "$SSE2_DEPRECATION_MSG"
+  else
+    echo "$SSE2_DEPRECATION_MSG" 1>&2
+  fi
+  exit 1
+fi
+
 # We include some xdg utilities next to the binary, and we want to prefer them
 # over the system versions when we know the system versions are very old. We
 # detect whether the system xdg utilities are sufficiently new to be likely to
@@ -48,4 +67,18 @@ if [[ -n "@@SXS_USER_DATA_DIR@@" ]]; then
   fi
 fi
 
-exec -a "$0" "$HERE/@@PROGNAME@@" @@DEFAULT_FLAGS@@ "$@"
+# Make sure that the profile directory specified in the environment, if any,
+# overrides the default.
+if [[ -n "$CHROME_USER_DATA_DIR" ]]; then
+  PROFILE_DIRECTORY_FLAG="--user-data-dir=$CHROME_USER_DATA_DIR"
+fi
+
+# Sanitize std{in,out,err} because they'll be shared with untrusted child
+# processes (http://crbug.com/376567).
+exec < /dev/null
+exec > >(exec cat)
+exec 2> >(exec cat >&2)
+
+# Note: exec -a below is a bashism.
+exec -a "$0" "$HERE/@@PROGNAME@@" @@DEFAULT_FLAGS@@ "$PROFILE_DIRECTORY_FLAG" \
+  "$@"