56 Commits

Author SHA1 Message Date
Dmitry Gozman
776b04e5ea
feat: APIRequestContext dispose reason (#30765)
Similarly to page.close, we pass test-runner specific reason to
facilitate better error messages.

```
  1) a.test.ts:10:11 › test

    Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.
      - Recommended fix: use a separate { request } in the test.
      - Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.
    See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.

       9 |
      10 |       test('test', async () => {
    > 11 |         await context.fetch('http://example.com');
         |                       ^
      12 |       });
      13 |
```

Closes #29260.
2024-05-13 18:51:30 -07:00
Yury Semikhatsky
d5b387159a
feat(fetch): sendImmediately (#30627)
Fixes https://github.com/microsoft/playwright/issues/30534
2024-05-02 16:30:12 -07:00
Pavel Feldman
0f2de59b7c
chore: remove graceful browser.close cleanup (#27916) 2023-11-01 20:17:10 -07:00
Playwright Service
5262e5ab35
feat(chromium-tip-of-tree): roll to r1159 (#27605) 2023-10-17 22:41:23 +02:00
Pavel Feldman
a54dbfdadf
chore: plumb the target close reason when test fails (#27640) 2023-10-16 20:32:13 -07:00
Yury Semikhatsky
4e845e7b1d
fix(fetch): JSON.stringify on client (#27644)
Fixes https://github.com/microsoft/playwright/issues/27602
2023-10-16 16:33:49 -07:00
Yury Semikhatsky
88038f1b00
fix: do not throw from fetch when response has invalid cookie (#27192)
Cookie value is limited by 4096 characters in the browsers. If
setCookies failed we try setting each cookie individually just in case
only some of them are bad.

Fixes https://github.com/microsoft/playwright/issues/27165
2023-09-19 16:18:16 -07:00
Yury Semikhatsky
700b310150
fix(fetch): restore from empty storage state (#27025)
Fixes #26833
2023-09-12 13:11:18 -07:00
Yury Semikhatsky
501ed32856
fix(fetch): update host header on redirect (#26750)
Fixes https://github.com/microsoft/playwright/issues/26743
2023-08-28 12:42:50 -07:00
Yury Semikhatsky
59d5198d17
fix(fetch): handle negative max-age and expires attributes (#24311)
Fixes #24221
2023-07-20 15:42:52 -07:00
Pavel Feldman
bd090e67df
lint: prevent object string concatenation (#23172) 2023-05-19 15:17:43 -07:00
Yury Semikhatsky
75e106745f
fix(fetch): support proxy.bypass (#22914)
Fixes #21916
2023-05-09 14:51:49 -07:00
Sébastien Richert
591e4ea976
feat: Restrain sending http credentials on a specific origin (#20374)
For security purpose, we would like to restrain sending HTTP credentials
to only the specified server. The idea is to give the ability to specify
a origin (scheme://host:port) additionally to current pair
username/password. When an authorization response is received from
servers, the credentials are sent only if the server origin in the
request matches case insensitive the specified origin.
2023-03-27 08:52:00 -07:00
Dmitry Gozman
0794cb1486
fix(fetch): preserve case in header names (#21543)
Fixes #21492.
2023-03-10 08:58:12 -08:00
Max Schmitt
ae369144b6
chore: consolidate http/https fetching (#21104)
Fixes https://github.com/microsoft/playwright/issues/20784
Supersedes https://github.com/microsoft/playwright/pull/21076
2023-02-22 17:09:56 +01:00
Pavel Feldman
d1c161ce99
chore: merge the util exports (#20110) 2023-01-13 13:50:38 -08:00
Max Schmitt
c339e1615b
fix(fetch): handle invalid redirect URL (#19890)
Fixes https://github.com/microsoft/playwright/issues/19879.

This part is then similar to how node-fetch is doing it:
55a4870ae5/src/index.js (L152-L159)

node-fetch also throws as of today with this URL. Before in Python it
was stalling, because the error was written to stdout and on Windows the
stdout wasn't working. On Node.js it ended up in an unhandled exception.
2023-01-06 10:22:17 -08:00
Yury Semikhatsky
10ccfa9517
feat(fetch): happy eyeballs (#19902)
Fixes #18790
2023-01-05 14:39:49 -08:00
Yury Semikhatsky
d3f41eaa47
fix(fetch): cookie with domain=localhost (#18998)
Fixes https://github.com/microsoft/playwright/issues/18362
2022-11-23 09:22:49 -08:00
Dmitry Gozman
503f8f51dc
fix(reuse): stop pending operations upon reuse/disconnect (#18997) 2022-11-22 15:21:20 -08:00
Max Schmitt
be67189a54
fix(fetch): throw on unexpected end of file brotli requests (#18223)
https://github.com/microsoft/playwright/issues/18190
2022-10-24 12:51:45 -07:00
Yury Semikhatsky
9b35a8071f
fix(fetch): support SameSite attribute (#17748)
Fixes https://github.com/microsoft/playwright/issues/17398
2022-09-30 15:01:59 -07:00
Pavel Feldman
df143031e7
chore: move protocol and trace types into the top-level packages (#17486) 2022-09-20 18:41:51 -07:00
Vincenzo Gasparo
17b203affb
feat: added follow and redirect arguments to fetch (#17033) 2022-09-09 12:14:42 -07:00
Yury Semikhatsky
27ffdcc944
fix: accept post data for GET and HEAD http methods (#17008) 2022-09-01 08:36:08 -07:00
Yury Semikhatsky
5d6253f743
fix: stop har recording when APIRequestContext is disposed (#17007) 2022-08-31 21:51:38 -07:00
Pavel Feldman
a198b6d753
chore: reparent context objects into the object (#15689) 2022-07-15 08:56:47 -07:00
Dmitry Gozman
4eccb89a79
chore: do not serialize buffers into base64 in local mode (#15316) 2022-07-05 08:58:34 -07:00
Dmitry Gozman
06c8d8e31c
chore: use channels types instead of a copy in server (#14874)
This is to avoid duplicating types for no reason.
2022-06-14 22:02:15 -07:00
Max Schmitt
ca4cfca8ad
chore: make tests pass on Node.js 17+ (#13678) 2022-04-22 13:42:52 +02:00
Pavel Feldman
63ea81ec54
chore: make bundles typed (#13620) 2022-04-18 17:50:25 -07:00
Pavel Feldman
58d79e5e4d
chore: add core utils bundle (#13615) 2022-04-18 13:47:23 -07:00
Max Schmitt
584140f97a
fix: make fetch api work with connectOverCDP (#13521) 2022-04-14 12:53:49 +02:00
Pavel Feldman
a3c02222bf
chore: use utils via index export (4) (#13404) 2022-04-07 14:36:13 -07:00
Pavel Feldman
40d5e3a3c9
chore: use utils via index export (3) (#13403) 2022-04-07 13:55:44 -07:00
Pavel Feldman
5ae2017a5b
chore: always import type (#13365) 2022-04-06 14:57:14 -07:00
Yury Semikhatsky
f15610b874
fix(fetch): always return non-empty body regardless of request method (#12102) 2022-02-15 09:06:21 -08:00
Yury Semikhatsky
401cd9c0ee
fix(fetch): do not throw on empty response body with br encoding (#11708) 2022-01-28 12:58:58 -08:00
hackerman
872a4be752
fix(server): handle = in cookie values correctly (#11613) 2022-01-26 11:27:43 -08:00
Ross Wollman
64e7557fb9
fix: falsey behavior in route.continue, page.post, testInfo.attach (#11421)
In several of the Playwright APIs, falsey values were not handled correctly. This changeset adds tests (and some fixes):

- route.continue: If options.postData was the empty string, the continue failed to override the post data.
- page.post (application/json with options.data: false|''|0|null): Raw falsey values were getting dropped (i.e. you can't do the equivalent of curl --header application/json … -d 'false'). This has been fixed with most values across all browsers, but an additional fix is needed for 'null' which the channel serializer treats extra specially.
- testInfo.attach: This didn't get reported as an error when options.path was the empty string, but should have been.
#11413 (and its fix #11414) inspired this search as they are the same
class of bug.
2022-01-24 15:06:36 -08:00
Yury Semikhatsky
ab9d5a0dc4
chore(tracing): add tracing to APIRequestContext (#11502) 2022-01-22 11:25:13 -08:00
Max Schmitt
fb22c859d6
chore: add browser like UA to browser fetcher (#11006)
Drive-by: unify all Playwright user agents across the board.

Co-authored-by: Andrey Lushnikov <lushnikov@chromium.org>
2022-01-14 02:46:17 -08:00
Yury Semikhatsky
707befd6f7
fix(fetch): basic authentication without realm (#10979) 2021-12-16 13:40:52 -08:00
Yury Semikhatsky
b7ba039436
fix: make APIRequest tracing work on node 16 (#10705) 2021-12-03 15:46:57 -08:00
Yury Semikhatsky
8afd0b7d6a
feat(tracing): trace context APIRequest calls (#10684) 2021-12-02 15:53:47 -08:00
Yury Semikhatsky
d66b7aab3b
feat(expext): toBeOK for APIResponse (#10596) 2021-11-30 18:12:19 -08:00
Yury Semikhatsky
9c23a78c32
chore: throw instead of returning error from fetch (#10451) 2021-11-19 20:32:29 -08:00
Yury Semikhatsky
fbb3c88f3c
fix(fetch): smarter JSON.stringify for application/json requests (#10245) 2021-11-11 11:12:24 -08:00
Max Schmitt
d25b0f70bc
chore: api testing test nits (#10180) 2021-11-09 14:11:42 -08:00
Max Schmitt
c5b19351f6
chore: rename Fetch Request/Response to API (#10087) 2021-11-05 16:27:49 +01:00