73 lines
2.7 KiB
Python
73 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
"""Binary search for which Playwright default arg causes Chrome SIGTRAP on Ubuntu 26.04."""
|
|
from playwright.sync_api import sync_playwright
|
|
|
|
default_args = [
|
|
'--disable-field-trial-config',
|
|
'--disable-background-networking',
|
|
'--disable-background-timer-throttling',
|
|
'--disable-backgrounding-occluded-windows',
|
|
'--disable-back-forward-cache',
|
|
'--disable-breakpad',
|
|
'--disable-client-side-phishing-detection',
|
|
'--disable-component-extensions-with-background-pages',
|
|
'--disable-component-update',
|
|
'--no-default-browser-check',
|
|
'--disable-default-apps',
|
|
'--disable-dev-shm-usage',
|
|
'--disable-extensions',
|
|
'--disable-features=AvoidUnnecessaryBeforeUnloadCheckSync,BoundaryEventDispatchTracksNodeRemoval,DestroyProfileOnBrowserClose,DialMediaRouteProvider,GlobalMediaControls,HttpsUpgrades,LensOverlay,MediaRouter,PaintHolding,ThirdPartyStoragePartitioning,Translate,AutoDeElevate,RenderDocument,OptimizationHints',
|
|
'--enable-features=CDPScreenshotNewSurface',
|
|
'--allow-pre-commit-input',
|
|
'--disable-hang-monitor',
|
|
'--disable-ipc-flooding-protection',
|
|
'--disable-popup-blocking',
|
|
'--disable-prompt-on-repost',
|
|
'--disable-renderer-backgrounding',
|
|
'--force-color-profile=srgb',
|
|
'--metrics-recording-only',
|
|
'--no-first-run',
|
|
'--password-store=basic',
|
|
'--use-mock-keychain',
|
|
'--no-service-autorun',
|
|
'--export-tagged-pdf',
|
|
'--disable-search-engine-choice-screen',
|
|
'--unsafely-disable-devtools-self-xss-warnings',
|
|
'--edge-skip-compat-layer-relaunch',
|
|
'--enable-automation',
|
|
'--disable-infobars',
|
|
'--disable-sync',
|
|
'--enable-unsafe-swiftshader',
|
|
'--hide-scrollbars',
|
|
'--mute-audio',
|
|
'--blink-settings=primaryHoverType=2,availableHoverTypes=2,primaryPointerType=4,availablePointerTypes=4',
|
|
]
|
|
|
|
def test(ignored_flags):
|
|
try:
|
|
p = sync_playwright().start()
|
|
b = p.chromium.launch(
|
|
executable_path='/usr/bin/google-chrome-stable',
|
|
headless=True,
|
|
args=['--no-sandbox', '--disable-gpu'],
|
|
ignore_default_args=ignored_flags,
|
|
timeout=10000,
|
|
)
|
|
b.close()
|
|
p.stop()
|
|
return True
|
|
except Exception:
|
|
return False
|
|
|
|
# Test groups
|
|
suspects = [
|
|
([a for a in default_args if 'disable-features' in a], 'disable-features'),
|
|
([a for a in default_args if 'enable-features' in a], 'enable-features'),
|
|
([a for a in default_args if 'blink-settings' in a or 'swiftshader' in a], 'blink/GPU'),
|
|
([a for a in default_args if 'color-profile' in a or 'force-color' in a], 'color-profile'),
|
|
]
|
|
|
|
for group, name in suspects:
|
|
ok = test(group)
|
|
print(f'{name}: {"OK" if ok else "CRASH (PROBLEM HERE)"}')
|