Skip to main content
Version: Next

BrowserContext class

BrowserContext represents individual user contexts within a browser.

When a browser is launched, it has a single browser context by default. Others can be created using Browser.createBrowserContext(). Each context has isolated storage (cookies/localStorage/etc.)

BrowserContext emits various events which are documented in the BrowserContextEvent enum.

If a page opens another page, e.g. using window.open, the popup will belong to the parent page's browser context.

Signature:

export declare abstract class BrowserContext extends EventEmitter<BrowserContextEvents>

Extends: EventEmitter<BrowserContextEvents>

Remarks

The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the BrowserContext class.

Example

Creating a new browser context:

// Create a new browser context
const context = await browser.createBrowserContext();
// Create a new page inside context.
const page = await context.newPage();
// ... do stuff with page ...
await page.goto('https://example.com');
// Dispose context once it's no longer needed.
await context.close();

Properties

Property

Modifiers

Type

Description

closed

readonly

boolean

Whether this browser context is closed.

id

readonly

string | undefined

Identifier for this browser context.

Methods

Method

Modifiers

Description

browser()

Gets the browser associated with this browser context.

clearPermissionOverrides()

Clears all permission overrides for this browser context.

close()

Closes this browser context and all associated pages.

Remarks:

The default browser context cannot be closed.

isIncognito()

deprecated

Whether this browser context is incognito.

In Chrome, the default browser context is the only non-incognito browser context.

Deprecated:

In Chrome, the default browser context can also be "incognito" if configured via the arguments and in such cases this getter returns wrong results (see https://github.com/puppeteer/puppeteer/issues/8836). Also, the term "incognito" is not applicable to other browsers. To migrate, check the default browser context instead: in Chrome all non-default contexts are incognito, and the default context might be incognito if you provide the --incognito argument when launching the browser.

newPage()

Creates a new page in this browser context.

overridePermissions(origin, permissions)

Grants this browser context the given permissions within the given origin.

pages()

Gets a list of all open pages inside this browser context.

Remarks:

Non-visible pages, such as "background_page", will not be listed here. You can find them using Target.page().

targets()

Gets all active targets inside this browser context.

waitForTarget(predicate, options)

Waits until a target matching the given predicate appears and returns it.

This will look all open browser contexts.