#!/bin/bash
# Run the ANGLE addConstructor size-bypass POC against an ASAN Chrome build.
#
# Usage: ./run.sh [extra-chrome-flags...]
#
# Requires server.py running on port 8080 (start with: python3 server.py &).

set -u

CHROME=${CHROME:-/chromium/chromium/src/out/asan/chrome}
PROFILE=/tmp/chrome-poc-profile-$$
URL=${URL:-http://127.0.0.1:8080/poc.html}
ANGLE_BACKEND=${ANGLE_BACKEND:-swiftshader}

rm -rf "$PROFILE"

ASAN_OPTIONS="detect_odr_violation=0:handle_abort=1:symbolize=1" \
"$CHROME" \
  --no-sandbox \
  --no-first-run --no-default-browser-check \
  --disable-gpu-sandbox \
  --ignore-gpu-blocklist \
  --enable-unsafe-swiftshader \
  --use-angle="$ANGLE_BACKEND" \
  --user-data-dir="$PROFILE" \
  --enable-logging=stderr --v=0 \
  --headless=new \
  --virtual-time-budget=60000 \
  "$@" \
  "$URL" 2>&1

rm -rf "$PROFILE"
