Skip to content

playwright 0.12.0

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.

  • 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.

  • 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

New APIs

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 #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) 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) 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) 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 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)