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

Changelog History
Page 3

  • v0.15.0 Changes

    April 24, 2020

    ๐Ÿ’ป Browser Versions

    • Chromium 84.0.4125.0
    • Mozilla Firefox 76.0b5
    • WebKit 13.0.4

    ๐Ÿ†• New APIs

    ๐Ÿ› Bug Fixes

    ๐Ÿณ #1622 - [BUG] Example Dockerfile browser Dependencies
    ๐Ÿ‘ #1882 - [Feature] Support single quotes in text selector engine
    #1936 - [BUG] Firefox cannot download Blobs

    Raw notes

    906d117 - chore: mark v0.15.0
    5146dfc - chore: cut v0.15.0 (#1957)
    9415dc2 - feat(chromium): roll Chromium to r762211 (#1956)
    ๐Ÿ‘ 7c9762f - fix: support blob downloads (#1954)
    ๐Ÿ“š 21dc346 - devops: auto-correct links in our documentation (#1955)
    โœ… 6296614 - test: mark test as flaky on FFOX
    5ac7f0e - fix(text selector): allow single quoted text (#1952)
    ๐Ÿ’ป e6c2cad - browser(webkit): add frame id to download info (#1953)
    ๐Ÿ“„ d354e9c - docs(contributing): clean up headings
    c1c0237 - api(dispatchEvent): page, frame and handle versions added (#1932)
    ๐Ÿ‘ 671cfa0 - fix(types): support objects with typed keys and values (#1752)
    ๐Ÿšš 793586e - fix(click): throw instead of timing out when the element has moved (#1942)
    f11113f - feat(firefox): roll to 1085 (#1951)
    ๐Ÿ“„ fd17cfb - docs(contributing): add info about skip and fail (#1944)
    ๐Ÿ’ป 05f0797 - browser(firefox): support blob downloads (#1945)
    2637805 - feat(webkit): roll to 1208 (#1948)
    โšก๏ธ 97a1aa5 - docs: update version table
    โœ๏ธ 40bed0f - docs: fix typos (#1947)
    โœ… dc23c56 - tests(downloads): add a test for Blob downloads (#1936) (#1939)
    ๐Ÿ’ป 471ccc7 - browser(webkit): roll to ToT 4/23/2020 (#1943)
    ๐Ÿ’ป 2fcc2b5 - chore(chromium): resize browser frame when emulating viewport (#1924)
    ๐Ÿ’ป fa59372 - browser(webkit): roll to ToT 4/22/2020 (#1940)
    51ed5c5 - fix(examples): closes #1916 (#1934)
    ๐Ÿณ b516ac4 - fix: Dockerfile for Firefox (#1937)
    ๐Ÿšš bf7430f - docs(readme): remove FAQ link
    ๐Ÿš€ 0b7f789 - devops: try using another Github Actions event to trigger releases (#1931)
    ๐Ÿš€ 70d727d - browser(webkit): ensure autorelease pools are drained on mac (#1933)

  • v0.14.0 Changes

    April 23, 2020

    ๐Ÿ’ป Browser Versions

    • Chromium 84.0.4117.0
    • Mozilla Firefox 76.0b5
    • WebKit 13.0.4

    Highlights

    • ๐Ÿ“š Common areas such as working with elements, filling a form and many more are now covered in the documentation section.
    • ๐Ÿ“„ Built-in css and text selectors now pierce open shadow roots.
    • ๐Ÿ“„ page.press(selector, key[, options]) now supports shortcuts such as Control+Shift+T.
    • ๐Ÿ“„ Many input actions like page.click(selector[, options]) now automatically retry when the target element has been detached, for example if it was replaced at the end of an animation.
    • ๐Ÿ‘€ Playwright now provides API for capturing logs, see the Logger class.

    ๐Ÿ’ฅ Breaking API Changes

    ๐Ÿ†• New API

    ๐Ÿ› Bug Fixes

    #1240 - [BUG] Click misbehaviour for Chromium in visible area
    ๐Ÿ’ป #1731 - [BUG] Installation of playwright is successful even if fetching browser binaries fails
    #1735 - [REGRESSION]: Unclear error message when undefined is passed to page.click()
    ๐Ÿšš #1762 - [BUG] When clicking on a link navigating away from the website, playwright throws a removeFrameSession failure
    #1798 - [BUG] npm says ""Unable to find a readme for [email protected]"

    Raw Notes

    cf1fd79 - chore: mark v0.14.0 (#1918)
    ๐Ÿ™‹ 9bd55e9 - docs(readme.md): drop FAQ (#1930)
    ๐Ÿ“„ e318ee5 - docs(readme): fix chromium version
    ๐Ÿ“ฆ a147d3f - chore: sync versions across packages (#1929)
    511883d - devops: fix checking if branch is tip-of-tree when publishing @next (#1926)
    53c78a8 - fix(downloads): fix acceptDownloads complaint (#1777) (#1923)
    00e8d88 - fix: do not auto wait for downloads (#1921)
    ๐Ÿ’ป fa6f738 - feat(browser): roll webkit to r1205 (#1922)
    b7afbf8 - fix(webkit): ignore WebSocket certificate errors on Mac (#1900)
    ๐Ÿ’ป 91c0631 - browser(webkit): extract webkit embedders into webkit/src (#1919)
    โช 6ecac8c - chore: restore networkidle0 alias (#1920)
    โœ… 95b8f61 - test: add more download tests (#1917)
    136173a - chore: cut v0.14.0 (#1913)
    ๐Ÿ“„ f8f3b88 - docs(verification.md): fix typo
    โœ… 2926d33 - test: disable flaky firefox tests (#1912)
    89007c8 - devops: make README.md to always reflect tip-of-tree (#1911)
    ๐Ÿ 2313ceb - browser(webkit): fix leaking popup windows (#1908)
    ๐Ÿš€ c474c54 - devops: run CI against release branches too (#1910)
    ๐Ÿ’ป 48cbee1 - browser(firefox): disable the extension blocklist (#1909)
    ๐Ÿ’ป 0815ff3 - docs(browsers.md): fix nit
    โšก๏ธ fa18c41 - docs(browsers.md): updates and nits
    โšก๏ธ 1865058 - docs(browsers.md): updates and nits
    โœ… 2d68830 - feat(testrunner): support --file to filter tests by test file name. (#1903)
    89b2fe5 - feat: introduce PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD env variable (#1892)
    ๐Ÿ“š 0935144 - docs(browsers): add documentation describing managing browsers (#1907)
    ๐Ÿ“„ 88366f3 - docs: adds introduction.md (#1905)
    ๐Ÿš€ 0f338ec - devops: introduce release publishing workflow (#1894)
    ๐Ÿ“„ e9914cc - docs: fix formatting
    ๐Ÿ’ป 18fb7f9 - browser(webkit): ignore WebSocket HTTPS errors on Mac (#1899)
    ๐Ÿ’ป 74ce041 - browser(webkit): roll to ToT 4/20/2020 (#1898)
    96331de - devops: start actually publishing @next versions for tip-of-tree commits (#1893)
    5b085fd - feat(logger): introduce context-level logger (#1896)
    2320d9c - feat(webkit): roll to r1201 (#1897)
    โœ… 5d98631 - test: add a test for non-navigation downloads (#1895)
    ๐ŸŒฒ 47c3841 - chore: bring back DEBUG= logging (#1891)
    068e1e0 - devops: fix next version generation
    ac8a30c - devops: start releasing from Github Actions (#1890)
    โœ๏ธ 80a7fcd - docs(verification): nits and typos
    948d51d - fix(types): export selected types (#1881)
    ๐Ÿ”’ 1935824 - devops: add package-lock.json (#1859) (#1889)
    ๐Ÿ“„ c2fe55e - docs: add verification guide (#1885)
    ๐Ÿ 37ad552 - browser(webkit): allow windows larger than display on Win (#1888)
    ๐Ÿšš 0656771 - api(networkidle): remove networkidle2 (#1883)
    1dff8e8 - chore: bump minimist dependency (#1866)
    โœ… 8ca120f - fix(tests): fix DEBUGP when running in parallel (#1886)
    fb45c75 - feat(webkit): simulate device orientation events (#1852)
    ๐Ÿง 93c9083 - tests(firefox): unskip "should report shiftKey" on Linux&Win (#1833)
    ๐Ÿ“„ 3485ffb - fix(docs): fix snippets, integrate navigations to ToC and core concepts (#1884)
    ๐Ÿšš d1a9551 - chore: remove old TODOs, add a test (#1879)
    โœ… a000335 - test: add a test for sourceURL in exception stacks (#1880)
    649f37f - fix(pageerror): report correct error message and stack (#1862)
    ๐Ÿ“„ 4d8c057 - docs(selectors&ci): brush up respective sections
    ๐Ÿ“„ 621df5d - docs: fix cross references (#1877)
    ๐Ÿ“„ ed89c37 - docs: fix API references
    ๐Ÿ“„ 5406b77 - docs: add a note about string quoting
    effeaaf - fix(click): force any hover effects before waiting for hit target (#1869)
    ๐Ÿ“„ 6231d50 - docs(core-concepts): follow up on object handles
    ๐Ÿ“„ 39b37be - docs(core-concepts.md): add section regarding object & element handles (#1871)
    ๐Ÿ— 26c7b30 - browser(webkit): bump version to kick off next build on bot (#1875)
    ๐Ÿ’ป c0ce6c7 - browser(webkit): fix win compilation (#1874)
    ๐ŸŒฒ 1f43ae6 - feat(logging): introduce logger sink api (#1861)
    b825983 - devops: disable previews on telegram bot messages
    ๐Ÿ”Š e0d3e48 - devops: use node.js to gzip logs
    ๐Ÿ— ea95a91 - devops: start uploading build logs to bots (#1870)
    ๐Ÿ“„ ef7815e - doc(network): reorder items in network docs
    ๐Ÿ“„ f6fec27 - docs(core-concepts): add selectors and auto-wait sections
    ๐Ÿ“„ 92a4c70 - docs(input): include clicks and files sections (#1868)
    ๐Ÿ”’ 92b6bc0 - Revert "devops: add package-lock.json (#1859)"
    ๐Ÿ”’ 75f35e4 - devops: add package-lock.json (#1859)
    0๏ธโƒฃ c359116 - fix: create _defaultContext only in persistent mode (#1854)
    022bc67 - chore(chromium): allow passing --remote-debugging-port for debugging (#1857)
    55b4bc9 - feat(actions): requery the element when it was detached during the action (#1853)
    ๐Ÿ’ป e466508 - browser(webkit): fix mac&win compilation (#1856)
    โœ… cf82e2c - fix(testrunner): await terminations before reporting test results (#1855)
    ๐Ÿ’ป 1912fbf - browser(webkit): simulate device orientation events (#1851)
    โœ… cf415bb - test: add failing popup tests (#1849)
    39c9a45 - feat(firefox): roll to r1084 (#1850)
    โœ… 2a866d6 - test(network): rebaseline request failed test on win
    2b96b85 - fix(firefox): throw error when added script blocked by CSP (#1841)
    โšก๏ธ e8bf5fd - Update pngjs and jpeg-js dependencies (#1845)
    ๐Ÿšš a248430 - reapply api(waitUntil): remove waitUntil options from the actions (#1842)
    โœ… 3151ea2 - test: disable flaky fixtures test (#1839)
    โช 31460b1 - Revert "api(waitUntil): remove waitUntil options from the actions (#1834)" (#1840)
    ๐Ÿ’ป 846af74 - browser(firefox): do not use system colors for controls (#1838)
    โœ… 51b8685 - feat(testrunner): support --repeat CLI flag to repeat tests (#1828)
    ๐Ÿšš d0b8710 - api(waitUntil): remove waitUntil options from the actions (#1834)
    af2340c - fix(click): explicitly fail when element detached during click (#1835)
    ๐Ÿ›  629b772 - docs(loading): nits and fixes
    โœ… 04ed683 - tests(firefox): unskip network idle tests (#1832)
    ๐Ÿ“„ e67603d - docs(emulation): review, fix nits
    ๐Ÿ“„ 42eefa6 - docs: emulation guide (#1831)
    55c01da - fix(firefox): fire "requestfailed" event on network errors (#1817)
    f594229 - feat(api): wait for popups and downloads when performing actions (#1744)
    ๐Ÿ“„ 67cd569 - docs: typo fix
    036f9e5 - fix(webkit): allow fufilling requests to redirects (#1830)
    โช 5ec2c58 - test(selectText): restore firefox tests (#1829)
    ๐Ÿ“„ da24fe1 - docs: rename to upload-download.md
    ๐Ÿ“„ ae6b1ba - docs(uploads): fix typo
    ๐Ÿ’ป 77f1a70 - browser(firefox): send requestFailed on network error (#1816)
    ๐Ÿ“„ 0d4f73f - docs(core-concepts): some nits (#1827)
    5e18378 - fix(webkit): do not access mainFrame when initialization has failed (#1825)
    ๐Ÿ’… 08c8a74 - docs(network): polish network docs (#1826)
    ๐Ÿ“„ 858f643 - docs(concepts): introduce core concepts doc (#1824)
    2280126 - api(setInputFiles): introduce page/frame helpers, document, break compat (#1818)
    ๐Ÿ“„ 58bb874 - docs(network): introduce network docs (#1822)
    26018aa - feat(chromium): roll Chromium to r759486 (#1823)
    69a9867 - feat(webkit): roll to 1197 (#1820)
    ๐Ÿ’ป 1b0467f - fix(chromium): get headers from browser process when intercepting (#1809)
    ๐Ÿšš ba36860 - feat(api): page.unroute to remove routes (#1813)
    0426354 - feat(firefox): roll to r1082 (#1819)
    โœ… 041406a - fix(firefox): enable remaining focus tests (#1803)
    โœ… 167d265 - fix(testrunner): make .repeat() retain test order (#1814)
    ๐Ÿ’ป a46a324 - browser(firefox): roll to ToT 4/15/2020 (#1815)
    56aa4c2 - fix(selectors): do not automatically enter shadow roots with >> (#1812)
    0๏ธโƒฃ f3451d9 - browser(firefox): focus all top frames by default (#1811)
    ๐Ÿ“„ 88054e3 - feat(docs): initial version of the loading explainer (#1800)
    ๐Ÿ’ป f05a8bd - browser(firefox): override document.hasFocus() in main frames (#1802)
    ๐Ÿ b2de970 - browser(webkit): events informing about popup windows being open (#1794)
    ๐Ÿ— abb87f2 - devops: always get BUILD_NUMBER from upstream (#1805)
    ๐Ÿšฆ cbad583 - browser(firefox): prepare to collect signals during actions (#1772)
    8c40b92 - fix: set non-0 exit code for install scripts if there are problems (#1739)
    ๐Ÿ“ฆ 9efc663 - chore: generate README.md for playwright package on prepublish (#1801)
    ๐Ÿ’ป 762dfe1 - browser(webkit): fix intercepting with a redirect (#1787)
    ๐Ÿ“„ 60eb3cd - docs(input): minor edits 3
    ๐Ÿ“„ 089a9dd - docs(input): minor edits 2
    ๐Ÿ“„ 438d276 - docs(input): minor edits
    ๐Ÿ“„ 50680de - docs(input): start crafting the input cheat sheet (#1804)
    0๏ธโƒฃ b0d79d5 - feat(shadow): make css pierce shadow by default (#1784)
    0ba823d - feat: introduce page.on('crash') event (#1782)
    โœ… aeabf9d - test: mark cookies test as flaky on win (#1796)
    e9b4700 - chore: assert selector is a string (#1795)
    d07105a - fix: do not capture exceptions while emitting events (#1790)
    52fe02e - devops: enforce strict treatment of unhandled rejections (#1789)
    3167f2d - fix(chromium): prevent errors when frame does not exist when detaching from oopif (#1767)
    โœ… 451a6b7 - test: add more focus() tests (#1793)
    ๐Ÿ‘• b232e00 - fix(firefox): make ElementHandle.scrollIntoViewIfNeeded pass (#1786)
    da683b2 - feat(selectAll): allow selecting all in the inputs and in the plain dom (#1783)
    ๐Ÿง b2c65db - test: mark permissions tests as flaky on Linux & Firefox (#1791)
    โœ… ea7aadb - devops: bump total tests timeout to 30 minutes
    ๐Ÿ‘• d5e75d8 - browser(firefox): avoid clobbering scroll requests after scrollIntoViewIfNeeded (#1785)
    โœ… 24d51cb - test: delete "Node.constructor.name in utility context" (#1788)
    9d05038 - feat(hints): hint at how waitFor(time) is bad for production (#1781)
    ๐Ÿšฆ 2e6f544 - chore(webkit): stop using windowOpen signal to determine initial empty page (#1776)
    c2fc403 - doc(keyboard): document Shift+ArrowLeft notation (#1771)
    โœ… 274c6c1 - test(chromium): add more oopif tests (#1685)
    โšก๏ธ bb0b6cd - Update api.md (#1773)
    โœ… cd5a48f - test(geolocation): test context isolation (#1770)
    โœ… 32ff5a7 - devops(circleci): properly run all tests
    ๐Ÿ“„ abf1219 - docs(api.md): string values should be quoted (#1766)
    โœ… 1c1d81c - fix(firefox): make scroll&click tests pass (#1760)
    ๐Ÿ’ป f36973f - browser(webkit): propagate language change to site processes (#1769)
    ๐Ÿšš b95fcae - browser(webkit): move context instrumentation from pool to dataStore (#1763)
    โœ… a3571c2 - fix(testrunner): respect timeout=0 in hooks (#1764)
    โœ… 29a6cdf - fix(tests): fix a race with golden setup (#1757)
    9542f47 - feat(selectors): deep selector which pierces open shadow roots (#1738)
    ๐Ÿ‘• 126b54f - browser(firefox): implement Page.scrollIntoViewIfNeeded (#1759)
    3b23041 - devops: use node 10 on appveyor (#1714)
    ๐Ÿšš 62a493e - chore(test): move more test options to state (#1761)
    a7572c7 - feat: nicer error message for page.addScriptTag (#1754)
    โœ… 8536fa8 - test(interception): add redirect test, failing in webkit and firefox (#1753)
    โœ… 97c4054 - test(websockets): add web sockets tests (#1758)
    โœ… 277c7d8 - test: close extra browser (#1756)
    ๐Ÿ”จ 368e1cc - chore(input): refactor keyboard layout, extract pure layout (#1681)
    9249f33 - feat(webkit): roll WebKit, migrate to Playwright.exe (#1749)
    โœ… bf656ea - fix(tests): accomodate isplaywrightready (#1746)
    cd2ecb2 - fix(types): allow explicit subtypes for unwrapped handles (#1747)
    ๐Ÿ’ป 383332c - browser(webkit): trim down the win embedder (#1748)
    ๐Ÿ’ป 909dd74 - browser(webkit): roll to r259720 (#1708)
    a1ffed6 - fix(firefox): do not create first window on start (#1727)
    ๐Ÿ 99c3f2b - browser(webkit): fork windows minibrowser (#1743)
    โšก๏ธ 1838405 - docs(ci): update link to github action (#1742)
    โšก๏ธ d0c19e5 - feat(firefox): update to 1076 (#1734)
    f282400 - fix(firefox): disable captive portal service (#1737)
    3584205 - fix(chromium): associate navigation requests with navigations (#1724)
    โœ… 42beb37 - feat(test): introduce test.config.js (#1725)
    โœ… 7189d19 - feat(ci): upload test output folder from github actions (#1733)
    78abf5c - feat(api): add getAttribute, innerText, innerHTML, textContent (#1717)
    โšก๏ธ 775604d - feat(webkit): update to 1190 (#1728)
    ๐Ÿ’ป db34d43 - browser(firefox): make juggler web socket work in -silent mode (#1726)
    โœ… 1b366b0 - fix(test): properly handle custom executable path (#1723)
    b385ea8 - chore: bump version to v0.13.0-post (#1721)

  • v0.13.0 Changes

    April 09, 2020

    Current Status

    • โœ… Chromium 83.0.4101.0. Tests: 983 passing, 7 failing.
    • โœ… Webkit 13.0.4. Tests: 916 passing, 6 failing.
    • โœ… Firefox 75.0b8. Tests: 908 passing, 13 failing.

    Detailed status can be found at IsPlaywrightReady?

    Highlights

    ๐Ÿ†• New API

    ๐Ÿ› Bug Fixes

    #1316 - Allow custom selector engines to run in the main world
    #1427 - [Feature] text= selector to match
    โš  #1440 - [Feature] Warning, instead of error, on devtools: true
    #1442 - [BUG] Fill throws "Element is not visible" despite waiting for visibility
    #1510 - [BUG] extract-zip fails npm audit
    #1518 - [BUG] establish a bot to validate install flow
    #1535 - [BUG][0.12.1] Unable to install on mac10.13
    #1553 - [BUG] OOPIFs cannot read property 'xxx' of undefined for iframes in non-headless mode
    โšก๏ธ #1589 - [Question] Could you please update the link to e2e Boilerplates ?
    #1592 - [Question] $eval vs getProperties
    ๐Ÿ“š #1613 - [BUG] Documentation regarding video playback in Playwright
    ๐Ÿ’ป #1651 - [BUG] PLAYWRIGHT_BROWSERS_PATH throws error on subsequent installs
    #1674 - [Feature] Overload waitForEvent to return specific type

    Raw Notes

    17e645a - chore: mark version v0.13.0 (#1720)
    3a1ffea - fix(types): add types for waitForEvent (#1715)
    โšก๏ธ 2fd7f4e - devops: fix update_version.js script
    โœ… 2d57fff - fix(tests): fix multiple browsers tests (#1718)
    ๐Ÿšš 6723254 - docs: remove stale file (#1719)
    d5a746a - chore(ci): use playwright github action (#1712)
    ๐Ÿšš ade9d23 - test: remove module.export.describe wrapper (#1716)
    โœ… 2ef8e26 - test: structure tests to use environments, closer to end user (#1713)
    โœ… be06bb0 - test: mark headful test as slow (#1710)
    ๐Ÿ’ป 22a7636 - browser(webkit): always open local Web Inspector on "Inspect element" (#1711)
    0๏ธโƒฃ 4d4e856 - browser(webkit): open inspector undocked by default (#1706)
    5b4d32d - fix(chromium): fix a race in persistent context launch (#1702)
    โšก๏ธ 685f14d - feat(firefox): update to 1075 (#1705)
    ๐Ÿ’ป aff2ffa - browser(firefox): manage network activity per page (#1700)
    โœ… 20ff327 - feat(testrunner): catch delegate errors (#1704)
    ๐Ÿšš 0ff2e6a - test: move api coverage to a spec file (#1703)
    โœ… af01d15 - test: slim down test utils (#1701)
    ๐Ÿ“„ d21e2c9 - docs(api.md): clarify downloads lifetime (#1698)
    โœ… 118333a - test: fix event coverage on Chromium (#1693)
    ๐Ÿณ 222d01c - devops(docker): Install ffmpeg dependency, adding codecs necessary for video playback in Firefox (#1627)
    โœ… 39e06f0 - feat(testrunner): improve reporting of unhandled errors/rejections (#1697)
    ๐Ÿ‘ a7ae205 - feat(firefox): support downloads (#1689)
    949dc7b - chore: bump extract-zip dependency (#1696)
    c6f580f - chore: migrate from timeouts to deadlines internally (#1695)
    ๐Ÿณ 362b72c - docs(docker): fix tag in docker run command (#1694)
    e683c08 - fix(fill): make fill work with date/time inputs (#1676)
    ๐Ÿšš e0c8fbf - test: put test runner api on global, remove unused parameters (#1684)
    e15fc08 - chore: migrate node types to 10.17.17 (#1690)
    ๐Ÿ’ป becf97f - browser(firefox): report navigation request failure for downloads (#1688)
    ๐Ÿ“„ 4cf5cf6 - docs(api.md): fix link to download class
    ๐Ÿ’ป 7b2736b - browser(firefox): support downloads (#1683)
    889cf8f - fix(input): climb dom for pointer-events:none targets (#1666)
    0๏ธโƒฃ 3dc14ed - fix(colorScheme): make light scheme default on all browsers (#1668)
    โœ… cd39053 - feat(testrunner): make it easier to setup golden matcher (#1682)
    โœ… e519a3d - fix(testrunner): better capture Location for hooks (#1680)
    โœ… f2b13c0 - chore(testrunner): split TestRunner into parts (#1679)
    ๐Ÿ‘ aeeac55 - feat(chromium): support oopifs (#1664)
    56fbfc2 - fix(firefox): do not make stray network requests (#1673)
    ๐Ÿ’ป 11ad172 - browser(firefox): allow setting colorScheme on the context level (#1672)
    5673fd7 - feat(firefox): bump to 1071 (#1670)
    2eba79b - fix: permissions in mobile and geolocation example (#1667)
    ๐Ÿ’ป 65ca87c - fix: fix PLAYWRIGHT_BROWSERS_PATH treatment (#1662)
    17039f1 - fix(webkit): fix non-mac screenshots w/ dsf (#1665)
    a91304a - feat(selectors): attribute selectors pierce open shadow roots (#1656)
    e9428b6 - devops: fixate diff algorithm to not rely on dev settings (#1663)
    ๐Ÿ’ป 3c01bf6 - browser(webkit): account for non-Mac device scale factor (#1661)
    ๐Ÿ’ป b7d0c32 - fix(browser): wait for the pipe to disconnect in browser.close (#1652)
    โœ… b89df07 - test: add device scale factor screenshot tests (#1660)
    โœ… 823f961 - feat(testrunner): migrate from events to a delegate (#1647)
    โšก๏ธ f216ab9 - chore(chromium): small improvement with updating touch (#1659)
    ๐Ÿ fc73d54 - browser(firefox): instrument all browser windows early enough (#1645)
    270206e - feat(text selector): match button input by value (#1657)
    f8ecdff - fix: typo in input.ts (#1653)
    bebce8f - feat(webkit): bump version to 1187 (#1646)
    ๐Ÿšš 1f2803b - feat(testrunner): removeEnvironment (#1650)
    ๐Ÿ‘• ea16e55 - fix(lint): import errors (#1649)
    a9be3c5 - feat(text selector): pierce shadow roots (#1619)
    ๐Ÿ‘ 75571e8 - feat(downloads): support downloads on cr and wk (#1632)
    ๐Ÿ’ป 3d6d9db - fix: wait for the process to close when closing the browser (#1629)
    ๐Ÿ’ป b1580a3 - browser(webkit): roll to r259389 (#1643)
    โœ… d38baae - feat(testrunner): nested environments (#1635)
    ๐Ÿ f3f10ae - browser(webkit): support downloads on windows (#1642)
    ๐Ÿ“ฆ 692f4db - devops(ci): added job for testing package installations (#1572)
    โฌ†๏ธ a1f22aa - chore: upgrade typescript to 3.8.3 (#1641)
    ๐Ÿšš 2ac6967 - docs(api.md): remove dead link to FAQ section (#1640)
    ๐Ÿ‘ 7c2ddc2 - feat(firefox): support timezone override (#1578)
    ๐Ÿง e76f8de - browser(firefox): reland "instrument all windows, support silent mode" with Linux fix (#1634)
    โœ… c345cfe - test: disable one flaky test on Chromium (#1633)
    โœ… 14dbf4a - chore(tests): meaningful split between test.js and playwright.spec.js (#1630)
    ๐Ÿ“„ 9d04dcc - docs(examples): working with selectors (#1624)
    ๐Ÿšš e241c1b - chore: remove web mode (#1625)
    ๐Ÿ’ป cf49a9e - browser(firefox): make timezone override work on Win (#1628)
    โšก๏ธ 1f0b7bf - docs(api): update ordering for $eval and $$eval (#1623)
    c218d8c - fix(firefox): isolate ignoreHTTPSErrors setting between contexts (#1617)
    โšก๏ธ c2617c0 - Update README.md
    โœ… f87e645 - feat(testrunner): introduce environments (#1593)
    0๏ธโƒฃ a7b61a0 - fix(text selector): by default, do a substring match (#1618)
    ๐Ÿ’ป 1da2141 - browser(firefox): delete Browser.setIgnoreHTTPSErrors (#1616)
    ๐Ÿ’ป 4ac98da - browser(firefox): set ignoreHTTPSErrors per context (#1614)
    ๐Ÿ 2ce85f9 - Revert "browser(firefox): instrument all windows, support silent modeโ€ฆ (#1615)
    6053784 - feat: add missing slowMo to launchPersistentContext (#1597)
    a853690 - fix(types): don't export derived types (#1598)
    ๐Ÿ”จ 9e85f8d - chore(waitForEvent): refactor waitForEvent into a single implementation (#1602)
    ๐Ÿ 314eb40 - browser(firefox): instrument all windows, support silent mode (#1612)
    โœ… 34610f2 - chore(tests): use public types for the tests (#1600)
    ๐Ÿ“„ 2402aad - docs(api): elaborate on fill vs type (#1608)
    dd4fe90 - feat(webkit): roll WebKit to r1185 (#1611)
    โšก๏ธ d0073ef - chore(firefox): update cheatsheet with logging instructions (#1609)
    307b33a - feat(chromium): roll to r754895 (#1610)
    92c5ab3 - fix(types): correctly infer type in $eval and $$eval (#1603)
    08aebc7 - fix(types): add types for waitForEvent (#1601)
    โœ… 13a6c89 - fix(test): actually test if page.waitFor accepts arguments (#1599)
    ๐Ÿ’ป a2e1d4c - browser(webkit): implement support for downloads (#1596)
    950d427 - fix: catch websocket error events (#1595)
    ๐Ÿ“„ eabba56 - docs(api.md): clarify jshandle.getProperties() method (#1594)
    ๐Ÿ’ป 43b91e6 - browser(firefox): implelemt timezone overrides (#1577)
    d130479 - feat(webkit): roll webkit to 1184 (#1570)
    ๐Ÿ”จ fdc3612 - browser(firefox): refactor targets/contexts/dispatching (#1590)
    โœ… 1f08b72 - test: add web socket leak test coverage (#1586)
    ๐ŸŽ 31f186c - fix(browserFetcher): support macos 10.13 for firefox and chromium (#1549)
    ๐Ÿ›  d9c064b - docs(showcases): fixed dead link to e2e boilerplates (#1591)
    โœ๏ธ a007cae - Fixed small typos (#1588)
    โœ… b6166c9 - chore(testrunner): introduce Location class (#1585)
    ๐Ÿšš c49b856 - chore(testrunner): remove setup() helper (#1584)
    โœ… a41836b - chore(testrunner): introduce TestRun (#1582)
    ๐ŸŒ 5499b18 - feat(websocket): wrap firefox web socket too (#1580)
    โœ… b85ab89 - chore(testrunner): make most modifiers external (#1581)
    โœ… 4bd46ba - feat(testurnner): allow multiple hooks isntances and per-test hooks (#1571)
    6503c83 - fix(install): speculative fix for generateChromiumProtocol (#1583)
    โœ… f72b6b4 - test: try to unflake fixtures tests (#1574)
    โœ… b4a2014 - test: add failing FF test around ignore https (#1576)
    ๐Ÿ— 6903496 - fix(build): generate protocol in chromium (#1579)
    ๐Ÿšš a042466 - chore(testrunner): remove effectiveMode and effectiveExpectation (#1569)
    ๐ŸŒ 48516ed - feat(websocket): use proxy web socket on chromium (#1573)
    4e89939 - chore: do not try/catch buffer.concat (#1575)
    ๐Ÿ’ป e796bfd - browser(webkit): do not apply platform filters to accessibility snapshot (#1528)
    ๐Ÿšš 00cb4e3 - chore: move transport to object messages (#1567)
    ๐Ÿ”€ af7a16c - chore(testrunner): merge test spec with test, suite spec with suite (#1566)
    72ae3a9 - feat(firefox): emulate device size (#1565)
    ๐Ÿ’ป 3535a82 - browser(firefox): emulate device size (#1561)
    ๐Ÿ”ง f503672 - test(firefox): enable configurable args test (#1564)
    โœ… 59fa2cb - test(firefox): enable locale tests (#1562)
    ๐Ÿ’ป 4826b3a - browser(firefox): make locale override apply to Number/Date formatting (#1560)
    ๐Ÿšš b473d9d - chore(firefox): remove FFPage._initialize to ensure early initialization (#1554)
    โœ… f420cbb - test: fix race in 'should respect routes from browser context' test (#1559)
    ๐Ÿ”ง 9d0f465 - browser(firefox): make call argument properties configurable (#1558)
    โœ… aad82e0 - chore(testrunner): decouple UserCallback from location and timeout (#1557)
    5d03be7 - feat(webkit): roll WebKit to r258828 (#1517) (#1556)
    8f8b75c - devops(webkit): force JHBUILD on GTK/WPE for now (#1555)
    ๐Ÿ’ป b24262b - feat(browser): roll Firefox to r1059 (#1551)
    ๐Ÿ’ป b1c156f - browser(firefox): fix user gesture in evaluation (#1550)
    โœ… f2d72b3 - test: enable flaky worker tests on Firefox (#1548)
    โœ… 81bd8de - feat(testrunner): composable and bindable attributes and modifiers (#1547)
    c468e92 - chore: speedup npm install from a github checkout (#1545)
    โœ… ece43ae - test: mark 100mb evaluate test as slow (#1546)
    bce8fc1 - feat(selectors): allow running selectors in main world (#1533)
    โœ… 89e123b - test(firefox): enable CSP tests that use new Function() (#1542)
    ๐Ÿ‘ท 09cbf33 - browser(firefox): wait for script to be evaluated in Worker (#1543)
    โช 7e75cef - devops: restore publishing @next version (#1540)
    ๐Ÿ’ป 2203e9c - browser(firefox): bypass CSP when calling functions from debugger (#1541)
    โœ… b611984 - feat(testrunner): modifiers and attributes (#1538)
    c01ad84 - fix(fill): use isVisible to be consistent with waitForSelector (#1539)
    ๐Ÿšš 60942d0 - chore(selectors): move selectors logic to selectors.ts (#1536)
    ๐Ÿš€ 1e007b2 - devops: temporary disable @next deployment on travis
    ๐Ÿš€ 6ee7852 - chore: update release guide and helper script (#1521)
    ef9e04d - fix(permissions): fix notifications permissions on firefox (#1531)
    ๐Ÿ’ป 6be3634 - browser(firefox): fix permissions check and notifications name (#1530)
    โœ… 2d5b701 - test(firefox): fix should close browser with beforeunload page (#1532)
    ๐Ÿ’ป aba670d - browser(firefox): roll Firefox (#1534)
    5bde0b5 - feat(auth): fix firefox auth flake (#1525)
    ๐Ÿ’ป 8af21d1 - browser(firefox): fix authentication (#1524)
    ๐Ÿ’ป 1f48efe - browser(firefox): ignore beforeunload handlers in Browser.close() (#1526)
    ๐Ÿ“„ c7b3744 - docs(api.md): fix typo (#1529)
    โš  4b1fa2f - feat: show warning on ff & wk if devtools was given (#1463)
    โœ… a2ee7a1 - fix(testrunner): do not spam output after termination (#1511)
    โšก๏ธ 3e8a6ac - devops: update docs regarding bubblewrap on linux
    โช 7943e00 - Revert "feat(webkit): roll WebKit to r258828 (#1517)" (#1522)
    ๐Ÿ’ป 231c878 - devops: support browser aliases in export.sh and prepare_checkout.sh (#1520)
    e14efd5 - feat(webkit): roll WebKit to r258828 (#1517)
    dc7d221 - chore: bump version to v0.12.1-post (#1516)

  • v0.12.1 Changes

    March 24, 2020

    Current Status

    • โœ… Chromium 83.0.4090.0. Tests: 972 passing, 4 failing.
    • โœ… Webkit 13.0.4. Tests: 905 passing, 6 failing.
    • โœ… Firefox 74.0b10. Tests: 873 passing, 36 failing.

    Detailed status can be found at IsPlaywrightReady?

    ๐Ÿ› Bug Fixes

    #1513 - [REGRESSION] npm install [email protected]

    Raw notes:

    a7ca2fe - chore: mark version v0.12.1 (#1515)
    ๐Ÿ“ฆ ed746d9 - fix: fix all packages installation (#1514)
    ๐Ÿš€ 1084008 - chore: update release guide
    ๐Ÿš€ a4dca79 - chore: update release guide
    ed6e0d5 - chore: bump version to v0.12.0-post (#1512)

  • v0.12.0 Changes

    March 24, 2020

    Current Status

    • โœ… Chromium 83.0.4090.0. Tests: 972 passing, 4 failing.
    • โœ… Webkit 13.0.4. Tests: 905 passing, 6 failing.
    • โœ… Firefox 74.0b10. Tests: 873 passing, 36 failing.

    Detailed status can be found at IsPlaywrightReady?

    Highlights

    There is no extra window when launching in headful mode.

    0๏ธโƒฃ Default viewport has been changed from 800x600 to 1280x720.

    ๐Ÿ‘ท Published recipes for popular CI environments.

    ๐Ÿ“š Playwright now includes a carefully crafted index.d.ts file with documentation inlined from api.md. Any type-related issues are welcome.

    ๐Ÿ’ป Many APIs are now available on browser context, for example browserContext.route(url, handler). This makes it easier to setup context once and ensure that all pages and popups behave consistently.

    0๏ธโƒฃ Many actions (for example, page.click(selector[, options]) or page.evaluate(pageFunction[, arg])) by default wait before and after performing an action to facilitate linear workflow.

    • Before action: input actions like click or fill wait for the element to be present in the dom, displayed, stop moving and receive pointer events. This behavior can be disabled by passing {force: true} option.
    • After action: many actions wait for any triggered navigations to finish. Option waitUntil determines the "navigation finished" condition, for example load or domcontentloaded.

    This change eliminates the need for explicit waits:

    // Waits for the link to be present and clickable,// clicks it and waits for the navigation to finish.await page.click('a');// Ready to use.console.log(await page.title());
    

    Previously, it was necessary to wait for preconditions and postconditions to avoid flakiness:

    // Waits for the link to be present.// Not needed anymore.await page.waitForSelector('a');await Promise.all([// Waits for the triggered navigation to finish.// Not needed anymore.page.waitForNavigation(), // Clicks the link.page.click('a'),]);// Ready to use.console.log(await page.title());
    

    ๐Ÿ“„ Evaluation functions (for example, page.evaluate(pageFunction[, arg])) now accept nested handles inside objects/arrays, but only take a single argument.

    const x = await page.evaluateHandle(() =\> window.scrollX);const y = await page.evaluateHandle(() =\> window.scrollY);// Old style, does not work anymore:await page.evaluate((x, y) =\> x + y, x, y);// New style, passing an object:await page.evaluate(({x, y}) =\> x + y, {x, y});// New style, passing an array:await page.evaluate(([x, y]) =\> x + y, [x, y]);// New style, passing arbitrary object structure with handles inside:await page.evaluate(({ scrollOffset }) =\> scrollOffset.x + scrollOffset.y, { scrollOffset: { x, y }});
    

    ๐Ÿ’ฅ Breaking API Changes

    ๐Ÿ’ป BrowserContext

    - browserContext.setPermissions() is renamed to browserContext.grantPermissions(permissions[, options]) and grants additional permissions instead of overriding entire permissions list.

    ๐Ÿ’ป BrowserType

    • browserType.devices is removed.
    • browserType.downloadBrowserIfNeeded() is removed.
    • browserType.errors is removed.

    - browserType.launchPersistent() is renamed to browserType.launchPersistentContext(userDataDir[, options]).

    ChromiumTarget

    - chromiumTarget.createCDPSession is moved to chromiumBrowserContext.newCDPSession(page).

    ElementHandle

    - elementHandle.visibleRatio() is removed.

    Frame

    - frame.waitForLoadState([state[, options]]) now takes a separate state parameter.

    Keyboard

    - keyboard.sendCharacters() is renamed to keyboard.insertText(text).

    Page

    - page.waitForLoadState([state[, options]]) now takes a separate state parameter.

    Request

    - request.redirectChain() is replaced with request.redirectedFrom() and request.redirectedTo().

    Response

    - response.buffer() is renamed to response.body().

    Selectors

    ๐Ÿ†• New APIs

    ๐Ÿ’ป BrowserContext

    - browserContext.on('page') event is emitted when a new page is opened in the browser context. This allows to handle popups originated by link clicks or window.open() calls.

    Page

    ๐Ÿ› Bug Fixes

    โœ… #8 - INTERNAL: run all the tests with npm test
    #720 - Setting permissions are flaky in firefox
    #813 - [BUG] website does not extend to full size
    #822 - [BUG] Cannot open file:// URLs with Firefox
    #844 - [BUG] WebKit scrollbars are not hidden
    ๐ŸŽ #914 - [BUG and temporary fix] Open Firefox as the frontmost window (macOS-specific)
    ๐Ÿ–จ #950 - [BUG] Chromium prints 'Connection terminated while reading from pipe' when closing browser
    #1030 - [BUG] chromium and webkit screenshot ignoring screenshot: clip: height option property
    ๐Ÿ #1078 - [BUG] Always launch 2 tabs or 2 windows
    ๐Ÿ’ป #1085 - [BUG] Playwright requires manual install of browsers
    0๏ธโƒฃ #1120 - [Question] text= selector does not match case-insensitive by default
    #1169 - [BUG] combined selector does not continue matching after first failure
    ๐Ÿ”ง #1184 - [BUG] NPM proxy configuration is not respected
    ๐Ÿ“š #1212 - [BUG] Documentation ambiguous for browser.contexts()
    โœ… #1214 - [BUG] Setting slowMo to 250 ms to examples in README.md times out the test cases with headless: false
    #1258 - [REGRESSION]: Chromium page will not close after opening session
    #1265 - [BUG][WebKit] fill/type/press do not work in iframes
    #1269 - [BUG] Cannot set cookie in juggler
    ๐Ÿ #1288 - [BUG] bundle c:\windows\system32\msvcp140_2.dll on webkit win

    Raw Notes

    08b94ee - chore: mark version v0.12.0 (#1497)
    โœ… 2225608 - chore: add logging to the testing server (#1505)
    โšก๏ธ 8bf8339 - docs(showcase): updated showcase (#1481)
    8d5433c - fix(screenshotter) validateScreeshotOptions typo (#1509)
    โœ… 4f89e40 - test: fix flaky interception test (#1508)
    ๐Ÿ’ป b778789 - feat: re-make global browser installation (#1506)
    ๐Ÿšš 7ef394b - chore(chromium): remove CRTarget, use CRPage and CRServiceWorker instead (#1436)
    ๐Ÿ“„ 5a93872 - docs: add upload keyword to filechooser (#1496)
    โšก๏ธ bfb24e6 - chore: update releasing guide (#1503)
    7efff97 - fix(chromium): properly handle failures to set override (#1498)
    ๐Ÿ“„ 5bf9f22 - fix(docs): consider argument to be optional in evaluate (#1500)
    ๐Ÿ’ป c28c5a6 - browser(firefox): make Runtime a global object shared between sessions (#1458)
    โœ… c0c9b7f - test: make debugp collect IO (take 2) (#1493)
    โช afbc2f2 - test(firefox): enable passing "userDataDir option should restore cookies" (#1487)
    ๐Ÿš€ 05dc89b - chore: update release guide (#1495)
    e139d4c - feat(firefox): roll to 1051 (#1494)
    ๐Ÿ‘• 1a25a4e - fix(doclint): support lists in comments (#1492)
    โœ… 6390645 - fix(testrunner): attribute unhandle promise reject to a single worker (#1491)
    ๐Ÿšš de0a2d1 - api(waitForLoadState): move waitUntil to be a first parameter (#1490)
    45a175d - fix(chromium): ignore lifecycle events for the initial empty page (#1486)
    โช 1ddf051 - Revert "test: make debugp collect IO (#1485)"
    โœ… b1bebda - test: make debugp collect IO (#1485)
    a74e23a - feat: support PLAYWRIGHT_GLOBAL_INSTALL=1 env variable (#1470)
    15fddb5 - api(click): rename offset to position (#1488)
    โšก๏ธ a570290 - docs(examples): update main readme to point to examples + add a file uploads example (#1484)
    โšก๏ธ 9826fd6 - browser(firefox): disable update, setting sync and other non-testing features (#1480)
    15ebe1c - feat(exposeFunction): implement context-level expose on firefox (#1478)
    โœ… 23e5d80 - test: uncomment slow ff tests (#1479)
    ๐Ÿ’ป 049fdf7 - browser(firefox): implement Browser.addBinding (#1477)
    c68cee9 - feat(offline): implement offline in firefox (#1476)
    ๐Ÿ’ป ac5852f - browser(firefox): implement offline emulation (#1475)
    ๐Ÿ’ป 6e8895f - fix(firefox): make interception, locale and geolocation work on browser context level (#1472)
    ๐Ÿ’ป 93954fe - chore: fix .local-browsers path into .gitignore (#1464)
    ๐Ÿ’ป fb7b919 - browser(firefox): make interception, locale and geolocation work on browser context level (#1469)
    โœ… 3f90c09 - tests: mark popup tests as passing on Firefox (#1466)
    โœ… 1b08797 - tests(ff): uncomment a couple of firefox tests (#1465)
    ๐Ÿ“„ 9e95844 - docs(troubleshooting): add dependencies for firefox and webkit (#1461)
    ๐Ÿ’ป ac02a6b - browser(firefox): issue Page.ready at the right time (#1462)
    ๐Ÿšš 670ce7a - chore: remove various watchers, use FrameTask directly (#1460)
    ๐Ÿ“„ 00c27ea - docs(readme): fix link to examples
    ๐Ÿ“„ 6df17c6 - docs(examples): setup get started with examples guide (#1441)
    โœ… 60a248e - test: add test for Map as eval argument (#1457)
    โœ… 34cc358 - tests(webkit): reenable should await promise from popup (#1447)
    โœ… e115e8e - tests: mark tests that launch() twice or use fixtures as slow (#1455)
    5a42cbd - fix(permissions): manage permissions on the proxy level in webkit (#1451)
    ๐Ÿ’ป 96c9c81 - browser(firefox): fix bug in Juggler with clashing method names (#1456)
    e210e56 - feat(lang): emulate language on firefox (#1453)
    ๐Ÿ— 21630d6 - devops: strictly configure build folder for Firefox builds (#1454)
    c539325 - feat(geo): implement geo override in ff (#1438)
    ๐Ÿ’ป 840e69b - browser(firefox): emulate language (#1452)
    ๐Ÿ’ป 5fc1a04 - browser(webkit): manager permissions on the proxy level (#1450)
    ๐Ÿ‘ bae56ea - fix(chromium): support main resource request interception for popups (#1449)
    ๐Ÿ’ป 053bab1 - browser(webkit): correctly detect Promise created in another window (#1446)
    โœ… 4320d4b - test: fix link navigation test so that it passes in Chromium (#1448)
    16c7a5b - api(eval): accept zero or one arguments in all evaluation functions (#1431)
    ๐Ÿ’ป fcdfa9c - browser(firefox): implement geolocation overrides (#1437)
    โœ… fa02b84 - test(types): add test for types (#1445)
    ๐Ÿ‘ 825555c - types: better types (#1166)
    ๐Ÿšš f1d97b0 - chore(docs): remove remaining mentions of Chromium targets (#1435)
    535b484 - api(context): get rid of PageEvent (#1433)
    ๐Ÿ‘ท 3ed9970 - api(chromium): add ChromiumBrowserContext.serviceWorkers() (#1416)
    c669674 - feat(chromium): roll Chromium to 751710 (#1434)
    ea99908 - fix(eval): adopt nested handles (#1430)
    f5ecbff - devops: remake downloading logic (#1419)
    2af07ce - chore: rework disposers into a frame task (#1413)
    7bd9246 - fix(PageEvent): properly wait for initial navigation in chromium and webkit (#1412)
    ๐Ÿ‘• b0749e3 - fix(docs): fixup and lint optionals and return values in api.md (#1376)
    ๐Ÿ‘• 741e2d1 - fix(docs): lint and fix all internal links in api.md
    ๐Ÿ‘ a1929e2 - feat(types): better types for nested handles (#1424)
    ๐Ÿ’ป bfcffbb - browser(webkit): introduce Playwright.windowOpen protocol event (#1420)
    dd850ad - api(eval): allow non-toplevel handles as eval arguments (#1404)
    ๐Ÿ“„ 045277d - docs(chore): fix link in troubleshooting (#1422)
    ๐Ÿšš b8e79e6 - chore(chromium): remove obsolete target related code (#1417)
    049b336 - api(devices): extract isMobile/hasTouch from viewport (#1415)
    ๐Ÿšš 39e5eb7 - feat(devices): remove name from device objects (#1414)
    e4225ad - feat(permissions): make origin optional (#1406)
    ๐Ÿšš 8401462 - test(web): Remove unused variable (#1410)
    โœ… a9ab9b0 - fix(testrunner): sourcemapify stack traces for test errors (#1409)
    ๐Ÿ’ป edd2fee - browser(firefox): grant permissions to all origins (#1405)
    โœ… 3960b17 - fix(testrunner): fit.fail should run the test (#1407)
    ๐Ÿšš aa32d35 - fix(tests): remove flaky load event from auto-waiting tests (#1399)
    โช 64b175c - api(waitForLoadState): restore it (#1390)
    6731d37 - api(network): replace redirectChain with redirectedFrom/redirectedTo (#1401)
    6dcd6a6 - fix(types): jsHandle.getProperty should never resolve to null (#1402)
    โœ… 5816ec5 - fix(testrunner): dedup focused tests and suites by id (#1393)
    โœ… e7eeefe - chore(testrunner): separate expectations from run mode (#1395)
    951126a - feat(chromium): roll Chromium to r750417 (#1398)
    โœ… e4991a1 - tests: add some failing page event tests (#1394)
    e692dd6 - api(cdp): rename ChromiumSession to CDPSession (#1380)
    ๐Ÿšš 19dd233 - devops: remove verbose on WebKit Win on Github Actions
    a96dec5 - fix(webkit): emit close on pages before clearing them (#1386)
    69be12a - api(route): pass Route object instead of Request to route handlers (#1385)
    2647911 - fix(setContent): handle inner _waitForLoadState rejection (#1382)
    โœ… 601d57a - test: add a test for popup with window features (#1381)
    ๐Ÿ”€ 9b86c63 - api: make BrowserContext.pages() synchronous (#1369)
    8aba111 - api(cdp): rename createSession to newCDPSession (#1378)
    b1a3b23 - api(request): make request.response a promise (#1377)
    ๐Ÿšš 24d4fb1 - api(click): remove tripleclick, respect clickCount (#1373)
    ๐Ÿšš 8c532bd - api(press): remove text option (#1372)
    e1d3196 - api(*.selectOption): renamed from *.select (#1371)
    064099a - api(keyboard.insertText): renamed from sendCharaters (#1370)
    โœ… a11e8f0 - devops(circleci): run all tests on all browsers
    ๐Ÿšš 9aa56a6 - api(browserType): remove devices, errors (#1368)
    โœ… 0d7cb29 - test: continue running tests after crash, report crashes separately (#1362)
    cfd3ae2 - api(addCookies): setCookies -> addCookies (#1367)
    3fa4255 - api: make request.postData() return null instead of undefined (#1366)
    ๐Ÿ‘• be83cba - fix(doclint): correctly get versions on windows (#1350)
    ๐Ÿ“„ 245c1fa - fix(docs): a typo in showcase (#1361)
    ๐Ÿšš e382bb3 - api: remove 'commit' phase, actions to wait until 'domcontentloaded' by default (#1358)
    7c59f9c - fix: do not wait for navigations while evaluating injected source (#1347)
    11c3c11 - feat(webkit): roll webkit to r1179
    f92c95c - feat(firefox): roll Firefox to r1042 (#1357)
    โœ… 704fe6d - fix(testrunner): fix reporting focused tests
    โœ… 1cd00bd - feat(testrunner): allow filtering by name and show all focused tests (#1354)
    b43f33f - api(review): misc changes to API. (#1356)
    ๐Ÿ’ป 7fe5656 - browser(webkit): fix win cookies expires (#1355)
    ๐Ÿ“„ b3f87e8 - docs(api.md): Fix incorrect link to PageEvent (#1353)
    ๐Ÿšš c1ef683 - api: remove waitForLoadState() in favor of PageEvent.page(options) (#1323)
    โœ… 9b8f4a2 - test(webkit): uncomment fixed viewport screenshot tests (#1346)
    โœ… 7e8ab8a - test: await setInputFiles in flaky input tests (#1345)
    โœ… 823fffa - test: declare setInterval click test as undefined behavior (#1343)
    5d4fdd0 - feat(webkit): roll webkit to 1178 (#1339)
    ๐Ÿ’ป 3b85bf9 - browser(firefox): handle message manager error event without error (#1344)
    ๐Ÿ’ป 6b50c8f - browser(webkit): follow up 3 (#1342)
    ๐Ÿ“„ 13c2f65 - docs(selectors): clarify selector conversions
    ๐Ÿ’ป c044227 - browser(webkit): follow up 2 (#1340)
    ๐Ÿ’ป 2da705d - browser(webkit): follow up to roll (#1337)
    ๐Ÿ’ป 4a18f0f - browser(webkit): roll to ToT 3/11/2020 (#1335)
    ๐Ÿ’ป 128157d - browser(webkit): rename Browser domain to Playwright (#1333)
    โœ… 401a916 - test(webkit): uncomment clearCookies test w/ right expectations
    ๐Ÿ’ป d08a0f0 - browser(webkit): account for page scale when screenshotting (#1332)
    3dd4945 - fix(chromium): install binding function during initialization (#1320)
    65d10a5 - fix: re-implement slow-mo transport without message serialization (#1328)
    ๐Ÿง a24cce8 - devops: fix protocol generation with root on Linux (#1327)
    ๐Ÿ”€ 6b711f5 - test(webkit): unblock and uncomment sync window.stop test
    โœ… 16d5a9c - tests(runner): support DEBUGP for timing out tests (#1324)
    โœ… 0d2ae91 - fix(test): enable presssing in frames test (#1326)
    โœ… 0cff9df - test: add failing test for clicking and oopifs (#1325)
    0077b42 - feat(webkit): emulate device size (#1318)
    โœ… 044f774 - test: unflake should fail when frame detaches
    โœ… 59f2e88 - test: mark test as flaky on Firefox (#1321)
    โœ… ac5b518 - test: mark as flaky according to the new policy (#1322)
    23cf3be - api: make request.frame() non-null (#1319)
    โœ… 0ce8efa - test: rework testrunner workers (#1296)
    โœ… a9b7bcf - test(webkit): expect cookies to be deleted after reload
    โœ… d542ef8 - fix(testrunner): handle uncaught errors (#1317)
    ๐Ÿ’ป e2616e4 - browser(webkit): override global permissions (#1315)
    โœ… 92aa4f3 - test: stop sourceServer as well (#1314)
    ๐Ÿšš 38c3837 - test: remove test which is inherently racy (#1313)
    d5a2781 - fix(chromium): do not await extra promises in initialize() to attach early enough (#1311)
    ๐Ÿ’ป 008e0b2 - browser(webkit): emulate screen size (#1310)
    ๐Ÿ’ป ea6978a - api(popups): expose BrowserContext.route() (#1295)
    โœ… adee9a9 - test: mark worker.url() API coverage as missing
    โœ… e2a0d61 - docs(showcase): Add playwright-test to showcase (#1283)
    ๐Ÿšš 72ae5c8 - test: remove stray test (#1302)
    ๐Ÿ’ป 27d039a - browser(webkit): mark user gesture in frames (#1304)
    ๐Ÿ’ป 9bd3711 - fix(context): reliably fire BrowserContext.Close event when browser is closing (#1277)
    ๐Ÿง 27eb25a - test: disable flaky test on Firefox Linux
    eb2ca70 - api(route): allow fulfilling with a file path (#1301)
    โœ… cf46f1b - test(chromium): mark passing popup tests as passing (#1297)
    โœ… ca5ce7d - test: disable flaky worker tests on firefox
    0fbc7af - chore(targets): create page targets only when attached to them (#1278)
    e650628 - fix(chromium): fix device-related media queries (#1299)
    โœ… a61d066 - test: add failing test for min-device-width media queries (#1298)
    c43de22 - chore(wk, ff): simplify target management (#1279)
    ๐Ÿ c8bbf88 - devops: bundle mvscp140_2.dll with windows webkit (#1293)
    2fa2421 - fix(webkit): fail the 204 navigations (#1260)
    3dc48f9 - chore: output both received value and diff for string expected results (#1287)
    โšก๏ธ c881248 - docs(contributing.md): update CONTRIBUTING.md (#1286)
    071ee06 - chore: normalize NPM scripts (#1285)
    e78f0f7 - feat(firefox): roll Firefox to r1041 (#1281)
    ๐Ÿ‘ d1ef0c8 - fix(wk,ff): properly support getting and setting non-session cookies (#1280)
    โœ๏ธ bfd32fe - doc: fix typos (#1284)
    โ†ช 78bd29d - fix(click): work around input alignment on chromium (#1282)
    ๐Ÿ’ป 996f97a - browser(firefox): roll Firefox to current beta (#1276)
    ๐Ÿšš 68b4079 - chore: remove WKPage._sessions (#1270)
    aee6324 - feat(firefox): roll firefox (#1273)
    3c35d7b - api(waitFor): click(waitFor) -> click(force) (#1275)
    โœ… 578880c - test: mark test as slow
    โœ… a0e12e0 - feat(testrunner): support .slow() for slow tests (#1274)
    โœ… e604acd - test: disable flaky test on WebKit
    8211287 - fix(session): use isolated root session for client page sessions (#1271)
    3fa000f - api(waitForSelector): bring it back (#1272)
    ๐Ÿ”€ 29f2430 - browser(firefox): merge Target domain into Browser, rework default context attach (#1259)
    119df5a - feat(nowait): allow waitUntil:nowait for actions (#1264)
    ๐Ÿšš c494944 - api(popups): move Page.authenticate to BrowserContext.setHTTPCredentials (#1267)
    ๐Ÿ‘• ca6faf2 - chore: properly mark failint tests
    โœ… cf820b5 - test: mark failing tests on WebKit
    โœ… 8cc7d43 - tests: disable failing test on chromium
    ๐Ÿšš d114620 - chore: remove WKPageProxy, use WKPage instead (#1256)
    โœ… 677ebf8 - test: mark "clicking anchor should await navigation" as failing on chromium
    โœ… f3734c3 - test: mark "should await navigating specified target" as failing on chromium
    โœ… 3288057 - test(webkit): disable failing wk test
    โœ… a802b00 - test: oops - fdescribe
    5c9ebfa - chore(ci): bump checkout action to v2 (#1263)
    49c1161 - api(press): bump .press to the page/frame level (#1262)
    2724157 - feat(waitUntil): allow waiting for navigation from clicks, etc (#1255)
    ๐Ÿ’ป 9c80c9e - browser(webkit): don't leak pages on window.open (#1261)
    1d770af - api: waitForElement accepts waitFor: attached|detached|visible|hidden (#1244)
    ๐Ÿ’ป 9bc6dce - feat(api): introduce BrowserContext.waitForEvent (#1252)
    ๐Ÿšš 8c9933e - browser(firefox): move Juggler to top-level (#1254)
    ๐Ÿ’ป 9d3bff1 - browser(firefox): implement Browser.setHTTPCredentials (#1251)
    e5f82af - api(popups): emit PageEvent immediately, and resolve page() once initialized (#1229)
    c734b4b - feat(click): start wire auto-waiting click in firefox (#1233)
    0๏ธโƒฃ e770d70 - fix(chromium): do not create default page and context in headless (#1247)
    ๐Ÿ’ป b0d037e - browser(firefox): fix flaky permissions in Firefox (#1249)
    โœ… cd8714d - tests: skip failing waitForNavigation test in Chromium (#1248)
    ๐Ÿ’ป 20c3263 - browser(firefox): follow-up with SimpleChannel unification (#1246)
    ๐Ÿšฆ 2cd727f - browser(firefox): signal link click (#1236)
    665888d - feat(popups): auto-attach to all pages in Chromium (#1226)
    ๐Ÿšš aabdac8 - api: remove Page.setCacheEnabled (#1231)
    ๐Ÿšš 1bf5b61 - browser(firefox): move workers to use SimpleChannel (#1232)
    4fd2312 - chore: introduce webkit cheatsheet
    a69c85f - chore: added ff cheat sheet
    โฑ 11f68ba - feat(cr, wk): make clicks, input and evaluate await scheduled navigations (#1200)
    ๐Ÿšš 7f9df94 - api(popups): move Page.setOfflineMode -> BrowserContext.setOffline (#1223)
    3bedc60 - fix(dispose): do not await inner handle dispose (#1230)
    5ee744c - api(page.frame): allow looking up frames by name (#1228)
    6fb5168 - feat(chromium): roll Chromium to v747023 (#1227)
    5ff660d - feat(navigation): waitForNavigation/goto should not wait until response finished (#1225)
    ๐Ÿ’ป 3127840 - browser(firefox): introduce SimpleChannel (#1209)
    82baf61 - feat(webkit): roll webKit to r1168 (#1224)
    ๐Ÿ“„ 56e25c2 - docs: create development dir for non-user related docs (#1217)
    dbfeda2 - feat(webkit): roll to 1167 (#1221)
    ๐Ÿ’ป 2d4317d - docs: fix browser.contexts() description (#1220)
    โœ… f5a530e - docs(showcase): Add headlesstesting.com (#1218)
    ๐Ÿ’ป 262ee7c - browser(webkit): fix the pool leaks on mac (#1219)
    ๐Ÿ“„ d6e265f - docs(readme): add network interception example (#1216)
    14a7d1c - chore: bump proxy-from-env dependency (#1210)
    โฑ 7787624 - browser(webkit): fix delete context stall, emit schedule load (#1211)
    โœ… 771793f - test(context): test that context.close() works for empty context (#1205)
    โšก๏ธ 8aa88d5 - fix(doc): check and update optional types in the api (#1206)
    ๐Ÿ‘ f4e9b50 - api: declare not supporting isMobile on Firefox (#1207)
    โœ… 33f3e57 - test: skip flaky 'Page.goto extraHttpHeaders should be pushed to provisional page' (#1203)
    1c4619e - fix(chromium/webkit): fix a race between Page.enable and Page.getResourceTree (#1201)
    15c70c9 - fix(click): timing out in page while waiting for interactable should have proper error (#1199)
    ๐Ÿ’ป 23790f7 - browser(webkit): send reply to deleteContext even if there are no pages in it (#1204)
    fcfe887 - feat(select): don't accept undefined as a value (#1202)
    โœ… 4556513 - chore(test): test cleanup (#1198)
    ๐Ÿ’ป 6c6cdc0 - api(popup): introduce BrowserContext.exposeFunction (#1176)
    โœ… 1b863c2 - fix(screenshots): simplify implementation, allow fullPage + clip, add tests (#1194)
    โœ… 2ec9e6d - test: cleanup some test files (#1195)
    ๐Ÿ’ป 9f3ccb4 - browser(webkit): wait for all pages to close in deleteContext (#1197)
    โœ… 4a9a155 - test: enable page opener test on WebKit (#1193)
    ๐Ÿ”ง 3eec2d0 - docs(ci): list sample configurations for ci (#1196)
    ๐Ÿ’ป ce3398b - browser(webkit): allow scripts in inspected pages to create popups (#1192)
    ๐Ÿ“„ a3ed301 - fix(docs): page.coverage type (#1189)
    โœ… 42aa70f - chore(ci): run all browser tests on Travis again
    2711891 - chore(ci): use bionic image on circle ci
    019eaa4 - chore(ci): different attempt to publish on Travis
    ๐Ÿณ ec3ee66 - chore(docs): optionally install XVFB in docker
    0188889 - chore(ci): fix publish_all_packages.sh on travis
    64e5e21 - chore(ci): forcefully login NPM on CI if NPM_AUTH_TOKEN is set
    a40f562 - chore(ci): add debug info for publish_all_packages
    bccdaec - chore(ci): add circle ci (#1188)
    ๐Ÿ’ป 31e26a2 - fix(api): fire BrowserContext.Page event in WebKit and Firefox (#1186)
    497a74d - chore(ci): fix publishing @next on travis
    ๐Ÿ“ฆ ed2de2c - chore(ci): test if travis can publish packages
    62e2570 - chore: fix utils/apply_next_version.js
    ๐Ÿ“ฆ 57c45f0 - fix: properly publish all packages on travis (#1187)
    342a2cf - fix(selectors): continue matching after first fail for combined selectors (#1185)
    โœ… 342e79c - test: mark some tests as skipped (3)
    โœ… 2f98b5e - test: mark some tests as skipped (2)
    โœ… ba06fb2 - test: mark some tests as skipped
    1186998 - fix(click): wait for element to be displayed before scrolling into view (#1182)
    ๐Ÿ“„ db9a243 - docs(showcase): rename playwright-controller to playwright-fluent (#1183)
    ๐Ÿšš a57978a - api(chromium): remove Target from public API (#1163)
    ๐Ÿ”€ f242e0c - fix: make Transport.send() synchronous (#1177)
    โœ… 5bd6e49 - test: it.skip skips and it.fail expects to fail now (#1178)
    08fbc92 - feat: support PLAYWRIGHT_DOWNLOAD_HOST (#1179)
    ๐Ÿ’ป d5951b4 - fix: properly download browsers (#1173)
    โœ… cbf65a9 - test: chain test modifiers (#1175)
    ๐Ÿ“„ e3ec6b2 - docs(showcase): add playwright-controller (#1171)
    eb1a9eb - chore: rename prepare.js into install-from-github.js
    โœ… eeceda4 - chore(ci): re-enable browser tests on travis
    b20b323 - chore(ci): another attempt to program in .travis.yml
    8fc519d - chore(ci): another try to publish edge version
    96e7132 - chore(ci): try to publish new @next
    ac2f04f - api(selectors): pass selector name when registering, allow file path (#1162)
    d511d7d - chore(ci): use TRAVIS_NEXT_NUMBER instead of Date.now()
    ๐Ÿ“ฆ 583f7a0 - chore(ci): publish all packages
    ๐Ÿ“ฆ b5da5f1 - chore(ci): another attempt to publish 2 packages
    66799af - chore(ci): try to publish 2 things with travis
    7843c29 - feat(selectors): auto-detect each selector part (#1160)
    ๐Ÿš€ c4f55bf - chore: guide for producing release notes (#1165)
    ๐Ÿณ 1781ae7 - feat: add a playwright-ready docker image (#1161)
    4af4557 - chore(ci): regenerate key with travis --pro
    67a8485 - chore(ci): another attempt to fix travis
    ๐Ÿ“„ ea11a77 - docs(showcase): add new tools to showcase (#1164)
    ๐Ÿณ ea0539f - chore: remove unused docker images
    400e55d - chore(ci): attempt to publish @next from travis
    ๐Ÿš€ 9b51feb - feat: setup continuous deployment (#1159)
    82a4ede - chore: roll Chromium to 745253 (#1156)
    041b8c6 - chore: fix typo on sepcified -> specified (#1153)
    823bf38 - api: evaluateOnNewDocument -> addInitScript (#1152)
    ๐Ÿ“„ 9478bf3 - docs(readme): add link to changelog (#1148)
    857ffd8 - fix: text selector should be case insensitive without quotes (#1151)
    ๐Ÿ“„ de542c0 - docs(api): unify selector references to include xpath (#1150)
    ๐Ÿ’ป 7682865 - feat(popups): add BrowserContext.evaluateOnNewDocument (#1136)
    dc161df - fix(launch): throw upon page argument when non-persistent (#1144)
    ๐Ÿ‘ท 9d6aa96 - chore(workers): align worker lifecycle evens with other APIs (#1147)
    c6fde22 - chore(webkit): always attach to all pages, simplify initialization (#1139)
    โœ… 6b6a671 - fix(webkit): pass popup tests (#1138)
    ๐Ÿ— d41342f - browser(webkit): mac build fix (#1137)
    ๐Ÿ’ป ee9c7f1 - browser(firefox): support BrowserContext.evaluateOnNewDocument (#1135)
    ๐Ÿ“ฆ 4ebf419 - fix(yarn): download browsers to package directories (#1133)
    โœ… 22c28b6 - test(firefox): support loading of file URLs (#1132)
    ๐Ÿ’ป 7a75754 - browser(webkit): pause in popup until Target.resume is received (#1134)
    โœ… 5cfe68d - test: uncomment webkit fix
    ๐Ÿ‘• 4ab8801 - chore: fix lint
    d20f3ca - feat(webkit): no start window, healthy pipe (#1113)
    ๐Ÿ’ป b8c6069 - browser(webkit): trim down mac embedder (#1130)
    0๏ธโƒฃ 672f3f9 - feat(popups): introduce BrowserContext.setDefaultHTTPHeaders (#1116)
    4f69930 - fix(chromium): make locale overrides work (#1108)
    3afaeef - feat(socket): destroy contexts upon disconnect (#1119)
    โšก๏ธ 72fa945 - Update request.respond to request.fulfill (#1123)
    ๐Ÿ’ป 1d02c2d - browser(webkit): --no-startup-window for mac (#1118)
    51d1b63 - browser(webkit): no_startup_window on linux (#1117)
    ๐Ÿ’ป facf2c2 - browser(firefox): support BrowserContext.setExtraHTTPHeaders (#1111)
    ๐Ÿ de63534 - browser(webkit): happy pipe on win, no startup windows (#1112)
    ๐Ÿ’ป e3b2f2b - browser(firefox): allow loading file URLs in web process (#1110)
    0๏ธโƒฃ dcdc7db - feat(chromium): use no-startup-window to not create default context (#1106)
    โช c7ade1a - browser(webkit): revert unused Target.oldTargetId (#1096)
    30a4d0e - feat(webkit): roll to v1155 (#1104)
    ๐ŸŒฒ ebcaade - feat(log): log only user api calls with DEBUG=pw:api (#1029)
    ๐Ÿšš d97ea70 - chore: move more injected code to injected to reduce evaluation size (#1093)
    ๐Ÿ’ป 8c57358 - browser(webkit): fix null pointer access (#1099)
    ๐Ÿšš ba29470 - fix(api): rename relativePoint to offset, remove unused parameters from input (#1092)
    fdfec8e - fix(platform) instanceof bug between execution contexts of RegExp object (#1048)
    โœ… a6c3735 - test: add failing drag and drop test (#1095)
    ๐Ÿ‘• b50e8b3 - chore: fix doclint tests (#1098)
    ๐Ÿšš 6acc439 - feat(api): move targets from CRBrowser to CRBrowserContext (#1089)
    ๐Ÿ’ป de03f37 - browser(webkit): follow up to roll, fix Win (#1091)
    โšก๏ธ 971ab77 - chore(docs): update win buildbot setup docs
    ๐Ÿ’ป 6821c9e - browser(webkit): roll to ToT 2/24/2020 (#1088)
    ๐Ÿ“„ 69fe6f7 - docs: added community example project (#1084)
    ๐Ÿ’ป a43b409 - chore: make BrowserContext an interface, with 3 implementations (#1075)
    ๐Ÿ‘ท 3677818 - fix(api): browser.serviceWorker -> target.serviceWorker (#1076)
    โšก๏ธ 1f8508d - feat(waitFor): update various waitFor options to be a single boolean (#1066)
    ๐Ÿง 88e3109 - test: fix test on Firefox Linux (#1079)
    ๐Ÿšš f305d65 - chore: remove focused test
    โšก๏ธ 66362a5 - chore: update appveyour config
    โœ… 0ded511 - feat(testrunner): better matchers (#1077)
    โœ… 53a7e34 - fix(testrunner): support throwing non-errors
    ๐Ÿšš 05a1e1c - test: remove newContext and newPage test helpers (#1070)
    ๐Ÿ’ป 2fabaaf - browser(webkit): force overlay scrollbars on mac, ignoring system setting (#1071)
    ๐Ÿšš 4016429 - api: remove ElementHandle.visibleRatio (#1069)
    โœ… 568c6cb - test(navigation): fix flaky networkidle tests (#1058)
    โœ… 84ee297 - test: add a test for bounding box on partially visible element (#1011)
    4be48a6 - chore: disable DEBUGP on bots
    0๏ธโƒฃ 33824aa - feat(click): waitForInteractable option, defaults to true (#934) (#1052)
    9f1edad - fix(navigation): do not count random failures as navigation cancel (#1055)
    ๐Ÿ”Š 223685e - chore: strip out injected script from protocol logs (#1054)
    โšก๏ธ 1805acd - test: update animation click test (#1053)
    โšก๏ธ 1ee6578 - feat(viewport): update defaults to 1280x720, fix Firefox (#1038)
    f2b2d72 - fix(input): emit change events upon page.setInputFiles (#1028)
    ๐Ÿ“„ 8a7728d - docs: document LaunchOptions.dumpio (#1051)
    ๐Ÿ“„ 010c274 - Docs: fix return type of launchPersistent (#1047)
    โœ… e658978 - test: add screenshot test that fails on Chromium (#1039)
    ๐Ÿšš cfeaecb - test(keyboard): Remove duplicated test (#1031)
    8071225 - Add xterm.js to showcase (#1034)
    8cfdeb9 - chore: mark v0.11.1-post (#1027)

  • v0.11.1 Changes

    February 15, 2020

    Current Status

    • 82.0.4057.0. Passes 99% (793/803) tests
    • Webkit 13.0.4. Passes 99% (793/803) tests
    • Firefox 73.0b13. Passes 95% (764/803) tests

    Detailed status can be found at IsPlayWrightReady?

    ๐Ÿ› Bug Fixes

    #1009 - [REGRESSION] Firefox keyboard doesn't type any more
    โœ… #1016 - [REGRESSION]: webkit tests fails on travis

    Raw Notes

    2037e01 - chore: mark v0.11.1 (#1025)
    b1520f7 - feat(webkit): roll webkit to r1151 (#1021)
    โœ… 9caa61a - devops: upload logs for test runs (#1015)
    3656403 - fix(keyboard): Add mac editing commands for NumpadEnter (#1026)
    21acb36 - fix(keyboard): correctly press enter on firefox (#1023)
    ๐Ÿ df8de20 - browser(webkit): do not leak contexts on windows (#1020)
    โœ… 5695ade - test: add failing test for Firefox (#1019)
    ๐Ÿ“„ bb8d435 - chore(docs): add community showcase (#1018)
    bd139e4 - chore(travis): install libvpx on travis for webkit (#1017)
    โœ… 8487ef2 - feat(testrunner): add DEBUG to testrunner (#1014)
    ๐Ÿ’ป 2e9e0b7 - devops: rename bots to feature browser first
    โช dbb45d4 - Revert "feat(click): waitForInteractable option, defaults to true (#934)" (#1013)
    0๏ธโƒฃ 9413351 - feat(click): waitForInteractable option, defaults to true (#934)
    39c580a - chore: bump version to 0.11.0-post (#1001)

  • v0.11.0 Changes

    February 14, 2020

    Current Status

    • Chromium 82.0.4057.0. Passes 99% (792/802) tests
    • Webkit 13.0.4. Passes 99% (792/802) tests
    • Firefox 73.0b13. Passes 95% (763/802) tests

    Detailed status can be found at IsPlayWrightReady?

    ๐Ÿ’ฅ Breaking API Changes

    ๐Ÿ’ป browserType.launch has changed. Playwright now launches in 3 modes:

    โœ… browserType.launch - default mode for testing. Each test should start with browser.newContext to obtain a clean environment. All new contexts are ephemeral, not persisted into the profile directory. It no longer accepts userDataDir option. There is no notion of the defaultContext anymore.
    ๐Ÿ (Note: you will still see an empty default context window when you run playwright in the headful mode. This is a side-effect of running the stock browsers. We are working on changing this behavior upstream so that clear Playwright run in this mode has no open windows on launch.)

    0๏ธโƒฃ browserType.launchPersistent - default mode for headful operations and those reusing the user profile. Instead of returning the Browser, it returns the BrowserContext loaded from the user data dir right away. It requires userDataDir to be passed as the first parameter.

    โœ… browserType.launchServer - returns a BrowserServer (formerly known as BrowserApp) that can be connected to via the browserType.connect. Multiple clients can connect to the same server. Closing the Browser disconnects from the server. This mode is useful for certain test runner setups.

    Request interception

    ๐Ÿ page.setRequestInterception is replaced with the page.route. New method accepts the pattern of the urls to be intercepted and handles interception in place, instead of using the page.on('request') event. Note that we intend to move this method into the BrowserContext over time to make sure it affects popup windows.

    Viewport

    ๐Ÿ“„ page.setViewport is renamed to page.setViewportSize. It only allows resizing the viewport, does not allow changing it from mobile to desktop on the fly. Old method was making an implicit reload when switching device type and we did not want that to happen.

    ๐Ÿ“„ page.viewport() is renamed to page.viewportSize()

    ๐Ÿ†• New APIs

    ๐Ÿ†• new browser.newPage - convenience method that creates a new context and a page inside that context. Closing the page closes the context. Useful when you only run single-page tests in your contexts.

    ๐Ÿ†• new page.check() and page.uncheck() - toggle your checkboxes.

    ๐Ÿ†• new browserContext.on('close') event - tells when the context is destroyed (disconnected from the server).

    ๐Ÿ†• new browserType.downloadBrowserIfNeeded() - when you use playwright-core npm that does not download browser by default, you can use this method to fetch them on demand.

    ๐Ÿ†• new frame.frameElement() method

    ๐Ÿ†• new page.route - substituted the page.setRequestInterception api.

    ๐Ÿ†• new page.viewportSize() - used instead of page.viewport.

    ๐Ÿ“ฆ In addition to this, all playwright packages now expose the same API and are only different in
    ๐Ÿ’ป the set of browsers they download:

    ๐Ÿ› Bug Fixes

    ๐Ÿ #808 - [BUG] rimraf causes failure with multiple browsers on Windows
    #814 - [BUG] playwright- and playwright have different export signatures
    #817 - [Feature] XPath staring with "(//" should be detected as such
    ๐Ÿ’ป #823 - [Feature] Allow skipping specific browser downloads
    #839 - [Feature] Frame.frameElement
    #857 - [BUG] Firefox: bundle ff-specific preferences with binary
    #887 - [BUG] Cannot read property 'width' of null for Webkit screenshot
    ๐ŸŽ #914 - [BUG and temporary fix] Open Firefox as the frontmost window (macOS-specific)
    ๐Ÿ #942 - [BUG] WebKit under debug crashes on Windows
    #955 - [Feature] Expose Rawer V8 coverage information
    #979 - [BUG] Missing blur and focus events

    Raw Notes

    ๐Ÿš€ d29625c - chore: generate browser versions when doing release (#999)
    โœ… 1eabd18 - test(firefox): unskip passing url hash test (#998)
    ๐Ÿ b041ce6 - devops: enable debugging on WK Windows
    ๐Ÿ 4d7e531 - fix(webkit): wait for the pipe ready on windows (#997)
    cd4e9da - feat(coverage): export raw v8 coverage (#976)
    โœ… 7ec3bf4 - test: fix locale tests on mac
    โœ… b181b34 - test: attempt to normalize locale tests
    โœ… b96d985 - test: fix locale expectations on non-Mac (#994)
    0๏ธโƒฃ 25022e4 - feat(api): introduce default timeouts on BrowserContext (#992)
    e744c53 - chore(webkit): bump webkit version to 1150 (#991)
    ๐Ÿ f7fb35b - fix(windows): wait for pipe available again (#993)
    โช f8f818f - Revert "Revert "feat: do not wait for first page in non-persistent mode (#939)""
    โช 71892b4 - Revert "feat: do not wait for first page in non-persistent mode (#939)"
    c15534f - fix(locale): document locale parameter (#990)
    โœ… cb63021 - test: add test for navigator.userAgent in popups (#985)
    โœ… 05f8d00 - test: fix service worker test (#988)
    โœ… 2e0d89e - fix(firefox): roll to 1029 and unskip passing tests (#984)
    โœ… d790b4c - fix(test): default DEBUGP to false (#989)
    ๐Ÿ’ป 8ed88c9 - feat(webkit): introduce BrowserContext({language}) (#972)
    8006b2c - fix(webkit): avoid UnhandledPromiseRejection (#986)
    ๐Ÿ’ป 991b89f - browser(webkit): rebase WebKit on r256488 (#973)
    53fa629 - fix(): emit focus events in headful (#982)
    a567123 - feat: do not wait for first page in non-persistent mode (#939)
    ๐Ÿ’ป c2ab1e3 - browser(firefox): misc fixes (#983)
    โœ… d367a2e - chore(tests): log protocol messages when a test fails on the bots (#963)
    8abf35c - feat(webkit): roll webkit to 1148 (#971)
    ๐Ÿ’ป d735de5 - feat: do not let users pass userDataDir to browserType.launch() (#974)
    ๐Ÿ’ป b7f48f4 - browser(webkit): layout before returning DOM.getContentQuads (#970)
    b188f39 - devops: do not assume that checkout exists
    ๐Ÿ–จ 5dbc880 - browser(webkit): print friendly tz names (#969)
    ๐Ÿšš c19a7be - chore: remove stub types definition
    012bf67 - feat(webkit): emulate timezone on webkit (#968)
    d26f47b - fix(platform): properly handle websocket error events (#967)
    โœ… fbce290 - test: unskip passing Firefox tests (#966)
    ๐Ÿ“„ aa60a7c - docs(api.md): fix nit
    โœ… bfaf191 - test: add missing tests (#965)
    1d84f38 - fix(input): ensure input works as expected with page scale (#962)
    ee9748b - feat(): roll chromium to r740847 (#964)
    ๐Ÿšš 7ce49c2 - chore: remove WebSocket implementation (#961)
    b0c0598 - fix(api): small-case all api event names (#959)
    ๐Ÿ’ป 44941ad - browser(webkit): emulate time zone (#960)
    ๐Ÿง 1945ed7 - devops: run API coverage tests on linux (#958)
    ๐Ÿ’ป 211cba4 - browser(webkit): use css (not dip) coordinates for input and content quads (#957)
    79c4763 - feat(webkit): roll to r1145 (#954)
    5956df5 - devops: re-factor github workflow internal structure (#956)
    โœ… 5f24205 - test: add a test for interception + service worker (#951)
    ๐Ÿ— a4d0187 - chore: mac build bots (#734)
    ๐Ÿ‘• 1f29930 - devops: add docs & lint github workflow (#953)
    ๐Ÿ‘• 0de625d - Revert "devops: add docs & lint github workflow"
    ๐Ÿ‘• 7ec7f72 - devops: add docs & lint github workflow
    ๐Ÿšš 9bbaa32 - browser(webkit): remove assert (#952)
    ๐Ÿ‘ท 3007541 - browser(webkit): do not intercept requests on the way to service worker (#948)
    โœ… c8c4356 - test: add setInputFiles input event test (#944)
    d05feec - feat(active): emulate active state on webkit (#941)
    0d16d14 - fix(firefox): rely on bundled firefox preferences (#943)
    ๐Ÿ’ป da30847 - feat(firefox): apply emulation to all pages in the browser context (#931)
    ๐Ÿ’ป 90367c1 - browser(webkit): emulate active and focused state (#940)
    โœ… f25a27a - test: add a test for bounding box with page scale (#935)
    ๐Ÿ ce38213 - browser(webkit): disregard dpi on windows (#938)
    0๏ธโƒฃ d37b67a - browser(firefox): do not wait for initial navigation in default context (#937)
    ๐Ÿ— efa567d - devops: fix firefox preferences build on mac
    451ec72 - feat(): roll Chromium to r740289 (#936)
    โœ… 20e2bac - test: fix flaky page event test
    5323700 - feat($wait): make $wait a shortcut for waitForSelector (#932)
    ๐Ÿ— 3a32b14 - devops: bundle firefox preferences alongside with build.
    โœ… 6105d8a - fix(tests): fix test that was leaking a context (#933)
    ๐Ÿ’ป aae5fca - feat(api): make browser.newPage own the created context (#930)
    ๐Ÿ’ป ad9d6cc - feat: introduce browserType.downloadBrowserIfNeeded() (#834)
    ๐Ÿ’ป 9ea8f49 - browser(firefox): attach to all pages in the browser context (#928)
    8a35f40 - fix(events): deliver page.close upon disconnect in FF (#929)
    ๐Ÿ‘• c69dccf - feat(click): use browser-provided scrollIntoViewIfNeeded (#893)
    ๐Ÿ’ป 72b9cf0 - feat(context): introduce BrowserContext close event (#918)
    โœ… 5fee93a - test: fix expect in jshandle spec (#927)
    7802354 - fix(firefox): bring headful window to front on launch (#923)
    49eea19 - feat(webkit): roll webkit to 1141 (#922)
    ๐Ÿ’ป 29f4f18 - browser(webkit): allow beforeunload override when headful (#921)
    ๐Ÿšš 251ad38 - fix(navigations): remove LifecycleWatcher, fix flakes (#882)
    โœ… c03e8b7 - chore(tests): add types for tests (#915)
    9da0229 - chore: bump rimraf to 3.0.2 (#916)
    ๐Ÿšš 4fcc63f - chore: remove usages of mime module from infrastructure
    ๐Ÿšš 84f5700 - feat(api): rename browserContext() to context() in the apis, remove url from newPage (#906)
    4d84e35 - fix(upload): detect mime type from file extension (#911)
    0๏ธโƒฃ 79b7a84 - fix(screenshot): be careful w/ default viewport, extract common logic (#913)
    ๐Ÿšš 2dd11ea - docs: remove browser.newPage from README
    โšก๏ธ 50f96eb - docs: update readme to address browser changes questions
    ๐Ÿ e9c1477 - fix(webkit): fix remaining tests on windows (#905)
    โœ… f4734ef - feat(testrunner): show workerId in verbose mode
    d71c9e0 - feat(webkit): roll webkit to r1140 (#904)
    ๐Ÿ’ป e2710de - browser(webkit): do not activate headless window on browser start (#900)
    โœ… 36344de - tests: consistently use platform constants (#899)
    ๐Ÿ— 3acc65d - devops: teach //browser_patches/webkit/build.sh to build both GTK & WPE
    ๐Ÿ‘• 73148fd - chore(lint): add @typescript-eslint/no-unnecessary-type-assertion rule (#898)
    ๐Ÿ‘• 487d394 - chore(lint): add @typescript-eslint/type-annotation-spacing rule (#897)
    8712359 - devops: prettify telegram messages
    42c2cfc - fix(pipe): sort out pipes on platforms (#895)
    0ed43e8 - feat(webkit) await the reading from pipe message (#894)
    ๐Ÿ’ป cdbfc4c - browser(webkit): report inspector pipe is listening via stdout (#892)
    ๐Ÿ’ป 8c2302d - browser(webkit): do not navigate popups to about:blank on Win (#886)
    d397bb1 - feat(): roll chromium to r739261 (#885)
    fe2431e - feat(webkit): roll webkit to r1137 (#884)
    fee83b1 - fix(api): page.viewport -> page.viewportSize (#878)
    ๐Ÿ’ป c33a12d - feat(firefox): ensure that new pages get browser context userAgent option (#872)
    ๐Ÿ’ป bc91259 - browser(webkit): use random ephemeral session ids on Mac (#881)
    ๐Ÿ“„ 06a7d7e - docs(api.md): missing arguments for functions in page.route (#880)
    ๐Ÿ’ป f15690d - browser(webkit): roll WebKit to tip-of-tree 2/6/2020 (#877)
    ๐Ÿ‘• ffc1022 - fix(doclint): fix doclint for new typescript (#879)
    ๐Ÿ— ffc8f96 - browser(firefox): bump build number to r1025
    ๐Ÿ’ป 9f0bbff - browser(firefox): pause page on creation to handle emulation messages (#871)
    75340f3 - chore: Note that (code) coverage is only available for (#867)
    ๐Ÿ’ป 8c6faab - browser(firefox): roll firefox to upstream's beta (#876)
    โœ… 99d0689 - tests: explicitly close contexts for browser.newPage (#875)
    126eb50 - fix(transport): dispatch messages in separate tasks (#841)
    ๐Ÿ’ป 6202ff1 - browser(firefox): use guids for browser contexts, delete contexts on disconnect (#866)
    ๐ŸŒ a547aa7 - feat(connect): allow multiple webkit connections over web socket (#863)
    ๐Ÿšš f49d63f - test: remove fdescribe
    โœ… 5152540 - test(cookies): add more isolation tests (#869)
    โœ… a72784a - fix(test): properly clean input field (#860)
    fa6a5ed - chore: fix typo in aliases
    177a1d4 - chore: add "unit", "wunit" and "funit" aliases (#859)
    6318ba6 - feat(frame): introduce frame.frameElement (#856)
    โฌ†๏ธ 4be39f8 - chore(types): upgrade to typescript 3.7.5 (#855)
    ๐Ÿ“„ 4aa155e - docs(api.md): fix link
    cd68619 - chore: fix protocol-types-generator to work with new API
    55b6fe2 - feat(launch): introduce client, server & persistent launch modes (3) (#854)
    ๐Ÿ‘ท 28c4a16 - fix(): ensure we resume service worker before detaching from it (#850)
    โœ… a4c40ff - test: make sure page.fill actually clears an input (#851)
    ๐Ÿ‘• 1b1ed08 - browser(webkit): introduce DOM.scrollIntoViewIfNeeded (#847)
    ๐Ÿ‘• 0cc26c0 - browser(firefox): introduce Page.scrollIntoViewIfNeeded (#848)
    a2ab645 - feat(launch): introduce client, server & persistent launch modes (2) (#840)
    ๐Ÿš€ 0f1a42a - docs(readme): fix API link to always point to last released API
    ๐Ÿง f114255 - devops: attempt to fix linux bot
    โœ… 2e0f3e3 - docs: split docs to npm version and latest (#846)
    0518625 - feat(launch): introduce client, server & persistent launch modes (1) (#838)
    bdf8e39 - feat(goto): assume http:// for localhost navigations (#825)
    ๐Ÿ‘ท 8f1df5e - fix(): pause workers on start to not miss any events (#832)
    โœ… 4b761f4 - test: expect current behavior for cross-frame js handles (#833)
    6dc88bc - feat(webkit): roll WebKit to r1134 (#835)
    0c2a2e1 - fix: properly nullify error stacks (#836)
    e3e2da3 - feat(check): introduce page.check/uncheck (#826)
    ๐Ÿ“„ 2ba5e84 - docs: we are Playwright, not PlayWright
    ๐Ÿ“„ 3ef2313 - docs: fix dead link for element handle (#827)
    ๐Ÿšš 05d4746 - feat(selectors): temporarily remove zs engine (#824)
    1059e22 - fix(fill): make fill work for input[type=number] (#819)
    b82bc5f - feat: treat selectors with leading '(//' as xpath (#821)
    ๐Ÿ“ฆ cea036a - feat: change vendor package exports (#818)
    8028fb0 - feat(route): migrate from request interception w/ events to page.route (#809)
    ๐Ÿ’ป 84edefd - browser(webkit): follow up to Browser.setLanguage, fan out changes (#801)
    ๐Ÿ— 387b895 - browser(webkit): build more wk features (#807)
    ๐Ÿ‘ท 0a16b60 - browser(webkit): fix crash when a worker is terminated while logging (#797)
    0007439 - doc(api.md): Fix setPermissions link (#806)
    fce3842 - chore: bump version to 0.10.0-post (#796)

  • v0.10.0 Changes

    February 01, 2020

    Current Status

    • Chromium 81.0.4044.0. Passes 99% (837/845) tests
    • Webkit 13.0.4. Passes 98% (746/758) tests
    • Firefox 73.0b3. Passes 94% (726/776) tests

    Detailed status can be found at IsPlayWrightReady?

    ๐Ÿ› Bug Fixes

    0๏ธโƒฃ #560 - Default profile for does not save data into specified folder
    ๐Ÿ— #565 - WebKit build flags
    #583 - troubleshooting.md is missing
    #606 - Missing a few device defs for landscape variants
    #627 - Types exported from playwright-core, but not playwright
    ๐Ÿ’ป #658 - Strip the browser binaries
    ๐Ÿ“„ #661 - Typo in docs: dedault
    #668 - request.continue() override with post data
    ๐Ÿ’ป #669 - Error 404 minibrowser-mac-10.13.zip
    ๐Ÿ— #696 - [email protected] types will not build
    #705 - Firefox's WebSocket has no unguessable token suffix
    #764 - File upload doesn't work
    #783 - [Feature] Expose page.target()

    Raw Notes

    25f2a32 - feat: add Page.opener() to the API (#790)
    1489fbd - fix: do not recommend yarn (#794)
    b8199c0 - chore(webkit): use async/await to make eval more readable (#789)
    โœ… 0f305e0 - test(cookies): Rename clearCookies describe (#791)
    ๐Ÿ’ป 84c93d2 - browser(webkit): plumb stderr from the web process to the main process (#792)
    โช ef1d2fb - Revert "fix: move offline/cache/interception switches to BrowserContext (#748)" (#793)
    ๐Ÿ— 9438136 - browser(webkit): enable some build features on win (#788)
    ๐Ÿ’ป 4904459 - browser(webkit): introduce Browser.setLanguage (#781)
    c57fd22 - fix(webkit): unflake Page.setContent (#786)
    โœ… 2bf88fd - test: start adding capability smoke tests (#784)
    โœ… 5cb19c6 - test: extract common headful tests (#785)
    โšก๏ธ 9a00e1d - docs: update webkit.md features
    โšก๏ธ d054490 - docs: update readme
    โšก๏ธ 1f8e6e6 - doc: update readme
    โšก๏ธ 1c7db46 - doc: update readme
    โšก๏ธ 8a40fd0 - docs: update the readme intro sentence
    ๐Ÿ“„ 76c22b7 - docs: bump Chromium version (#778)
    ๐Ÿ’ป adc5e3b - browser(webkit): bump WebKit to r1128 to check binary stripping
    ๐Ÿง b77b31c - devops: strip linux binaries
    ๐Ÿ— 24c5df6 - docs: add webkit build flags table (#777)
    e33e403 - chore: nits to issues template
    ๐Ÿšš 293fc6f - chore: remove bad issue templates
    โšก๏ธ 902580b - chore: update issues template
    b289bb7 - fix(filechooser): intercept file choosers lazily (#776)
    985faeb - fix: avoid unhandled promise rejection in WKSession.send (#770)
    fd3a930 - fix(webkit): roll webkit to 1127 (#775)
    ๐Ÿ’ป 735c5e6 - browser(webkit): fix compilation on Mac (#774)
    e131fe0 - fix(chromium): install libgbm (#773)
    83b5d89 - fix(firefox): roll firefox to 1021 (#769)
    ๐Ÿ’ป adc91c9 - chore(docs): fix broken link for downloaded browsers (#772)
    โœ… ca49d50 - test: disable firefox popup tests that rely on waitForLoadState (#768)
    1344596 - feat(chromium): roll to r737027 (#771)
    ๐Ÿ’ป 6c58f93 - browser(webkit): simplify isolated world handling (#766)
    โœ… 2b231c9 - fix(test): unflake waitForSelector when browser closes test (#767)
    ๐Ÿ’ป 1ad6134 - browser(webkit): ensure user worlds created when attaching to new pages (#765)
    โช f4640d1 - Revert "tests(accessibility): Remove unused browser goldens (#758)" (#763)
    ๐Ÿšš d590ab9 - tests(accessibility): Remove unused browser goldens (#758)
    ๐Ÿ‘ท 1b012e5 - fix: do actually catch worker initialization exceptions (#762)
    โœ… 603b9f5 - fix: make contentFrame cross-frame handles test pass (#761)
    โœ… eb56804 - test: unflake owner frame test (#760)
    ๐Ÿ“š c9544b9 - docs: add documentation for selector engines (#752)
    f44d660 - feat(webkit): use consistent user agent for headful and headless (#756)
    ce72198 - feat(webkit): roll webkit to 1124 (#736)
    โšก๏ธ 44829d6 - browser(firefox): wait for pending accessibility updates (#755)
    โšก๏ธ bcc920c - browser(webkit): follow-up to update inspector file locations (#754)
    0e6b44d - feat(selectors): selectors.register accepts function (#753)
    ๐Ÿ’ป 87abfe0 - browser(webkit): roll to WebKit ToT 1/29/2020 (#737)
    ๐Ÿ’ป afc0222 - browser(webkit): do not crash when opening inspector on mac (#751)
    ๐Ÿšš 6faf74b - fix: move offline/cache/interception switches to BrowserContext (#748)
    9a126da - feat: lower the engine requirement to node 10.15.0 (#750)
    ๐Ÿ‘ท 7ea4110 - browser(webkit): expose worker's owner frame (#694)
    ๐Ÿ— e64fd17 - devops: fix firefox building script on Mac 10.15.1
    fc93b88 - fix: typo (#740)
    โœ… a65bf41 - test(browsercontext): cookies() is a BrowserContext function (#741)
    492304b - feat(firefox): roll firefox to r1020 (#735)
    โœ… b68a88a - test: enable passing modifiers test (#733)
    ๐Ÿ’ป ce7c8d7 - feat: introduce BrowserType.name() (#732)
    ๐Ÿ 184b25f - chore: windows bots via github actions (#678)
    โœ… 4a3bd60 - fix(test): fix race in confusing confuse with previous navigation test (#730)
    89a9311 - chore(webkit): bump webkit revision to 1120 (#727)
    โœ… 5e5d193 - test: don't ignore random arguments (#726)
    4c25180 - chore(webkit): do not call setPauseOnStart for each target (#725)
    ๐Ÿ’ป 4b0ce1d - browser(webkit-wpe): do not preload about:blank into popups (#724)
    09e97af - feat(wk,ff): amend method & postData upon continue (#703)
    ๐Ÿ“„ c35c65b - docs(api.md) Rename page to context in newContext (#723)
    ๐Ÿ“„ 75f7ff3 - docs(api.md) Fix USKeyboardLayout link (#719)
    ๐Ÿ’ป 7af1d12 - browser(firefox): use unguessable web socket address (#722)
    ๐Ÿ“Š 460527d - fix(webkit): do not poll readyState if target is paused before first navigation (#721)
    ๐Ÿ“„ 9d34f28 - docs(api.md) Rename page to context in newContext (#718)
    โœ… 62f4ed6 - feat(unit): add click test on animated target (#655)
    ๐Ÿ’ป c04ad14 - feat(launcher): gracefully close browser on sigint (#650)
    3248749 - fix(webkit): make frames detect their initial load state (#690)
    ๐Ÿ’ป 19da86b - browser(firefox): amend method & postData upon continue (#716)
    โœ… 38b5f76 - fix(test): wait for load state before checking opener of popup (#714)
    2bef4ae - feat(api): introduce selectors.register method (#701)
    9cd6157 - devops: add auto-rebase github action
    2ddc987 - fix(webkit): initialize popups on start (#693)
    a64fc0e - chore: fix missing device definitions (#708)
    ๐Ÿ™‹ 9554ef4 - docs: make individual FAQ items linkable (#712)
    ๐Ÿ“„ 90d84e8 - docs(api): fix cdp session creation example (#709)
    ๐Ÿ“ฆ ff30235 - chore: fix package typo in packages README (#707)
    ๐Ÿ“„ 53cdbc5 - docs: clarify relationship to Puppeteer (#711)
    ๐Ÿ’ป 45e88f7 - browser(webkit): amend method & postData upon continue (#702)
    023fa01 - fix: playwright-core types (#699)
    e276430 - doc: require webSocket:true for endpoint availability (#706)
    ๐Ÿ“„ 79ea30c - docs: sort classes by use (#700)
    bd726ee - chore: bump version to v0.9.24-post
    3e40b4e - chore: mark version 0.9.24
    54f442e - fix: properly expose top-level devices (#698)
    ๐Ÿ’ป e9515f4 - browser(webkit): pause popups on start (#691)
    ๐Ÿ’ป 89b5d2f - fix(setContent): manually reset lifecycyle for all browsers at the right moment (#679)
    ๐Ÿ’ป aa2ecde - browser(webkit): make popups functional in mac embedder (#689)
    ee9c2b0 - chore: bump version to v0.9.23-post
    03e2754 - chore: mark version 0.9.23
    d7beaa7 - chore: bump version to 0.9.22-post (#684)
    0a7005e - chore: mark version v0.9.22 (#682)
    โœ… 7128628 - feat(testrunner): ability to repeat test suites (#681)
    541fa95 - fix(ownerFrame): correctly handle adopted node usecase (#677)
    ๐Ÿšš b3cd7a4 - browser(webkit): remove URL from TargetInfo (#676)
    ๐Ÿ“„ 5a5016f - docs: inline superclass toc into classes for convenience (#663)
    ๐Ÿšš c850430 - docs(api.md): remove browser downloads section (#675)
    ๐ŸŽ 6e4bf95 - fix(install): check macOS version to be 10.14 or higher (#671)
    e65cc77 - fix(pw_run): Allow running from paths with spaces (#674)
    ๐Ÿ— 1b8cfff - browser(webkit): fix GTK build (#673)
    ๐Ÿ’ป a779efe - browser(webkit): always dispose persistent context before exiting (#649)
    ๐Ÿ“„ 9e0cf72 - docs(api.md): add missing docs (#664)
    99414b0 - doc(page): Improve Page description (#665)
    โœ๏ธ 4b84973 - docs: api.md typos
    7f46a09 - feat(webkit): roll to r1011 (#659)
    ๐Ÿ’ป d2bfe00 - browser(webkit): fix setOfflineMode (#656)
    ๐Ÿ— f03b648 - chore: removed build labels from readme
    โœ… b4b7c5e - feat(webkit): enable user-data-dir tests for all platforms (#646)
    63d5a73 - fix(types): export playwright-core types from playwright (#628)
    5fdb3e2 - chore(webkit): roll to 1111 (#644)
    ๐Ÿ’ป 2ae6466 - browser(webkit): support user-data-dir on win (#642)
    b64604c - chore: replace pptr with pw (#643)
    ๐Ÿ’ป be19ae5 - feat(browserApp): kill and onclose (#641)
    f1d1dfb - fix(webkit): rewrite global object retrieval errors (#640)
    ๐Ÿง fb9ec96 - browser(webkit): support --user-data-dir on Linux (#610)
    ๐Ÿ’ป a4f27c1 - browser(webkit): fix compilation on Mac 10.15 (#638)
    โšก๏ธ c453851 - api: introduce BrowserType with a single interface, update top-level api (#636)
    199d094 - fix: make launch options in ffPlaywright optional (#637)
    โšก๏ธ 834698c - docs(readme): update hero snippet to illustrate single API (#631)
    ๐Ÿ— 3abaced - chore(webkit): build wpe and gtk to different folders (#616)
    ๐Ÿ’ป f463d06 - browser(webkit): fix WPE compilation (#635)
    ๐Ÿ’ป 12a4354 - browser(webkit): roll to r255078 (#633)
    ๐Ÿšš 2b44d75 - test: move most launcher tests to common (#621)
    ๐Ÿ‘ ff87701 - doc(troubleshooting): add note about lack of node 8 support (#623)
    โœ… 03f37bc - doc(readme): add test status badges (#617)
    ๐Ÿ“„ 69c5b2a - docs: clarify Puppeteer active status (#619)
    ๐Ÿ‘ท 060fbf7 - fix(workers): emit workerdestroyed event when clearing workers (#618)
    0๏ธโƒฃ 056fbbd - fix(api): make pipe connection the default, expose webSocket launch option (#562)
    ๐Ÿšš b4b81ba - chore: move downloads to Azure CDN (#615)
    ๐ŸŽ 6b8c40e - browser(webkit): respect --user-data-dir on MacOS (#579)
    ๐Ÿ“„ 3b2993f - fix(docs): add back troubleshooting.md (#605)
    866c602 - fix(firefox): disable ICC color correction based on OS display (#614)
    โœ… c1cca19 - test: extract tests for webkit provisional page (#609)
    ๐Ÿ“„ 4cf2180 - fix(docs): add docs for the websocket event (#612)
    ๐Ÿ‘• b8e2bba - chore: run lint on travis (#613)
    74e9859 - feat(firefox): roll to 1018 (#604)
    044ebd7 - fix: delete contexts from the map on navigation (#602)
    ๐Ÿ’ป ac2ba3c - fix(api): BrowserServer -> BrowserApp, resuse it between browsers (#599)
    ๐Ÿšš b4209e9 - test: move user-data-dir tests into shared location (#603)
    ๐Ÿšš a5019ea - fix(api): remove remoteAddress from api (#601)
    ๐Ÿ‘ 23a668e - feat(firefox): support request interception (#571)
    โœ… 68d51a3 - test: add a test for usage after disconnecting (#595)
    24f5f1f - fix(wk websocket): do not send messages to a closing websocket (#593)
    ๐Ÿ“„ 5a67d78 - docs(readme): add support for Edge (#597)
    cc1891e - syntax alignment (#596)
    ๐Ÿšš fa2f321 - fix(api): remove BrowserServer.connect (#574)
    ๐Ÿšš a6042e4 - docs: removed semicolon from code doc as it not required (#580)
    7e8bce7 - chore: bump version to v0.9.21-post
    372a88f - chore: mark version v0.9.21
    3b26ae7 - fix: prepublishOnly ran in the wrong order
    ef2286c - chore: mark version v0.9.20 (#578)
    b1de6ce - fix: clean lib folder before publishing (#577)
    ๐Ÿ’ป 7171590 - browser(firefox): wait for startup before closing the browser (#575)
    โœ… 06e48f2 - test: skip failing wk test
    3269358 - feat(webkit): covert pipe to websocket when asked (#570)
    bb4ae87 - feat(webkit): roll webkit to 1106 (#573)
    ๐Ÿ’ป 1c96d42 - browser(firefox): support request interception (#572)
    ๐Ÿšš 869ffc8 - chore(webkit): remove _disconnectFromTarget (#567)
    ๐Ÿ’ป 05cb267 - browser(webkit): do not require DRAG_SUPPORT for simple drag selection (#569)
    โœ… 710554b - feat(testrunner): add it.repeat to repeat test multiple times (#568)
    0e361c9 - devops(ci): drop debug output from travis.yml
    d7fde0c - devops(ci): resurrecting travis
    6308dbe - fix(webkit): always push state changes to the provisional page (#564)
    โœ๏ธ 27bdc66 - docs(readme.md): fix typos (#566)
    ๐Ÿ“„ eab8f92 - docs: create a single top-level TOC for api.md (#561)
    ๐Ÿ’ป f887797 - docs(readme): add browsers table to README.md