17612 Commits
Author SHA1 Message Date
zandGitHub f1be3991cf Delete upstream workflows
This fork does not ship upstream's releases, and its hosted-runner jobs
never start here.

Claude-Session: https://claude.ai/code/session_01HuMDfgFssPUptYUzgZ6Cp8
2026-09-24 10:01:48 -07:00
zeekay de14470da2 ci: canonical pair — hanzo.yml + forge caller
github.com has no runner for hanzo-build-linux-amd64, so a caller under
.github/workflows is a gate that can never be scheduled. This is the ~7-line
caller on the plane that can (git.hanzo.ai git-runner fleet), pinned @v1.
2026-08-06 03:55:22 -07:00
Devin RoussoandGitHub e4e04ac55c docs: release notes for v1.62 Python, Java, and .NET (#42043)
Add the `Version 1.62` section to `release-notes-python.md`, `release-notes-java.md`, and `release-notes-csharp.md`, covering the cross-language 1.62 features:

- WebP screenshots via [`method: Page.screenshot`] / [`method: Locator.screenshot`]
- new `scroll` action option
- [`method: Locator.waitForFunction`]
- [`method: APIResponse.timing`]

Should be cherry-picked to `release-1.62` alongside the language rolls.
2026-07-29 16:12:23 -06:00
Devin RoussoandGitHub 0e057b2605 docs(release-notes): mention the isolated headless clipboard in 1.62 (#42040)
headless browsers keep the clipboard to themselves instead of sharing the clipboard of the operating system, which WebKit on macOS started doing in build `2334`

announce it in the 1.62 release notes so that anyone who relied on the clipboard of the machine being involved knows what changed
2026-07-29 15:36:33 -06:00
Dmitry GozmanandGitHub d7775efb41 feat(selectors): add pierceFrames context option (#42033) 2026-07-29 21:56:26 +01:00
Dmitry GozmanandGitHub 887b421089 fix(mcp): clear dialog modal state when dialog is closed out of band (#42032) 2026-07-29 21:55:43 +01:00
Dmitry GozmanandGitHub beaf223604 chore: remove firefox-beta and chromium-tip-of-tree channels (#42030) 2026-07-29 17:09:36 +01:00
Dmitry GozmanandGitHub d0c1b736b0 feat(selectors): support entering frames while piercing (#42031) 2026-07-29 17:05:48 +01:00
Dmitry GozmanandGitHub e3db3e034d fix(aria): keep icon-only clickable elements in ai snapshots (#42034) 2026-07-29 16:44:26 +01:00
Lazizbek ErgashevandGitHub 0b2088e58e docs(assertions): fix pytest-playwright version for soft assertions (#42026) 2026-07-29 10:47:57 +01:00
b8e76e5990 fix(recorder): don't record duplicate goto for repeated navigation signal (#42027)
Co-authored-by: Copilot <[email protected]>
2026-07-29 10:47:25 +01:00
Dmitry GozmanandGitHub 4bb09e9795 chore: remove ubuntu 20.04 browser builds (#42017) 2026-07-29 10:25:10 +01:00
Dmitry GozmanandGitHub 974edd3feb feat(dialog): add dialogclosed event (#42014) 2026-07-28 16:51:57 +01:00
Dmitry GozmanandGitHub 05709a54bc fix(selectors): respect scope when piercing frames (#42018) 2026-07-28 16:46:59 +01:00
Pavel FeldmanandGitHub 63ff5dc1b3 fix(runner): do not force-kill worker while its teardown is in progress (#42010) 2026-07-28 08:44:43 -07:00
Dmitry GozmanandGitHub 205633dc53 devops: do not swallow doc generation failures when rolling browsers (#42016) 2026-07-28 16:42:48 +01:00
Dmitry GozmanandGitHub f755ee9748 test: remove "page/page-evaluate.spec.ts:894 › promise collected" (#42019) 2026-07-28 16:42:06 +01:00
himasree424andGitHub 75689d1899 feat(cli): add --add-reporter to append reporters without replacing existing config (#41993) 2026-07-28 13:09:25 +01:00
Dmitry GozmanandGitHub 748f7bc9e4 fix(types): support branded primitives in evaluate arguments (#42009) 2026-07-28 10:15:33 +01:00
microsoft-playwright-automation[bot]andGitHub d529911d66 feat(chromium): roll to r1235 (#41974) 2026-07-27 17:25:18 -07:00
microsoft-playwright-automation[bot]andGitHub 1ae6d406cf feat(webkit): roll to r2340 (#42011) 2026-07-27 17:20:56 -07:00
Simon KnottandGitHub 91514ad057 test(mcp): mark dashboard tests as slow (#41946) 2026-07-27 16:26:04 -07:00
Pravin IreriandGitHub 59120d0639 fix(aria): preserve names from collapsed text contributors (#41988) 2026-07-27 16:54:58 +01:00
Dmitry GozmanandGitHub 28ae3de4aa fix(tsconfig): do not throw when "extends"/"references" cannot be resolved (#42005) 2026-07-27 16:54:04 +01:00
Dmitry GozmanandGitHub 82cb42b292 Revert "chore: roll stable test runner to 1.62.0-beta-1784842988000" (#42003) 2026-07-27 16:49:11 +01:00
Yury SemikhatskyandGitHub 3827650d17 feat(webkit): roll to r2339 (#41984) 2026-07-24 15:26:48 -07:00
Yury SemikhatskyandGitHub 484274c421 chore(mcp): replace BackendManager with backend dispose callback and events (#41982) 2026-07-24 14:49:03 -07:00
Dmitry GozmanandGitHub 9cafa748a2 feat: support multiple HTTP credentials (#41979) 2026-07-24 14:36:05 -07:00
Devin RoussoandGitHub 8f362cfa10 chore: roll stable test runner to 1.62.0-beta-1784842988000 (#41980) 2026-07-24 14:56:25 -06:00
Devin RoussoandGitHub c623920f90 chore: roll browser_patches (#41969)
roll `browser_patches` from `playwright-browsers` for the v1.62 release, pinned at the 6 weeks old snapshot (`d44b3cc26`).
2026-07-24 14:56:07 -06:00
Devin RoussoandGitHub 898655c674 feat(reporter): add omitTags option to omit auto-appended tags (#41968)
the terminal reporters automatically append a test's tags to its title, which clutters the output when a test declares many tags

add an off-by-default `omitTags` option that suppresses the appended tags in the `list`, `line`, `dot`, `github`, and `junit` reporters

note that tags written directly into a test title are left untouched

fixes <https://github.com/microsoft/playwright/issues/41945>
2026-07-24 10:27:46 -06:00
Aditya Kumar GuptaandGitHub e0e867011c fix(mcp): escape user input in codegen output (#41962)
`browser_type` escapes user input but `browser_press_sequentially` right below it doesn't. Something like "it's working" ends up producing invalid JS in the codegen. Looked around and a "few other tools" had the same gap while `evaluate.ts`, `form.ts`, `verify.ts` already handle it fine through `escapeWithQuotes()`. Figured it made sense to just bring the rest in line.
2026-07-24 09:41:50 -06:00
microsoft-playwright-automation[bot]GitHubmicrosoft-playwright-automation[bot] <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>Dmitry Gozman
7c3a9be230 feat(webkit): roll to r2337 (#41971)
Co-authored-by: microsoft-playwright-automation[bot] <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Gozman <[email protected]>
2026-07-24 15:04:20 +01:00
microsoft-playwright-automation[bot]GitHubmicrosoft-playwright-automation[bot] <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>Dmitry Gozman
acb5465083 feat(firefox): roll to r1539 (#41970)
Co-authored-by: microsoft-playwright-automation[bot] <203992400+microsoft-playwright-automation[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Gozman <[email protected]>
2026-07-24 14:21:31 +01:00
Dmitry GozmanandGitHub 824f55f354 Revert "chore(deps-dev): bump fast-uri from 3.1.3 to 3.1.4" (#41978) 2026-07-24 14:15:13 +01:00
Dmitry GozmanandGitHub dea59db2de chore(recorder): unify action coalescing and simplify action types (#41958) 2026-07-24 11:41:53 +01:00
Dmitry GozmanandGitHub 7ffedf3c1f feat: add pierceFrames() locator API (#41963) 2026-07-24 11:40:50 +01:00
Yury SemikhatskyandGitHub f86bd78cc1 feat(test-runner): support named test locks (#41862) 2026-07-23 17:12:24 -07:00
Devin RoussoandGitHub 28e86763ac docs: release notes for v1.62 (#41940)
Release notes for the upcoming **v1.62** release.

### Highlights
- **New component testing model** — stories & galleries with the new `mount` fixture
- **AbortSignal** support on operations and web-first assertions (`signal` option)
- **WebP screenshots** — store `toHaveScreenshot()` snapshots as `.webp`
- **`Reporter.preprocess()`** hook for custom test filtering
- **Isolated retries** via `retryStrategy: 'isolated'`

### Also includes
- New APIs: WebAuthn passkeys in storage state (`storageState.credentials`), `APIResponse.timing()`, `Locator.waitForFunction()`, functions as `evaluate`/`addInitScript` args, `scroll` action option
- CLI/MCP: Playwright now bundles the MCP server and `playwright-cli` (`npx playwright mcp` / `npx playwright cli`)
- HTML reporter `mergeFiles` config option
- Announcement: Debian 11 is no longer supported
- Browser versions: Chromium 151.0.7922.34, Firefox 153.0, WebKit 26.5

Validated locally with `npm run doc`.
2026-07-23 15:35:32 -06:00
Devin RoussoandGitHub a92a7a3366 Revert "feat(routeFromHar): add interceptAPIRequests option (#41294)" (#41964) 2026-07-23 14:48:29 -06:00
Dmitry GozmanandGitHub c28b53e624 feat(dashboard): add a debugger actions panel (#41711) 2026-07-23 20:22:49 +01:00
Devin RoussoandGitHub 3e14efd6b7 fix(registry): evaluate defaultCacheDirectory lazily (#41942)
`defaultCacheDirectory` used to be computed inside the `PLAYWRIGHT_BROWSERS_PATH` branch of `registryDirectory`, so setting that variable skipped the platform check
    
<https://github.com/microsoft/playwright/pull/39423> hoisted it into an eagerly evaluated module constant, so it now throws `Unsupported platform: <platform>` at import, before `registryDirectory` consults `PLAYWRIGHT_BROWSERS_PATH`
    
this regressed setups that point `PLAYWRIGHT_BROWSERS_PATH` at their own browsers on platforms without a default cache directory, such as Android/Termux
    
evaluate `defaultCacheDirectory`, `defaultRegistryDirectory`, and `baseDaemonDir` lazily so an explicit `PLAYWRIGHT_BROWSERS_PATH` is honored before any default cache directory is computed
    
`registryDirectory` still throws eagerly when no override is set, since there is nowhere to place browsers

fixes <https://github.com/microsoft/playwright/issues/41852>
2026-07-23 12:31:58 -06:00
Devin RoussoandGitHub fd9395d740 fix(webview): route exposeFunctions callbacks to the originating frame (#41919)
WebKit has no `Runtime.addBinding`, so the webview delegate has to handle bindings through `console.debug(BINDING_CALL_TAG, payload)` instead

the console message carries no execution context id, so every call was dispatched against the main frame, meaning a callback fired from a child frame (e.g. `frame.evaluate(..., { exposeFunctions: true })`) reached the wrong `BindingsController` and never resolved the calling frame's pending promise, hanging until the 30s timeout tore the page down

tag each call with an empty object created in the calling context, as an `objectId` carries the injected script id, meaning that the host can route the call to the frame it came from and release the marker afterwards
2026-07-23 11:35:34 -06:00
dependabot[bot]andGitHub 914284d0b0 chore(deps-dev): bump fast-uri from 3.1.3 to 3.1.4 (#41956) 2026-07-23 11:15:11 -06:00
Devin RoussoandGitHub 610977b294 fix(mcp): surface the missing executable path when a browser isn't installed (#41941)
when a browser binary is missing, `throwIfExecutableMissing` caught playwright-core's `Executable doesn't exist at <path>` and rethrew a generic `Browser "<name>" is not installed`, dropping the path

that path holds the version-specific directory (e.g. `firefox-1534`), which is what tells a genuinely missing install apart from a version mismatch

browsers from a standalone `playwright install` land in a differently-versioned directory than the bundled `playwright-core` expects

keep the path in the rethrown message so the mismatch is diagnosable

this is a further improvement for <https://github.com/microsoft/playwright/pull/40867>

referenced in <https://github.com/microsoft/playwright/issues/41871>
2026-07-23 09:31:33 -06:00
Simon KnottandGitHub 41813407ea perf(test): avoid redundant stack capture (#41961)
Copilot-Session: c00ba4a1-a424-46ae-967e-2ddf02f91511
2026-07-23 17:18:34 +02:00
Dmitry GozmanandGitHub dba907bdbc feat: support pierce-frames selector (#41778) 2026-07-23 15:29:04 +01:00
Dmitry GozmanandGitHub 1299d0f6c4 feat(recorder): record actions by letting page events through naturally (#41902) 2026-07-23 14:51:38 +01:00
Dmitry GozmanandGitHub 89efc223b8 chore: mark v1.63.0-next (#41952) 2026-07-23 14:49:42 +01:00
Simon KnottandGitHub 2934858481 fix: correct pending navigation log spacing (#41949)
Copilot-Session: c8568082-cd3f-4aa2-a7fa-15546d4738ff
2026-07-23 13:35:23 +02:00