Skip to content

Containers

Aleksei Khoroshilov edited this page Jun 12, 2026 · 7 revisions

Containers

Preconditions

Feature enabled

  • Enable the Containers feature at brave://flags.
  • Restart the browser.
  • Open brave://settings/braveContent.
  • Verify a Containers section is visible (not only when the flag is default-off in your build; adjust preconditions to match the build under test).

Settings

Containers section and defaults

  • With Containers enabled, open brave://settings/braveContent.
  • Verify a Containers section is present on that page.
  • Verify exactly four default entries appear, labeled Personal, Work, Social, and School (or the localized equivalents if testing a non-English locale).
  • Verify each row is recognizable as a container (icon or styling as designed); no duplicate names among the four defaults.

Feature disabled

  • Disable Containers feature, restart.
  • Open brave://settings/braveContent.
  • Verify the Containers section is not shown.

Context menus

New tab (+) - context menu lists containers and manage

  • Open a normal window with at least one tab.
  • Right-click the + control (new tab button) in the tab strip.
  • Verify the menu includes a list of containers: Personal, Work, Social, School (or localized names).
  • Verify an entry such as Manage containers (or equivalent string) is present.
  • Choose Manage containers (or equivalent).
  • Verify brave://settings/braveContent opens (or focuses) and the Containers section is visible.

New tab (+) - open new tab in a container

  • Right-click the + button.
  • Choose one container (for example Work) from the submenu.
  • Verify a new tab opens in that container (tab strip or URL bar shows container association per UI spec).
  • Navigate the new tab to https://example.com (or any URL) and confirm navigation works.

Tab strip - "Open in container" submenu

  • Open a tab that is not in a container (or in Personal, per your baseline).
  • Right-click that tab’s title / tab handle in the tab strip.
  • Verify the context menu includes Open in container (or equivalent).
  • Hover or open that item and verify the same four containers appear as in the + menu, plus Manage containers if that is part of the same submenu design.
  • Choose a different container (for example Social).
  • Verify the tab’s container changes to the chosen one (per visual / URL bar / tooltip spec).

Tab strip - manage from tab context menu

  • Right-click a tab, open Open in container, then choose Manage containers.
  • Verify settings open to brave://settings/braveContent with Containers visible (same as + menu path).

Link context menu - "Open link in container"

  • Open any page with a normal link (for example a simple HTML page or the frames test page below).
  • Right-click a link (not the page background).
  • Verify Open link in container (or equivalent) appears.
  • Open the submenu and verify Personal, Work, Social, School (and Manage containers).
  • Choose Work (or any container).
  • Verify the link opens in a new tab assigned to that container.

Consistency - same submenu contents

  • Compare container lists from: right-click +, right-click tab → Open in container, right-click link → Open link in container.
  • Verify the same four defaults appear everywhere.

Storage isolation

Isolation on test page in frames

  • In a tab in container Personal, open https://dev-pages.bravesoftware.com/storage/frames.html
  • Use the page control to set a storage value; note the displayed values for the main frame and iframes.
  • Open the same URL in a tab in container Work (via + menu, tab menu, or link flow).
  • On the Work tab, set a different value than on Personal.
  • Switch back to the Personal tab and refresh or re-read displayed storage per page behavior.
  • Verify the Personal tab still shows the Personal value for the main frame (This page), not the Work value.

Open link in container - preserves isolation

  • In a Personal tab on https://dev-pages.bravesoftware.com/storage/frames.html, set a distinctive main-frame value and note it.
  • On the same page, use a normal navigation or a second link if available; alternatively open another site that links to the same frames URL.
  • Right-click the link to https://dev-pages.bravesoftware.com/storage/frames.html, choose Open link in containerWork.
  • On the new Work tab, verify main-frame storage does not match Personal until you explicitly set Work’s value (fresh container storage).

Tab restore

Recently closed tab - Ctrl+Shift+T restores same container

  • Open https://dev-pages.bravesoftware.com/storage/frames.html in container Work.
  • Set a distinctive storage value and note the values shown for the main frame and iframes.
  • Close the Work container tab.
  • Press Ctrl+Shift+T (or the platform equivalent for reopening the most recently closed tab).
  • Verify the tab reopens in Work, not as a normal tab and not in another container.
  • Refresh page.
  • Verify the storage values are still the Work container values.

Recently closed tab - restore order with normal and container tabs

  • Open https://dev-pages.bravesoftware.com/storage/frames.html in a normal non-container tab and set a distinctive normal-tab storage value.
  • Open the same URL in container Personal and set a different distinctive value.
  • Close the normal tab, then close the Personal container tab.
  • Press Ctrl+Shift+T once.
  • Verify the Personal tab reopens first and is still in Personal.
  • Press Ctrl+Shift+T again.
  • Verify the normal tab reopens second and is still not associated with any container.
  • Verify the restored tabs keep their separate storage values.

Recently closed tab - multiple containers preserve identity

  • Open https://dev-pages.bravesoftware.com/storage/frames.html in container Social and set a distinctive value.
  • Open the same URL in container School and set a different distinctive value.
  • Close both tabs.
  • Reopen them with Ctrl+Shift+T until both tabs return.
  • Verify each reopened tab is associated with the same container it had when it was closed.
  • Verify Social and School still show different storage values and do not share data.

Session restore

Session restore - container tabs preserve container

  • Enable the browser setting that restores the previous session on startup, if it is not already enabled.
  • Open https://dev-pages.bravesoftware.com/storage/frames.html in container Personal.
  • Set a distinctive storage value and note the values shown for the main frame and iframes.
  • Open the same URL in container Work.
  • Set a different distinctive storage value and note the values shown for the main frame and iframes.
  • Quit Brave completely and restart it.
  • Verify both tabs are restored.
  • Verify each restored tab still shows the correct container association (Personal stays Personal, Work stays Work).
  • Verify the storage values are still separated by container after restore: Personal shows the Personal values, Work shows the Work values, and neither tab reads from the normal/non-container storage partition.

Session restore - mixed normal and container tabs

  • Enable previous-session restore.
  • Open https://dev-pages.bravesoftware.com/storage/frames.html in a normal non-container tab.
  • Set a distinctive normal-tab storage value.
  • Open the same URL in container Social and set a different distinctive value.
  • Quit Brave completely and restart it.
  • Verify both tabs are restored.
  • Verify the normal tab is still not associated with any container.
  • Verify the Social tab is still associated with Social.
  • Verify the normal tab and Social tab each retain their own stored values and do not share storage after restore.

Session restore - feature disabled protection

  • With Containers enabled, enable previous-session restore.
  • Open https://dev-pages.bravesoftware.com/storage/frames.html in container School.
  • Set a distinctive storage value and confirm content is loaded.
  • Disable the Containers feature.
  • Restart Brave.
  • Verify the previously contained tab is restored with a URL in the form containers+<uuid>:....
  • Verify the tab does not load the original page content.
  • Verify the previously contained page's storage is not exposed in the normal browsing context.
  • Verify navigating to the normal https://dev-pages.bravesoftware.com/storage/frames.html URL in a separate non-container tab does not show the contained storage value.

Sync

Sync - contained tab on unsupported or disabled-feature browser

  • Set up tab and preferences Sync between two Brave profiles/devices.
  • On device A, enable Containers and open https://dev-pages.bravesoftware.com/storage/frames.html in a container (for example Work).
  • Confirm the tab is visible through synced tabs/history on device B.
  • On device B disable the Containers feature and restart.
  • On device B open the synced tab entry that was created on device A.
  • Verify the tab opens with a URL in the form containers+<uuid>:....
  • Verify the original page content is not loaded into the normal browsing context.

Sync - mapped container opens correctly on supported browser

  • Set up tab and preferences Sync between two Brave profiles/devices.
  • On device A, ensure a known container exists (for example Work).
  • On device A, open https://dev-pages.bravesoftware.com/storage/frames.html in that container.
  • Wait until device A's tab is visible as a synced tab on device B.
  • On device B, open the synced tab from device A.
  • Verify Brave maps the synced tab to the matching local container on device B, rather than opening it as a normal tab.
  • Verify the opened tab shows the expected container association in the UI.

Clone this wiki locally