Objects Replaced by Navigations =============================== There are 3 major types of navigations, each of which can cause different objects to be replaced. The general rules look something like this: .. csv-table:: objects replaced or preserved across navigations :header: "Class/Id", ":ref:`in-process navigations `", ":ref:`cross-process navigations `", ":ref:`cross-group navigations `" "BrowserId [#bid]_", |preserve|, |preserve|, |preserve| "BrowsingContextWebProgress", |preserve|, |preserve|, |preserve| "BrowsingContextGroup", |preserve|, |preserve|, |replace| "BrowsingContext", |preserve|, |preserve|, |replace| "nsFrameLoader", |preserve|, |replace|, |replace| "RemoteBrowser", |preserve|, |replace|, |replace| "Browser{Parent,Child}", |preserve|, |replace|, |replace| "nsDocShell", |preserve|, |replace|, |replace| "nsGlobalWindowOuter", |preserve|, |replace|, |replace| "nsGlobalWindowInner", "|replace| [#inner]_", |replace|, |replace| "WindowContext", "|replace| [#inner]_", |replace|, |replace| "WindowGlobal{Parent,Child}", "|replace| [#inner]_", |replace|, |replace| "Document", "|replace|", |replace|, |replace| .. |replace| replace:: ❌ replaced .. |preserve| replace:: ✔️ preserved .. [#bid] The BrowserId is a unique ID on each ``BrowsingContext`` object, obtained using ``GetBrowserId``, not a class. This ID will persist even when a ``BrowsingContext`` is replaced (e.g. due to ``Cross-Origin-Opener-Policy``). .. [#inner] When navigating from the initial ``about:blank`` document to a same-origin document, the same ``nsGlobalWindowInner``, ``WindowContext`` and ``WindowGlobal{Parent,Child}`` may be used. This initial ``about:blank`` document is the one created when synchronously accessing a newly-created pop-up window from ``window.open``, or a newly-created document in an ``