Files
orca/tests
Kelvin Amoaba fcf95622a2 fix(browser): open target=_blank links in Server (streamed) pages as new tabs (#37102)
* fix(browser): open target=_blank links from streamed server pages as tabs

Headless serve pages have no renderer, so a page's new-tab request was
denied. The runtime now opens the link as a tab beside the page, in front
only for the paired client whose click or key press opened it.

* test: add the offscreen tab opener to browser manager fakes

* test(e2e): drive the blank-link check through the host client

* fix(browser): credit a link only to the client whose input opened it

A click waiting in the page's command queue keeps its client until it is
delivered, input with no paired client clears an older one, and an
unattributed link no longer moves the agent's tab.

* refactor(browser): credit link opens from the page's command queue

Record the paired client at the bridge's per-page command lease, which
sees the resolved page and every command kind, instead of in four RPC
handlers. A page without a workspace keeps denying new-tab links.

* fix(browser): credit a link to the client whose click reached the page

Credit at the guest's activating input, under the popup owner's tab, to
the command delivering it, so a watcher's scroll can't claim an agent's
link. Announce a background tab at once since bridge selection no
longer does.

* fix(browser): credit a phone's DOM-activated tap before it runs

A tap with a touch radius clicks the element through Runtime.evaluate,
which fires no guest input event, so credit the tapping client first.

* test(e2e): assert the blank-link tab through the page, not the store

* refactor(browser): simplify page-link credit and tab opening

The queue owns the page command credit instead of the agent lease, the
credit skips work while idle and shares the gesture's freshness rule,
one opener serves both link paths, and one opensPageLink marker replaces
the paired follows/leavesAgentTab flags.

* test(e2e): give the blank-link spec's timeout its reason
2026-11-01 18:40:06 +00:00
..