The headless browser for AI agents and web scraping
langages détectés par GitHub · % code
chaque PR mergée, classée par type, plus récentes en premier
Ajoute un bras `"printToPDF"` au `match` de `crates/obscura-cdp/src/domains/page.rs` retournant un message expliquant l'absence de moteur de mise en page et pointant vers `Runtime.evaluate`.
Étend la garde tag dans `extract_readable_text` (crates/obscura-cli/src/main.rs) avec `matches!` sur nav/header/footer/aside en plus de script/style, retournant vide pour ces tags sémantiques.
Détecte `Command::Fetch { quiet: true }` avant l'init de `tracing_subscriber` dans `crates/obscura-cli/src/main.rs` et bascule l'`EnvFilter` sur `off` via le helper `select_log_filter`.
Ajoute `start_with_full_options`/`new_with_full_options`/`with_full_options` qui propagent `Option<String>` user-agent jusqu'au `BrowserContext::user_agent` et au `RwLock` interne de `ObscuraHttpClient` via `try_write`.
Ajoute `Audits` à la liste no-op du dispatcher CDP `crates/obscura-cdp/src/dispatch.rs` pour que `FrameManager.initialize` de Puppeteer ne casse plus sur `Audits.enable`.
Ajoute dans `crates/obscura-js/js/bootstrap.js` un stub `Document.prototype.elementFromPoint`/`elementsFromPoint` retournant `body`/`documentElement` ou `null` hors viewport, gardé par `!Document.prototype.elementFromPoint`, plus délégation depuis `ShadowRoot`.
Dans `crates/obscura-js/js/bootstrap.js`, route `Document.prototype.createEvent` vers le bon constructeur via type lowercased avec alias `'Events'`, et ajoute `initCustomEvent` (type, bubbles, cancelable, detail) au prototype `CustomEvent`.
Ajoute le handler `attachToBrowserTarget` dans `crates/obscura-cdp/src/domains/target.rs`, enregistre la session `browser-session→browser` et émet `Target.attachedToTarget` pour débloquer `connect_over_cdp` de Playwright.
Ajoute un bras `getLayoutMetrics` au dispatcher `Page` dans `crates/obscura-cdp/src/domains/page.rs`, renvoyant viewports 1280x720 et `contentSize` dérivé de `document.documentElement.scrollHeight` (fallback 720).