# 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: | Class/Id | [in-process navigations](#in-process-navigations) | [cross-process navigations](#cross-process-navigations) | [cross-group navigations](#cross-group-navigations) | | --- | --- | --- | --- | | BrowserId [^bid] | preserved | preserved | preserved | | BrowsingContextWebProgress | preserved | preserved | preserved | | BrowsingContextGroup | preserved | preserved | replaced | | BrowsingContext | preserved | preserved | replaced | | nsFrameLoader | preserved | replaced | replaced | | RemoteBrowser | preserved | replaced | replaced | | Browser{Parent,Child} | preserved | replaced | replaced | | nsDocShell | preserved | replaced | replaced | | nsGlobalWindowOuter | preserved | replaced | replaced | | nsGlobalWindowInner | replaced [^inner] | replaced | replaced | | WindowContext | replaced [^inner] | replaced | replaced | | WindowGlobal{Parent,Child} | replaced [^inner] | replaced | replaced | | Document | replaced | replaced | replaced | [^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 `