Towards a shared WebDriver BiDi roadmap
mathias@chromium.org
Motivation
Web Platform Tests
Chrome’s current roadmap
Chrome’s current roadmap
Chrome’s current roadmap
Logging?
Sandboxes?
(Service) workers?
External state emulations?�…
WebDriver BiDi in Puppeteer
alexrudenko@chromium.org
WebDriver BiDi in Puppeteer
const browser = await puppeteer.launch({
product: 'chrome'|'firefox'|...,
useWebDriverBidi: true,
});
// browser instanceof WebDriverBiDiBrowser implements Browser
const page = await browser.newPage();
// page instance of WebDriverBiDiPage implements Page
await page.evaluate(() => {});
WebDriver BiDi in Puppeteer
interface Browser {
/**
* Public API and shared documentation
*/
pages(): Promise<Page[]>;
...
}
class CDPBrowser implements Browser {
// Current Browser implementation
}
class WebDriverBiDiBrowser implements Browser {
// BiDi-specific Browser implementation.
// * might throw on some CDP-specific APIs that are not supported in BiDi.
// * Common code can be extracted and re-used between CDP and WebDriver BiDi
// implementations whenever appropriate.
// * Same test suite for CDP and BiDi
// https://github.com/puppeteer/puppeteer/pull/8358
// https://github.com/puppeteer/puppeteer/pull/8492
}