{"slug": "enhance-multitasking-extensions-with-the-new-tabs-split-view-api", "title": "Enhance multitasking extensions with the new Tabs Split View API", "summary": "Google released the Split View API for Chrome extensions starting in Chrome 155, letting developers programmatically detect, create, and manage the browser's built-in side-by-side tab layouts. The API, developed with Mozilla and other vendors in the WebExtensions Community Group, is part of the browser.tabs namespace and requires no permissions, adding a splitViewId property to Tab objects plus browser.tabs.createSplit, browser.tabs.unsplit, and a splitWithTabId parameter on browser.tabs.create. Chrome 145 introduced native Split View in February 2026, but extensions previously could not control the layouts and relied on workarounds such as resizing native windows, iframes, or side panels.", "body_md": "Earlier this year in February 2026, Chrome 145 introduced the\n[native Split View](https://blog.google/products-and-platforms/products/chrome/chrome-productivity-improvements/)\nwhich provides users with the ability to view and manage tabs side-by-side\nwithin the same window, removing the need to rely on third-party tools to manage\nseparate OS windows. While users can manually add and remove tabs from a split\nview through browser controls, it was not possible for developers to\nprogrammatically control these new tabs layouts in Chrome extensions.\n\nWe're excited to announce the new Split View API, available starting in Chrome 155! Developed in close collaboration with Mozilla and other browser vendors in the WebExtensions Community Group, this new API allows extensions to detect, create, and manage built-in split views.\n\n## Demo\n\n## How it works\n\nPreviously, extensions building side-by-side experiences relied on brittle\nworkarounds like resizing multiple native windows, embedding pages in `<iframe>`\nelements, or using side panels. Now, the new Split View API integrates directly\nwith Chrome's [Tabs\nAPI](https://developer.chrome.com/docs/extensions/reference/api/tabs) to unlock\nnew tabs layout management capabilities.\n\n### Manifest permissions\n\nThe Split View API is part of the `browser.tabs` namespace, and they don't\nrequire any permissions to use.\n\n### Identifying split views\n\nEvery `Tab` object contains a\n[`splitViewId` property](https://developer.chrome.com/docs/extensions/reference/api/tabs#:%7E:text=the%20sessions%20API.-,splitViewId,-number%C2%A0optional).\nIf the tab is part of a split view, it shares a unique identifier with its\npaired tab; otherwise, the `splitViewId` defaults to -1.\n\n``` js\n// Querying all split views in the current windows\nconst tabs = await browser.tabs.query({ currentWindow: true });\nconst splitViews = tabs.map(tab => tab.splitViewId).filter(splitViewId => splitViewId !== -1);\n```\n\n### General constraints\n\nIn order for two tabs to be able to join a split view, they must meet the following requirements:\n\n1. Tabs must be (or created) adjacent to each other.\n2. Tabs must not be already in a split view.\n3. Tabs must have the same `pinned` ,`windowId` , and`groupId` state.\n\nConversely, when two tabs are unsplit, they will retain the same `pinned`,\n`windowId`, `groupId` states along with the relative positioning to each\nother.\n\n### Creating split views\n\nThere are two methods by which an extension can create a new split view:\n\n1. Create a new tab that will split with an existing tab using the new\n`splitWithTabId` parameter in`browser.tabs.create` .\n2. Pair two existing tabs with the new `browser.tabs.createSplit` method.\n\n#### Examples\n\nYou can create a new tab using `splitWithTabId` to split with an existing tab.\n\n```\nawait browser.tabs.create({splitWithTabId: existingTab.id});\n```\n\nBy default, the new tab will be created to the *right* of the existing tab.\n\nTo create a new tab to the *left* of the existing tab, set the index as that\ntab's index:\n\n```\n  await browser.tabs.create({splitWithTabId: existingTab.id, index: existingTab.index});\n```\n\nYou can also create a new split view by pairing two existing tabs.\n\n```\n  await browser.tabs.createSplit([existingTab1.id, existingTab2.id]);\n```\n\n### Unsplitting split views\n\nTo separate a split view into two independent tabs, an extension can use the\nnew `browser.tabs.unsplit` method.\n\n``` js\nconst splitViewId = browser.tabs.createSplit([tab1.id, tab2.id]);\n// Unsplitting the split view into two independent tabs\nawait browser.tabs.unsplit(splitViewId);\n```\n\n## Learn more\n\nWe hope this new capability will supercharge more productive workflows for your\nextensions. To start building extensions with split view capabilities, check out\nthe [Tabs API](https://developer.chrome.com/docs/extensions/reference/api/tabs)\ndocumentation. If you have any questions or need help with the Split View API,\nvisit the\n[Chromium extensions](https://groups.google.com/a/chromium.org/g/chromium-extensions?e=48417069)\nGoogle Group.\n\nHappy splitting!", "url": "https://wpnews.pro/news/enhance-multitasking-extensions-with-the-new-tabs-split-view-api", "canonical_source": "https://developer.chrome.com/blog/split-view-api-extensions?hl=en", "published_at": "2026-09-16 07:00:00+00:00", "updated_at": "2026-10-12 15:48:10.265209+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools"], "entities": ["Google", "Chrome", "Split View API", "Mozilla", "WebExtensions Community Group", "Chrome 145", "Chrome 155", "browser.tabs"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/enhance-multitasking-extensions-with-the-new-tabs-split-view-api", "markdown": "https://wpnews.pro/news/enhance-multitasking-extensions-with-the-new-tabs-split-view-api.md", "text": "https://wpnews.pro/news/enhance-multitasking-extensions-with-the-new-tabs-split-view-api.txt", "jsonld": "https://wpnews.pro/news/enhance-multitasking-extensions-with-the-new-tabs-split-view-api.jsonld"}}