Commit graph

124 commits

Author SHA1 Message Date
Dmitry Gozman 80705ff5e9
chore: simplify logging a bit (#2512)
This merges a few classes and stops inheriting from InnerLogger.
2020-06-09 16:11:17 -07:00
Dmitry Gozman c08da50bb3
chore: introduce session.sendMayFail to ease error logging (#2480) 2020-06-05 07:50:26 -07:00
Dmitry Gozman de0bbd3031
chore: remove page pause support (#2431) 2020-06-01 11:14:16 -07:00
Pavel Feldman 6620008dcb
chore: follow up to address evaluation review comments (#2380) 2020-05-27 22:19:05 -07:00
Pavel Feldman e168fddac8
fix(evaluate): consistently serialize json values (#2377) 2020-05-27 17:19:05 -07:00
Dmitry Gozman aac5bf24ec
fix(popups): do not override popup size from window features (#2139)
We usually force window size from the browser context. However,
popups that have window features insist on a specific window size,
so we respect that.
2020-05-22 15:56:37 -07:00
Dmitry Gozman e2972ad5ba
feat(click): retry when the element it outside of the viewport (#2330)
The element might get animated into the viewport.
2020-05-22 11:15:57 -07:00
Pavel Feldman 99b7aaace8
chore: refactor injected script harness (#2259) 2020-05-15 15:21:49 -07:00
Dmitry Gozman 63cc126805
fix(webkit): do not swallow init errors (#2242)
This is a speculative fix to the following issue from the bots:

NON-TEST ERROR #0: UNHANDLED ERROR
  TypeError: Cannot read property 'url' of undefined
      at WKPage._onTargetCreated (/Users/runner/runners/2.169.1/work/playwright/playwright/src/webkit/wkPage.ts:274:12)
      at process._tickCallback (internal/process/next_tick.js:68:7)

I assume that _initializeSession did swallow an error, so we erroneously
consider Page to be fully initialized (and having main frame).
2020-05-14 15:43:23 -07:00
Dmitry Gozman 650d73445c
fix(actions): do not wait for the created popups (#2219)
Since we are recommending Promise.all pattern anyway, this special
logic just adds to the possibility of timeout if something goes wrong.

For example, Firefox sometimes send Page.willOpenNewWindowAsynchronously
later than the new target arrives and input action just hangs.
2020-05-13 17:20:33 -07:00
Dmitry Gozman 072dcba94a
api(viewport): do not allow isMobile and deviceScaleFactor for null viewports (#2190)
Also make sure we do not alter viewport when passed null.
2020-05-12 18:31:17 -07:00
Pavel Feldman f6210ae996
fix(webkit): click moving targets on windows (#2101) 2020-05-04 16:30:19 -07:00
Yury Semikhatsky 03ca297890
fix(webkit): make click work with cross-process _blank target (#2083) 2020-05-02 10:57:33 -07:00
Pavel Feldman f8bea85c88
feat(webkit): disable pause on click (#2077) 2020-05-01 12:59:18 -07:00
Pavel Feldman c55db6d315
browser(webkit): roll webkit to 1213 (#2045) 2020-04-29 18:40:18 -07:00
Yury Semikhatsky 78b44ed2a0
fix: report new window downloads (#2019) 2020-04-29 18:36:24 -07:00
Pavel Feldman c01e554edd
test: add more pausing tests (#2040) 2020-04-29 16:17:03 -07:00
Pavel Feldman 534857269b
fix(console): respect repeat count in webkit (#2032) 2020-04-29 12:13:57 -07:00
Dmitry Gozman b11d7f15bb
feat(input): retry when hit target check fails, prepare for page pause (#2020) 2020-04-29 11:05:23 -07:00
Yury Semikhatsky fb45c75b98
feat(webkit): simulate device orientation events (#1852) 2020-04-20 14:43:44 -07:00
Dmitry Gozman d1a95518be
chore: remove old TODOs, add a test (#1879) 2020-04-20 13:01:06 -07:00
Dmitry Gozman 649f37f885
fix(pageerror): report correct error message and stack (#1862)
The error stack matches the browser format.
2020-04-20 11:37:02 -07:00
Pavel Feldman 1f43ae692f
feat(logging): introduce logger sink api (#1861) 2020-04-20 07:52:26 -07:00
Dmitry Gozman 55b4bc99bd
feat(actions): requery the element when it was detached during the action (#1853) 2020-04-18 18:29:31 -07:00
Dmitry Gozman f5942295d4
feat(api): wait for popups and downloads when performing actions (#1744) 2020-04-16 13:09:24 -07:00
Dmitry Gozman 5e18378df7
fix(webkit): do not access mainFrame when initialization has failed (#1825) 2020-04-16 10:59:27 -07:00
Pavel Feldman 2280126344
api(setInputFiles): introduce page/frame helpers, document, break compat (#1818) 2020-04-16 10:25:28 -07:00
Andrey Lushnikov 0ba823dd6f
feat: introduce page.on('crash') event (#1782)
Currently, whenever the page crashes, it emits an `'error'` event.
Error event is a special type of event in node.js; if unhandled,
it crashes the process.

Instead of emitting `'error'` event, this patch switches to emitting
`'crash'` event. Playwright users are free to handle the event
however they like, or just to ignore it.
2020-04-15 00:04:35 -07:00
Dmitry Gozman 2e6f544342
chore(webkit): stop using windowOpen signal to determine initial empty page (#1776) 2020-04-14 14:51:23 -07:00
Pavel Feldman 3584205086
fix(chromium): associate navigation requests with navigations (#1724) 2020-04-09 19:03:06 -07:00
Pavel Feldman 3dc14eddaf
fix(colorScheme): make light scheme default on all browsers (#1668) 2020-04-06 19:49:33 -07:00
Pavel Feldman e241c1bef8
chore: remove web mode (#1625) 2020-04-01 14:42:47 -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 5a42cbd491
fix(permissions): manage permissions on the proxy level in webkit (#1451) 2020-03-20 19:45: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
Pavel Feldman 049b336800
api(devices): extract isMobile/hasTouch from viewport (#1415) 2020-03-17 18:21:02 -07:00
Dmitry Gozman 6731d37546
api(network): replace redirectChain with redirectedFrom/redirectedTo (#1401) 2020-03-16 13:31:06 -07:00
Pavel Feldman b1a3b23c38
api(request): make request.response a promise (#1377) 2020-03-13 08:54:19 -07:00
Pavel Feldman 5d4fdd050a
feat(webkit): roll webkit to 1178 (#1339) 2020-03-11 14:08:22 -07:00
Pavel Feldman 0077b428fc
feat(webkit): emulate device size (#1318) 2020-03-10 13:16:33 -07:00
Dmitry Gozman 23cf3be828
api: make request.frame() non-null (#1319) 2020-03-10 11:39:35 -07:00
Dmitry Gozman ea6978a3d8
api(popups): expose BrowserContext.route() (#1295) 2020-03-09 21:02:54 -07:00
Dmitry Gozman c43de22193
chore(wk, ff): simplify target management (#1279) 2020-03-09 12:32:42 -07:00
Pavel Feldman 2fa2421894
fix(webkit): fail the 204 navigations (#1260) 2020-03-09 11:42:56 -07:00
Pavel Feldman 78bd29d558
fix(click): work around input alignment on chromium (#1282) 2020-03-07 08:19:31 -08:00
Dmitry Gozman 68b4079748
chore: remove WKPage._sessions (#1270) 2020-03-06 16:51:45 -08:00
Andrey Lushnikov c494944b46
api(popups): move Page.authenticate to BrowserContext.setHTTPCredentials (#1267)
Drive-by: fixes #720 since it rolls past r1037. 

Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2020-03-06 13:50:42 -08:00
Dmitry Gozman d1146204bf
chore: remove WKPageProxy, use WKPage instead (#1256) 2020-03-06 11:41:46 -08:00
Pavel Feldman 2724157c22
feat(waitUntil): allow waiting for navigation from clicks, etc (#1255) 2020-03-06 08:24:32 -08:00
Yury Semikhatsky 9bc6dcea1d
feat(api): introduce BrowserContext.waitForEvent (#1252) 2020-03-05 17:22:57 -08:00