Impact Score: 5/10
Playwright v1.2.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: playwright ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Playwright v1.2.0. Source highlight: **New debug mode**: Use the `playwright` object in browser dev tools to inspect selectors. Learn about Playwright debugging tools.
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
๐ง Bug Fixes & Patches (1)
- **New debug mode**: Use the `playwright` object in browser dev tools to inspect selectors. Learn about Playwright debugging tools.
๐ View Raw Release Notes (Original Developer Log)
## Highlights

- **New debug mode**: Use the `playwright` object in browser dev tools to inspect selectors. Learn about [Playwright debugging tools](https://playwright.dev/#version=master&path=docs%2Fdebug.md&q=).
- **Playwright Docker image**: The [official Playwright docker](https://hub.docker.com/_/microsoft-playwright) image is now available on Docker Hub: `docker pull mcr.microsoft.com/playwright:bionic`
## Browser Versions
- Chromium 85.0.4182.0
- Mozilla Firefox 78.0b5
- WebKit 14.0
## New API methods
[`page.screenshot()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#pagescreenshotoptions) method now supports `timeout` option
[`page.selectOption()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#pageselectoptionselector-values-options) method now accepts `null` as values
[`page.scrollIntoViewIfNeeded()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#elementhandlescrollintoviewifneededoptions) now accepts options to configure actionability checks
[`page.selectText()`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#elementhandleselecttextoptions) now accepts options to configure actionability checks
## New Environment variables
[`PLAYWRIGHT_CHROMIUM_DOWNLOAD_HOST`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#environment-variables) host to specify Chromium downloads
[`PLAYWRIGHT_FIREFOX_DOWNLOAD_HOST`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#environment-variables) host to specify Firefox downloads
[`PLAYWRIGHT_WEBKIT_DOWNLOAD_HOST`](https://github.com/microsoft/playwright/blob/v1.2.0/docs/api.md#environment-variables) host to specify WebKit downloads
## Troubleshooting
- โ ๏ธ WebKit now requires a new [set of dependencies](https://github.com/microsoft/playwright/blob/db3439d4117a7f3d93821e38ccbd26051b18abc7/docs/docker/Dockerfile.bionic#L17-L38) to launch on Ubuntu Bionic.
<details>
<summary><b>issues closed (54)</b></summary>
#810 - [Feature] Proxy options support?
#1050 - [BUG] Calling waitForNavigation twice doesn't work
#1067 - [BUG] Keyboard shortcuts on mac do not work
#1124 - [Question] How to update firefox default prefs
#1131 - [Feature] firefox: instrument file:// process in firefox
#1140 - [REGRESSION]: getting "Protocol error (Target.setDiscoverTargets): Target closed" after upgrading from v0.10 on CentOS7
#1235 - [BUG] Frames show up wrong on Firefox after navigating
#1245 - [BUG]: Failed to launch browser
#1289 - [BUG] Overriding Location Problem
#1292 - [BUG] Service Workers are flaky
#1330 - [Feature] Accessor for browser type from context
#1336 - Any way to have playwright use our own set of browsers by default?
#1349 - [Question] Modify Context Options with launchPersistent
#1421 - [BUG] Protocol error (DOM.describeNode): Cannot find context with specified id
#1426 - [Feature] Debugging devtools panels
#1482 - [Feature] official Docker image on Docker Hub
#1523 - [Feature] `launchPersistentServer` Launches persistent storage browser server
#1552 - [BUG] firefox's `node.scrollIntoView({behavior: 'instant'})` is not instant :(
#1639 - [Feature] support 'private mode' In Firefox
#1686 - [Feature] request.postData to return json string instead of urlsearchparams
#1730 - [Question]Playwright in Kerberos environment
#1848 - Playwright works locally but fails on CI
#1914 - Playwright: Roadmap
#1941 - [BUG] Doesn't work with mac10.13
#1959 - [BUG] dumpio no longer seems to be an option when launching
#1967 - [BUG] Possible issue with downloads
#1985 - [Question] Attaching playwright to an existing browser window?
#1997 - [Feature] Better output from failure with headless=false
#2061 - [BUG] Firefox doesnt open
#2131 - [Question] Socks5 Support
#2134 - [Feature] page.setDeviceScaleFactor
#2146 - [Question] Debugging Failed Browser Start-up in Docker Container
#2182 - [Test] Firefox 'ElementHandle.boundingBox' fails in HEADFUL on bots
#2196 - [BUG] context.setHTTPCredentials(null); does not clear credentials
#2200 - [BUG] Click operation doesn't timeout when there is an alert
#2244 - [BUG] Throwing unhandled rejection errors when Firefox navigates to neterr page
#2261 - [Feature] Auto close browser when launcher process exits
#2270 - [Feature] Add Playwright to DevDocs.io
#2292 - [BUG] Unable to switch frames when using chromium
#2316 - [BUG] Bypass CSP bit can be cached on Firefox
#2344 - [Feature] Chromium does not show file chooser dialog
#2354 - [Feature] Make browser binaries available for manual installations
#2379 - [BUG] Firefox cross-page promises are not resolved
#2429 - [BUG] run-workers not working with docker container
#2437 - [BUG] The official Docker image doesn't work with non root user
#2451 - [BUG] Firefox page.goto broken for sites with service worker
#2510 - [BUG] incorrect focus behavior for webcomponents with delegate focus option
#2527 - [BUG]Waitforselector fail to read the element in execution but works when debugging.
#2528 - [Question] - How can you obtain the current HTML content of the page you are on?
#2537 - [BUG] addInitScript and exposeFunction/Binding don't work for new OOPIFs
#2539 - [BUG] Firefox doesn't install when using a installler made with electron-builder.
#2540 - [BUG] playwright-core has no main entry
#2560 - [Question] Succint list of pro and cons versus Cypress
#2563 - [Question] How to access Print dialog?
</details>
<details>
<summary><b>commits (188)</b></summary>
15ddb5d3 - chore: update webkit version (#2804)
ef125e13 - chore: cut v1.2 (#2850)
ea9b82d2 - browser(webkit): properly disconnect signal handlers when closing browser (#2849)
fc18f2f3 - browser(firefox): support screencast frame size and scale configuration (#2847)
ac2185a9 - test: update http credentials tests (#2806)
06957e8e - feat(firefox): bump to 1122 (#2844)
6bbe7eb0 - chore(rpc): inline options parameter in all rpc channels (#2842)
8d111a88 - docs(readme): add locale to geo example (#2845)
241d39f9 - chore(rpc): exit server upon pipe disconnect (#2836)
2540805b - chore(rpc): misc serializer improvements (#2832)
7f60c4df - feat(webkit): roll webkit to r1301 (#2827)
3dd09f04 - browser(webkit): close context menu on Windows when closing page (#2825)
6aef045f - browser(firefox): create new window for each new page (#2823)
b1b6d3f5 - devops: add signature to BUILD_NUMBER to force rebaseline (#2810)
605257b1 - browser(firefox): Win build fix (#2822)
05b019f1 - reland: testrunner: make environment a simple class (#2812)
024cb1dd - browser(firefox): basic screencast implementation for GTK (#2818)
6329cbbb - chore: remove dead code from test (#2819)
3d403cb2 - browser(webkit): force wpe to use the complex text path (#2801)
756d5373 - feat(webkit): roll WebKit to r1298 (#2813)
f484b20e - fix(recorder): allow node to close gracefully (#2817)
cb0c037e - test(chromium): enable selectall test on mac (#2788)
f9f3aeb0 - test: add failing test for context menus that prevent browser close (#2811)
5484217c - chore: make //utils/roll_browser.js executable
43cdb3ba - browser(webkit): revert #2755 (#2809)
19abc9bd - fix(dialogs): let click timeout, log information about dialogs (#2781)
0d16b16e - fix(firefox): unskip worker error test (#2805)
e12e2451 - test: disable flaky test on chromium mac (#2807)
9d6eaadb - fix(navigation): ensure that goBack/goForward work with file urls (#2792)
c15dc94f - chore(rpc): explicitly create page dispatcher (#2799)
d484e04a - test(route): add another route test (#2800)
14162f89 - browser(webkit): let web page close when it has open context menu (#2802)
c188118d - browser(webkit): do not show popup menu in mac headless (#2803)
e8e45e84 - feat(dom): migrate innerText, innerHTML and getAttribute to tasks (#2782)
ff1fe3ac - fix(close): actually mark the page as closing (#2798)
5c4751d5 - chore: generate protocol during browser roll (#2719)
991e8d42 - browser(firefox): report errors from workers (#2797)
c25fc495 - chore(rpc): scope client-side handles (#2796)
c4e3ed85 - browser(firefox): handle the case when inner window is restored from history (#2791)
e467ea57 - revert: testrunner: make environment a simple class (#2769) (#2790)
bd8e0a7b - feat(webkit): roll webkit to r1295 (#2785)
e480ec3f - feat(chromium): roll to r782078 (#2714)
cd180474 - browser(webkit): don't show context menus for headless windows (#2755)
6afb38d3 - devops: remove folder creation in github actions (#2779)
95538e73 - chore(rpc): move classes around, fix tests, respect dispatcher scopes (#2784)
87516cb3 - chore(rpc): make dispatcher creation and lookup explicit (#2783)
10a9eef8 - chore(rpc): add a channel bot (#2773)
922cbe67 - chore: roll https-proxy-agent to v5 (#2777)
d6338b0c - docs(webkit): update core dump analisys instructions (#2778)
f00fc076 - chore: fix utils/check_availability.js
1605cb45 - testrunner: make environment a simple class (#2769)
c6df8fd5 - browser(webkit): abort interception if loader reached termial state (#2776)
55a07dbf - fix: follow-up with offline comments on implementation of deprecation (#2770)
e29f7b9f - chore(rpc): support workers, file chooser, browser server (#2766)
5bb018e0 - chore(rpc): attribute calles to page, ignore USES_HOOKS (#2764)
3a7d629c - chore(rpc): pass more network tests (#2762)
0963c197 - chore: deprecate method `context.setHTTPCredentials()` (#2763)
38236b4f - fix(close): ensure close() can be called twice (#2744)
1fa9d309 - fix(evaluate): awaitPromise when Promise is overwritten (#2759)
e154e083 - docs(ci): fix gitlab setup
c8076121 - docs: add new doc for multi-page scenarios (#2737)
69127ad8 - docs(docker): update to use official image (#2760)
28a9f55a - chore(devops): use official docker image on circleci (#2756)
18f9b4a2 - test: add failing test for navigation corner cases (#2746)
e920fde9 - chore(rpc): bootstrap demo for rpc (#2741)
4e94bdab - chore(rpc): serialize rpc into actual wire string (#2740)
3e33523e - chore(rpc): clear the browsercontext test spec (#2739)
db12ddeb - chore(rpc): clear the page test spec (#2736)
aad6301a - docs(ci): update intro, caching section, add gitlab (#2735)
0cb5e95b - docs(frames): improve snippet to get frame (#2734)
6393407a - chore(rpc): support downloads, dialogs, persistent context (#2733)
b54303a3 - fix(textContent): make page.textContent(selector) atomic (#2717)
43f70ab9 - test: add more failing tests with react recycle (#2731)
02f75017 - chore(rpc): strongly-type the initializer, remove __init__ phase (#2729)
18d6140d - chore(rpc): support routes and bindings (#2725)
064a0a11 - fix(webkit): do not swallow errors when returning by value (#2723)
71618a9e - chore(rpc): implement input, a11y, console (#2722)
ab6a6c9b - chore: run most actions through page._runAbortableTask (#2721)
bab68332 - chore: introduce the experimental rpc implementation (#2720)
5d5cf26a - fix(logs): streaming logs from InjectedScriptPoll without exception (#2712)
807dc1f3 - fix(crash): improve documentation for crash, reject waitForEvent (#2694)
bc305077 - chore: prepare library types for rpc (#2706)
1865c568 - testrunner: support globalSetup and globalTeardown hooks. (#2686)
f111974a - chore: prepare parsed selectors to more tasks (#2696)
39ce35e1 - fix(errors): strict error handling around element operations (#2567)
8fbd6470 - fix(playwright-core): bring back index.js in playwright-core (#2691)
355305d3 - feat(screenshot): accept timeout, migrate to Progress, wait for visible (#2679)
924a8841 - docs: linux core dump instructions (#2690)
4af8c683 - docs: improve snippets for console logs (#2684)
07dbd0ba - testrunner: teach runHook to accept hook arguments (#2682)
22b4a6bd - devops: enable coredumps for headful tests (#2678)
c61e2d6c - testrunner: drop nested test environments (#2681)
fca514d7 - chore: move non-trivial types out of types.ts (#2680)
d0a6e1a6 - fix(dom): make selectText and scrollIntoViewIfNeeded wait for visible (#2628)
a8eaee31 - docs: add Moon to showcase.md (#2677)
5a525db0 - feat(firefox): bump firefox to 1116 (#2668)
6cec2dfb - docs: add assertions doc (#2585)
68706783 - browser(firefox): do not fail when decoding large responses (#2671)
3d49af25 - browser(firefox): fix redirect interception (#2672)
bb344180 - devops: do cache busting for APT (#2656)
40b1a146 - browser(webkit): support screencast scale on Mac (#2655)
9000ccb3 - fix(click): don't timeout when innerWidth is modified (#2669)
98011351 - browser(webkit): screencast on windows with accelerated compositing (#2670)
7af20162 - chore(webkit): add libvpx Windows build instructions (#2649)
2fa32f7e - browser(firefox): rewrite network instrumentation (#2638)
eac7dab8 - fix(cors): allow intercepting cors requests on chromium (#2643)
2251f9be - feat(webkit): bump to 1290 (#2652)
e0ac11c0 - browser(webkit): fix loader after terminal state access (#2654)
2bfb675c - browser(webkit): make material icons render on Windows (#2650)
5043a36f - browser(webkit): exclude gstreamer, its plugins and libdrm from webkit distribution (#2541)
c8a963d2 - feat(webkit): bump to 1289 (#2639)
5c6c6591 - fix(webkit): update Docker file to include gstreamer (#2636)
53f7f4e4 - test: add redirect+extraHTTPHeaders test (#2637)
d0336ea5 - fix(network): disallow intercepting redirects (#2617)
2511cb4c - devops: drop playwright-electron dependency on playwright-core (#2634)
636e2744 - browser(webkit): revert WebCore agent and frame-based implementation (#2635)
20b23cd2 - docs: fixed various typos (#2633)
38089aba - browser(webkit): support screencast on Mac (#2631)
05863bff - feat(firefox): roll to r1112 (#2629)
f61e8529 - docs: update docs for per-browser download hosts (#2630)
fb84e19b - feat(types): autocomplete for default devices (#2198)
b88fabab - test: add another test for browserContext.addInitScript (#2285)
63924d9a - feat(install/download-hosts): allow multiple per browser (#2452)
971bd889 - fix(chromium): do not bring page to front before screenshot (#2614)
c544bffe - browser(firefox): stop faking intercepting redirects (#2618)
02704e08 - Update upstream_status.md
f581e848 - fix(css selector): handle missing spaces between [] and > (#2612)
082bb3c3 - browser(firefox): rely on upstream permission separation per contexts (#2613)
090d4506 - docs(core-concepts.md): fix typos (#2608)
cc84506c - feat(electron): add a test for clipboard access (#2606)
4834e565 - fix(firefox): bump firefox and fix network with service worker (#2610)
f9633ea9 - fix(scrollIntoView): ensure similar behavior across browsers, handle errors (#2599)
7ba72ce3 - browser(webkit): support screencast on Windows (#2590)
277d50e3 - feat(webkit): roll WebKit to 1286 - interception (#2601)
dab715b1 - browser(webkit): follow-up to the roll, fix the merge (#2600)
ab5f5c8b - browser(firefox): another way to report elements without layout object (#2597)
03690627 - browser(webkit): roll to Tot 6/16/2020 (#2596)
9bc7139c - browser(webkit): fix windows and mac unified builds after roll (#2595)
f2af30cf - browser(firefox): properly instrument requests intercepted by service worker (#2594)
c220fc7f - chore(logs): rework logs for simplicity (#2592)
4b2efd6e - browser(webkit): reference GApplication to keep browser alive on GTK (#2593)
898f1157 - browser(webkit): print context leaks when closing browser (#2591)
e6a4cff0 - browser(webkit): roll to 06/15 (#2581)
59d0f872 - test(recorder): add recorder sanity tests (#2582)
9e7ea3ff - browser(firefox): Page.scrollIntoViewIfNeeded throws for invisible elements (#2584)
1bc04a08 - docs: using DEBUG=pw:api (#2578)
1c7a8952 - chore(cli): add recording mode (#2579)
fd9b1031 - docs: add actionability doc (#2577)
f2c47b1d - feat(cli): introduce basic playwright CLI tool (#2571)
456c865f - docs(playwright-electron/README.md): fix comment mistake (#2568)
61b11252 - chore(debug): various debug mode improvements (#2561)
2659910b - docs: make environment vars snippets cross-platform (#2564)
6530c18a - docs: improvements to ci provider configs (#2565)
98544381 - test: disable flaky cookie test on Chromium Win (#2562)
d4c46686 - chore: explicitly plumb various errors through the retries (#2554)
39019e88 - test: unflake interception test (#2558)
c4e8720e - feat(debug): generate preview for ElementHandle (#2549)
defeeb9c - test: await all promises in upload test (#2557)
1bf9e65e - fix(log): include log name in progress recording (#2550)
fb0b910e - Bump to 1280 (#2544)
49cb96c4 - devops: enable core dumps in the subshell (#2555)
bda6203a - browser(webkit): configure video scale (#2553)
894826de - chore: form the debug script for authoring hints / helpers (#2551)
48088222 - devops: enable core dumps on Linux CI (#2552)
7ddf6641 - test: add a failing test with React rerender (#2545)
dadfe3e8 - browser(webkit): add more missing libraries to WPE build (#2546)
e287f194 - feat(debug): add basic recording helper infra (#2533)
5e97acde - fix(oopif): make Page.addInitScript and Page.exposeBinding work for oopifs (#2542)
0e62d727 - browser(webkit): add missing wayland library to WPE build (#2543)
969803fa - feat(browser): roll Firefox to r1108 (#2532)
855ffa46 - browser(webkit): fix windows build (#2536)
17433d18 - chore: verify launch options (#2530)
de893c65 - browser(webkit): speculative downloads-related crash fix (#2535)
6f048438 - browser(webkit): preserve compositing mode in WPE web process (#2508)
89d1b52f - chore: revert atomic install (#2534)
c99f0d1f - feat(debug): more logs while waiting for stable, enabled, etc. (#2531)
903de258 - chore(websocket): extract common socket part (#2506)
1bb33650 - chore: remove ExtendedEventEmitter and inline waitForEvent (#2529)
8ee19d53 - feature(webkit): roll WebKit to 1273 (#2514)
d7f867db - browser(webkit): screencast for WPE (#2516)
e3f34f6a - fix(selectOption): allow passing null to unselect all (#2405)
24316ad2 - chore: fix emojis for CR and FF in Dockerfile (#2522)
3bff1368 - chore: bump firefox build number
31da3d37 - browser(firefox): roll Firefox to TOT beta branch as of Jun 9, 2020 (#2520)
4d069dda - feat: avoid side effects after progress aborts (#2518)
4faa1306 - test: dump all logs in DEBUGP mode (#2517)
6d8f39b3 - browser(webkit): return proper error upon missing page proxy (#2519)
80705ff5 - chore: simplify logging a bit (#2512)
</details>