All Versions
28
Latest Version
Avg Release Cycle
10 days
Latest Release
1256 days ago

Changelog History
Page 1

  • v1.6.2 Changes

    November 17, 2020

    Highlights

    ๐Ÿ›  Minor bugfixes.

    ๐Ÿ’ป Browser Versions

    • Chromium 88.0.4324.0
    • Mozilla Firefox 83.0b8
    • WebKit 14.0 Commits (4)

    691c38b - feat(chromium): roll to r827102 (#4462)
    a6474d5 - chore: register frameless listeners separately (#4407)
    d8d4f83 - chore: mark v1.6.2
    ๐Ÿšš dcb1798 - fix(websocket): remove "skip frames" logic (#4435)

  • v1.6.1 Changes

    November 13, 2020

    Highlights

    ๐Ÿ›  Minor bugfix.

    ๐Ÿ’ป Browser Versions

    • Chromium 88.0.4316.0
    • Mozilla Firefox 83.0b8
    • WebKit 14.0 Commits (1)

    ๐Ÿ”จ 6b5c2cf - revert: lifecycle refactoring, it breaks setContent (#4420)

  • v1.6.0 Changes

    November 12, 2020

    Highlights

    Touch

    • ๐Ÿ’ป Use page.tap() to automate native tap events. Like other input events, taps auto-wait for the UI element and actionability checks.

    Network

    • WebSocket inspection : Use page.on('websocket') and the new WebSocket class to inspect WebSocket connections.
    • HAR export : Capture and export all the network activity as a HAR file. Pass recordHar while creating new browser contexts.
    • Resource timing : Use request.timing() to retrieve and analyze timing data for the network requests.
    • ๐Ÿ’ป Proxy for browser context : Network proxy settings can now be configured per browser contexts with the proxy option on the new context.

    Playwright CLI

    • CLI codegen can now generate C# code. Run npx playwright-cli codegen --target=csharp to try!

    ๐Ÿ’ป Browser Versions

    • Chromium 88.0.4316.0
    • Mozilla Firefox 83.0b8
    • WebKit 14.0

    ๐Ÿ†• New APIs

    #1655 - [Feature] Custom methods on Page
    #2515 - [Feature] networkidle for "idle after action"
    ๐Ÿ‘ #2695 - [Feature] WebSockets supports
    ๐Ÿ’ป #2946 - Not able to detect browser event: disconnected event when close browser is invoked
    #2974 - [BUG] Unable to adopt element handle from a different document
    ๐Ÿณ #3122 - [QUESTION] Chromium versions are mismatched in docker, leading to launch failures
    #3206 - [Feature] Export network as HAR
    #3466 - [Feature] Fill input field based on label text
    #3476 - [BUG] Firefox focus won't work with more than 1 page
    ๐Ÿ‘€ #3499 - [BUG] Playwright does not see iframe element as visible
    #3534 - [Feature] Allow set proxy per context
    #3693 - [BUG] RPC/Firefox goBack does not return a response (guid)
    #3830 - [Feature] Text selector engine normalise whitespaces
    #4002 - [BUG] page.waitForSelector fails when called during a redirect
    #4021 - [BUG] beforeunload event in headless mode is failing
    #4038 - [REGRESSION]: Tall screenshots in chromium get corrupted at bottom
    ๐Ÿ‘• #4134 - [BUG] elementHandle.scrollIntoViewIfNeeded doesn't work properly
    #4179 - [BUG] Unable to close page when confirm dialog is open
    #4208 - [BUG] Timout Error on firefox for popup
    #4232 - [BUG] Group videoPath and videoSize under recordVideo option
    #4233 - [BUG] download file not occurs
    #4255 - [Question]: Exposing common Playwright types
    ๐Ÿš€ #4256 - [Question] playwright-electron types might be missing from the release or is there any guide on how to get it to work?
    #4265 - [Feature] Multiple text selectors
    #4266 - [Question] Exported video quality
    ๐Ÿณ #4268 - [Question] Does puppeteer have Redhat Dockerfile support?
    ๐Ÿ‘ท #4277 - [BUG] Firefox workers cause frame navigation
    #4279 - How to Compare two screenshots? Need code [Question]
    #4282 - [Question] is there a way to get element background colour ?
    #4284 - [BUG] page.addInitScript doesn't work for large scripts
    #4285 - Running WebKit on AWS EC2 Instance [Question]
    #4286 - [Question] CDP sessions with other targets
    ๐Ÿ #4293 - [BUG] Bundle dlls with Firefox for Windows
    #4302 - [Question] What is the best way to scroll page to the bottom?
    #4317 - [Question] drag and drop
    #4318 - [Question] Query by text with space
    ๐Ÿ’ป #4319 - [Question] Have the browsers that are downloaded for playwright 1.3.0 changed somehow ?
    ๐Ÿ’ป #4321 - [Feature] pass arguments like proxy to each context not to whole browser
    โœ… #4326 - [Test] Ubuntu: browsercontext-proxy.spec.ts:128:1 โ€บ should exclude patterns crashes webkit

    Commits (164)

    2158d6d - feat(scopes): make page a scope (#4385)
    58b5872 - feat(webkit): bump to 1383 (#4394)
    โœ… 508be0d - browser(webkit): fix big sur crashes after latest roll (#4391)
    c2db837 - feat(webkit): roll to r1381 (#4388)
    775be21 - fix(launchdoctor): fix launch doctor (#4387)
    488b256 - feat(firefox): bump to 1205 (#4386)
    ๐Ÿ’ป bd75fb1 - browser(webkit): roll to 11-09 (#4384)
    ๐Ÿ‘ท ae738c1 - browser(firefox): ignore WebProgress events coming from workers (#4380)
    โœ… f7eb845 - feat(firefox): bump to 1204, add a better test for video in popup (#4376)
    28f6547 - chore: add adb-based connectivity (#4375)
    ๐Ÿ’ป 06c8881 - browser(firefox): fix videoSessionId (#4374)
    3db8b23 - fix(chromium): lifecycle events race (#4369)
    c83ac44 - api(websocket): do not send websocket frames without a listener (#4361)
    d74988e - feat(webkit): bump to 1380 (#4368)
    ๐ŸŽ d4fb159 - browser(webkit): fix webcontent startup crash on macos 11 (#4370)
    fff36a7 - feat(firefox): roll Firefox to r1203 (#4365)
    ๐Ÿ’ป c522a0d - browser(firefox): force always active docshell (#4363)
    ๐Ÿ’ป 49e4d9a - browser(webkit): force rebuild with new redistributable dlls (#4364)
    354482d - feat(firefox): bump to 1202 (#4362)
    ๐Ÿ’ป 040f9b0 - browser(webkit): copy MS VC++ redistributable libs from VS installation (#4360)
    5faf6f9 - feat(firefox): switch to use pipe instead of websocket (#3279)
    ๐Ÿ’ป aafcf93 - browser(firefox): bundle VS C++ redistributable dlls (#4359)
    ๐Ÿ’ป bc20bfd - browser(webkit): disable cache compiled sandbox (#4357)
    c384313 - feat(fill): allow filling based on the label selector (#4342)
    ๐Ÿ— 5d39eae - devops: actually export secrets into webkit building workflow (#4354)
    ๐Ÿ— db8332b - devops: checkout, build, and upload webkit-mac-11 (#4353)
    ๐Ÿ’ป b94a7c0 - devops: speedup initial browser checkout (#4352)
    ๐Ÿ— bba8c98 - devops: try building webkit on gha (#4351)
    ๐Ÿ— 4d8ef42 - devops: add instructions to build mac on BigSur (#4350)
    โœ… 3f37d85 - test(focus): add passing test for focusing more than one page (#4347)
    e942138 - fix: do not report errored pages after context closure (#4346)
    โœ… 4cb5214 - test(capabilities): add tests for webgl (#4343)
    283bc2c - devops: ensure that embedder directory does not exist (#4340)
    65009dc - feat(chromium): roll Chromium to r823944 (#4341)
    14a8292 - feat(webkit): bump to 1378 (#4338)
    โœ… 12afb79 - test: unflake har tests (#4335)
    5dc632b - chore: mirror Chromium 823944 to our cdn (#4339)
    โœ… 78b1511 - test: try to unflake screenshot tests (#4334)
    โœ… 5c1149f - test: try to unflake network idle tests (#4333)
    ๐Ÿ’ป 890add9 - browser(webkit): do not hang on close when there is a dialog (#4332)
    bc97650 - feat(firefox): roll Firefox to r1201 (#4331)
    ๐Ÿ— 031f0bf - browser(webkit): fix mac build failure caused by touch events (#4330)
    ๐Ÿ’ป c6b4263 - browser(webkit): fix timezone overrides after last roll (#4329)
    ๐Ÿ’ป 799604c - browser(firefox): roll Firefox to beta @ Nov, 3 (#4327)
    ๐Ÿ’ป eae3d93 - browser(webkit): fix proxy ignore pattern set on context level (#4328)
    ๐Ÿ’ป 0a9fdc4 - browser(webkit): roll to 11-03 (#4325)
    ๐Ÿ‘ d57b439 - fix(har): support har in persistent context (#4322)
    924cc98 - feat(text selector): normalize spaces in lax mode (#4312)
    8fed0b3 - feat(firefox): roll Firefox to r1200 (#4316)
    1c39689 - api(videos): introduce a single recordVideo option bag (#4309)
    46e124a - fix(api.json): use separate maps for methods and events (#4310)
    51f8f23 - devops(flakiness): collect more commit information (#4315)
    ๐Ÿ’ป e3b12b0 - browser(firefox): fix closing browser contexts with beforeunload (#4314)
    โœ… 3d3ce13 - test: co-locate beforeunload tests (#4313)
    ๐Ÿ’ป 2b495c9 - browser(firefox): fix SimpleChannel to await initialization (#4311)
    f80f815 - feat(chromium): bump to 823078 (#4308)
    ac8ab1e - feat(websocket): add WebSocket.waitForEvent and isClosed (#4301)
    c446bf6 - chore: cleanup some har code (#4306)
    d117d0b - feat(scopes): make page a scope (#4300)
    ๐Ÿ’ป 1255289 - browser(chromium): roll to 823078 (#4307)
    ๐Ÿ“„ 9c80cbd - fix(docs): small docs changes for new apis (#4305)
    94cb7c9 - feat(webkit): bump to 1373 (#4299)
    ๐Ÿ— 7ef1533 - browser(webkit): one more mac build fix after last roll (#4298)
    ๐Ÿ— 3577e63 - browser(webkit): mac build fix after last roll (#4296)
    ๐Ÿšš 5a9ba55 - test: remove stale describe
    โœ… c9fa8c0 - fix(test): unflake web socket test on firefox
    ๐Ÿ’ป 5e50fe3 - browser(webkit): roll to 10-30 (#4294)
    ๐Ÿ‘ 7fbbd18 - feat(firefox): support WebSockets on Firefox (#4289)
    333916a - infra: bump to next version on trunk at a branch point (#4288)
    ๐Ÿ’ป 18c3efe - browser(firefox): instrument websockets (#4287)
    914f637 - feat(proxy): enable per-context http proxy (#4280)
    ff7d6a2 - feat(firefox): roll Firefox to r1197 (#4278)
    โœ… aee9068 - test: mark flake headful chromium test as fixme (#4276)
    โœ… f384a86 - test(har): uncomment some raw header tests (#4273)
    โœ… efdb154 - test: roll folio to 0.3.16 (#4275)
    ๐Ÿ’ป c5d3490 - browser(firefox): roll firefox to beta Oct, 28 (#4274)
    ๐Ÿ’ป 7bedbb2 - feat(browser): roll WebKit to r1370 (#4257)
    ece84ec - fix(protocol): annotate file buffer as binary (#4272)
    ๐Ÿ— 05278b8 - chore: remove committed types.d.ts - we are still generating it at build time (#4271)
    ๐Ÿ’ป 41d514d - browser(webkit): disable gamepad on GTK (#4264)
    6cafdc5 - infra: fix the headful bit on the bots (#4261)
    ๐Ÿšš 05fd572 - docs(api): remove * from permissions (#4260)
    0b8c33e - fix(ECONRESET): fix it once and for all (#4258)
    ๐Ÿณ dcbdb4a - test: fixed executable path test if ran in Docker (#4219)
    1ef090c - fix(screenshot): prioritize passed type over the extension mime (#4251)
    e62f27a - chore: eliminate dead code (#4253)
    aa219c6 - chore: roll folio to v0.3.15 (#4252)
    ๐ŸŒ be84284 - feat(websocket): implement Web Sockets for Chromium & WebKit (#4234)
    ๐Ÿ’ป 00d6313 - browser(webkit): report raw request headers from didReceiveResponse (#4250)
    ๐Ÿง b08d3dc - devops: always ensure linux deps when building webkit (#4249)
    ๐Ÿ— 39637a4 - browser(webkit): build fix (#4247)
    โœ… 163cf1b - devops: collect test reports for all bots (#4246)
    ๐Ÿ— 1feb041 - browser(webkit): fix mac build after last roll (#4245)
    ๐Ÿ’ป c1a64ee - browser(webkit): serialize set-cookie \n-separated (#4243)
    86e1e3f - devops: collect host os name and version (#4244)
    7fc4b79 - feat(har): allow saving har for context (#4214)
    โœ… d5fbe3a - devops: start uploading test reports to flakiness dashboard (#4239)
    ๐Ÿ’ป 4b2a29e - browser(webkit): roll to 10-26 (#4241)
    ccf68ec - chore: roll folio to 0.3.14 (#4240)
    โฑ f5fbea9 - feat(debug): allow using timeout for rafs for throttling debugging
    0337928 - fix(env): respect =true/false as env values for boolean flags (#4228)
    ba79493 - chore: roll folio to 0.3.13 (#4215)
    โœ… 14f069e - test(timing): relax mac/webkit expectations (#4217)
    โœ… b3b46db - test(firefox): add a failing slow test (#4216)
    โšก๏ธ ea910a4 - fix: update getFromEnv logic to validate that value is undefined (instead of falsey) before redefining it (#4226)
    c97af3e - fix(listeners): avoid "too many listeners" problem safely (#4223)
    ๐Ÿ›  50a6ba7 - feat: bump webkit version to include screencast fixes (#4200)
    โช c4fbc64 - Revert "fix(listeners): avoid "too many listeners" problem (#3931)" (#4222)
    ๐Ÿณ 8f3c0d5 - fix(docker): add pwuser to Docker focal image (#4201)
    7232027 - fix(headers): report raw request headers on Chromium (#4207)
    8a42cda - feat(timing): introduce resource timing (#4204)
    โšก๏ธ bed304b - doc: update playwright-sharp link (#4202)
    ๐Ÿ’ป 437fe17 - browser(firefox): expose resource timing info (#4205)
    7d28dfd - feat(firefox): roll Firefox to r1194 (#4183)
    ๐Ÿ— 06cafff - feat(winldd): upload r1003 build (#4199)
    ๐ŸŽ 45bb984 - test: skip 'should play video' on macOS Big Sur (#4198)
    920ea85 - fix(winldd): make linker set checksum to make antiviruses happy (#4197)
    ๐Ÿ’ป 092c990 - browser(firefox): fix screencast timescale precision (#4196)
    ๐Ÿ’ป 54e05ac - browser(webkit): fix screencast timescale precision (#4195)
    โœ… 3cceb14 - test(beforeunload): add failing beforeunload test (#4188)
    โœ… 7433ae2 - test: follow up to an encoding test (#4187)
    โœ… 7f76d44 - test: add a test for page.close w/ dialogs (#4184)
    โœ… 5e7eb7a - test(encoding): add a test for main resource raw body (#4186)
    โœ… efac743 - test(proxy): add a test for a second page against same proxy (#4185)
    9c160f2 - feat(webkit): bump to 1363 (#4178)
    5d997ed - fix(video): make video path available in persistent profiles (#4182)
    ๐Ÿ bf491f1 - browser(webkit): fix pointer media query on windows (#4176)
    92dda69 - feat: tap (#4097)
    ๐ŸŽ ebf207b - chore: add support for macOS Big Sur (11.0) (#4149)
    ๐Ÿ’ป 92cde6c - browser(webkit): roll to 10-19 (#4177)
    86ef956 - feat(webkit): bump to 1357 (#4154)
    ๐Ÿ’ป 347dd24 - browser(webkit): fix pointer media query on mac (#4155)
    ๐Ÿ’ป 4f7d65f - browser(firefox): report pageerrors without stack properties (#4166)
    ๐Ÿšš ef3d3ca - doc(overrides): remove "one of" that was misleading (#4168)
    7103887 - add type for selector engine (#4174)
    bbdba42 - chore(screencast): respect i/o backpressure when writing into ffmpeg (#4164)
    ๐Ÿ’ป 26442c5 - browser(webkit): fix the datastore leak (#4163)
    ๐Ÿ’ป 305d209 - browser(firefox): always send focus events (#4150)
    ๐Ÿ 97cb51f - browser(webkit): fix windows compilation after last roll (#4162)
    ๐Ÿ’ป 6fb6929 - browser(webkit): roll to 10-15 (#4161)
    โœ… fec37ad - test: use custom header when testing header removal (#4157)
    ๐Ÿ’ป 8f8bebb - browser(firefox): roll Firefox to tip-of-tree Oct, 12 (#4158)
    ๐Ÿšš 7e6f2af - test: disable failing test "should be able to remove headers" (#4152)
    ๐Ÿ’ป a61d07a - browser(webkit): report correct pointer type to css (#3936)
    ๐Ÿšš 180aa01 - test: make "remove header" test actually test be havior (#4092)
    ๐Ÿ’ป 3c32c16 - browser(firefox): use 16-byte long uid instead of ordinal as screencast id (#4147)
    e9f5477 - fix(screencast): await for the first video frame on Chromium (#4145)
    46a49d0 - fix(screencast): bump chromium video quality (#4146)
    bb981fc - fix(screencast): correctly process videos with 1 frame (#4144)
    ๐Ÿ“„ 25cb649 - docs: fix Video.path() type (#4141)
    ๐Ÿ’ป a169cb6 - browser(webkit): fix mac compilation errors (#4139)
    c7b2359 - feat(firefox): roll to r1190 (#4133)
    ๐Ÿ’ป 8c6a2e1 - browser(webkit): Input.dispatchTapEvent (#4102)
    381f49a - chore: roll folio to 0.3.11 (#4130)
    โช 5a76856 - api(video): restore the missing video path accessor (#4132)
    โœ… 9daedac - chore: roll test fixtures, replace trace w/ video (#4129)
    ๐Ÿ’ป a4474f6 - browser(firefox): Page.dispatchTapEvent (#4101)
    โฑ 5804131 - chore: bump folio to 0.3.9, use fixture timeout (#4118)
    โช 71c444c - browser(webkit): revert changes to WebAutomationSession.h (#4128)
    ๐Ÿšš d6240a3 - docs(showcase): remove codex from users
    ๐Ÿ“„ 331bb81 - docs: add note about videos saving on context closure (#4126)
    fdff5a1 - feat(webkit): bump to 1353 (#4119)
    ๐Ÿ’ป 58285f6 - browser(firefox): await browser initialization when closing browser (#4121)
    โšก๏ธ 8ad3404 - fix(test): update path for screenshots on failure (#4120)

  • v1.5.2 Changes

    October 27, 2020

    Highlights

    • Chromium 88.0.4287.0
    • Mozilla Firefox 82.0b9
    • WebKit 14.0

    ๐Ÿ› Bug fixes:

    • ๐Ÿ’ป #4148 - [BUG] browserContext.close takes too long when recording videos
    • ๐Ÿณ #4218 - [BUG] Playwright-chromium (>1.5.0) does not exit properly (hangs) when started in docker
    • โš  #4224 - [BUG] Don't disable nodes maxListeners warning on
    • #4225 - [BUG] Cannot override .npmrc env var PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD from true to false
    • #4238 - [BUG] A png screenshot is produced when a jpeg/jpg screenshot is requested Issues Closed (5)

    ๐Ÿ’ป #4148 - [BUG] browserContext.close takes too long when recording videos
    ๐Ÿณ #4218 - [BUG] Playwright-chromium (>1.5.0) does not exit properly (hangs) when started in docker
    โš  #4224 - [BUG] Don't disable nodes maxListeners warning on
    #4225 - [BUG] Cannot override .npmrc env var PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD from true to false
    #4238 - [BUG] A png screenshot is produced when a jpeg/jpg screenshot is requested

    Commits (7)

    0f8eccf - fix(ECONRESET): fix it once and for all (#4258)
    e50d0a2 - fix(screenshot): prioritize passed type over the extension mime (#4251)
    3d4e50d - fix(env): respect =true/false as env values for boolean flags (#4228)
    โšก๏ธ 1df6b92 - fix: update getFromEnv logic to validate that value is undefined (instead of falsey) before redefining it (#4226)
    3188d6e - fix(listeners): avoid "too many listeners" problem safely (#4223)
    โช 3201c23 - Revert "fix(listeners): avoid "too many listeners" problem (#3931)" (#4222)
    4975cea - chore(screencast): respect i/o backpressure when writing into ffmpeg (#4164)

  • v1.5.1 Changes

    October 14, 2020

    Highlights

    ๐Ÿ†• New page.video() method to retrieve on-going page video recording.

    ๐Ÿ’ป Browser Versions

    • Chromium 88.0.4287.0
    • Mozilla Firefox 82.0b9
    • WebKit 14.0

    ๐Ÿ†• New APIs

    #4142 - [BUG] Video Recording Chromium compression is too high

    Commits (6)

    0b7976a - fix(screencast): await for the first video frame on Chromium (#4145)
    2cd8604 - fix(screencast): bump chromium video quality (#4146)
    5dce248 - fix(screencast): correctly process videos with 1 frame (#4144)
    85ae3cc - chore: mark v1.5.1
    ๐Ÿ“„ e5743d2 - docs: fix Video.path() type (#4141)
    โช 618b50c - api(video): restore the missing video path accessor (#4132)

  • v1.5.0 Changes

    October 13, 2020

    Highlights

    • Video screencasts API is now stable : Use the videosPath option while creating browser contexts to record videos for all pages within the context. See examples.
    • โœ… Test runner is available in preview : To setup a cross-browser end-to-end testing suite with Playwright, check out playwright-test. Try it out, and tell us what you think!

    Playwright CLI

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ‘ท Chromium sandboxing is now opt-in. This is to simplify running Playwright tests in CI environments. Learn how to enable sandboxing.
    • ๐Ÿณ The Docker image adds pwuser as an optional user for non-root user environments.

    ๐Ÿ’ป Browser Versions

    • Chromium 88.0.4287.0
    • Mozilla Firefox 82.0b9
    • WebKit 14.0

    ๐Ÿ†• New APIs

    ๐Ÿ #3046 - [BUG] Browser doesnt get installed on Windows Server
    ๐Ÿ’ป #3405 - [BUG] Attach multiple instance of playwright to browser server
    #3617 - [Question] Protocol error (Network.getResponseBody): No resource with given identifier foundError
    #3695 - [Question] Passing a DOM element to an exposed function
    #3705 - [Question] What is the best way to use "goto" in an application that uses long-polling?
    #3711 - [Question] Multithreading with playwright
    โฑ #3727 - [Feature] Get timeout on Page level
    #3897 - [BUG] Can't click button in Chromium headless mode
    #3905 - [BUG] subtree intercepts pointer events
    #3916 - [Question] Video recording: capturing popups
    #3918 - [Question]page.frame not referencing url in Chrome Dev Tools for Power BI report
    #3920 - [Feature] coverage per frame
    ๐Ÿ’ป #3939 - [BUG] browserContext.newPage() sometimes hangs indefinitely
    ๐Ÿ’ป #3962 - [Question] Why does chromiumBrowserContext.newCDPSession require a page?
    ๐ŸŽ #3967 - [BUG] Not working with macos 10.13.6 (17G2208)
    #3970 - [Question] Recommendation on Node.js program to work with playwright to access SQL server or Databricks to query to get data values
    โฑ #3971 - [BUG] Firefox Timeout while waiting for popup
    #3976 - [Question] Wait for XHR triggered by action
    #3978 - [BUG] typing files and real code are different
    โœ… #3987 - [Question] Using firefox as browser on test throws: Response body is unavailable for redirect responses
    ๐Ÿ’ป #3991 - [BUG] browserType.connect() promise never resolved after version 1.4.x
    #3995 - [Feature] Roll firefox to current beta
    #3996 - Review the new video and trace APIs
    #3997 - [BUG] Cannot launch compiled electron application
    #4013 - [BUG] - I can not access to playwright.dev
    #4020 - [Question] When does page.click resolve in the DOM loading lifecycle?
    ๐Ÿ’ป #4022 - Browser launch argument for firefox.
    #4033 - [BUG] Failed to launch chromium because executable doesn't exist
    ๐Ÿ‘ #4043 - [Question] Cucumber/Gherkin support for Playwright

    Commits (167)

    โœ… 3350db2 - chore: nit test fixes (#4114)
    c2adc98 - chore: roll folio to 0.3.8 (#4113)
    46b14bc - chore: roll folio to 0.3.6 (#4110)
    โœ… 80ed407 - test: add a failing test for the issue 4038 (#4111)
    ๐Ÿ— 5648eac - browser(webkit): fix mac build after last roll (#4108)
    ๐Ÿš€ 3f68713 - chore: locate binaries in case of cli deployment (#4107)
    ๐Ÿ’ป db744e2 - browser(webkit): roll to 10/08 (#4106)
    ๐Ÿ’ป b85ba62 - browser(webkit): actually fix mac compilation (#4105)
    9801be6 - feat(chromium): roll to 815036 (#4099)
    0๏ธโƒฃ 80773fa - fix: disable chromium sandbox by default (#4090)
    ๐Ÿ— d6a198a - browser(webkit): speculative build fix for Mac (#4104)
    ๐Ÿ’ป 8252eb7 - browser(webkit): roll to 09-27 (#4103)
    โšก๏ธ c078e98 - chore: update bin/PrintDeps.exe to r1002 (#4096)
    ๐Ÿ’ป e2f7745 - browser(chromium): roll to 815036 (#4098)
    โšก๏ธ ebb3563 - chore: update package-lock.json
    ๐Ÿณ e6a1a1c - fix(docker): add again pwuser (#3899)
    ๐Ÿ’ป b4ad6e7 - devops: playwwright-core installation should not touch browser registry (#4089)
    ๐Ÿ ff295d1 - fix(windows): fix dependencies check on windows (#4076)
    08024c8 - feat(firefox): roll to r1188 (#4091)
    ๐Ÿ— 6a7d244 - devops: fix firefox build (#4088)
    ๐Ÿ’ป 1ccce09 - browser(firefox): roll Firefox to beta Oct 7, 2020 (#4087)
    ๐Ÿ“„ 0990694 - docs(page): clarify page.close({runBeforeUnload: true}) behavior (#4086)
    6bb212c - feat(firefox): roll Firefox to r1186 (#4085)
    ๐Ÿšš fd769ec - chore: remove test dependency on pw itself (#4078)
    ๐Ÿ’ป 6beef55 - browser(firefox): wait for search and addon manager initialization (#4081)
    ๐Ÿ’ป 3b42328 - browser(firefox): a different way to emit 'load' event (#4080)
    ๐Ÿ“„ aafe5da - docs: add videos to verification doc (#4071)
    โช ad58e49 - Revert "feat(firefox): migrate to the pipe channel (#4068)" (#4073)
    โœ… 1fe3c78 - test: roll test runner 0.9.22 (#4072)
    ce7aa7a - feat(firefox): migrate to the pipe channel (#4068)
    ๐Ÿ’ป e6869ed - browser(firefox): fix typo in dispatcher teardown (#4069)
    5d12915 - feat(firefox): roll to r1182 (#4067)
    ๐Ÿ’ป 4ab66a4 - browser(firefox): follow-up with assorted simplifications (#4066)
    ๐Ÿ’ป c8a64b8 - browser(firefox): enable document channel (#4065)
    โšก๏ธ e403fd3 - test: update fixtures to new syntax (#4063)
    โœ… 0db09f8 - test: roll test runner to 0.9.20 (#4062)
    2df6425 - chore(typo): resolve typo in src/progress.ts (#4041)
    ๐Ÿ 857abcf - browser(firefox): make pipe work on Windows (#4058)
    ๐Ÿ’ป a7beaf6 - browser(chromium): roll to 813607 (#4052)
    d31cbc2 - fix(video): wait for videos when closing persistent context (#4040)
    ๐Ÿ“š fbe0fb2 - fix(api.json): do not copy documentation from base class members (#4048)
    ๐Ÿ’ป e214f79 - feat(video): support videos in remote browser (#4042)
    ๐Ÿ’ป 133de10 - browser(firefox): start screencast in existing pages upon setScreencastOptions (#4045)
    ๐Ÿšš 1f16ce2 - test: remove failing expectations from a passing test (#4036)
    ec36eef - feat(firefox): roll Firefox to r1179 (#4044)
    ๐Ÿšš 2c11b10 - browser(firefox): remove multisession logic (#4039)
    5e42029 - api: allow exposeBinding to pass handles (#4030)
    โœ… c217121 - test: add a test for request interception with redirects (#3994)
    โœ… 81c1dae - test: roll test runner 0.9.17 (#4035)
    ๐Ÿ“ฆ 318ab28 - chore: include api.json in NPM package (#4034)
    โšก๏ธ 4a77363 - api: update videos api, hide tracing (#4015)
    โœ… 920cc7c - test: run crash tests with chromium wire (#4026)
    ๐Ÿ’ป b74a6b7 - browser(firefox): do not double-attach session to the same target (#4027)
    f885d07 - fix(close): fix a race during context.close and page.close (#4018)
    โœ… b9dcfb9 - test: minor fixes (#4024)
    โœ… 13d48da - test: record trace/videos on retries (#4009)
    ๐Ÿšš 9743584 - browser(firefox): move user agent emulation to browser side (#4016)
    โœ… ab2714e - test: unflake click-timeout-4 (#4012)
    โœ… ccc827c - test: add a test for screen.avail{Width,Height} emulation (#4011)
    ๐Ÿ’ป e280839 - browser(firefox): simplify PageTarget lifecycle (#4014)
    ๐Ÿšš 24bc0e3 - browser(firefox): remove the hack around setting viewport size (#4010)
    a20c0e0 - roll(firefox): roll Firefox to r1174 (#4005)
    ๐Ÿ”จ d658b68 - chore: refactor screencast tests (#4007)
    20b83ee - fix(electron): do not use --require to throttle startup (#4006)
    6dccd27 - fix(wire): fix the wire mode (#4008)
    ๐Ÿ“ฆ 7ccdc51 - chore: include api.json into the Playwright package (#4003)
    โœ… c30b894 - chore: add missing image test expectation (#4004)
    โœ… de1e63d - test: roll test runner 0.9.16 (#3998)
    ๐Ÿ’ป 2631e1a - browser(firefox): use browsingContextID for frame IDs (#3999)
    b3497b3 - fix(actions): wait for some time before retrying the action (#4001)
    109688a - chore: split playwright.fixtures into files (6) (#3988)
    423485e - chore: split playwright.fixtures into files (5) (#3986)
    0ee9050 - chore: split playwright.fixtures into files (4) (#3985)
    cef27d6 - chore: split playwright.fixtures into files (3) (#3984)
    76be954 - chore: split playwright.fixtures into files (2) (#3983)
    5b9f489 - chore: split playwright.fixtures into files (#3982)
    โœ… 59daaab - chore: roll @playwright/test-runner to 0.9.14 (#3981)
    ๐Ÿ— 6102052 - Revert "chore: don't hold sourcemap reference in prod build (#3959)" (#3979)
    โœ… 970b011 - chore: roll @playwright/test to 0.9.6 (#3977)
    โœ… 49bcf6e - chore: roll test runner to 0.9.1 (#3972)
    989709b - chore: delete unused screencast hacks (#3964)
    76d08ce - chore(types): add return type to advancePosition (#3961)
    โœ… a42cd4b - test: mark screencast tests as flaky until ffmpeg migation (#3968)
    โšก๏ธ 49779d5 - Update showcase.md (#3969)
    โœ… 1bb44e4 - test: roll test runner to 0.3.29 (#3966)
    โœ… fe41bbd - test: enable videos on tracing bots (#3930)
    โœ… e15ac44 - test: roll test runner to 0.3.25 (#3965)
    ๐Ÿ— 6d5ab53 - chore: don't hold sourcemap reference in prod build (#3959)
    ๐Ÿณ 967f3b7 - devops(docker): push focal images to CR (#3950)
    โœ… 4aaf3b7 - test: roll test runner to 0.3.20 (#3963)
    1d21c1e - feat(webkit): bump to 1347 (#3955)
    18809b3 - fix(listeners): avoid "too many listeners" problem (#3931)
    โœ… 2d1cabd - test: roll test runner to 0.3.18 (#3949)
    ๐Ÿ’ป 0e76316 - fix(close): fix the browser.close race (#3956)
    ๐Ÿ’ป c4a2732 - browser(webkit): another mac fix (#3948)
    ce51af0 - brower(webkit): add missing override markers (#3947)
    ๐Ÿ’ป 7925a51 - feat: support concurrent installation of browsers (#3929)
    ๐Ÿ’ป 2fbe767 - browser(webkit): roll to 09/21 (#3945)
    f1016c1 - fix(executablePath): throw unexpected platform error upon call (#3943)
    cd0a123 - feat(chromium): roll to v808777 (#3942)
    ec26265 - feat(ffmpeg): roll FFMPEG to r1003 (#3944)
    2693c16 - devops(ffmpeg): compile zlib dependency that is needed for ffmpeg (#3940)
    ๐Ÿ’ป 731560c - browser(chromium): roll to v808777 (#3941)
    ๐Ÿ‘ ee7c623 - devops: compile ffmpeg with support of video splitting (#3938)
    cdc6432 - chore: roll winldd to r1001 (#3928)
    ๐Ÿณ becdccd - devops(docker): added Dockerfile for Ubuntu 20 focal (#3891)
    75edc61 - feat(emulation): emulate a mouse pointer in headless chrome (#3922)
    โœ… c2d9af8 - test: roll test runner to 0.3.17 (#3927)
    df77734 - api(video): simplify video api (#3924)
    โœ… 4e2d75d - test: migrate some helpers to fixtures, use testOutputDir (#3926)
    ๐Ÿ— 9de39b1 - devops: hardcode build number in winldd executable (#3923)
    0ade6af - api(trace): introduce artifacts options (#3914)
    ๐Ÿ— bff9fb2 - devops: fix winldd build
    6af0aa6 - devops: notify when winldd is built
    ๐Ÿ— fda31df - devops: build winldd on buildbots (#3917)
    ๐Ÿณ 53ae805 - chore: fixed devcontainer Docker usage (#3898)
    ๐Ÿšš 01a4060 - chore: move action instrumentation per-context (#3908)
    โœ… d4d0239 - test: roll test runner to 0.3.14 (#3913)
    โœ… 10e725b - test: roll test runner to 0.3.13 (#3911)
    โœ… 9662930 - test: make platform a parameter (#3910)
    dc06f0a - chore: introduce evaluateInUtility private api (#3907)
    ๐Ÿšš 36f2420 - chore(trace): remove dependency on handle._previewPromise (#3906)
    ๐Ÿ“„ 73db4a4 - docs(api): fix typo
    โœ… 823a7a5 - test: roll test runner to 0.3.12 (#3895)
    5507553 - fix(screencast): repeat previous frame instead of current (#3890)
    592bae1 - feat(trace): record goto, setContent, goBack, goForward and reload (#3883)
    0๏ธโƒฃ 8bc09af - fix(firefox): imply default ports for proxy (#3850)
    โœ… f758a09 - test: roll test runner to 0.3.11 (#3885)
    430f2be - devops: stop relying on ubuntu stock ffmpeg (#3882)
    459d857 - feat(screencast): add saveAs and createReadableStream (#3879)
    ๐Ÿง e4e3f82 - devops: fix ffmpeg linux build (#3884)
    ๐Ÿ”จ 2f0d202 - chore: refactor goBack/goForward/reload (#3859)
    ๐Ÿง 2a66f8a - devops: build ffmpeg for linux (#3880)
    โœ… 1eb282d - test(screencast): save video in test-results (#3876)
    ๐Ÿšš 0a243c6 - fix(waitTask): remove rerunnable tasks from the context data upon success/failure (#3875)
    7ab0c10 - fix(launchServer): do not throw when 'port' option is present (#3877)
    01198f8 - fix($$): use utility context when possible (#3870)
    e5c6b19 - fix(launcher): check for ffmpeg only when starting screencast (#3874)
    ๐Ÿšš c20cbae - chore: remove trace viewer (#3869)
    ๐Ÿ“„ dfbd1ce - docs(languages): added Go reference (#3867)
    โœ… 1421ed9 - test: fixed Node.js deprecation warning (#3864)
    โœ… d7f3812 - tests: fixed OS-locale specific failing test (#3863)
    1d8d89d - chore: add devcontainer for GitHub Codespaces (#3862)
    ๐Ÿ’ป beceeaf - feat(browserContext): add BrowserContext.browser() (#3849)
    5314512 - chore: inline page._runAbortableTask (#3861)
    โœ… 02275f2 - test(screencast): use public API for pixel tests (#3858)
    0๏ธโƒฃ 40323aa - fix(screencast): use viewport as default size (#3844)
    c4adeb6 - fix(snapshot): do not let a single frame fail the whole snapshot (#3857)
    c175dad - chore: fix compatibility to the domain module (#3851)
    ๐Ÿ’ป b8e90a5 - browser(webkit): duplicate each frame duration times (#3856)
    263aa06 - feat(trace): trace more actions (#3853)
    ๐Ÿ“„ 75e847a - docs(pom.md): fix typo in example function name (#3855)
    16be357 - feat(trace): trace page open/close events (#3852)
    โœ… f94df31 - chore: roll test runner to 0.3.9 (#3847)
    38ed8de - feat(tracing): trace actions (#3825)
    โœ… a597004 - chore: roll test runner to 0.3.5 (#3832)
    ๐Ÿ“‡ 9e41518 - feat(rpc): allow sending metadata with rpc calls (#3836)
    โœ… d2771eb - test(screencast): always use chromium to replay the video (#3841)
    2f2ca8f - feat(firefox): bump to 1173 (#3843)
    ๐Ÿ 1e600cb - fix(windows): show details about missing dependencies (#3839)
    ๐Ÿ“„ 3495842 - docs(screencast): add a snippet for _videostarted (#3842)
    ๐Ÿ‘ 46f9151 - fix(rpc): ensure better error messages when rpc misbehaves (#3838)
    ๐Ÿ”€ ed3b00e - chore: merge BrowserType and BrowserTypeBase, remove logName (#3837)
    bf9c4a3 - fix(snapshot): properly save textarea content (#3835)
    ๐Ÿ“„ 45542a5 - docs: fix table-of-contents generation (#3840)
    ๐Ÿ’ป 25b199b - browser(firefox): fix screencast start event for popups (#3834)

  • v1.4.2 Changes

    September 24, 2020

    Highlights

    ๐Ÿš€ This patch release includes fix for the following bugs:

    • ๐ŸŽ #3919 - [BUG] MacOS 10.13 Webkit error
    • ๐Ÿ’ป #3935 - [BUG] browserType.connect() throws on executablePath errors

    ๐Ÿ’ป Browser Versions

    • Chromium 86.0.4238.0
    • Mozilla Firefox 80.0b8
    • WebKit 14.0 Issues Closed (2)

    ๐ŸŽ #3919 - [BUG] MacOS 10.13 Webkit error
    ๐Ÿ’ป #3935 - [BUG] browserType.connect() throws on executablePath errors

    Commits (2)

    747e736 - chore: mark v1.4.2
    ๐Ÿš€ b05c098 - cherrypick(release-1.4): throw unexpected platform error upon call (#3946)

  • v1.4.1 Changes

    September 18, 2020

    Highlights

    ๐Ÿš€ This patch release includes fixes for the following bugs:

    • ๐Ÿง #3845 - [BUG] ffmpeg dependency check fails on Linux
    • ๐Ÿง #3846 - [BUG] ffmpeg dependency check breaks on Linux even if screencast is not used
    • ๐Ÿ“ฆ #3848 - [BUG] TypeError: domain.enter is not a function/ Browser.close() Promise does not resolve when "domain" package is used
    • ๐Ÿ’ป #3872 - [REGRESSION]: Calling browserType.launchServer stopped working in 1.4.0

    ๐Ÿ’ป Browser Versions

    • Chromium 86.0.4238.0
    • Mozilla Firefox 80.0b8
    • WebKit 14.0 Issues Closed (4)

    ๐Ÿง #3845 - [BUG] ffmpeg dependency check fails on Linux
    ๐Ÿง #3846 - [BUG] ffmpeg dependency check breaks on Linux even if screencast is not used
    ๐Ÿ“ฆ #3848 - [BUG] TypeError: domain.enter is not a function/ Browser.close() Promise does not resolve when "domain" package is used
    ๐Ÿ’ป #3872 - [REGRESSION]: Calling browserType.launchServer stopped working in 1.4.0

    Commits (6)

    e79eada - chore: mark v1.4.1
    2df3972 - fix(screencast): repeat previous frame instead of current (#3890) (#3904)
    ๐Ÿš€ bf97758 - cherrypick(release-1.4): stop relying on ubuntu stock ffmpeg (#3894)
    ๐Ÿš€ 8bc84ff - cherrypick(release-1.4): check for ffmpeg only when starting screencast (#3893)
    ๐Ÿš€ 8795d46 - cherrypick(release-1.4): do not throw when 'port' option is present (#3881)
    ๐Ÿš€ 64947f1 - cherrypick(release-1.4): fix compatibility to the domain module (#3878)

  • v1.4.0 Changes

    September 10, 2020

    Highlights

    ๐Ÿฑ ๐Ÿš€ playwright-cli is now public!

    Playwright C ommand L ine I nterface 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 actionsawait 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)
    ๐Ÿ’ป de547d7 - 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)
    0๏ธโƒฃ 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)

  • v1.3.0 Changes

    August 06, 2020

    Highlights

    • ๐Ÿ‘ Python support : Official Playwright for Python is ready for preview!
      • Use the Pytest plugin to write your end-to-end tests in Python.
    • Validate system dependencies : Playwright now automatically checks for browser dependencies on Linux and Windows systems.
    • Ubuntu 20.04 : Playwright now provides browser builds for Ubuntu 20.04.

    ๐Ÿ’ป Browser Versions

    • Chromium 86.0.4217.0
    • Mozilla Firefox 78.0b5
    • WebKit 14.0

    ๐Ÿ†• New APIs

    Thank You

    #657 - Cannot choose page to be visible in headful mode
    ๐Ÿ‘ #2269 - [Feature] Support ES module syntax
    #2298 - [Bug] Firefox fails with STATUS_DLL_NOT_FOUND on some Win 10 setups
    #2358 - [BUG] route.fulfill failed with TimeoutError if the response headers contains newline
    ๐Ÿณ #2386 - [Question] Run playwright from docker container running express server - sandbox issues
    ๐Ÿง #2449 - [BUG] Linux Playwright Webkit engine doesn't allow video.play()
    #2523 - [Question] download file deleted while copying
    ๐Ÿ #2547 - [BUG] unable to launch firefox on virtual box windows
    ๐Ÿ #2548 - [BUG] unable to launch webkit on virtual box windows
    #2588 - [BUG] corrupted post data on application/x-protobuffer (probably other non-string postData formats)
    ๐Ÿ’ป #2604 - [Feature] Browser.version()
    #2621 - [BUG] Webkit problem with libwebp-1.1.0-1, error while loading shared libraries: libwebp.so.6
    #2622 - [BUG] page.waitForResponse is not working for Firefox
    ๐Ÿณ #2624 - [Question] When running two or more browser instance for running test cases, all the test cases fails with in Docker
    #2626 - [BUG] Webkit font rendering (spacing / icon fonts)
    โœ… #2645 - [BUG]Once test execution is completed, error in closing chromium browser
    #2663 - [BUG] Getting Error: Protocol error (Target.setAutoAttach): Target closed.
    #2702 - [BUG] Webkit clears on page.type โ€“ Chromium/Firefox don't
    โœ… #2730 - [BUG] - TypeError: Cannot read property 'push' of undefined - When restarting tests
    #2745 - [Feature] Launch doctor
    โœ… #2787 - How to test mobile devices in Firefox?
    ๐Ÿ’ป #2864 - WebGL Renderer on WebKit Browser
    ๐Ÿ #2901 - [BUG] Chromium not launching on Windows
    #2906 - [BUG] Coverage types incorrect
    #2921 - [BUG] selectOption Bug
    #2940 - Parallel load
    ๐Ÿ“„ #2943 - [BUG] Docs for v1.2.1 are broken
    ๐Ÿณ #2972 - [Question] how to run playwright script in docker
    ๐Ÿš€ #2975 - [Question] Can releases specifically indicate the MacOS version compatibility
    #2978 - [Question] Playwright and TypeScript
    #2979 - [BUG] FF - launchPersistentContext

    Commits (287)

    d01f63b - chore: mark v1.3.0
    83539d1 - chore: cut v1.3.0-post (#3309)
    4956041 - fix(validation): error typo "unknown" (#3304)
    โœ… 9280037 - chore(test): add blank lines (#3303)
    b03b4a5 - chore: doc type nits (#3283)
    ๐Ÿ’ป 90819fa - browser(firefox): always create image buffer in headless mode (#3299)
    ๐Ÿ’ป 7e28c26 - browser(firefox): do not complain about SnapshotListener being cleared on Destroy (#3298)
    โœ… 9ec0267 - chore(test): use pathToFileURL (#3292)
    3c2fcb7 - feat(webkit): bump to 1322 (#3297)
    ๐Ÿšš 57490b7 - test: remove describes (6) (#3295)
    ๐Ÿšš 4cbfa09 - test: remove describes (5) (#3294)
    โšก๏ธ 1673e62 - docs: update table of contents for docs sidebar (#3291)
    ๐Ÿšš 2e65b0a - test: remove describes (4) (#3286)
    ๐Ÿ“š 028dd08 - docs: update documentation for evaluation argument (#3287)
    ๐Ÿ’ป 8881a52 - browser(webkit): roll to 8/4 (#3289)
    2508976 - devops: fix typo in rustup detection (#3282)
    ๐Ÿ’ป d3a40be - browser(firefox): reliably close the pipe (#3280)
    ๐Ÿšš 573f580 - test: remove describes (3) (#3278)
    de55fa6 - fix(webkit): ensure WebKit can play h264 video (#3272)
    ๐Ÿ’ป 402d1a6 - browser(firefox): fix win compile 2 (#3277)
    ๐Ÿšš bb26735 - test: remove describes (2) (#3276)
    ๐Ÿ’ป e481f37 - browser(firefox): fix win compile (#3275)
    ๐Ÿšš 5c4f067 - test: remove describes (#3274)
    ๐Ÿ’ป 1148f0b - browser(firefox): implement RemoteDebuggingPipe (#3273)
    bad4005 - chore(devops): do not copy pw_run.sh to subfolders (#3271)
    b52d259 - feat(webkit): bump to 1321 (#3270)
    ๐Ÿ‘• 126b1f7 - feat(rpc): run doclint against rpc client (#3260)
    ๐Ÿ— f62e9b5 - browser(webkit): kick-off 1321 build to pick up new WebKitLibraries/win (#3263)
    ๐Ÿšš 776f019 - fix(chromium): remove Debugger.paused event listener on coverage stop (#3252)
    7e8d03b - fix(launcher): extend list of known missing DLLs (#3256)
    โšก๏ธ 8709ad7 - chore(tools): update PrintDeps license header (#3254)
    cbd33f9 - devops: avoid running publish on external contrib (#3257)
    โšก๏ธ ba9030e - docs: update api.md with more references to actionability (#3255)
    โšก๏ธ 928a176 - docs: update docs (#3253)
    โœ… 3edfb2a - test: add REPORT_ONLY mode for test collection (#3225)
    9b3c90e - feat(webkit): bump version to 1320 (#3248)
    ๐Ÿ“„ 70b92e1 - docs(README): Point to hosted docs (#3208)
    ๐Ÿ‘ 4e5aa3c - feat(rpc): support chromiumSandbox option (#3251)
    ce0ddd2 - feat(download): create directories for saveAs (#3249)
    93056ed - chore(rpc): more protocol nits (#3246)
    421f6f4 - devops: use playwright-github-action@v1 (#3221)
    ๐Ÿ cbfdca7 - feat(launcher): check dependencies before launch on Windows (#3240)
    โœ… 21eafbc - test: unflake screenshot test (#3245)
    2f95b6e - feat(selectors): auto-detect xpath starting with ".." (#3239)
    ๐Ÿ 235c5df - docs: add readme file for PrintDepsWindows (#3241)
    ๐Ÿ‘• 6297f86 - feat(rpc): run generate-channels during lint (#3238)
    ๐Ÿ— 9103ce0 - devops: fix firefox build (#3237)
    ๐Ÿณ e7ddf86 - devops: rename docker image tag for tip-of-tree images (#3222)
    โœ… 0891678 - fix(test): display correct error when golden files mismatch (#3234)
    19e8c0f - chore(deps): bump elliptic from 6.5.2 to 6.5.3 (#3235)
    ๐Ÿ›  1728a3d - chore: minor protocol fixes (#3226)
    ๐Ÿ 8893866 - devops(windows): add tool for printing library dependencies on Windows (#3224)
    cefb1b9 - feat(rpc): run fixtures.jest.js with channel (#3227)
    4961c2d - devops(firefox): fixate rust and cbindgen version (#3223)
    ๐Ÿ’ป e091325 - fix: a pretty error when browser executable is not found (#3220)
    โšก๏ธ ae0c3a6 - docs(devops): update docs for buildbots (#3218)
    52eb6c6 - fix(rpc): protocol Route.fulfill (#3200)
    3bd9777 - feat(rpc): do not use server types and events in rpc/client (#3219)
    โœ… 7dd9f2c - test(iframes): add x-frame-options display test (#3217)
    9132d23 - fix(screenshot): wait for stable position before taking element screenshot (#3216)
    ๐Ÿ–จ c6180ed - browser(webkit): print missing dll error to the console (#3214)
    โœ… 10225d1 - test: fix a race in the oopif test (#3211)
    ๐Ÿ’ป 487bc58 - devops: re-factor list-dependencies script to output per-browser results (#3194)
    84a17f2 - fix(rpc): Frame.dblclick is missing notWaitAfter (#3210)
    โœ… 77b1c4b - devops: enable Ubuntu 20.04 tests (#3178)
    ๐Ÿ“ฆ f111ad7 - fix: add missing libgles2 package to launch doctor (#3209)
    ๐Ÿ›  21b1be7 - docs(selectors): fixed selector register example (#3169)
    6bc02f8 - feat(launchdoctor): detect missing libraries for dlopen (#3202)
    a700a7a - feat(chromium): roll to 07/29 (#3207)
    bdfde5c - fix(firefox): roll firefox for postdata fix (#3196)
    fab5eba - fix(oopifs): translate coordinates to viewport (#3201)
    6cb1e03 - feat(rpc): disallow deps into rpc client from outside (#3199)
    โšก๏ธ 3e023f6 - Revert "browser(firefox): fix color scheme not updating until reload" (#3198)
    ๐Ÿ“ฆ d27f97e - devops: include protocol and api.md in NPM package (#3195)
    ๐Ÿ’ป 14c6881 - browser(firefox): properly rewrite intercepted request (#3188)
    โœ… a59220b - test: prepare fixtures test to run with rpc (#3190)
    ๐Ÿ’ป da25a5b - browser(firefox): do not capture cursor in screencast (#3118)
    576e2c5 - fix(webkit): correctly report outerWidth/Height on Mac (#3133)
    โœ… 101dd3b - fix(test): make video test pass on Mac (#3121)
    ๐Ÿ’ป 97c1000 - api: introduce Browser.version() (#3177)
    e406119 - chore: add check_deps script (#3182)
    โšก๏ธ 20b7cff - fix: update jpeg-js version (#3179)
    ๐Ÿ“ฆ 6fa7547 - fix(launchDoctor): add package mapping for libvpx.so.5 (#3180)
    ๐Ÿ“„ 51ce47f - docs: use "Node.js" instead of "Node" (#3176)
    b217919 - feat(rpc): replace implicit scopes with explicit dispose (#3173)
    9b502af - fix(launchDoctor): support existing LD_LIBRARY_PATH (#3165)
    ๐Ÿ“„ f4e584e - feat(rpc): align class names with api docs (#3164)
    โœ… d0b758a - test: improve autowaiting tests (#3168)
    ๐Ÿ‘• 98cc9db - chore: simplify doclint (#3162)
    ๐Ÿ“ฆ fd2e65b - api: export all browsers from every package (#3128)
    c8c92c5 - fix(utils): fix check-availability script (#3158)
    d9890f1 - feat(rpc): make ElectronApplication a scope (#3159)
    ๐Ÿ 90ff667 - browser(webkit): disable high DPI support in Web Process on Windows (#3160)
    ๐Ÿ“ฆ 86b64a2 - feat(launchDoctor): package mappings for Ubuntu 20.04 (#3155)
    d4b7078 - feat: validate Ubuntu version if launching firefox (#3156)
    โšก๏ธ 549a37b - browser(firefox): fix color scheme not updating until reload (#3157)
    415e94f - feat(rpc): server-side validator (#3150)
    โœ… 1455cae - test(emulation): add failing test for setting dark theme in firefox (#3149)
    ๐Ÿ‘ 0a57c2b - support typescript in jest files (#3132)
    6a4195f - fix(require): allow requiring internals (#3153)
    ๐Ÿ 3162c06 - browser(webkit): outerWidth/Height on Windows (#3154)
    e7cca86 - fix(postData): allow overriding binary post data (#3120)
    bec34db - feat(firefox,webkit): roll both Firefox and WebKit (#3145)
    โšก๏ธ deccddb - feat(rpc): update BrowserServer (#3112)
    0f0e2ac - fix(type): unify selection behavior when typing (#3141)
    678d164 - devops: normalize blob names on the CDN (#3136)
    ๐Ÿ 79ab07b - devops: install Media Pack on Windows bot (#3137)
    ๐Ÿ— bbe7dbe - feat(installer): start downloadinb Ubuntu 20.04 builds (#3126)
    0b9c647 - devops: detect completion status (#3135)
    ๐Ÿ— ae574b3 - devops: fix webkit build on ubuntu (#3134)
    โœ… 059004b - fix(test): don't leave so many zombies on sigint (#3130)
    ๐Ÿ’ป 7494134 - browser(webkit): correctly report outerWidth/Height on Mac (#3131)
    ๐Ÿง c1032ae - devops: simplify building webkit on linux bots (#3127)
    ๐Ÿ‘ d234dac - chore: support esm imports (#3125)
    ๐Ÿ— 21581a4 - devops: fix buildbot names
    ๐Ÿ— cb77d33 - devops: add script for ubuntu 20.04 buildbot (#3123)
    d2f24e8 - integrate toBeGolden with jest's snapshot system (#3124)
    โœ… e5afd92 - chore(tests): resuse tmp file helpers from utils (#3119)
    ๐Ÿ— 63689e3 - devops: prepare buildbots to the introduction of Ubuntu 20.04 builder (#3116)
    2bed312 - fix(electron): emit close events in the correct order (#3111)
    โœ… 30e21e0 - test: fix api coverage (#3114)
    โœ… 244ce45 - test: add a test for mouse.dblclick (#3115)
    ๐Ÿ— c895c97 - browser(webkit): kick-off build for #3100 (#3113)
    08b0dc6 - feat(webkit,firefox): bump versions (#3110)
    โšก๏ธ 1cfba7f - browser(webkit): periodically capture frames on mac regardless of updates
    26c5784 - Rebase (#3096)
    ๐Ÿ’ป 3d37e45 - browser(firefox): pass actual frame duration to the codec (#3101)
    ๐Ÿ’ป b271624 - browser(webkit): hardcode woff enabled on win (#3103)
    68c4f79 - feat(rpc): convert protocol to yaml (#3102)
    b1a5a02 - feat(rpc): client-side parameters validation (#3069)
    โœ… e56e148 - test(postData): add a failing firefox test (#3098)
    ๐Ÿ‘ 65002a0 - feat(rpc): support firefox user prefs (#3093)
    80c0711 - feat(firefox): roll firefox to r1137 (#3095)
    ๐Ÿšš 2a08883 - chore(download): follow up to remove the redundant checks (#3097)
    โช baa0956 - Revert "test: screenshot on failure (#3053)" (#3091)
    d8a17fb - api(download): Add saveAs helper (#2872)
    โšก๏ธ 4db035d - chore: roll_browser to also update docs (#3088)
    ea5dfdb - fix: re-write Chromium startup error with clear instructions (#3070)
    1aee8df - feat(rpc): align types/guids in the protocol with their pdl definition (#3079)
    ๐Ÿ’ป f50f228 - browser(chromium): roll chromium to r790602 (#3082)
    โช 773ee08 - chore(test): restore api coverage checks (#3068)
    โœ… 6e75533 - chore: respect jest params in npm run wtest (#3085)
    ๐Ÿ›  2b0b0a9 - fix(misc): assorted fixes (#3031)
    ced0bc2 - api: make clear the use of null in page.emulateMedia (#3078)
    ๐Ÿ’ป f751ab1 - browser(webkit): write screencast video to .webm instead of .ivf (#3081)
    ๐Ÿ“š c0d9ccf - docs: update documentation on Chromium sandbox (#3077)
    ๐ŸŽ f4b7ed5 - fix(chromium): reland support selectAll on macos (#3038)
    โœ… 3c151d8 - fix(test): don't output babel's debug info on the bots (#3073)
    db4e856 - feat(rpc): use SerializedValue for CDPSession (#3076)
    โšก๏ธ 1553f19 - chore: update error messages to match future rpc validator (#3075)
    18cb1c0 - feat(rpc): inline selectors.register options in the protocol (#3072)
    โšก๏ธ 3dd6162 - feat(rpc): update Response.finished to return string instead of Error (#3071)
    47e30f0 - feat: introduce chromiumSandbox launch option (#3067)
    af20d27 - fix: auto-add --no-sandbox when running Chromium under root (#3064)
    ๐Ÿ“„ 2120a23 - docs(readme): add link to system requirements (#3057)
    ๐Ÿšš 3dead4c - feat(rpc): remove last union types from the protocol (#3059)
    ๐Ÿ’ป de9570e - browser(webkit): roll to ToT 07/21/2020 (#3066)
    ๐Ÿ babd0cb - browser(firefox): fix Windows build (#3065)
    ๐Ÿ’ป 7f29275 - browser(firefox): use base64 to deliver post data (#3063)
    ๐Ÿ’ป 99658c2 - feat(bringToFront): enable on all browsers (#3052)
    โœ… a03f1dd - test: screenshot on failure (#3053)
    ๐Ÿ’ป a5cb983 - browser(firefox): write video to .webm instead of .ivf (#3062)
    ๐Ÿšš 2d59a8f - feat(rpc): remove some union types (#3058)
    5848ed8 - feat(rpc): introduce protocol.pdl (#3054)
    ๐Ÿ’ป 726f636 - browser(firefox): implement Page.bringToFront (#3051)
    ๐Ÿ’ป eb14c47 - browser(webkit): do not mask WebGL vendor/renderer info (#3050)
    ๐Ÿ’ป 6db8962 - browser(firefox): smooth resize in headless (#3043)
    โœ… 23f506b - fix(test): write after end in proxy test (#3039)
    ๐Ÿ’ป d1f937d - browser(firefox): stop video recording if page closed (#3040)
    ๐Ÿ“ฆ 3774044 - devops: add script to generate shared object => package mapping (#3022)
    โœ… cfe3aa3 - test: add a few tests for null values (#3035)
    29504c0 - feat(rpc): make SerializedValue format pdl-friendly (#3007)
    ๐Ÿ“š 79d5991 - doc: Improve unroute documentation (#3026)
    ๐Ÿšš 6199ba2 - devops: remove travis, appveyor, circle for now (#3029)
    โœ… b5f9985 - devops: make headful a matrix, collect test results (#3027)
    โœ… 13c3f72 - test: restart worker fixtures after test failure (#3021)
    ๐Ÿ’ป 562e1e6 - browser(firefox): wait for file write to finish in stopVideoRecording (#3020)
    โœ… c45b579 - test: support slow marker (#3018)
    ๐Ÿณ 7d2078e - devops: bake browsers into Docker image (#2990)
    ๐Ÿ“ฆ 9a2245d - devops: show package names instead of missing libs on Ubuntu 18.04 (#3013)
    ๐Ÿ’ป ef2a652 - feat: support atomic browser installation - attempt 2 (#3008)
    ๐Ÿ‘ท a75835e - chore(jest): halve the max workers (#3017)
    โœ… 68ef90d - test(click): split into several files (#3016)
    โœ… f2239b5 - test: respect CR/FF/WK/PATH env (#3015)
    ๐Ÿ’ป 91e1a25 - feat(rpc): gracefully close browsers in server process on disconnect (#3005)
    โœ… 9d98011 - test: wire test commands to jest (#3014)
    0๏ธโƒฃ 8904f40 - chore(jest): defaultbrowsercontext.jest.js (#3003)
    ๐ŸŽ a821633 - Revert "fix(chromium): select all on macos should work again (#3006)" (#3011)
    ๐Ÿšš 096ec4c - test: move fixtures to jest (#3010)
    ๐Ÿšš 24f6d19 - test: move remaining tests to jest (#3009)
    9790cf2 - feat(webkit): bump to 1308 (#2991)
    ๐ŸŽ 631fbce - fix(chromium): select all on macos should work again (#3006)
    9140063 - fix(accessibility): don't filter everything when the page has a title (#2909)
    d8bedd8 - chore: explicitly type SerializedArgument, fix rpc dispatchEvent (#2988)
    ๐Ÿšš 070a257 - test: move all generic page tests to jest (#3002)
    0๏ธโƒฃ 5cf3e4f - feat(rpc): switch Env to use an array, split ignoreDefaultArgs (#2984)
    โœ… df8b270 - chore(jest): convert browser tests to jest (#3000)
    โœ… 1c0504a - test: respect fixtures in describe, match image snapshots (#2989)
    โœ… fe95ee0 - test: group browserType.launchServer tests (#2944)
    16e3776 - fix(JSCoverageEntry): added scriptId and isBlockCoverage (#2955)
    โœ… 424f11d - test: convert some tests to the jest+fixtures (#2983)
    ๐Ÿ’ป 1896e8e - browser(webkit): send Playwright.pageProxyDestroyed for crashed tabs when deleting context (#2986)
    ๐Ÿ’ป 89ccf99 - browser(firefox): screencast for Mac headful (#2985)
    056f0e2 - feat(rpc): ensure that error stack traces point to the user code (#2961)
    ๐Ÿšš b890569 - feat(rpc): move leftover extraHTTPHeaders to HeadersArray (#2980)
    ๐Ÿ›ฐ 439e048 - feat(rpc): migrate DeviceDescriptors payload to an array (#2981)
    ๐Ÿšš 4c8ba3e - chore: remove cli (#2976)
    โœ… 513899a - test: add a test for arbitrary options (#2977)
    โœ… ecc130c - test: convert evaluation.spec to jest+fixtures (#2968)
    ๐Ÿณ 7080767 - devops: move CircleCI to run against dev version of Docker container (#2969)
    a802b4a - feat(ff,wk): bump revisions (#2967)
    198ecee - api(exposeBinding): allow handles in the binding result (#2970)
    aa4c893 - feat(rpc): implement waitForNavigation on the client (#2949)
    ๐Ÿณ 824f649 - devops(docker): fix docker for chromium (#2966)
    177873e - chore(deps): bump lodash from 4.17.15 to 4.17.19 (#2964)
    ๐Ÿณ d750ba3 - fix(docker): add missing dependencies to docker image (#2963)
    ๐Ÿ b7f7ba9 - browser(firefox): screencast support for Windows headful (#2965)
    โœ… 19cd96c - test: add the jest-circus experimental runner (#2962)
    ๐Ÿง 0b92181 - feat: validate browser dependencies before launching on Linux (#2960)
    ๐Ÿšš c51ea0a - feat(rpc): remove PageAttribution from the protocol, attribute on the client side (#2957)
    7f61715 - feat(rpc): use headers array in the protocol (#2959)
    ๐Ÿ’ป 3189303 - browser(webkit): close crashed pages on exit (#2958)
    ๐Ÿ’ป 0aff9be - browser(firefox): screencast for headless mac (#2956)
    ๐Ÿšš 4a00e5c - test: remove flaky test for binding on error pages (#2952)
    2d5c032 - feat(rpc): return objects for every protocol command (#2950)
    46a625d - feat(firefox): bump to 1127 (#2951)
    1b84ec9 - fix(binding): dispatch binding after the page has been initialized (#2938)
    ๐Ÿ— 89ca2db - browser(firefox): kick off new build after last commit (#2948)
    ๐Ÿ’ป de40329 - browser(firefox): add new files for headless screencast (#2947)
    ๐Ÿ’ป bf6f22d - browser(firefox): basic screencast for headless (#2931)
    ๐Ÿšš d5bd459 - chore(rpc): remove some paths from the channel (#2934)
    ๐Ÿ‘ cc8fe5a - feat(rpc): support electron (#2933)
    ๐Ÿ‘ 9fdb3e2 - feat(rpc): support selectors (#2936)
    ๐Ÿ“„ 6c75cbe - docs: fix link to github workflow in releasing doc
    ๐Ÿณ a06ba1c - devops: add utility to count compressed docker image size (#2920)
    ๐Ÿณ d58a57c - devops: fix docker publishing (#2939)
    ๐Ÿณ b7d68d1 - devops: automate Docker image publishing (#2937)
    65d45c1 - feat(rpc): introduce Waiter for various waitFor implementations (#2935)
    ๐Ÿ“„ b2d820a - docs(emulation): separate section for dark mode (#2915)
    9fd30e5 - feat(rpc): ensure feature-detection works as before (#2898)
    โœ… 2151757 - feat(rpc): run rpc tests in-process and out-of-process (#2929)
    ๐Ÿš€ 0346c3a - chore: update release notes draft gen (#2932)
    โœ… 6d94c92 - feat(rpc): support no-serialization mode, run hook tests (#2925)
    ๐ŸŒฒ 6674458 - feat(rpc): log api calls into LoggerSink (#2904)
    c63b706 - fix(events): avoid firing events after close/detach (#2919)
    ๐Ÿ”€ fc68614 - feat(rpc): merge DispatcherScope and Dispatcher (#2918)
    โœ… ebb4c33 - test: mark 2 chromium not important win tests as failed (#2914)
    ๐Ÿ’ป 982e5e3 - devops: collect artifacts from browser locations (#2913)
    21807bc - feat(webkit): roll WebKit to r1306 (#2899)
    a403d4b - fix(firefox): fix launching firefox without dependencies (#2900)
    ๐Ÿณ 1cebf87 - chore(docker): skip "recommended" dependencies (#2917)
    ๐Ÿณ bce4b1a - chore(docker): trim some of the gstreamer dependencies (#2897)
    ๐Ÿšš 631f76d - chore(rpc): remove union types from page and handles (#2912)
    ๐Ÿ”€ b6fd4dc - feat(rpc): merge ChannelOwner and ConnectionScope (#2911)
    โšก๏ธ 54f9a0d - test: update headfull chromium expectations after a recent roll (#2908)
    ๐Ÿง d561465 - devops: use matrix in GHA, add non-linux rpc (#2907)
    c89c30e - fix(popup): do not report frameless pages (#2910)
    c21b637 - feat(webkit): bump to 1305 (#2893)
    โœ… a91ec9a - feat(rpc): pass more tests (#2896)
    โœ… 7039409 - test: skip devtools test with USES_HOOKS (#2895)
    ๐Ÿง cb8b1bc - browser(webkit): Reduce binary size of WebKit Linux build bundles (GTK and WPE) (#2880)
    e90ba26 - fix(context): fire close event for persistent contexts (#2891)
    ๐Ÿ‘ 8fe29fe - feat(rpc): support more chromium-specific apis (#2883)
    โœ… b3ca4af - chore: misc test fixes (#2857)
    โœ… 6209d14 - chore: misc test fixes (#2888)
    โœ… c3ac037 - test: add test to validate user-agent sanity (#2887)
    ๐Ÿ’ป b93e099 - browser(webkit, firefox): bump versions (#2866)
    458aaa5 - feat(chromium): roll Chromium to r786218 (#2879)
    0๏ธโƒฃ 71713c9 - fix(webkit): Fix default User-Agent (#2886)
    ๐Ÿš€ f5911de - browser(webkit): release GTK app only if it has been referenced (#2885)
    ๐Ÿ’ป 83bba08 - browser(webkit): fix touch events on mac after last roll (#2884)
    โœ… 040c6a6 - chore(jest): run tests with jest (#2754)
    ๐Ÿ“„ 6a1bd3a - docs: add debugging docs page (#2865)
    โœ… 8611ee8 - chore(testrunner): typescript test files (#2751)
    ๐Ÿ— e97badc - docs(CONTRIBUTING.md): Add build step (#2869)
    โœ… 760283e - testrunner: fix default environment name (#2870)
    0c80c22 - feat(rpc): plumb CDPSession (#2862)
    2a86ead - chore: replace FrameTask with internal events on Frame (#2856)
    โœ… 35cb20d - test: unflake recorder tests (#2808)
    ๐Ÿ’ป baaa654 - browser(firefox): resize window when changing viewport (#2861)
    ๐Ÿ’ป 64f5721 - browser(webkit): roll to 07-07-2020 (#2863)
    ๐Ÿ‘• 6ed8b5f - chore(eslint): lint for copyrights on files (#2858)
    ๐Ÿ“„ de7969f - docs(api/input): fix typo (#2837)
    ๐Ÿ’ป 9640dbf - browser(firefox): exclude browser controls from screencast (#2855)
    39144dd - feat(webkit): bump to 1302 (#2852)
    ๐Ÿ”จ 0380400 - chore: refactor waiting for lifecycle events (#2851)
    db3439d - chore: introduce DocumentInfo (#2765)