Goal
Add a jump-overlay mode that opens the labelled video in a new tab within the
same window (a "card"), leaving the current video playing in place.
Distinct from the queue overlay (Ctrl+A p), which enqueues for watch-next in
the same tab. This is for parallel browsing.
Proposed shape (not agreed — needs the mechanism question resolved first)
- Reuse
collectJumpTargets / the existing createJumpOverlay; no new overlay
component.
- New chord (candidate:
Ctrl+A t) opens the jump overlay filtered to video
links only: a[href*="/watch"], a[href*="/shorts/"].
- On exact label match, open that
href in a new tab instead of calling
activateTarget (which navigates in place).
- New config key in
src/core/shortcuts.config.json; new row in
docs/keyboard-quickstart.md in the same commit.
Open question — the tab-open mechanism (blocks implementation)
Requirement: same window, new background/foreground tab, works on all
supported editions (Chrome, Edge, Firefox) and ideally degrades sanely on Arc.
Candidates, none verified:
window.open(href, '_blank') from the content script.
- No
tabs permission, no background messaging.
- Unverified: does every target browser honour "same window, new tab" vs
spawning a popup window? Behaviour under popup blockers when not in a
direct user-gesture call stack? Firefox vs Chromium differences?
- Synthetic ctrl/meta-click on the anchor — rejected:
isTrusted is
false, Chromium will not perform the native new-tab navigation.
chrome.tabs.create({ url, windowId: current }) via the background service
worker + a content->background message.
- Guarantees same-window placement and gives active/index control.
- Cost:
tabs permission (store-review + privacy note) and message
plumbing. Only justified if option 1 proves unreliable.
Deliverable for this issue
Decide the mechanism with real evidence:
No implementation until the mechanism is chosen.
Goal
Add a jump-overlay mode that opens the labelled video in a new tab within the
same window (a "card"), leaving the current video playing in place.
Distinct from the queue overlay (
Ctrl+A p), which enqueues for watch-next inthe same tab. This is for parallel browsing.
Proposed shape (not agreed — needs the mechanism question resolved first)
collectJumpTargets/ the existingcreateJumpOverlay; no new overlaycomponent.
Ctrl+A t) opens the jump overlay filtered to videolinks only:
a[href*="/watch"], a[href*="/shorts/"].hrefin a new tab instead of callingactivateTarget(which navigates in place).src/core/shortcuts.config.json; new row indocs/keyboard-quickstart.mdin the same commit.Open question — the tab-open mechanism (blocks implementation)
Requirement: same window, new background/foreground tab, works on all
supported editions (Chrome, Edge, Firefox) and ideally degrades sanely on Arc.
Candidates, none verified:
window.open(href, '_blank')from the content script.tabspermission, no background messaging.spawning a popup window? Behaviour under popup blockers when not in a
direct user-gesture call stack? Firefox vs Chromium differences?
isTrustedisfalse, Chromium will not perform the native new-tab navigation.
chrome.tabs.create({ url, windowId: current })via the background serviceworker + a content->background message.
tabspermission (store-review + privacy note) and messageplumbing. Only justified if option 1 proves unreliable.
Deliverable for this issue
Decide the mechanism with real evidence:
window.open(href, '_blank')behaviour in Chrome, Edge, Firefox (andnote Arc) from within a content script, both inside and outside a keydown
gesture call stack.
chrome.tabs.createroute and its permissionimpact against issues spec(chrome-edge): Chrome/Edge Web Store parity, domain-separation guard, and PRD Milestone 9-10 scoping (no implementation) #6 / spec(opera-safari): Opera Add-ons and Safari Web Extension distribution scoping (no implementation) #12 (store distribution scoping).
No implementation until the mechanism is chosen.