303 Commits

Author SHA1 Message Date
Pavel Feldman
0b8c33ee75
fix(ECONRESET): fix it once and for all (#4258) 2020-10-27 11:09:41 -07:00
Pavel Feldman
be8428475d
feat(websocket): implement Web Sockets for Chromium & WebKit (#4234) 2020-10-26 22:20:43 -07:00
Pavel Feldman
7fc4b797eb
feat(har): allow saving har for context (#4214) 2020-10-26 14:32:07 -07:00
Pavel Feldman
f5fbea94bb
feat(debug): allow using timeout for rafs for throttling debugging 2020-10-23 16:06:51 -07:00
Pavel Feldman
c97af3ee91
fix(listeners): avoid "too many listeners" problem safely (#4223) 2020-10-23 10:38:26 -07:00
Pavel Feldman
c4fbc6436a
Revert "fix(listeners): avoid "too many listeners" problem (#3931)" (#4222)
This holds on to process / handlers forever.
2020-10-23 10:04:55 -07:00
Pavel Feldman
72320275ab
fix(headers): report raw request headers on Chromium (#4207) 2020-10-22 08:49:16 -07:00
Pavel Feldman
8a42cdad30
feat(timing): introduce resource timing (#4204) 2020-10-21 23:25:57 -07:00
Pavel Feldman
5d997ed28b
fix(video): make video path available in persistent profiles (#4182) 2020-10-19 14:35:18 -07:00
Joel Einbinder
92dda698f8
feat: tap (#4097) 2020-10-19 10:07:33 -07:00
Joel Einbinder
86ef956b4b
feat(webkit): bump to 1357 (#4154) 2020-10-19 03:03:50 -07:00
Pavel Feldman
bbdba42d30
chore(screencast): respect i/o backpressure when writing into ffmpeg (#4164) 2020-10-16 10:04:14 -07:00
Pavel Feldman
e9f5477d52
fix(screencast): await for the first video frame on Chromium (#4145) 2020-10-14 15:09:36 -07:00
Pavel Feldman
46a49d0809
fix(screencast): bump chromium video quality (#4146) 2020-10-14 15:02:32 -07:00
Yury Semikhatsky
bb981fc0cc
fix(screencast): correctly process videos with 1 frame (#4144) 2020-10-14 14:10:35 -07:00
Andrey Lushnikov
c7b23599bc
feat(firefox): roll to r1190 (#4133) 2020-10-14 09:35:56 -07:00
Pavel Feldman
5a7685665a
api(video): restore the missing video path accessor (#4132) 2020-10-13 22:15:51 -07:00
Pavel Feldman
3f68713f1e
chore: locate binaries in case of cli deployment (#4107) 2020-10-09 15:56:03 -07:00
Joel Einbinder
9801be6401
feat(chromium): roll to 815036 (#4099) 2020-10-09 11:45:45 -07:00
Andrey Lushnikov
80773fa96b
fix: disable chromium sandbox by default (#4090)
Certain environments, e.g. Azure Pipelines, override default user
inside container with a custom one, whereas fail to pass proper
seccomp profile for the docker image.

As a result, chromium sandboxing fails.

To ease life of devops deploying tests in various CI's, this patch
disables Chromium sandbox by default.

References #4084
2020-10-09 11:28:22 -07:00
Pavel Feldman
ad58e49201
Revert "feat(firefox): migrate to the pipe channel (#4068)" (#4073)
Mac sporadically hangs on browser close.
2020-10-06 21:16:50 -07:00
Pavel Feldman
ce7aa7a608
feat(firefox): migrate to the pipe channel (#4068) 2020-10-06 14:40:09 -07:00
Thomas Chaplin
2df6425254
chore(typo): resolve typo in src/progress.ts (#4041) 2020-10-05 15:21:35 -07:00
Dmitry Gozman
d31cbc21e5
fix(video): wait for videos when closing persistent context (#4040)
To achieve this, we close all the pages one by one, then wait
for the videos to finish processing, and then close the browser.
2020-10-04 18:18:05 -07:00
Dmitry Gozman
e214f795e0
feat(video): support videos in remote browser (#4042) 2020-10-02 17:27:56 -07:00
Dmitry Gozman
5e42029fce
api: allow exposeBinding to pass handles (#4030)
This adds an option `{ handle: true }` to pass a single handle instead of arbitrary json values.
2020-10-01 22:47:31 -07:00
Dmitry Gozman
4a77363af7
api: update videos api, hide tracing (#4015) 2020-10-01 11:06:19 -07:00
Pavel Feldman
20b83ee0b4
fix(electron): do not use --require to throttle startup (#4006) 2020-09-29 18:01:14 -07:00
Dmitry Gozman
b3497b333e
fix(actions): wait for some time before retrying the action (#4001)
This saves some CPU cycles while waiting for the page to
change the state, e.g. for animations to complete.

Note that retrying logic is only applicable in rare
circumstances like unexpected scroll in the middle of an
action, or some overlay blocking the click. Usually,
action times out in this cases while retrying.
2020-09-29 10:28:19 -07:00
Yury Semikhatsky
1d21c1e4bd
feat(webkit): bump to 1347 (#3955) 2020-09-22 16:38:05 -07:00
Dmitry Gozman
18809b3902
fix(listeners): avoid "too many listeners" problem (#3931)
We currently spawn a process per page when recording
video in Chromium. This triggers "too many listeners" on the
process object once you have enough pages open.
2020-09-22 13:45:57 -07:00
Pavel Feldman
f1016c1fc1
fix(executablePath): throw unexpected platform error upon call (#3943) 2020-09-21 15:51:27 -07:00
Pavel Feldman
cd0a123e78
feat(chromium): roll to v808777 (#3942) 2020-09-21 15:51:14 -07:00
Joel Einbinder
75edc61531
feat(emulation): emulate a mouse pointer in headless chrome (#3922) 2020-09-21 08:20:05 -07:00
Dmitry Gozman
df777344a3
api(video): simplify video api (#3924)
- This leaves just `recordVideos` and `videoSize` options on the context.
- Videos are saved to `artifactsPath`. We also save their ids to trace.
- `context.close()` waits for the processed videos.
2020-09-18 17:36:43 -07:00
Dmitry Gozman
0ade6af689
api(trace): introduce artifacts options (#3914)
api(trace): introduce artifacts options

This introduces launch({ artifactsPath }) and newContext({ relativeArtifactsPath, recordTrace }) options.
- artifactsPath option controls the directory where all artifacts go. If not passed, artifacts are not collected.
- relativeArtifactsPath can be used to put context-specific artifacts into a subfolder. If not passed, shared artifactsPath is used.
- recordTrace controls trace recording.

We also expose trace types under playwright/types/trace.d.ts.

In the follow up:
- videos will be put into artifactsPath;
- downloads will be put into artifactsPath, or keep using existing downloadsPath when artifactsPath is not specified.
2020-09-18 11:54:00 -07:00
Dmitry Gozman
01a4060665
chore: move action instrumentation per-context (#3908)
This allows tracing to expose plugin-like api.

This also remove Progress -> ActionMetadata dependency, leaving
Progress a low-level utility.
2020-09-17 09:32:54 -07:00
Dmitry Gozman
dc06f0a75c
chore: introduce evaluateInUtility private api (#3907)
This is an experimental  client-side api. We'll experiment with it in plugins like tracing.
2020-09-16 16:07:49 -07:00
Dmitry Gozman
36f2420b0f
chore(trace): remove dependency on handle._previewPromise (#3906)
We now mark the target with '__playwright_target__' attribute and
let the trace viewer do whatever it wants.
2020-09-16 15:26:59 -07:00
Yury Semikhatsky
5507553173
fix(screencast): repeat previous frame instead of current (#3890) 2020-09-15 15:21:50 -07:00
Dmitry Gozman
592bae1cea
feat(trace): record goto, setContent, goBack, goForward and reload (#3883) 2020-09-15 09:46:36 -07:00
Max Schmitt
8bc09af458
fix(firefox): imply default ports for proxy (#3850) 2020-09-14 21:22:07 -07:00
Andrey Lushnikov
430f2bedaa
devops: stop relying on ubuntu stock ffmpeg (#3882)
This patch bakes ffmpeg-linux r1001 into our NPM package.

This increases NPM package size from 4.2MB to 6.7MB.

Fixes #3845
2020-09-14 19:22:00 -07:00
Dmitry Gozman
2f0d2029ca
chore: refactor goBack/goForward/reload (#3859)
These methods are the only users of waitForNavigation and
waitForLoadState on the server side. This refactor lifts the
Progress wrapper to the top-most goBack/goForward/reload call
and leaves waitForNavigation/waitForLoadState as internal helpers.
This way we get a single Progress for the actual api call.
2020-09-14 16:43:17 -07:00
Dmitry Gozman
0a243c6792
fix(waitTask): remove rerunnable tasks from the context data upon success/failure (#3875) 2020-09-14 14:55:37 -07:00
Dmitry Gozman
7ab0c10d7b
fix(launchServer): do not throw when 'port' option is present (#3877)
We now use 'launch' under the hood, which erroneously throws
when 'port' is present.

Instead, moved validation to the client side where it belongs,
added tests for validation errors.
2020-09-14 14:43:39 -07:00
Dmitry Gozman
01198f8eef
fix($$): use utility context when possible (#3870)
This avoids the typical issue of overridden bulitins,
trading it for performance of one by one node adoptions.
2020-09-14 10:38:14 -07:00
Yury Semikhatsky
e5c6b19c00
fix(launcher): check for ffmpeg only when starting screencast (#3874) 2020-09-14 10:26:44 -07:00
Dmitry Gozman
5314512cbc
chore: inline page._runAbortableTask (#3861)
It does not do anything nowadays.
2020-09-11 23:33:38 -07:00
Yury Semikhatsky
40323aa94d
fix(screencast): use viewport as default size (#3844) 2020-09-11 15:14:31 -07:00