2021-01-07 11:46:05 -08:00
# class: ChromiumBrowser
2021-01-07 16:12:25 -08:00
* langs: js
2021-01-10 18:18:35 -08:00
* extends: [Browser]
2021-01-07 11:46:05 -08:00
Chromium-specific features including Tracing, service worker support, etc. You can use [`method:
ChromiumBrowser.startTracing`] and [` method: ChromiumBrowser.stopTracing`] to create a trace file which can be
opened in Chrome DevTools or [timeline viewer ](https://chromedevtools.github.io/timeline-viewer/ ).
```js
await browser.startTracing(page, {path: 'trace.json'});
await page.goto('https://www.google.com');
await browser.stopTracing();
```
2021-01-08 10:59:24 -08:00
[ChromiumBrowser] can also be used for testing Chrome Extensions.
2021-01-12 12:14:27 -08:00
:::note
Extensions in Chrome / Chromium currently only work in non-headless mode.
:::
2021-01-08 10:59:24 -08:00
The following is code for getting a handle to the [background page ](https://developer.chrome.com/extensions/background_pages ) of an extension whose source is located in `./my-extension` :
```js
const { chromium } = require('playwright');
(async () => {
const pathToExtension = require('path').join(__dirname, 'my-extension');
const userDataDir = '/tmp/test-user-data-dir';
const browserContext = await chromium.launchPersistentContext(userDataDir,{
headless: false,
args: [
`--disable-extensions-except=${pathToExtension}` ,
`--load-extension=${pathToExtension}`
]
});
const backgroundPage = browserContext.backgroundPages()[0];
// Test the background page as you would any other page.
await browserContext.close();
})();
```
2021-01-07 11:46:05 -08:00
## async method: ChromiumBrowser.newBrowserCDPSession
- returns: < [CDPSession]>
Returns the newly created browser session.
## async method: ChromiumBrowser.startTracing
Only one trace can be active at a time per browser.
### param: ChromiumBrowser.startTracing.page
- `page` < [Page]>
Optional, if specified, tracing includes screenshots of the given page.
### option: ChromiumBrowser.startTracing.path
- `path` < [path]>
A path to write the trace file to.
### option: ChromiumBrowser.startTracing.screenshots
- `screenshots` < [boolean]>
captures screenshots in the trace.
### option: ChromiumBrowser.startTracing.categories
- `categories` < [Array]< [string]>>
specify custom categories to use instead of default.
## async method: ChromiumBrowser.stopTracing
- returns: < [Buffer]>
Returns the buffer with trace data.