Skip to content
Open
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
66ba89d
feat(firefox): dashboard live view, bidi module and docs
lahfir Oct 30, 2026
e63a095
docs(firefox): drop set device from the supported list
lahfir Nov 5, 2026
88fec18
test(stream): use an array for the cached tabs fixture
lahfir Nov 5, 2026
3fb3fa5
fix(firefox): switch to tabs the page opens
lahfir Nov 5, 2026
f59ff2e
fix(firefox): complete native HTML5 drag gestures
lahfir Nov 5, 2026
68c67eb
fix(firefox): read the active page through BiDi
lahfir Nov 5, 2026
96f2d91
fix(firefox): retain HAR request bodies and elapsed time
lahfir Nov 5, 2026
051bab5
fix(firefox): complete HTML5 drags with DOM events
lahfir Nov 6, 2026
fed6108
Merge updated Firefox network support into live view
lahfir Nov 6, 2026
322f5aa
Preserve proxy settings rollback after Firefox launch failures
lahfir Nov 6, 2026
18b4893
Merge commit 'aa564517ceeb5e5e703b47f6b8058b5c46ce4532' into HEAD
lahfir Nov 6, 2026
d728f29
Format Firefox proxy rollback regression
lahfir Nov 6, 2026
25f08ba
Preserve Firefox and streaming documentation expectations
lahfir Nov 6, 2026
6d74b84
Merge commit '55acbd3' into HEAD
lahfir Nov 6, 2026
24224a3
Merge commit '807eb004c81175c3767643c3326ae90115553b2a' into HEAD
lahfir Nov 6, 2026
151ab57
fix(firefox): preserve dashboard input modifiers
lahfir Nov 6, 2026
f20b8e6
fix(firefox): restore popup openers and clear stale frames
lahfir Nov 6, 2026
b9dc024
Merge Firefox network fixes into live view
lahfir Nov 6, 2026
f625508
Merge commit '550912fa3a48ef4848ce74ecc631e0f21519ade7' into HEAD
lahfir Nov 6, 2026
1308fbe
fix: align regression tests with integrated browser code
lahfir Nov 6, 2026
f0567c0
Merge commit '64aa676c7f81959848a9b76f281af6747cc99186' into HEAD
lahfir Nov 6, 2026
d4c83d5
style: format integrated Firefox regressions
lahfir Nov 6, 2026
e105fbf
Merge formatted Firefox regressions into live view
lahfir Nov 6, 2026
bc8021f
fix: correct docs fixtures and bound popup regression waits
lahfir Nov 6, 2026
a71d0e2
Merge commit 'e8f1a4d821f4e83af0cd4beb5de96572932970c0' into HEAD
lahfir Nov 6, 2026
37324d1
fix: apply the engine docs fixture edit once
lahfir Nov 6, 2026
bb9fa00
Merge Firefox launch and storage corrections into live view
lahfir Nov 6, 2026
a880ca3
fix(firefox): verify restore recovery and document capture limits
lahfir Nov 6, 2026
2e3c5bd
Merge final Firefox checks into the BiDi module
lahfir Nov 6, 2026
90e6ada
fix(firefox): preserve CLI titles while bounding tab lookups
lahfir Nov 6, 2026
8314cc4
style: format bounded tab lookup
lahfir Nov 6, 2026
54a605f
Merge Firefox navigation idle handling into BiDi
lahfir Nov 6, 2026
111178e
test(firefox): accept the command deadline for idle waits
lahfir Nov 6, 2026
fc020a1
Merge commit '2bf6e0d9b5d7e98d97a4862dd381e75782eaccb0' into HEAD
lahfir Nov 6, 2026
ba37b84
test(firefox): match the clarified attach error before attach support
lahfir Nov 6, 2026
5c9057a
ci: run pull request checks for stacked branches
lahfir Nov 6, 2026
1b76723
merge: update live view against current main
lahfir Nov 6, 2026
6bd32d9
Merge commit '8e4844772e685d7da25149fcae131be9e6b206b1' into HEAD
lahfir Nov 6, 2026
18f4b30
test(firefox): use the current daemon stream constructor
lahfir Nov 6, 2026
bc11090
test(firefox): cover selectors shared by light and shadow roots
lahfir Nov 6, 2026
7ce354f
Merge commit '09064c8' into HEAD
lahfir Nov 6, 2026
ecad7a6
Merge commit '3309592' into HEAD
lahfir Nov 6, 2026
7b6e331
Merge commit 'e0de4f4' into HEAD
lahfir Nov 6, 2026
701bf24
Merge commit '26502cb' into HEAD
lahfir Nov 6, 2026
619b7ee
Merge commit '871edaaf' into HEAD
lahfir Nov 6, 2026
06bfc66
Merge commit 'a40b43cb' into HEAD
lahfir Nov 6, 2026
fb69f09
fix(firefox): resolve shadow refs through exact DOM ancestry
lahfir Nov 6, 2026
39172be
Merge Firefox networkidle tab scoping fix
lahfir Nov 6, 2026
9162421
Merge commit '4b3782894e294bfd6103b4a8c578fb2f2f94dc3a' into HEAD
lahfir Nov 6, 2026
00c0ec1
Merge Firefox dialog and pointer fixes into popup support
lahfir Nov 7, 2026
6d1462d
Merge shared BiDi test client correction
lahfir Nov 7, 2026
fa4f719
Fix the BiDi client path in the pointer rejection test
lahfir Nov 7, 2026
197584b
Remove duplicate Firefox dialog regression
lahfir Nov 7, 2026
8ef1774
Skip unreadable Firefox frames during state save
lahfir Nov 7, 2026
31f0cde
Merge Firefox review fixes into live-view support
lahfir Nov 7, 2026
2bd7726
Format the unreadable-frame regression
lahfir Nov 7, 2026
6769125
Remove the unused RDP dispatcher dependency
lahfir Nov 7, 2026
530bd0b
Merge dispatcher cleanup into live-view support
lahfir Nov 7, 2026
ac4d291
Merge PR Firefox test gating into live-view support
lahfir Nov 7, 2026
3766744
Restore the owning tab when an iframe popup closes
lahfir Nov 7, 2026
10d5197
Merge request scoping with typed Firefox network events
lahfir Nov 7, 2026
f509c2f
Format the request scope regression
lahfir Nov 7, 2026
56a9a7c
Fix renamed module references in request scope tests
lahfir Nov 7, 2026
7a67c1d
Keep the renamed request scope test path
lahfir Nov 7, 2026
10161e4
Keep stale-ref checks tied to the snapshot document
lahfir Nov 7, 2026
7da42c4
Merge Firefox interaction and RDP recovery into live-view support
lahfir Nov 7, 2026
76b176f
Format snapshot document tracking
lahfir Nov 7, 2026
6834bf9
Adapt pointer checks and snapshot tracking to BiDi APIs
lahfir Nov 7, 2026
b8caa2c
Merge shared click preparation into live-view support
lahfir Nov 7, 2026
7d74cdf
Return the snapshot result after recording its document
lahfir Nov 7, 2026
4753c72
Apply RDP reply matching in the renamed module
lahfir Nov 7, 2026
10435ab
Merge final interaction fixes into live-view support
lahfir Nov 7, 2026
b64fe1e
Fail closed after a Firefox DevTools timeout
lahfir Nov 7, 2026
b7f1655
Merge fail-closed RDP timeout into live-view support
lahfir Nov 7, 2026
c3eceba
Format fail-closed RDP timeout assertions
lahfir Nov 7, 2026
95d33a3
Keep standard RDP replies after fail-closed timeouts
lahfir Nov 7, 2026
3cf9064
Merge standard RDP reply handling into live-view support
lahfir Nov 7, 2026
9829303
Merge RDP assertion formatting into live-view support
lahfir Nov 7, 2026
d945e58
Keep popup ownership in the live-view session merge
lahfir Nov 7, 2026
8b11cb2
Remove duplicate DevTools initialization after merge
lahfir Nov 7, 2026
b8903ef
test(bidi): restore unit tests dropped when the Firefox modules moved
lahfir Nov 8, 2026
38b2dfb
Merge laf/bidi-network-emulation into laf/bidi-live-view-docs
lahfir Nov 8, 2026
e8916e1
Merge laf/bidi-network-emulation into laf/bidi-live-view-docs
lahfir Nov 8, 2026
52a8941
Merge laf/bidi-network-emulation into laf/bidi-live-view-docs
lahfir Nov 8, 2026
d9caee7
Merge laf/bidi-network-emulation into laf/bidi-live-view-docs
lahfir Nov 8, 2026
f1cfe6c
docs: drop the stale browser engine edit from the commands fixture
lahfir Nov 8, 2026
318c603
Merge remote-tracking branch 'origin/laf/bidi-network-emulation' into…
lahfir Nov 8, 2026
9a97390
docs: keep one engine-list edit for the commands page
lahfir Nov 8, 2026
8f2f35c
docs: record the Firefox engine in the configuration fixture
lahfir Nov 8, 2026
c173bb5
docs: cover the plain-text configuration sample in the fixture
lahfir Nov 8, 2026
f9e946f
Merge laf/bidi-network-emulation into laf/bidi-live-view-docs
lahfir Nov 8, 2026
fbdbd8e
Merge remote-tracking branch 'origin/laf/bidi-network-emulation' into…
lahfir Nov 8, 2026
04b065b
Merge laf/bidi-network-emulation into laf/bidi-live-view-docs
lahfir Nov 9, 2026
ff5e03e
Merge remote-tracking branch 'origin/laf/bidi-network-emulation' into…
lahfir Nov 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:

jobs:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ The CLI sends each command to a background daemon that starts on the first comma

Chrome for Testing is the default browser. You can also attach to a running Chrome with `--cdp` or `--auto-connect` ([CDP mode](https://agent-browser.dev/cdp-mode)), select the [Lightpanda](https://agent-browser.dev/engines/lightpanda) or [Obscura](https://agent-browser.dev/engines/obscura) engine with `--engine`, drive Mobile Safari in the [iOS Simulator](https://agent-browser.dev/ios), or use a cloud browser provider such as [Browserbase](https://agent-browser.dev/providers/browserbase), [Browserless](https://agent-browser.dev/providers/browserless), [Browser Use](https://agent-browser.dev/providers/browser-use), [Kernel](https://agent-browser.dev/providers/kernel), or [AgentCore](https://agent-browser.dev/providers/agentcore).

Select Firefox with `--engine firefox`.
Select Firefox with `--engine firefox`. It requires Firefox 150 or newer, uses WebDriver BiDi and Firefox's DevTools accessibility tree for snapshots, and starts with a fresh temporary profile. See the [Firefox engine guide](https://agent-browser.dev/engines/firefox).

## For AI agents

Expand Down
2 changes: 1 addition & 1 deletion agent-browser.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@
},
"engine": {
"type": "string",
"enum": ["chrome", "lightpanda", "obscura"],
"enum": ["chrome", "lightpanda", "firefox", "obscura"],
"default": "chrome",
"description": "Browser engine to use. Obscura is experimental and does not support proxy bypass rules."
},
Expand Down
2 changes: 1 addition & 1 deletion cli/src/doctor/chrome.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ pub(super) fn check(checks: &mut Vec<Check>) {
);
}
} else if engine == "firefox" {
match crate::native::firefox::process::find_firefox(None) {
match crate::native::bidi::firefox::find_firefox(None) {
Ok(path) => {
let version = query_chrome_version(&path)
.map(|v| format!("{v} at "))
Expand Down
7 changes: 6 additions & 1 deletion cli/src/mcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5772,7 +5772,12 @@ mod tests {
let error = cli_tool_args(&arguments, vec!["open".to_string()], None).unwrap_err();
assert!(error.message.contains("may not set"), "{:?}", bad);
}
for ok in [vec!["--engine", "obscura"], vec!["--full"], vec!["-i"]] {
for ok in [
vec!["--engine", "obscura"],
vec!["--engine", "firefox"],
vec!["--full"],
vec!["-i"],
] {
let arguments = json!({ "extraArgs": ok });
assert!(cli_tool_args(&arguments, vec!["open".to_string()], None).is_ok());
}
Expand Down
Loading
Loading