All Versions
28
Latest Version
Avg Release Cycle
10 days
Latest Release
1254 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)