Commit graph

349 commits

Author SHA1 Message Date
Yury Semikhatsky 9154f4b6e0
feat(webktt): explicitly enable Playwright domain on start (#2315) 2020-05-21 08:44:57 -07:00
Pavel Feldman f9b437a49e
chore: pull common functionality into the BrowserTypeBase (#2312) 2020-05-20 16:30:04 -07:00
Pavel Feldman aa0d844c76
chore: introduce utility script for evaluate helpers (#2306) 2020-05-20 15:55:33 -07:00
Pavel Feldman e558f0516b
chore: print the launch error message to console (#2304) 2020-05-20 00:10:10 -07:00
Dmitry Gozman 8957c86837
feat(debug): add source maps to evaluates in debug mode (#2267)
When PLAYWRIGHT_DEBUG_UI is set, we try to find the source
of the function in the current file and source map it.
2020-05-19 08:40:45 -07:00
Pavel Feldman 2bd427ad1d
feat(exposeBinding): a more powerful exposeFunction with source attribution (#2263) 2020-05-18 14:28:06 -07:00
Pavel Feldman 99b7aaace8
chore: refactor injected script harness (#2259) 2020-05-15 15:21:49 -07:00
Andrey Lushnikov e035bf3b33
fix: update webkit version (#2250)
Fix #2245
2020-05-14 16:47:18 -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 e8e761f77f
chore: use internal BrowserOptions to unify browsers (#2230) 2020-05-14 13:22:33 -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
Pavel Feldman f63ea3ffd2
feat(downloads): expose suggested filename (#2062) 2020-05-12 19:23:08 -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
Dmitry Gozman ae8d97cdf9
feat(persistent context): ensure initial about:blank (#2161)
We declare only the initial about:blank to be a supported usecase, so that
we can support options for the default context in the future.
2020-05-10 15:23:53 -07:00
Dmitry Gozman 33ebe66ad4
fix(webkit): allow contenttype with charset in interception (#2108) 2020-05-04 21:49:54 -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 7c9762fae9
fix: support blob downloads (#1954) 2020-04-23 20:04:19 -07:00
Pavel Feldman 5b085fdf03
feat(logger): introduce context-level logger (#1896) 2020-04-20 23:24:53 -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
Yury Semikhatsky c359116a3b
fix: create _defaultContext only in persistent mode (#1854) 2020-04-18 19:58:11 -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
Joel Einbinder 036f9e50fa
fix(webkit): allow fufilling requests to redirects (#1830) 2020-04-16 12:36:00 -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
Dmitry Gozman ba36860d79
feat(api): page.unroute to remove routes (#1813) 2020-04-15 19:55:22 -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 368e1cc49b
chore(input): refactor keyboard layout, extract pure layout (#1681) 2020-04-11 00:24:17 -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
Joel Einbinder b7d0c32338
fix(browser): wait for the pipe to disconnect in browser.close (#1652)
With WebKit, sometimes the process closes before the stdio is streams are closed. I explicitly wait for the browser disconnect event now when closing.
2020-04-03 16:34:07 -07:00
Dmitry Gozman ea16e55ba3
fix(lint): import errors (#1649) 2020-04-02 20:30:52 -07:00
Pavel Feldman 75571e8eb8
feat(downloads): support downloads on cr and wk (#1632) 2020-04-02 17:56:14 -07:00
Joel Einbinder 3d6d9db44a
fix: wait for the process to close when closing the browser (#1629) 2020-04-02 16:57:12 -07:00
Pavel Feldman e241c1bef8
chore: remove web mode (#1625) 2020-04-01 14:42:47 -07:00
Pavel Feldman 48516ed7ed
feat(websocket): use proxy web socket on chromium (#1573) 2020-03-27 15:18:34 -07:00
Pavel Feldman 00cb4e370f
chore: move transport to object messages (#1567) 2020-03-26 23:30:55 -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 c0c9b7f137
test: make debugp collect IO (take 2) (#1493) 2020-03-23 15:08:02 -07:00