1048 Commits

Author SHA1 Message Date
Dmitry Gozman
c01ad84bd4
fix(fill): use isVisible to be consistent with waitForSelector (#1539)
Fixes #1442.
2020-03-25 14:40:42 -07:00
Dmitry Gozman
60942d0af5
chore(selectors): move selectors logic to selectors.ts (#1536)
This encapsulates selectors logic in one place, in a preparation for more complex scenarios like main-world selectors or piercing frames.

Note: we had `Page.fill should wait for visible visibilty` test, but we do not actually wait for visible in page.fill(). It happened to pass due to lucky evaluation order.

References #1316.
2020-03-25 14:08:46 -07:00
Pavel Feldman
ef9e04d399
fix(permissions): fix notifications permissions on firefox (#1531) 2020-03-25 11:52:50 -07:00
Yury Semikhatsky
2d5b701662
test(firefox): fix should close browser with beforeunload page (#1532) 2020-03-25 08:29:29 -07:00
Pavel Feldman
5bde0b59b5
feat(auth): fix firefox auth flake (#1525) 2020-03-24 23:12:07 -07:00
Dmitry Gozman
4f89e4031c
test: fix flaky interception test (#1508) 2020-03-24 09:08:29 -07:00
Yury Semikhatsky
7efff97753
fix(chromium): properly handle failures to set override (#1498) 2020-03-23 17:23:47 -07:00
Pavel Feldman
c0c9b7f137
test: make debugp collect IO (take 2) (#1493) 2020-03-23 15:08:02 -07:00
Yury Semikhatsky
afbc2f272a
test(firefox): enable passing "userDataDir option should restore cookies" (#1487) 2020-03-23 14:59:29 -07:00
Dmitry Gozman
de0a2d1081
api(waitForLoadState): move waitUntil to be a first parameter (#1490) 2020-03-23 13:51:11 -07:00
Yury Semikhatsky
45a175d8fe
fix(chromium): ignore lifecycle events for the initial empty page (#1486) 2020-03-23 13:50:04 -07:00
Pavel
1ddf05113b Revert "test: make debugp collect IO (#1485)"
This reverts commit b1bebdad2e22daf2a49a24d2134905650d8e264c.
2020-03-23 13:48:22 -07:00
Pavel Feldman
b1bebdad2e
test: make debugp collect IO (#1485) 2020-03-23 13:42:51 -07:00
Dmitry Gozman
15fddb5177
api(click): rename offset to position (#1488)
To allow for features like position: 'center' or similar.
2020-03-23 12:05:08 -07:00
Pavel Feldman
15ebe1c339
feat(exposeFunction): implement context-level expose on firefox (#1478) 2020-03-22 22:45:15 -07:00
Pavel Feldman
23e5d80e06
test: uncomment slow ff tests (#1479) 2020-03-22 22:16:39 -07:00
Pavel Feldman
c68cee9fb7
feat(offline): implement offline in firefox (#1476) 2020-03-22 15:34:30 -07:00
Dmitry Gozman
6e8895fa08
fix(firefox): make interception, locale and geolocation work on browser context level (#1472) 2020-03-22 08:56:50 -07:00
Dmitry Gozman
3f90c09e6d
tests: mark popup tests as passing on Firefox (#1466) 2020-03-21 19:56:33 -07:00
Pavel Feldman
1b08797c6f
tests(ff): uncomment a couple of firefox tests (#1465) 2020-03-21 17:58:33 -07:00
Dmitry Gozman
670ce7a591
chore: remove various watchers, use FrameTask directly (#1460) 2020-03-21 13:02:37 -07:00
Dmitry Gozman
60a248ef42
test: add test for Map as eval argument (#1457) 2020-03-20 21:24:34 -07:00
Yury Semikhatsky
34cc358ad3
tests(webkit): reenable should await promise from popup (#1447) 2020-03-20 21:22:48 -07:00
Dmitry Gozman
e115e8e2a9
tests: mark tests that launch() twice or use fixtures as slow (#1455) 2020-03-20 19:49:35 -07:00
Pavel Feldman
5a42cbd491
fix(permissions): manage permissions on the proxy level in webkit (#1451) 2020-03-20 19:45:35 -07:00
Pavel Feldman
e210e5601c
feat(lang): emulate language on firefox (#1453) 2020-03-20 19:32:27 -07:00
Pavel Feldman
c539325615
feat(geo): implement geo override in ff (#1438) 2020-03-20 19:17:46 -07:00
Yury Semikhatsky
bae56ea9d3
fix(chromium): support main resource request interception for popups (#1449) 2020-03-20 16:13:42 -07:00
Yury Semikhatsky
4320d4ba83
test: fix link navigation test so that it passes in Chromium (#1448) 2020-03-20 15:45:20 -07:00
Dmitry Gozman
16c7a5bd5c
api(eval): accept zero or one arguments in all evaluation functions (#1431) 2020-03-20 15:08:17 -07:00
Joel Einbinder
825555cddf
types: better types (#1166)
This generates typescript definitions based on the api.md, instead of autogenerating them from the typescript source code.

Now types
 - only include the public api
 - work with older versions of typescript
 - include descriptions
 - are more consistent
 - are more complete

#6
2020-03-20 01:30:35 -07:00
Yury Semikhatsky
535b484637
api(context): get rid of PageEvent (#1433) 2020-03-19 16:25:12 -07:00
Yury Semikhatsky
3ed9970b33
api(chromium): add ChromiumBrowserContext.serviceWorkers() (#1416) 2020-03-19 16:10:24 -07:00
Andrey Lushnikov
f5ecbff16e
devops: remake downloading logic (#1419)
This patch:
- removes `browserType.downloadBrowserIfNeeded()` method. The method
  turned out to be ill-behaving and cannot not be used as we'd like to (see #1085)
- adds a `browserType.setExecutablePath` method to set a browser
  exectuable.

With this patch, we take the following approach towards managing browser downloads:
- `playwright-core` doesn't download any browsers. In `playwright-core`, `playwright.chromium.executablePath()` returns `null` (same for firefox and webkit).
- clients of `playwright-core` (e.g. `playwright` and others) download browsers one way or another.
They can then configure `playwright` with executable paths and re-export the `playwright` object to their clients.
- `playwright`, `playwright-firefox`, `playwright-chromium` and `playwright-webkit` download 
browsers. Once browsers are downloaded, their executable paths are saved to a `.downloaded-browsers.json` file. This file is read in `playwright/index.js` to configure browser executable paths and re-export the API.
- special case is `install-from-github.js` that also cleans up old browsers.
2020-03-19 11:43:35 -07:00
Pavel Feldman
2af07ce475
chore: rework disposers into a frame task (#1413) 2020-03-18 20:05:35 -07:00
Dmitry Gozman
7bd924673a
fix(PageEvent): properly wait for initial navigation in chromium and webkit (#1412) 2020-03-18 17:14:18 -07:00
Dmitry Gozman
dd850ada89
api(eval): allow non-toplevel handles as eval arguments (#1404) 2020-03-18 10:41:46 -07:00
Pavel Feldman
049b336800
api(devices): extract isMobile/hasTouch from viewport (#1415) 2020-03-17 18:21:02 -07:00
Joel Einbinder
39e5eb7eda
feat(devices): remove name from device objects (#1414) 2020-03-17 16:04:42 -07:00
Pavel Feldman
e4225adcc0
feat(permissions): make origin optional (#1406) 2020-03-17 15:32:50 -07:00
Darío Kondratiuk
840146273e
test(web): Remove unused variable (#1410) 2020-03-17 09:05:33 -07:00
Dmitry Gozman
aa32d351be
fix(tests): remove flaky load event from auto-waiting tests (#1399)
We do not guarantee that click resolves before load event comes.
Theoretically, inserting two tasks before resolving load should help,
but seems like a strange contract.

Drive-by: move auto waiting tests to a separate file.
2020-03-16 18:33:39 -07:00
Pavel Feldman
64b175ce10
api(waitForLoadState): restore it (#1390) 2020-03-16 14:39:44 -07:00
Dmitry Gozman
6731d37546
api(network): replace redirectChain with redirectedFrom/redirectedTo (#1401) 2020-03-16 13:31:06 -07:00
Joel Einbinder
6dcd6a6eec
fix(types): jsHandle.getProperty should never resolve to null (#1402)
Added a test to confirm that this was dead code.
2020-03-16 13:23:04 -07:00
Pavel Feldman
e4991a1489
tests: add some failing page event tests (#1394) 2020-03-14 19:14:46 -07:00
Pavel Feldman
e692dd6e62
api(cdp): rename ChromiumSession to CDPSession (#1380) 2020-03-13 16:16:54 -07:00
Dmitry Gozman
69be12ae12
api(route): pass Route object instead of Request to route handlers (#1385)
References #1348.
2020-03-13 14:30:40 -07:00
Dmitry Gozman
601d57a300
test: add a test for popup with window features (#1381) 2020-03-13 13:08:35 -07:00
Dmitry Gozman
9b86c631c8
api: make BrowserContext.pages() synchronous (#1369)
Returns all pages which have been initialized already.

References #1348.
2020-03-13 11:33:33 -07:00