Files
ELY-Browser/crates/ely_domain/src
ZacharyZhang-NY f8e05604ed Navigate the active tab in place instead of spawning a new tab
Root cause of "settings opens new tab for every click": every
internal navigation went through `open_internal_tab → open_url →
core.open_tab(url)`, and `open_tab` unconditionally inserts a new
`BrowserTab`. So three settings sub-page clicks left four tabs in
the sidebar, which is the screenshot the user keeps sending.

Real browsers navigate the active tab in place for in-app links and
spawn new tabs only on `+ New Tab` (or Cmd-click). Wire it through:

* `BrowserTab::set_url(url)` mutates the tab's URL and bumps
  `last_active_at`. Title stays put — the page renderer can refresh
  it from the new URL.
* `BrowserCore::navigate_active_tab(url)` finds the active tab,
  calls `set_url`, marks it Ready, records the history entry, and
  bumps activity. Returns `TabNotFound` if there's no active tab.
* `ElyShell::navigate_active_tab` calls the core method and falls
  back to `open_tab` if there's no active tab to navigate. The
  shell's `open_internal_tab` (used by settings nav, home pills,
  sidebar Settings + Profile rows, command-overlay routes, etc.)
  now routes through this in-place path.
* `open_url` keeps the explicit "spawn a new tab" semantics for
  `+ New Tab` and the deep-link router.

Settings, plugin marketplace, history, profile picker — every
sidebar nav now stays in one tab.

cargo test --workspace: 440 passed, 0 failed.
2026-05-09 22:42:25 -04:00
..
2026-05-07 23:41:08 -04:00
2026-05-08 11:47:38 -04:00
2026-05-08 06:53:31 -04:00
2026-05-09 06:12:05 -04:00
2026-05-09 12:54:24 -04:00
2026-05-09 12:54:24 -04:00
2026-05-08 03:31:41 -04:00
2026-05-08 05:58:05 -04:00
2026-05-09 20:01:31 -04:00
2026-05-08 03:13:37 -04:00
2026-05-08 06:53:31 -04:00
2026-05-07 23:41:08 -04:00
2026-05-09 04:47:45 -04:00
2026-05-08 20:19:09 -04:00
2026-05-08 03:04:33 -04:00
2026-05-09 20:01:31 -04:00
2026-05-08 08:11:49 -04:00
2026-05-08 06:53:31 -04:00
2026-05-08 07:16:17 -04:00
2026-05-09 04:13:41 -04:00