# system wide chromium flags

ARCH="$(arch)"
MODE="$(systemd-detect-virt)"

# GRAPHIC_DRIVER=[amd|intel|nvidia|default]
GRAPHIC_DRIVER=default

# WEB_AUTO_DARKMODE_WEBCONTENT=[on|off]
WEB_AUTO_DARKMODE_WEBCONTENT=off

# NATIVE_WAYLAND=[on|off]
# chromium >=141 switched to --ozone-platform-hint=auto
if [ ! -z "$WAYLAND_DISPLAY" ]; then
   NATIVE_WAYLAND=on
else
   NATIVE_WAYLAND=off
fi

DISABLE_FEATURES="LensOverlay"
ENABLE_FEATURES="AllowQt"
CHROMIUM_FLAGS=" --enable-chrome-browser-cloud-management"
if [ "$NATIVE_WAYLAND" == "on" ] ; then
   ENABLE_FEATURES+=",WaylandLinuxDrmSyncobj,WaylandPerSurfaceScale,WaylandUiScale"
else
   CHROMIUM_FLAGS+=" --enable-gpu-memory-buffer-video-frames"
   CHROMIUM_FLAGS+=" --enable-zero-copy"
   CHROMIUM_FLAGS+=" --ignore-gpu-blocklist --disable-gpu-driver-bug-workaround"
   CHROMIUM_FLAGS+=" --enable-gpu-rasterization"
fi

ENABLE_FEATURES+=",AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL"

case "$GRAPHIC_DRIVER" in
   amd|intel)
      # Need new mesa with AMD multi planes support, is supported in fedora >= 40 (mesa-24.1.1 or newer)
      # see https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26165
      CHROMIUM_FLAGS+=" --enable-accelerated-video-decode"
      ENABLE_FEATURES+=",VaapiIgnoreDriverChecks,UseMultiPlaneFormatForHardwareVideo"
      ;;
   nvidia)
      # The NVIDIA VaAPI drivers are known to not support Chromium
      # see https://crbug.com/1492880. This feature switch is
      # provided for developers to test VaAPI drivers on NVIDIA GPUs
      ENABLE_FEATURES+=",VaapiOnNvidiaGPUs"
      export CUDA_DISABLE_PERF_BOOST=1
      ;;
   *)
      ENABLE_FEATURES+=",AcceleratedVideoEncoder"
      ;;
esac

if [ "$MODE" != "none" ] ; then
   # chromium in VM, running with standard setting
   CHROMIUM_FLAGS=""
   DISABLE_FEATURES=""
   ENABLE_FEATURES=""
fi

# Web Dark mode
if [ "$WEB_AUTO_DARKMODE_WEBCONTENT" == "on" ] ; then
   darktype="WebContentsForceDark"
   if [ -z "$ENABLE_FEATURES" ] ; then
       ENABLE_FEATURES+="$darktype"
   else
       ENABLE_FEATURES+=",$darktype"
   fi
   CHROMIUM_FLAGS+=" --force-dark-mode"
fi

[ -z "$DISABLE_FEATURES" ] || CHROMIUM_FLAGS+=" --disable-features=$DISABLE_FEATURES"
[ -z "$ENABLE_FEATURES" ] || CHROMIUM_FLAGS+=" --enable-features=$ENABLE_FEATURES"
