Skip to content

v1.4.0

Compare
Choose a tag to compare
@aslushnikov aslushnikov released this 10 Sep 22:24

Highlights

🚀 playwright-cli is now public!

Playwright Command Line Interface can:

  • Open pages in Chromium, Firefox and WebKit (Safari) on all platforms

    $ npx playwright-cli open wikipedia.org
  • Record user interactions and generate Playwright scripts

    $ npx playwright-cli codegen wikipedia.org
    • multi-page scenarios
    • text-based selectors
    • downloads, uploads
    • many more!
  • Emulate devices, color schemes, geolocation, etc

    $ npx playwright-cli --device="iPhone 11" open wikipedia.org
  • Use DevTools console to inspect Playwright selectors

    > playwright.inspect('text=Log in')
    
  • Generate page screenshots and PDFs

    $ npx playwright-cli screenshot --help

🎥 Record videos (experimental)

Record videos of your scripts, every page and popup is captured!

const fs = require('fs');
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch({
    _videosPath: __dirname  //  save videos here.
  });
  const context = await browser.newContext({
    _recordVideos: { width: 1024, height: 768 },  // downscale
  });
  const page = await context.newPage();
  const video = await page.waitForEvent('_videostarted');
  await page.goto('https://github.com/microsoft/playwright');
  // ... perform actions
  await page.close();
  fs.renameSync(await video.path(), 'video.webm');
  await browser.close();
})();

☁ New Client / Server Wire protocol

In the last release, we introduced an internal protocol to support Playwright in the none-Node environments. It is already used in the Playwright for Python as well as in third party PlaywrightSharp and Playwright for Go implementations.

With v1.4, we are taking it one step further and migrate Node version of the library along with its client-server mode to be based on this new protocol. So if you are using browserType.connect against cloud services or internally, you need to make sure that the service is also updated to v1.4 before you can use it.

Browser Versions

  • Chromium 86.0.4238.0
  • Mozilla Firefox 80.0b8
  • WebKit 14.0

New APIs

Breaking changes for Docker and CI users

  • root user is used in the default Docker image 5f6441e
  • ffmpeg dependency is required when running Chromium
Issues Closed (73)

#632 - [BUG] setInputFiles does fetch that fails due to CSP
#1396 - [Question] Performance issues on Firefox?
#1400 - [Feature] debugging client script
#1568 - [BUG] Playwright cannot talk to Chromium on Heroku
#1605 - Parrallel execution[Question]
#1626 - [Feature] Playwright Recorder
#1654 - [Feature] Command events/hooks
#1935 - [BUG] cant create webkit context
#2053 - How to use playwrite to log in as various users in another ntlm domain?
#2054 - [Feature] page.waitForActionable()
#2086 - [BUG] Firefox on Appveyor seems flaky
#2124 - [Feature] https://playwright.dev/ should have a link to GitHub
#2236 - [Feature] Ability to test printing
#2321 - [BUG] Google Cloud Function error (deploy)
#2363 - [Feature] Pass timeout in the BrowserContextOptions for newContext
#2366 - [Feature] Allow PDF to be returned as a stream.
#2450 - [BUG] Error: NS_ERROR_CONNECTION_REFUSED while navigating to http://localhost:8000
#2453 - [BUG] Text selector not found in open shadow root
#2526 - [BUG]Wait for navigation with url and wait until network idle fail to respond and time out
#2556 - [Question] page.evaluate() issues with xpath
#2559 - [Question] Running WebKit GTK on Ubuntu 20.04
#2573 - [BUG] Can't click 2FA duo button.
#2587 - How can I call an external function in class inside page.evaluateHandle(...) context
#2603 - How to make page bring to front
#2616 - [REGRESSION]: Very slow on v1.1
#2623 - [BUG] Firefox does not launch with executablePath set to Firefox inside Applications folder
#2657 - [Feature] Consider adding Browser Server to the Core Concepts docs
#2660 - [BUG] Cannot find a MiniBrowser.app in neither location
#2692 - What is the proper way of handling tests with more that one tab?
#2704 - Error: Protocol error (Overlay.highlightNode): Could not find object with given id
#2707 - [Question] Unable to load website on Webkit
#2718 - [Feature] Simulate mouse movements so you can visually see what is being clicked during a test run
#2726 - [Question] Allow cross-site tracking or change your browser
#2728 - Is it possible to launch playwright browser "headless:false" in a docker container.
#2821 - [Question] Wait for response.ok()
#2828 - [BUG] - Multiple calls to launchPersistentContext fail in non-headless mode
#2833 - [Question] Is it possible to launch contexts with different proxies?
#2846 - [BUG] Disconnect\Reconnect not working in firefox[when using jest-playwright-preset]
#2853 - Do Playwright stores a "dev_profile" file?[Question]
#2859 - Playwright Firefox browser instances not closing after closing browser context[BUG]
#2878 - [REGRESSION]: context.pages() now works differently
#2882 - [BUG] Cannot use https or socks5 proxies
#2889 - [Feature]release train order
#2905 - [BUG] Getting chromium as undefined with playwright-core
#2930 - [BUG] page.screenshot doesn't create folder if needed
#2942 - [Feature] Switch between tabs in same context
#2971 - [Internal] Jest runner limitations / adoption blockers
#3001 - [Internal] for the jest portion of the tests, we should handle sigint.
#3047 - [BUG] miss export type BrowserTypeConnectOptions
#3083 - [Internal] browser roll script should update docs
#3084 - [Question] "Cannot read property 'launch' of undefined"
#3094 - [Feature] Add list of contributions to release notes
#3108 - [Feature] Add yarn to playwright:{bionic:dev} Docker images
#3109 - [Question] Add PID to pw logs
#3140 - [Feature]make automation life more good!
#3142 - [BUG]
#3144 - [Question] clarify in docs what click timeout option waits for
#3146 - [Question] Deno Integration?
#3151 - [BUG] Page.goto() flakiness - seeing TimeoutError sometimes
#3192 - [Question] Check if element is stable
#3215 - [Feature] Roll Firefox to current beta
#3230 - [BUG] FF - launchPersistentContext
#3231 - [Question] page.keyboard.press('Enter') not working on Firefox
#3232 - [Question] Chorimium is lauched but unable to navigate to url as it just says about:blank
#3233 - [BUG] IP:PORT Proxy doesnt work on playwright-firefox
#3258 - [Feature] add a webkit/firefox auto-roll bots
#3259 - [Feature] serve Chromium from our CDN
#3262 - [Question] Channels download.delete and download.createReadStream
#3269 - [Question] Mouse smooth scroll
#3281 - [BUG] Docs have wrong evaluation argument type
#3293 - [Feature] take implicit xpath if selector starts with .. (dot dot)
#3310 - [BUG] Website throws exception before rendering
#3315 - [BUG] Fails on start - WS url is undefined

Commits (384)

d64d002 - browser(firefox): fix screencast in first window on mac headful (#3826)
559f30d - chore: roll ffmpeg binaries to r1001 (#3824)
3124a1b - devops: fine-tune ffmpeg compilation (#3823)
4240e1d - docs: add page on language bindings (#3819)
777689a - docs(intro): add cli to getting started (#3821)
29b8098 - devops: fix running docker when executed from cronjob (#3822)
ee98bd0 - docs(selectors): update structure and add best practices (#3817)
245d100 - devops: produce ffmpeg builds on bots (#3820)
8a339be - browser(firefox): roll Firefox to r1171 (#3818)
ff0d697 - docs(docker): add note how to use chromium sandbox (#3779)
8687400 - refactor: consolidate ffmpeg-related files in third_party/ffmpeg (#3815)
6c83266 - browser(firefox): force firefox devtools to open in a separate window (#3816)
dee7392 - feat(webkit): bump to 1343 (#3814)
5364c6a - browser(firefox): fix automatic http->https redirect (#3812)
3c69f2a - tes(types): use @ts-expect-error in tests where we check for errors (#3794)
e8cf895 - feat(chromium): roll Chromium to r799411 (#3811)
1791be6 - fix(input): send keypress event for enter key in chromium (#3796)
b28ed21 - chore: remove highlight from PWDEBUG in favor of devtools one (#3800)
355ea73 - feat: actually bundle FFMPEG binaries with NPM packages (#3804)
e9f4843 - chore: use non-fractional revision for chromium revision (#3809)
b8d7f39 - browser(chromium): mirror Chromium r799411 to Azure (#3808)
638c77c - devops: stop bundling FFMPEG with Chromium (#3806)
af58c8a - fix(screencast): ensure that _videostarted is fired after newPage (#3807)
a5a5636 - browser(webkit): fix basic screencast for accelerated compositing on win (#3803)
8f81868 - fix(screencast): tune ffmpeg params for better quality (#3798)
143adc1 - refactor: bake ffmpeg into npm instead of CDN (#3799)
1d4601b - browser(webkit): fix screencast scale on Mac headful (#3797)
658b34e - fix(lint): fix doclint and preprocessor tests (#3793)
74f1a64 - fix(debug): do not generate source urls for anonymous scripts (#3787)
c83b2da - chore: revert isDevMode into isUnderTest (#3785)
fea3ceb - chore: expose injectedScript.extend (#3784)
d6cd022 - test(screencast): mark win/webkit ac as failing (#3783)
f8e1fd7 - test: add a failing test for page.press (#3780)
66985fc - feat(screencast): add expreimental public API on context (#3766)
f6aab9e - chore: fix minimum node version (#3777)
675ce00 - chore: introduce "instrumentation" that is used for debug and trace (#3775)
25fe115 - docs: update why-playwright.md (#3761)
bd7cdc3 - feat(webkit): bump to 1341 (#3774)
bcb4944 - devops: auto-detect platform in //browser_patches/chromium/build.sh (#3772)
bbe2233 - feat(chromium): use bundled ffmpeg instead of npm deps (#3771)
f09145e - chore: fix typo in build script
3cb3c65 - chore: build Chromium version with ffmpeg (#3770)
a755d10 - devops: encode build number together with Chromium revision (#3769)
dfc0006 - devops: bundle ffmpeg with chromium (#3767)
fa8de99 - Revert "devops: revision Chromium repackaged builds separately (#3698)" (#3763)
b6557b9 - browser(webkit): remove incognito emoji from title (#3765)
fc7b065 - browser(webkit): revert #3360 as it broke many sites (#3764)
921c8d8 - docs: add help section (#3741)
52fd88b - fix(screencast): always send at least one frame in wpe (#3760)
190d16d - feat: add browser type to device descriptors (#3731)
8b9be6b - devops: fix publishing of @next packages to NPM (#3759)
91671f5 - chore: remove unused dev dependencies (#3758)
5364e32 - devops: bake commit SHA inside npm package (#3754)
c190310 - fix(setInputFiles): make it work with CSP enabled (#3756)
f232f34 - test: create a page in fixture tests to exercise browser processes (#3745)
d3c6777 - browser(webkit): force repaint on screencast start (#3757)
8df1fe4 - test: explicitly require expect (#3755)
7ad5bd9 - test: roll test-runner to 0.2.9 (#3752)
84a0066 - devops: align release publishing of docker image with dev releases (#3725)
42a6404 - test: roll test-runner to 0.2.9 (#3753)
175fc52 - test: roll test-runner to 0.2.8 (#3748)
c5c3c75 - feat(webkit): bump to 1338 (#3751)
6b085a3 - browser(webkit): do not clear existing contexts from map when exiting (#3750)
7671e8e - devops: remove warnings when running under root without sandbox (#3749)
2d46cd8 - feat(electron): automatically disable electron sandbox when run as root (#3747)
0976732 - fix(screencast): remove white padding in headless chromium (#3746)
de547d7d - fix(connect): make selectors.register work in connected browser (#3664)
5c3bf5b - test: add tests for selectors matching root behavior (#3744)
469541a - test(screencast): try to unflake tests (#3742)
5f6441e - chore(docker): use root user in Docker image (#3739)
b7f6a98 - devops: use a helper script to tag and push docker images (#3737)
a588840 - test(screencast): add auto scale test (#3733)
be5eba0 - fix(rpc): improve internal error for unexpected rpc message (#3734)
df12264 - devops: use ubuntu 20.04 to build & publish docker releases (#3736)
216db2c - devops: use microsoft/playwright-github-action@v1 everywhere (#3735)
1e64efc - feat(screencast): autoscale to fit requested size (#3730)
9d999ae - devops: push all tags to docker registry (#3732)
a4563a8 - fix(snapshot): remove integrity checksum for css (#3729)
a588125 - test: call setDevMode in wire tests (#3678)
fc29623 - feat(screencast): use system ffmpeg on linux (#3724)
6590130 - test: roll test runner to 0.2.5 (#3723)
47ea1e0 - devops: another attempt to figure out docker publishing (#3721)
ee1becd - browser(firefox): autoscale screencast to fit frame (#3720)
1de4f7f - devops: trigger docker devrelease when github action itself changes (#3719)
2dc57c5 - chore: fix yaml syntax in the github action (#3718)
1f93fb7 - chore: fix devrelease workflow names (#3717)
d71d2f5 - devops: install ssh in the docker image (#3716)
f8408cb - fix(launcher): check libs required for playing h.264 (#3715)
76ab82f - browser(webkit): prepend http:// to the schema-less URLs (#3713)
ba7093c - devops: try to use azure/docker-login instead of manual login (#3714)
fad840d - browser(webkit): fit screencast to frame if no scale is specified (#3707)
ef5c87c - devops: switch docker publishing to a bash script (#3704)
db9b8a0 - fix(screencast): dont throw from frameAck if target is closed (#3702)
1877c29 - devops: remove autoroll (#3684)
a17dd98 - feat(screencast): auto recording for new pages in chromium (#3701)
f23dbfb - test(screencast): more tests on Chromium, new seek impl (#3699)
fcc1680 - devops: revision Chromium repackaged builds separately (#3698)
8f37d78 - Add Applitools SDK to the showcase (#3694)
8ec55e1 - feat(screencast): use ffmpeg to produce webm in chromium (#3668)
3cc9109 - chore(testrunner): move out of the repo (#3687)
555a8d0 - fix(testrunner): include fixture teardown into timeout, add global timeout (#3685)
c47af2d - fix(testrunner): report unhandled rejection ones, allow retry (#3686)
abb50a7 - browser(firefox): fix request frame attribution (#3657)
6a93cb9 - fix(types): don't show types that we don't export (#3185)
4e5007a - fix(rpc): nice error stacks when running tests (#3507)
c2cd963 - chore: added envinfo to the bug issue template (#2237)
657cc9b - feat(test): use metafunc in describes (#3682)
fb6d1ad - docs(docker): add link to mcr status ui (#3679)
45e178f - fix: support IP:PORT short notation to specify proxy server (#3568)
97e4561 - feat(test): introduce metafunc for skip (#3676)
e5ff283 - fix(trace): only enable on separate tracing bots (#3677)
63a0e0c - chore: bump dev dependencies (#3659)
7b1fac9 - test: mark all crash tests as flaky on firefox win (#3675)
3d6051a - test: mark "should work for webgl" as fixme on webkit linux (#3674)
90408aa - test: Remove "request interception" from oopif tests (#3671)
b34d9ab - feat(trace): experimental traces for our tests (#3567)
19f21b1 - browser(webkit): use webkit generate-bundle tool to generate the bundles (#3563)
4386cd4 - test: mark "headless should be able to read cookies written by headful" as flaky on firefox (#3673)
744af78 - feat(rpc): simplify browser name detection on the client side (#3670)
eec9263 - test: make some tests as flaky (#3672)
2edd6f2 - docs: introduce why-playwright.md (#3666)
e2057fb - chore(test): run eslint on tests (#3638)
6ffdd4d - feat(testrunner): allow unexpected passes (#3665)
5c0f933 - test: always setUnderTest in index.js, rename to setDevMode (#3662)
7444de4 - docs: update navigation and loading page (#3655)
cfbec44 - feat(testrunner): allow annotating tests as flaky (#3663)
6a0f587 - fix(testrunner): report suite-level errors (#3661)
2b7d79d - fix(testrunner): fix windows bots (#3660)
efd45f8 - fix(testrunner): report tests as passed in the trial-run mode (#3654)
0615406 - feat(testrunner): support repeat-each (#3652)
3ea3cf0 - devops: add yarn and git in the docker container (#3651)
15ec87d - feat(testrunner): support --retries, flaky tests (#3649)
254238c - enh: bake browser revisions and api into driver (#3514)
c96ea4b - chore: remove docker image size computation scripts (#3650)
5f9407a - feat(webkit): bump to 1334 (#3643)
1a5f22d - fix(test): import playwright types with import type (#3647)
a20bb94 - chore(testrunner): introduce test result, reuse it in ipc (#3644)
9e2e870 - test: switch browserType.connect tests to use remoteServer (#3646)
8d7ec3a - fix(downloads): make path/saveAs work when connected remotely (#3634)
a87614a - feat(test): shrink api to run only, rename pending to skipped (#3636)
9b50a6d - test: Fix Chromium JSCoverage reportAnonumousScripts test (#3641)
4249a11 - chore(types): upgrade to TypeScript 4.0.2 (#3637)
80cf7e9 - browser(webkit): do not crash when opening web inspector (#3631)
f9eeb29 - fix playwright being imported before toImpl could be registered (#3632)
a6b9922 - fix(testrunner): console.log in color (#3633)
5f86253 - docs: add more detail to waitForNavigation API method (#3635)
25381cf - test: add some tests for remote connect (#3614)
db0fa07 - fix(screencast): replace ScreencastStopped with async path() (#3626)
1a37f8b - browser(webkit): remove browserContextId from some events (#3628)
22b9246 - chore(context): unify browser context id handling (#3629)
a2a9619 - fix(devops): fix firefox protocol.ts location (#3630)
adc2a44 - infra: simplify test results collection (#3623)
17077fd - browser(firefox): introduce browser level screencastFinished event (#3625)
a0bd8de - browser(chromium): package r799610 (#3624)
a38564b - fix(screencast): replace ScreencastStopped event with async path() (#3612)
aaff845 - test: collect stdout/stderr in tests (#3615)
0af3d8e - docs(showcases): added example for Heroku (#3414)
aeab0fa - docs(docker): add note about how to list all tags (#3596)
72b3147 - docs(example): simplified overwriting of requests (#3621)
c25dfba - infra: pull chromium 801321 (#3620)
14abee2 - browser(webkit): fix compilation on mac (#3619)
e215461 - chore: split tests for faster execution (#3613)
db7bec3 - browser(webkit): introduce screencastFinished event on Context (#3611)
06dcf96 - feat(testrunner): allow external reporters (#3603)
e89de7e - fix(testrunner): allow worker fixture to throw/timeout (#3610)
3b2f14f - test: fix wire tests (#3609)
b9d6324 - feat(screencast): fire start evet for popups (#3600)
22e2bf1 - chore: use channels as a namespace in client code (#3608)
bdbcae1 - chore: remove injected -> types dependency (#3606)
3bdf0e8 - fix(testrunner): pass error into test fixtures (#3605)
a099e94 - chore: move last rpc files to their place (#3604)
59a439e - feat(webkit): bump to 1330 (#3602)
1c69682 - browser(webkit): avoid use after free on page close (#3599)
a2dc852 - feat(testrunner): introduce pytest-style reporter (#3594)
4f1f972 - browser(webkit): fix mac compilation (#3598)
2b3a1ae - docs: add theheadless.dev to showcase (#3597)
cd220da - chore: move src files to server (#3593)
43893cc - chore: improve check-deps (#3592)
73e53b2 - chore: move injected and debug to src/server (#3591)
baa6b64 - feat(testrunner): convert reporter to an interface (#3588)
847201b - chore: move firefox to src/server/firefox (#3590)
6a53b20 - chore: move webkit to src/server/webkit (#3589)
77f8031 - fix(electron): fix electron types, move source to src/server/electron (#3583)
53ac35a - chore(testrunner): complete ts migration (#3587)
224d3df - chore(testrunner): extract runtime api and use it from cli (#3585)
2e1493a - chore: move browserPaths to utils, enforce more deps (#3584)
4025f9f - feat(testrunner): expose test and runner config to fixtures (#3580)
f4e8f34 - chore: move chromium to src/server/chromium, enfore installer deps (#3582)
9fca63f - chore: move src/rpc/client to src/client (#3581)
72f11fd - test: Remove duplicated expect (#3579)
e5dae0d - test: move reporters off mocha (#3577)
655013d - chore: move shared utilities to src/utils (#3575)
b909924 - test: remove mocha dependency (#3576)
93d8839 - browser(webkit): explicitly track pages reported for context (#3574)
6fe1cd9 - chore: move protocol files to src/protocol (#3571)
398bd47 - test: translate tests into ts, extract mocha (#3565)
57e8617 - chore: refactor impl-side events to be per-class (#3569)
d4dac04 - chore(testrunner): add exit code tests (#3562)
de5ecc0 - browser(webkit): roll to r266002 08/21/2020 (#3561)
8ae3c4b - feat(testrunner): delete types.d.ts (#3551)
1f0e9db - feat(firefox): support context-level screencast api (#3555)
7a49283 - fix(test): fix the popup test on Windows (#3558)
83f3995 - test: take a screenshot upon failure example (#3556)
071931e - feat(firefox): bump to 1166 (#3557)
e2bb6a0 - fix(click): allow clicking 1x1 sized elements (#3538)
012f942 - chore(test-runner): move into its own folder and typescript project (#3548)
4c56354 - fix(permissions): browserContext.grantPermissions to respect the origin (#3542)
9f3a1b5 - browser(firefox): send screencastStarted after attachedToTarget (#3554)
5ba0254 - browser(firefox): make sure response is sent when context is closed (#3553)
db2e66a - test: introduce global setup (#3544)
eab5ff4 - chore(rpc): use channels types in dispatchers (#3549)
e32a496 - devops(browser-roll): fix fixture tests (#3547)
854d755 - browser(firefox): make context close wait for sessions to finish (#3550)
0d03cc0 - feat(utils): add a script for watching various builds (#3545)
86815d7 - test: convert rename options to parameters, remove options magic (#3543)
30f4c0c - test runner: remove dependencies on playwright (#3539)
1829232 - api: add waitForElementState('disabled') (#3537)
0a22e27 - fix(chromium): disable lazy loading iframes (#3535)
f13cebc - browser(firefox): remove redundant checks for PageTarget._browserContext (#3541)
e679b82 - fix(devops): auto roll tests (#3536)
a78d83e - docs: clarify response and requestfinished events (#3532)
a65b0bb - test: merge test options into options (#3531)
9ac1bbc - chore: remove more paths and url matches from the server side (#3528)
df50660 - browser(firefox): make tab close listener sync again (#3533)
83de007 - feat(screencast): add start/stop events on context (#3483)
73cd6ec - browser(firefox): add screencast control methods to context (#3530)
745dc33 - chore: merge Browser{Context,}Base into Browser{Context,} (#3524)
56da4bb - devops: make sure rust toolchain is installed (#3485)
8989d66 - test: introduce options (#3525)
63a2c67 - chore: align SerializedAXNode with rpc protocol AXNode (#3522)
9715752 - feat(slowmo): only slowmo once per user action (#3012)
b0667e8 - test: fix fit, do not rely upon mocha suite (#3520)
e54195c - chore: align page.pdf options to the rpc protocol (#3521)
e7e8524 - chore: remove screenshot path from the server side (#3519)
20c6b85 - chore: remove route/unroute from the server side (#3518)
3cf48f9 - chore: simplify conversions around setInputFiles (#3516)
ecf4cd3 - chore: simplify conversions around selectOption (#3517)
aeadf50 - chore: use HeadersArray instead of Headers object on the server side (#3512)
77cab8b - test: introduce test collector (#3515)
510182f - test: use isChromium, etc fixtures for browser name sniffing (#3508)
b2228a6 - fix(test): disable more screenshot tests on headful firefox (#3513)
5a964f7 - tests: fix should get the same headers as the server (#3510)
9790ea5 - chore: align more server-side options with rpc protocol (#3506)
7a77faf - fix(testrunner): do not override debug.log (#3505)
dfa1f10 - feat(screenshot): create directories for screenshot file
0e9793c - api: ElementHandle.waitForElementState (#3501)
58fc6b4 - chore: align some server-side methods with rpc calls (#3504)
59e3326 - tests: add test for page.focus() in Firefox (#3478)
141a255 - chore: remove unused methods from server side (#3502)
1e9c0eb - chore: remove logger infrastructure from server side (#3487)
f3c2584 - feat: added rpc driver (#3500)
8ea2800 - devops: first implementation of browser auto-roll bot (#3455)
5aa4116 - docs: sort all enums in doclint (#3488)
3aae8c6 - test: run tests by ordinals, not ranges (#3497)
262e886 - test: organize golden files under snapshots folder (#3494)
c0b9cec - feat(types): export ConnectOptions (#3147)
d516f81 - fix(rpc): add a custom toJSON to help jest's expect library (#3489)
f983432 - feat(firefox): roll firefox to r1160 (#3468)
c900395 - test: restart worker upon any test failure (#3492)
c44f841 - test: reverse dumpio into quiet, serialize output (#3491)
73d2dc1 - test: encapsulate mocha into test runner (#3490)
5410c30 - chore(test): fix tests when using browser path overwrites (#3453)
35fbd58 - test: implement in-process debug mode (#3486)
bc23324 - chore: remove apiName plumbing and some unused methods from server side (#3481)
244c2f3 - feat(rpc): make sure filechooser is only intercepted when needed (#3482)
0c798f0 - fix(testrunner): properly run tests when the first arg is a file (#3472)
69e1e71 - feat(click): provide preview of the element intercepting pointer events (#3449)
85c93e9 - api: introduce ElementHandle.waitForSelector (#3452)
a03c761 - test: unconditionally plumb debug to parent process (#3479)
d537088 - test: deliver colorful debug messages, do not pipe stdio (#3477)
ae4280a - chore: cleanup more non-rpc code (#3471)
dec8fb7 - fix(hover): do not require the element to be enabled before hovering (#3445)
c1de95f - feat(testrunner): pretty error messages (#3469)
2f5a0a6 - test: slowly removing testOptions (#3464)
036cd5c - feat(testrunner): use ring character for skips (#3454)
f45791d - feat(testrunner): support sourcemaps (#3459)
4dde288 - browser(firefox): roll Firefox to August 14 beta (#3465)
ee02702 - test: allow overriding test fixtures, add some test runner tests (#3463)
a64cdcc - feat(webkit): bump to 1326 (#3462)
31fac37 - test: allow overriding the worker fixtures (#3460)
737bfa2 - test(screencast): skip test that depends on accelerated compositing (#3458)
6abc352 - test: remove output and golden directory notions (#3456)
ae5700b - browser(webkit): do not crop video on Mac headless (#3457)
9b52ca8 - chore: remove unused non-rpc code, test options, infra, bots (#3444)
1762275 - feat(testrunner): cache transformed files (#3451)
84441f8 - chore(test): run doclint tests with mocha, delete testrunner again (#3447)
e2cfb05 - test: print stderr upon test failure (#3448)
18b2cf5 - feat(rpc): use rpc protocol for browserType.connect (#3380)
a4eb86c - browser(firefox): update styles when changing color scheme (#3407)
5498ed1 - test: introduce --trial-run mode to capture test model (#3436)
5156659 - chore: add comment to clarify /sbin
c99acd0 - feat(firefox): rollback to 1157 (#3438)
c27e809 - chore: suppress trailing whitespace warning in prepare_checkout (#3441)
4bad89f - test(screencast): do print actual pixels on failure (#3442)
d9727c6 - Typo fix (#3430)
4f05039 - devops: do not fail check when refusing to publish TOT revision (#3443)
84ca012 - test: upload output from headful bots (#3439)
68e6ab8 - test(screencast): test that css animations are recorded (#3427)
4bb2658 - test: fix create output folder (#3431)
51bd370 - Revert "chore(test): run doclint tests with mocha, delete utils/testrunner (#3428)" (#3432)
15fa27e - feat(firefox): roll firefox to r1158 (#3426)
33785eb - chore: add npm i changes (#3413)
061ff25 - chore(test): run doclint tests with mocha, delete utils/testrunner (#3428)
d367735 - feat(testrunner): take the first argument as the test root dir (#3423)
f2088e0 - devops: fix Chromium repackaging to respect symlinks (#3424)
ec24516 - chore(test): remove try/finally pattern from fixtures (#3409)
23f5ed8 - fix(launcher): default to ubuntu20.04 for newer releases (#3400)
f4e65f6 - test: implement spec builder (#3422)
f0fcdc8 - test(firefox): make headful screencast tests work under xvfb (#3421)
06ddacd - docs: introduce doc on authentication (#3404)
eb67c86 - test: fix it.fail().slow is not a function (#3420)
40f6852 - devops: migrate //utils/check_availability.js off browser fetcher (#3418)
884cef7 - browser(chromium): roll Chromium to r796653 (#3419)
a4a07c4 - test: support --grep, --forbid-only (#3417)
a574fa6 - api: add Frame.page() getter (#3392)
3a6b5ca - test: add sanity test for playwright-electron (#3387)
adfeaa4 - feat(firefox): bump to 1157 (#3395)
22d1be3 - docs: add showcase how to use allure-report and jest-circus with playwright (#3408)
be7db4d - docs(ci): add sample config for jenkins (#3398)
962ddc0 - test: consolidate runner files (#3415)
7e07634 - test: use mocha in ci/cd (#3406)
079b6e0 - docs: add getting help section (#3410)
16b471f - test(screencast): video recording during cros-process navigation (#3396)
915902c - browser(firefox): roll Firefox to roughly July, 15 (#3411)
1ef199f - fix(launchDoctor): add sudo to install missing packages hint (#3402)
c035560 - fix: full path to ldconfig in linux (#3401)
4061bc6 - test: make fit run single test (#3394)
da95b73 - browser(firefox): emit iframe lifecycle when initial navigation fails (#3389)
6054f14 - chore(tests): convert all tests to typescript (#3384)
9375cc6 - docs: introduce docs for page object models (#3391)
55a7848 - fix(types): fix type generation to make ts tests work (#3385)
812d7ee - feat(webkit): bump to 1325 (#3388)
2db97e3 - feat(firefox): migrate to protocol-based proxy implementation (#3362)
bfdb59e - test: make mocha runner work in parallel (#3383)
9697ad6 - fix(chromium): handle the case when new pending comes before old commit (#3370)
ff2c2b2 - test: Fix insertText test title (#3386)
77e75b4 - chore(test): move electron tests to typescript (#3379)
d8d845a - feat(screencast): add private recording APIs and basic test (#3296)
8bb6d73 - feat(rpc): keep non-rpc linux bots for now (#3381)
823ef86 - test: add support for mocha (#3376)
7580360 - feat(firefox): bump to 1156 (#3378)
f254498 - browser(webkit): align GTK implementation with Win (#3377)
d76166b - chore(test): require playwright fixtures from userland (#3355)
82c6843 - feat(webkit): bump to 1324 (#3373)
538daf3 - browser(firefox): exclude frame from screencast video (#3372)
6c68435 - docs: make api docs around pointer actions more explicit (#3374)
8f30d15 - devops: re-packge chromium on windows without interactive_ui_tests.exe (#3375)
3179e71 - feat(rpc): in-process rpc on by default (#3104)
1b8128e - installer: start downloading Chromium archives from our CDN (#3361)
ef76f5b - feat(rpc): introduce JSON type in the protocol for arbitrary blobs (#3367)
6f3f608 - docs(showcase.md): add Accessibilty Insights to community showcase (#3368)
89ae8e0 - browser(webkit): disable accelerated compositing on Windows (#3360)
6f09590 - test: restore nojest runner (#3359)
c6acc32 - docs(api): explicit nulls, use Serializable and EvaluationArgument more (#3358)
6a19bf5 - docs(showcase): add expected-condtion-playwright library (#3356)
2a0cbda - devops: mirror chromium builds to our CDN (#3357)
69c88d8 - feat(rpc): handle screenshot path on the client (#3352)
7e2cc77 - test: add a test for newCDPSession rejecting on non-pages (#3353)
83f5628 - feat(rpc): misc fixes (#3351)
a225447 - browser(firefox): introduce global proxy (#3335)
ddd483b - browser(webkit): correctly record video in headless mode Windows (#3354)
f6d321f - test: do not inherit from the Node environment (#3348)
b3091de - fix(cors): allow routing the cors request with credentials (#3336)
eac8aee - chore(types): convert tests to typescript part 3 (#3340)
1bcbf19 - test(video): mark test as failing in WebKit Linux (#3344)
3665bb0 - docs(api): remove extra closing square bracket, add an opening square bracket. (#3342)
9d543f9 - docs: fix typo in Core Concepts doc page (#3343)
4ec3290 - docs(api): replace select-all note with example (#3328)
411c738 - feat(firefox): roll to r1154 (#3333)
434b9e1 - devops: support EXPORT_COMPILE_COMMANDS env variable in webkit build.sh (#3334)
c9409bf - fix(types): add missing properties to DeviceDescriptor (#3332)
83ac3f4 - chore(test): convert some more tests to typescript (#3329)
ca3bd5e - browser(firefox): roll Firefox to June, 24 (#3327)
4b3fb6d - chore(test): convert tests to typescript (1) (#3307)
8716a54 - docs: fix for documentation link in the README.md (#3324)
cdfe73f - api(console): make ConsoleMessageLocation properties required (#3290)
5c0b88f - feat(test): add dot report for aslushnikov (#3317)
0a5d340 - test: print failed tests upon interrupt (#3316)
5f7b546 - test: overridden timezone does not change default in another context (#3313)
9effb32 - browser(firefox): always create new process rather than reuse one (#3312)
c45f7af - feat(firefox): bump to 1152 (#3302)
4956054 - test: bump jest to 26.2 - per-test progress, slow thresholds (#3314)
aa2ec09 - test: default and overriden locale isolation between contexts (#3308)
e582cc6 - fix(launcher): make PrintDeps.exe path configurable (#3311)