's'
This commit is contained in:
@@ -248,14 +248,31 @@ visible_window_count() {
|
||||
DISPLAY="${DISPLAY:?DISPLAY is required}" xdotool search --onlyvisible --class "$browser_class" 2>/dev/null | wc -l | tr -d ' '
|
||||
}
|
||||
|
||||
devtools_ready() {
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
curl -fsS --max-time 1 http://127.0.0.1:9222/json/version >/dev/null 2>&1 && return 0
|
||||
fi
|
||||
if command -v wget >/dev/null 2>&1; then
|
||||
wget -q -T 1 -O /dev/null http://127.0.0.1:9222/json/version >/dev/null 2>&1 && return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
browser_healthy() {
|
||||
window_count="$(visible_window_count || true)"
|
||||
if [ -n "${window_count:-}" ] && [ "$window_count" -gt 0 ] 2>/dev/null; then
|
||||
return 0
|
||||
fi
|
||||
devtools_ready
|
||||
}
|
||||
|
||||
launch_browser
|
||||
|
||||
seen_window=0
|
||||
startup_misses=0
|
||||
closed_misses=0
|
||||
while kill -0 "$browser_pid" 2>/dev/null; do
|
||||
window_count="$(visible_window_count || true)"
|
||||
if [ -n "${window_count:-}" ] && [ "$window_count" -gt 0 ] 2>/dev/null; then
|
||||
if browser_healthy; then
|
||||
seen_window=1
|
||||
startup_misses=0
|
||||
closed_misses=0
|
||||
@@ -263,12 +280,14 @@ while kill -0 "$browser_pid" 2>/dev/null; do
|
||||
if [ "$seen_window" -eq 0 ]; then
|
||||
startup_misses=$((startup_misses + 1))
|
||||
if [ "$startup_misses" -ge 15 ]; then
|
||||
echo "Chromium did not expose a visible window or DevTools endpoint; restarting"
|
||||
kill -TERM "$browser_pid" 2>/dev/null || true
|
||||
break
|
||||
fi
|
||||
else
|
||||
closed_misses=$((closed_misses + 1))
|
||||
if [ "$closed_misses" -ge 3 ]; then
|
||||
echo "Chromium health check failed after startup; restarting"
|
||||
kill -TERM "$browser_pid" 2>/dev/null || true
|
||||
break
|
||||
fi
|
||||
|
||||
@@ -42,9 +42,6 @@ services:
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/chromium/policies/managed:ro"
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/chromium-browser/policies/managed:ro"
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/opt/chrome/policies/managed:ro"
|
||||
- "./external-extensions:/opt/google/chrome/extensions:ro"
|
||||
- "./external-extensions:/usr/share/chromium/extensions:ro"
|
||||
- "./external-extensions:/usr/share/chromium-browser/extensions:ro"
|
||||
- "./tampermonkey-seed:/etc/neko/tampermonkey-seed:ro"
|
||||
- "./provisioning:/var/www/provisioning:ro"
|
||||
- "./browser-launch.sh:/etc/neko/browser-launch.sh:ro"
|
||||
@@ -69,9 +66,6 @@ services:
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/chromium/policies/managed:ro"
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/chromium-browser/policies/managed:ro"
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/opt/chrome/policies/managed:ro"
|
||||
- "./external-extensions:/opt/google/chrome/extensions:ro"
|
||||
- "./external-extensions:/usr/share/chromium/extensions:ro"
|
||||
- "./external-extensions:/usr/share/chromium-browser/extensions:ro"
|
||||
- "./tampermonkey-seed:/etc/neko/tampermonkey-seed:ro"
|
||||
- "./provisioning:/var/www/provisioning:ro"
|
||||
- "./browser-launch.sh:/etc/neko/browser-launch.sh:ro"
|
||||
@@ -96,9 +90,6 @@ services:
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/chromium/policies/managed:ro"
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/chromium-browser/policies/managed:ro"
|
||||
- "${NEKO_POLICY_DIR:-./policies}:/etc/opt/chrome/policies/managed:ro"
|
||||
- "./external-extensions:/opt/google/chrome/extensions:ro"
|
||||
- "./external-extensions:/usr/share/chromium/extensions:ro"
|
||||
- "./external-extensions:/usr/share/chromium-browser/extensions:ro"
|
||||
- "./tampermonkey-seed:/etc/neko/tampermonkey-seed:ro"
|
||||
- "./provisioning:/var/www/provisioning:ro"
|
||||
- "./browser-launch.sh:/etc/neko/browser-launch.sh:ro"
|
||||
|
||||
Reference in New Issue
Block a user