[Windows] In-app browser device preview toolbar closes when Browser Use returns control

Open 💬 2 comments Opened Jul 20, 2026 by BlindsidedGames

Codex App version

Microsoft Store package version 26.715.3651.0 on Windows x64.

What issue are you seeing?

When Browser Use sets the in-app browser to an iPhone-sized responsive/device preview (393 × 852), the preview works while the agent controls the browser, but the visible device-preview toolbar closes again as soon as the Browser Use step ends and control returns to the user.

This also reproduced when the agent deliberately did not call tabs.finalize(). During the active Browser Use call, page evaluation confirmed:

  • window.innerWidth === 393
  • window.innerHeight === 852

After the tool call returned, the user observed the device-preview toolbar close again.

Steps to reproduce

  1. Open a local web page in the Codex in-app browser.
  2. Start Browser Use and set the browser viewport:

``js
await viewport.set({ width: 393, height: 852 })
``

  1. With the tab claimed, reload if necessary and verify the page viewport is 393 × 852.
  2. End the Browser Use tool call and return control to the user.
  3. Observe that the visible responsive/device-preview toolbar closes or is no longer visibly pinned.
  4. Repeat without calling browser.tabs.finalize(...); the same behavior occurs.

Expected behavior

The user-selected or agent-set device preview should remain visibly active until the user or agent explicitly resets it.

Actual behavior

The device preview is temporary to the Browser Use control step. Its toolbar is dismissed when control returns, so the agent cannot leave the requested iPhone preview visibly pinned for the user.

Additional context

The first reproduction used tabs.finalize(), which also closed the toolbar. A second reproduction intentionally omitted finalization, but the toolbar still closed after the Browser Use call ended.

I searched existing issues before filing. Issues such as #28062 cover different device-toolbar problems (for example, blank zoom options), not this toolbar-lifecycle/persistence behavior.

View original on GitHub ↗

2 Comments

kavishagarwal · 1 month ago

Confirming the same lifecycle/persistence bug on macOS, so this is not Windows-specific.

Environment

  • Codex/ChatGPT desktop app 26.715.61943 (build 5628)
  • macOS 26.5.2 (build 25F84)
  • Apple Silicon / arm64

Measured reproduction

  1. Browser Use sets the native Responsive viewport to 1440 × 900.
  2. While the tab is controlled, page evaluation confirms window.innerWidth === 1440 and window.innerHeight === 900; the desktop breakpoint is active.
  3. When control returns to the user, the Responsive toolbar disappears and the same tab falls back to approximately 621 × 863, matching the physical side-pane size.
  4. The page consequently switches to its tablet/mobile breakpoint.

This reproduced through both deliverable and handoff finalization paths. The override remains correct only while the Browser Use control session stays attached. Native annotations are required in this workflow, so replacing the browser with a custom wrapper is not a viable workaround.

Diagnostic feedback upload: 019f8597-985b-76b2-bd6f-01ee63d65cf8.

The fuller macOS report is #34576; I am closing that issue as a duplicate so the cross-platform evidence stays consolidated here.

vtsixthai · 19 days ago

Adding a related user-facing requirement from the Codex desktop in-app Browser:

Requested persistent default

  • Responsive preset: Laptop L
  • Viewport: 1440 × 900
  • Browser zoom: 50%

Ideally, the in-app Browser should offer a “Remember/Persist as my default” option, or an equivalent setting under Browser settings, so the selected responsive preset, viewport dimensions, and zoom are restored for new browser tasks and remain available after Browser Use returns control.

This should be a default, not a hard lock: the user or model should be able to override it for a specific device, breakpoint, orientation, or display-scale test, with the active override visible and easy to reset.

This would make visual QA consistent and avoid reconfiguring the same browser state at the start of each task. It complements the toolbar-lifecycle problem already described in this issue.