#!/bin/bash
#
# Copyright (c) 2011 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Let the wrapped binary know that it has been run through the wrapper.
export CHROME_WRAPPER="`readlink -f "$0"`"

HERE="`dirname "$CHROME_WRAPPER"`"

# 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
# work for us by looking for xdg-settings. If we find it, we leave $PATH alone,
# so that the system xdg utilities (including any distro patches) will be used.
if ! which xdg-settings &> /dev/null; then
  # Old xdg utilities. Prepend $HERE to $PATH to use ours instead.
  export PATH="$HERE:$PATH"
else
  # Use system xdg utilities. But first create mimeapps.list if it doesn't
  # exist; some systems have bugs in xdg-mime that make it fail without it.
  xdg_app_dir="${XDG_DATA_HOME:-$HOME/.local/share/applications}"
  mkdir -p "$xdg_app_dir"
  [ -f "$xdg_app_dir/mimeapps.list" ] || touch "$xdg_app_dir/mimeapps.list"
fi

# Always use our versions of ffmpeg libs.
# This also makes RPMs find the compatibly-named library symlinks.
if [[ -n "$LD_LIBRARY_PATH" ]]; then
  LD_LIBRARY_PATH="$HERE:$HERE/lib:$LD_LIBRARY_PATH"
else
  LD_LIBRARY_PATH="$HERE:$HERE/lib"
fi

# tlcp set start
echo "before set tlcp LD_LIBRARY_PATH:$LD_LIBRARY_PATH"
arch=$(uname -m)
glibc_version=$(ldd --version 2>/dev/null | grep -i "glibc" | awk '{print $NF}')
echo "arch:$arch, glibc_version:$glibc_version"
if [ -n "$glibc_version" ]; then
  major=$(echo $glibc_version | cut -d. -f1)
  minor=$(echo $glibc_version | cut -d. -f2)
  patch=$(echo $glibc_version | cut -d. -f3)
  major_num=$(echo $major | awk '{print int($0)}')
  minor_num=$(echo $minor | awk '{print int($0)}')
  patch_num=$(echo $patch | awk '{print int($0)}')
  if [ "$arch" == "aarch64" ] || [ "$arch" == "arm64" ]; then
    if [ $major_num -gt 2 ] || { [ $major_num -eq 2 ] && ( [ $minor_num -gt 28 ] || ( [ $minor_num -eq 28 ] && [ $patch_num -ge 0 ] ) ); }; then
      LD_LIBRARY_PATH="$HERE/NSSLib:$LD_LIBRARY_PATH"
      echo "$arch set tlcp NSSLib"
    fi
  elif [ "$arch" == "x86_64" ]; then
    if [ $major_num -gt 2 ] || { [ $major_num -eq 2 ] && ( [ $minor_num -gt 27 ] || ( [ $minor_num -eq 27 ] && [ $patch_num -ge 0 ] ) ); }; then
      LD_LIBRARY_PATH="$HERE/NSSLib:$LD_LIBRARY_PATH"
      echo "$arch set tlcp NSSLib"
    fi
  fi
fi
echo "after set tlcp LD_LIBRARY_PATH:$LD_LIBRARY_PATH"
# tlcp set end

export LD_LIBRARY_PATH

export CHROME_VERSION_EXTRA="stable"

# We don't want bug-buddy intercepting our crashes. http://crbug.com/24120
export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME

# 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/chrome" "$@"
exec -a "$0" "$HERE/PSBCBrowser" "$@"
