move_tab
Move a tab to a different window or extract it into a new one, keeping history and state intact. Works on chrome-untrusted:// tabs; supports setting new window position and size.
Instructions
Move an existing tab into another window (chrome.tabs.move). Nothing is created or closed: the tab keeps its id, history and page state, and this works even on chrome-untrusted:// tabs where creating one is forbidden — verified on a ChromeOS Terminal tab. The destination must be a normal window: moving out of an app or popup window is fine, moving into one is refused with "Tabs can only be moved to and from normal windows". So a ChromeOS Terminal session can be pulled out to its own window (new_window, then position it with viewport_resize) but cannot be merged back into the Terminal window — the closest look is window_type popup: no tab strip, no omnibox, visually a terminal window. An extension cannot create app windows: normal and popup are all Chrome offers.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | New window y (new_window) | |
| left | No | New window x (new_window) | |
| index | No | Position in the destination window; -1 appends at the end | |
| width | No | New window width px (new_window) | |
| height | No | New window height px (new_window) | |
| tab_id | Yes | Tab to move; get it from get_tabs | |
| window_id | No | Destination window; get_tabs reports windowId for every tab | |
| new_window | No | Extract the tab into a fresh window instead — tabs.move needs an existing window, this does not | |
| window_type | No | new_window only: popup has no tab strip and no omnibox — the terminal-window look for detached chrome-untrusted://terminal tabs | normal |