41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
"""
|
||
淡化 Playwright 启动时的自动化指纹,减轻 Google 账号页「此浏览器或应用可能不安全」类拦截。
|
||
|
||
关闭:环境变量 OPENCLAW_PLAYWRIGHT_STEALTH=0(或 false/off/no)。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
import os
|
||
|
||
STEALTH_INIT_SCRIPT = """
|
||
(() => {
|
||
try {
|
||
Object.defineProperty(navigator, "webdriver", { get: () => undefined });
|
||
} catch (e) {}
|
||
})();
|
||
"""
|
||
|
||
|
||
def stealth_enabled() -> bool:
|
||
v = (os.environ.get("OPENCLAW_PLAYWRIGHT_STEALTH") or "1").strip().lower()
|
||
return v not in ("0", "false", "no", "off")
|
||
|
||
|
||
def persistent_context_launch_parts(
|
||
*,
|
||
extra_args: list[str] | None = None,
|
||
) -> tuple[list[str], list[str] | None]:
|
||
"""
|
||
返回 (args, ignore_default_args)。
|
||
ignore_default_args 为 None 时不应传给 launch_persistent_context。
|
||
"""
|
||
args = ["--start-maximized"]
|
||
if extra_args:
|
||
args = args + list(extra_args)
|
||
if not stealth_enabled():
|
||
return args, None
|
||
if "--disable-blink-features=AutomationControlled" not in args:
|
||
args.append("--disable-blink-features=AutomationControlled")
|
||
return args, ["--enable-automation"]
|