#!/usr/bin/env bash
set -euo pipefail

url="${1:-about:blank}"
display="${DISPLAY:-:0}"
log_file="/tmp/turbo-agent-browser.log"
flags_file="/workspace/chrome-flags.txt"
extra_flags=()

export DISPLAY="$display"
export GTK_IM_MODULE="${GTK_IM_MODULE:-fcitx}"
export QT_IM_MODULE="${QT_IM_MODULE:-fcitx}"
export XMODIFIERS="${XMODIFIERS:-@im=fcitx}"
export INPUT_METHOD="${INPUT_METHOD:-fcitx}"
export SDL_IM_MODULE="${SDL_IM_MODULE:-fcitx}"
export REBROWSER_PATCHES_RUNTIME_FIX_MODE="${REBROWSER_PATCHES_RUNTIME_FIX_MODE:-addBinding}"
export REBROWSER_PATCHES_SOURCE_URL="${REBROWSER_PATCHES_SOURCE_URL:-app}"

if command -v fcitx5 >/dev/null 2>&1 && ! pgrep -x fcitx5 >/dev/null 2>&1; then
  (fcitx5 -d --replace >>"$log_file" 2>&1 || true)
fi

if [[ -f "$flags_file" ]]; then
  while IFS= read -r line; do
    [[ -z "$line" ]] && continue
    extra_flags+=("$line")
  done < "$flags_file"
fi

if command -v google-chrome >/dev/null 2>&1; then
  browser="google-chrome"
elif command -v chromium >/dev/null 2>&1; then
  browser="chromium"
elif command -v chromium-browser >/dev/null 2>&1; then
  browser="chromium-browser"
elif command -v x-www-browser >/dev/null 2>&1; then
  browser="x-www-browser"
else
  echo "当前沙盒镜像未安装可用浏览器" >&2
  exit 127
fi

mkdir -p /workspace/browser-profile

"$browser" \
  --no-sandbox \
  --disable-dev-shm-usage \
  --disable-gpu \
  --disable-blink-features=AutomationControlled \
  --remote-debugging-address=127.0.0.1 \
  --remote-debugging-port=9222 \
  --user-data-dir=/workspace/browser-profile \
  "${extra_flags[@]}" \
  --new-window "$url" \
  >>"$log_file" 2>&1 &

echo "已请求打开浏览器: $url"
echo "浏览器日志: $log_file"