← All reportsPublic report

microsoft/playwright

Playwright is a framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API.

95k stars TypeScript View on GitHubprofiled 11d ago
Try GitZoid
231PRs this week
29Contributors
655Deps scanned
0Issues found
01 · Repo overview

How playwright is put together

Playwright is a monorepo (npm workspaces under packages/*) implementing a browser automation and end-to-end testing framework that drives Chromium, Firefox, and WebKit through a single API. The core is TypeScript/Node.js: playwright-core contains the driver/protocol machinery, while thin wrapper packages (playwright, playwright-chromium, playwright-firefox, playwright-webkit, playwright-test, playwright-client) re-export it with per-browser install hooks. Browser binaries are managed via browsers.json and per-browser installer packages (playwright-browser-*), with patched Firefox/WebKit sources maintained in browser_patches. UI-facing artifacts (trace-viewer, html-reporter, recorder, dashboard) are React apps built with Vite into playwright-core/lib/vite, sharing code via the isomorphic package. Tests are written with Playwright Test itself across many configs (library, mcp, electron, android, installation, webview), and an MCP server / agent CLI tooling layer (@modelcontextprotocol/sdk) exposes automation to AI agents.

Languages

TypeScriptJavaScriptC++ (browser_patches/winldd)Shell

Frameworks

React 19Vite 8@vitejs/plugin-react@playwright/test@modelcontextprotocol/sdkBabelesbuildElectron (test target)ESLint 9 flat configTypeScript compiler

Infrastructure

Azure Pipelines (.azure-pipelines/publish.yml, publish-docker.yml)Docker image publishingGitHub Actions helpers (@actions/core, @actions/github)Android emulator scripts (utils/avd_*.sh)Android driver build (utils/build_android_driver.sh)

Major components

packages/playwright-core

Core library containing the browser driver, protocol implementation, CLI entry (cli.js), and browsers.json registry of pinned browser builds.

Browser wrapper packages (playwright, playwright-chromium/firefox/webkit, playwright-browser-*)

Thin public-API packages whose install.js downloads/validates the pinned browser binary for each engine.

packages/playwright-test

The Playwright Test runner distribution surface, including reporter type definitions (reporter.d.ts).

packages/isomorphic

Shared isomorphic utilities (selectors/CSS parsing, ARIA snapshots, trace model/loader/snapshot storage, URL matching, serialization) used by both Node and browser bundles.

Web UI bundles (trace-viewer, html-reporter, recorder, dashboard)

React+Vite applications for trace inspection, HTML test reports, codegen recorder UI, and session dashboard, built into playwright-core/lib/vite/*.

Agent/MCP tooling layer

MCP server and CLI client code (tests/mcp, packages/playwright-core tools/cli-client) exposing browser automation to AI agents via @modelcontextprotocol/sdk.

browser_patches

Maintenance of patched Firefox/WebKit upstream builds and the winldd Windows dependency-dump helper (PrintDeps C++ project).

Extension & platform targets

Browser extension package (manifest.json, Vite build) plus Electron, Android, and webview test harnesses.

Over the past month, Playwright's development has centered on making its debugging and reporting tools richer: a new chrome://tracing reporter, a redesigned trace viewer with an accessibility-focused 'Display Aria' mode and webm film strips, and more detailed step/network information in traces. The MCP (AI-agent) tooling saw steady hardening around sandboxing, codegen language support, and connection handling, while browser builds for Chromium, Firefox, and WebKit were rolled forward weekly. Housekeeping work included removing the experimental component-testing feature, moving npm publishing to a new secure pipeline, and numerous accessibility fixes across the HTML reporter and trace viewer.

Week by week

2026-08-24A quieter week focused on the test recorder, adding start/stop recording commands to MCP and fixing recorder re-enabling.latest4 changes

Feature

MCP recording commands

The AI-agent tool can now start and stop test recording on demand via new commands.

Fix

Recorder can be re-enabled

Fixed a bug so the test recorder can be turned back on within the same browsing session.

Chore

Test runner rolled forward

The bundled stable test runner was updated to the latest alpha build.

Docs

Java routing example fixed

Corrected a Java code example showing how to intercept network requests.

2026-08-17A busy week that introduced a chrome://tracing reporter with step parameters, a webm-based film strip in the trace viewer, and many accessibility fixes.6 changes

Feature

chrome://tracing reporter

A new reporter exports test activity as Chrome trace files, including step parameters, for analysis in Chrome's performance tooling.

Feature

Webm film strip in trace viewer

The trace viewer now shows video recordings of test runs as a browsable strip of frames.

Fix

Keyboard accessibility improvements

Settings controls in the HTML report, image diff switcher, expandable sections, and trace-viewer buttons can now all be operated from the keyboard.

Feature

Codegen HTTP credentials option

Recording tests can now capture sites requiring username/password authentication via a new --http-credentials option.

Feature

Configurable screenshot size

Traces now let you control how large captured screenshots are, trading detail for file size.

Fix

Better network attribution in traces

Trace files now correctly attribute network requests made by service workers and API request contexts.

2026-08-10Trace viewing gained an accessibility-focused 'Display Aria' mode, the VS Code-style extension learned to handle multiple simultaneous clients, and browser installs got a --no-remove option.6 changes

Feature

'Display Aria' mode in trace viewer

The trace viewer can now show the page's accessibility tree instead of the visual snapshot, helping debug what screen readers see.

Feature

Multiple extension clients

The browser extension integration now supports several client connections at once instead of just one.

Feature

--no-remove install option

Browser installs can keep unused browser versions on disk rather than deleting them automatically.

Fix

IndexedDB connections closed

Saving or restoring login state no longer leaves database connections open behind it.

Fix

Extension self-recovery

The debugger integration now recovers gracefully when the browser detaches it unexpectedly.

Chore

Native happy eyeballs networking

Network connections switched to the operating system's built-in fast-failover logic instead of a custom implementation.

2026-08-03Infrastructure took center stage with a new ESRP pipeline for publishing npm packages, plus removal of experimental component testing and new page-free locators.6 changes

Chore

ESRP npm publishing pipeline

Package publishing moved to Microsoft's secure release pipeline, replacing the previous process.

Refactor

Component testing removed

The experimental component-testing feature was dropped entirely from the codebase.

Feature

Page-free 'by' locators

New locator helpers can be written without first creating a page object, simplifying test code.

Feature

MCP codegen in more languages

AI-driven test recording can now generate Python, Java, and C# code in addition to JavaScript.

Fix

MCP security validation

The agent tool now validates incoming WebSocket connections' Host and Origin headers to block unauthorized access.

Feature

Structured JSON snapshots from MCP

The agent tool can emit machine-readable page snapshots in its JSON responses for easier automation.

2026-07-27Selector piercing through iframes arrived alongside new dialog events, standalone color/motion test options, and cleanup of outdated browser channels.6 changes

Feature

Frame-piercing selectors

Selectors can now reach inside iframes directly, with options controlling scope and context.

Feature

Standalone display options

Tests can set reduced motion, forced colors, and contrast preferences as simple built-in options.

Feature

dialogclosed event

Tests can now listen for when a browser dialog (like an alert) closes, not just when it opens.

Feature

Test annotations in trace viewer

Notes attached to tests now appear inside the trace viewer for easier debugging.

Chore

Removed beta browser channels

Support for firefox-beta and chromium-tip-of-tree channels was removed to simplify maintenance.

Fix

--last-failed recovery fix

Re-running only previously failed tests now correctly handles tests skipped during setup.

03 · Security check

Dependencies and code review

655 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 655 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required