Skip to content

Allow manual browser navigation from the session pane#412

Draft
dot-Justin wants to merge 1 commit intobrowser-use:mainfrom
dot-Justin:issue-409-manual-browser-navigation
Draft

Allow manual browser navigation from the session pane#412
dot-Justin wants to merge 1 commit intobrowser-use:mainfrom
dot-Justin:issue-409-manual-browser-navigation

Conversation

@dot-Justin
Copy link
Copy Markdown
Contributor

@dot-Justin dot-Justin commented May 6, 2026

Summary

  • Adds a session-pane browser address bar for manual browsing, including typed URLs, pasted/full URLs, search-query fallback, page title display, loading state, and navigation error feedback.
  • Wires manual navigation through main/preload IPC into the existing BrowserPool and session navigation state flow so agent-driven and manual browsing share the same browser source of truth.
  • Adds back, forward, and reload controls backed by WebContents history APIs.
  • Adds focused coverage for URL normalization, navigation dispatch/failure handling, and renderer UI behavior.

Details

Manual navigation now flows through BrowserPool.navigate(), which normalizes the input with a shared helper before calling webContents.loadURL(). BrowserPool also emits live navigation state updates (url, title, canGoBack, canGoForward, isLoading) on navigation, load, title, and in-page route events. The existing setOnNavigate path still updates SessionManager.updateNavigationFromUrl(), so manual browsing keeps primarySite and lastUrl coherent for session resume and agent context.

The renderer subscribes to those navigation-state events in AgentPane and renders a compact browser chrome above the embedded browser. Invalid schemes and load failures are surfaced inline without tearing down the session.

Manual testing

Tested manually on Linux/Hyprland with:

  • typed URLs
  • pasted/full URLs
  • search-query fallback
  • invalid scheme feedback
  • back/forward/reload after manual navigation

Automated testing

  • npm run typecheck
  • npm run lint (passes with existing repository warnings)
  • npm run test (45 files, 345 tests passed; 1 file and 3 tests skipped)

Closes #409


Summary by cubic

Adds a compact browser address bar to the session pane with manual navigation and history controls. Aligns with #409 by letting users type or paste URLs, search from the bar, and keep navigation state in sync with agent-driven browsing.

  • New Features

    • Address bar with typed/pasted URLs, search fallback, page title, loading, and inline error feedback.
    • Back, forward, and reload using WebContents history APIs.
    • Live navigation state (url, title, canGoBack, canGoForward, isLoading) emitted from main and rendered in the pane.
    • New IPC: sessions:get-navigation-state, sessions:navigate, sessions:back, sessions:forward, sessions:reload, and sessions:navigation-state event.
  • Refactors

    • All manual input flows through BrowserPool.navigate() using a shared normalizer in shared/browser-navigation.
    • Keeps SessionManager.updateNavigationFromUrl() updates so primarySite/lastUrl stay correct for resume and context.

Written for commit 31804c6. Summary will update on new commits.

@Cheggin
Copy link
Copy Markdown
Collaborator

Cheggin commented May 7, 2026

ooh I was just making this

will work off of this instead hahaha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Allow manual browsing by entering a URL in the browser

2 participants