Commit graph

1969 commits

Author SHA1 Message Date
Pavel Feldman 44887c237d
chore: reimplement socks to be readable (#8315) 2021-08-19 15:16:46 -07:00
Max Schmitt 96a9a26f9f
fix: strict mode on page.* methods on context level (#8324) 2021-08-19 23:08:28 +02:00
Max Schmitt ddcdb6d413
chore(protocol): do client hello instead of server hello (#8019) 2021-08-19 17:31:14 +02:00
Dmitry Gozman f06e7b91fb
fix(tracing): serialize resource writes against trace export (#8296)
Inlining TraceSnapshotter makes it easier to serialize writes and removes no-op glue.
We also stop writing the same resource twice.
2021-08-19 07:26:24 -07:00
Andrey Lushnikov d9206ebefc
chore: pretend world is win64 (#8306)
It looks like we have a very small share of users on 32-bit windows.
This is a tiny change that stops Playwright from using 32-bit windows
binaries.

References #8045
2021-08-19 06:09:04 -07:00
Dmitry Gozman ee9863387b
feat(html report): show video inline (#8293) 2021-08-18 14:30:55 -07:00
Pavel Feldman 6ef76e333e
feat(strict): add context-level selector strictness (#8290) 2021-08-18 12:51:45 -07:00
Dmitry Gozman 8d81890e47
feat(codegen): support --save-trace option (#8267) 2021-08-18 07:27:45 -07:00
Pavel Feldman 710cec80a0
feat(test-runner): render step titles (#8270) 2021-08-17 16:41:36 -07:00
Pavel Feldman 97ba4f22f3
feat(test-runner): report nested steps (#8266) 2021-08-17 13:57:26 -07:00
Joel Einbinder de4464cb9a
fix(expect): highlight diff in toHaveText (#8262) 2021-08-17 16:56:21 -04:00
Dmitry Gozman 99993e173b
fix(snapshots): account for malformed headers (#8241)
When browser receives multiple header values for the same header name,
we present them as LF-separated value. This is not considered valid in
Node, so we should split by LF when serving a snapshot.

There more invalid characters in headers, so just in case we try/catch it.
2021-08-16 17:40:46 -07:00
Dmitry Gozman 246495f705
fix(tracing): improve captureStackTrace (#8236)
- Simplify by only considering client/ vs non-client/
- Fix stack traces when calling from other playwright code, e.g. from the cli
- Account for re-entrant calls that happen when
  instrumenting context creation/desctruction
- Add tests
- Fix StackTraceView on Windows
2021-08-16 17:06:38 -07:00
Dmitry Gozman 2aff06ec73
fix(test runner): make sure tracing is not running on non-retries (#8232)
When sharing a context between tests and using `'on-first-retry'` we
could end up with tracing still running in non-retried tests. That's
extra overhead without a reason.
2021-08-16 16:46:35 -07:00
Yury Semikhatsky 8cc4140933
fix: throw if intercepted response fails (#8195) 2021-08-16 16:40:47 -07:00
Bùi Gia Thịnh 1e8e547023
fix(devices): typo in device name Desktop Edge (#8233) 2021-08-16 22:38:26 +02:00
Ross Wollman 101662765c
api(cdp): newCDPSession accepts frames, too (#8157)
Without this, Playwright's CDP feature leaves unreachable
targets (namely OOPIFs).

This change allows for more advanced experimentation in user-land
without relying on out-of-band CDP connections and clients.

Now you can, for example, call `DOM.getDocument` on the
page OR main frame, observe there is an iframe node with
no `contentDocument` (i.e. OOPIF), make note of the referenced
`frameId`, and then iterate of page.frames() calling `Target.getInfo`
on each to link the Playwright Frame with the CDP `frameId` and
then recurse.

Relates #8113
2021-08-16 12:49:10 -07:00
Yury Semikhatsky 90385a7941
browser(firefox): failure response interception (#8194) 2021-08-16 09:36:28 -07:00
Yury Semikhatsky 39f663834f
test: intercepted response status line (#8189) 2021-08-13 16:28:42 -07:00
Dmitry Gozman 5327b8ca6d
feat(firefox): bump firefox to 1283, firefox-beta to 1277 (#8184) 2021-08-13 08:29:25 -07:00
Dmitry Gozman d32d50a906 fix(test runner): make sure we always teardown all fixtures (#8158)
Even if one of the fixtures throws, we should teardown all of them
so that we can run afterAll hooks.
2021-08-12 09:08:56 -07:00
Pavel Feldman f3b35b2bbd
fix(trace-viewer): restore action error icon (#8163)
Fixes #8051
2021-08-12 08:41:34 -07:00
Andrey Lushnikov 819287cc0e
fix: do not show the "accept incoming network connections" dialog (#8162)
The dialog is provoked by a [MediaRouter chromium component](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/mac_build_instructions.md#avoiding-the-incoming-network-connections-dialog)

In general, this is a very narrow functionality that should be safe
to disable to not affect majority of users on MacOS.

Fixes #7937
2021-08-12 08:33:02 -07:00
Pavel Feldman d2d71c4cdb
fix(reporter): group fixture initialization under before hooks (#8072) 2021-08-12 07:58:00 -07:00
Dmitry Gozman 44cdda43fe
feat(test runner): show stdio for failures in terminal reporters (#8150) 2021-08-11 16:44:19 -07:00
Yury Semikhatsky 59df541de5
fix: fulfill intercepted response with empty body (#8151) 2021-08-11 14:47:05 -07:00
Yury Semikhatsky 41770bf444
feat(webkit): response interception after redirects (#8017) 2021-08-11 11:14:50 -07:00
Pavel Feldman 1d4e2fe98c
feat(nth): make nth and visible selectors public (#8142) 2021-08-11 11:06:09 -07:00
Andrey Lushnikov aaf565c9ce
chore: update webkit version to 15.0 (#8143) 2021-08-11 10:48:21 -07:00
Andrey Lushnikov 7c017a6c1f
feat(firefox): roll firefox to M91 (#8137) 2021-08-11 10:13:09 -07:00
Yury Semikhatsky 252238f25c
feat(webkit): bump to 1530 (#7991) 2021-08-11 08:56:35 -07:00
Dmitry Gozman a5e0965087
feat(test runner): implement test.describe.serial (#8132) 2021-08-10 21:26:45 -07:00
Joel Einbinder 64da74fba8
feat(test-runner): allow non-ascii characters in the output dir path (#8093) 2021-08-10 21:24:35 -07:00
Pavel Feldman 21b510c6e7
chore(tracing): remove resource id (#8131) 2021-08-10 21:23:31 -07:00
Dmitry Gozman 708fa43f03
fix(tracing): clear recording state at the end of tracing.stop (#8120)
This ensures that any tracing operations can access the recording state.
When stopping, we await for all operations to finish and then clear the state.
To avoid reentrancy, a new flag `isStopping` is introduced.
2021-08-10 17:36:06 -07:00
Andrey Lushnikov 4975f4179e
feat: make React and Vue selectors experimental (#8106) 2021-08-10 17:21:16 -07:00
Andrey Lushnikov 792986c92d
feat: support props matching in react and vue selectors (#8104) 2021-08-10 17:10:14 -07:00
Pavel Feldman b800c1d35c
feat(reporter): render attachments in html report (#8125) 2021-08-10 17:06:25 -07:00
Pavel Feldman 76150f1bcb
chore(tracing): remove proactive snapshotSizes caching (#8126) 2021-08-10 17:06:14 -07:00
Dmitry Gozman c9c1ea6546
fix(test runner): disallow use(workerFixture) in describes (#8119)
Using a worker fixture forces a new worker. This might be unexpected
when part of the test file runs in one worker, and another runs
in another worker. Top-level use of worker fixtures is still fine.
2021-08-10 16:32:32 -07:00
Pavel Feldman a9e1916672
chore(tracing): do not produce cached resources maps (#8110) 2021-08-10 12:08:19 -07:00
Dmitry Gozman 9d6c7cdf20
fix(test runner): ensure we run after hooks after failures (#8102) 2021-08-10 10:54:05 -07:00
Dmitry Gozman 2744cd6c9a
feat(test runner): remove createContext fixture (#8109)
We can now use `browser.newContext()` or `browser.newPage()` instead.
2021-08-10 09:26:36 -07:00
Dmitry Gozman 3bf3318350
fix(test runner): make sure options, trace and screenshot apply to all contexts (#8083)
- Uses some auto fixtures to set default options and instrumentation on BrowserType.
- Moves screenshot, trace and video to worker-scoped fixtures.
- Throws in page/context when used from beforeAll/afterAll.
- Plumbs around BrowserType to be accessible from Browser and BrowserContext.
2021-08-09 18:09:11 -07:00
Pavel Feldman 8eac1e96d3
chore: add extensions to the trace resources (#8105) 2021-08-09 16:36:24 -07:00
Dmitry Gozman e638c4597f
fix(test runner): do not swallow afterAll failure (#8099) 2021-08-09 14:21:53 -07:00
Andrey Lushnikov 29f7dfa3ee
feat(chromium): roll Chromium to M94 (#8047) 2021-08-09 13:57:17 -07:00
Dmitry Gozman 87548f94c1
feat(test runner): support test fixtures in beforeAll/afterAll (#8082)
Each hook gets its own test scope. This is not too useful for
object fixtures like `page` (although one can use a page in
`beforeAll` to save storage state), but much more useful for option
fixtures like `viewport`.
2021-08-09 13:26:33 -07:00
Dmitry Gozman 41949e559e
Revert "feat(test runner): file scope fixtures (#7969)" (#8081)
This reverts commit 1bbf86d060,
leaving small improvements around.
2021-08-09 12:33:16 -07:00
Andrey Lushnikov f455b6edc0
feat: introduce vue selector engine (#8070)
This patch adds support for the `vue` selector engine that allows
selecting DOM elements based on the component name.

> **NOTE**: `vue` engine supports Vue2 and Vue2.

References #7189
2021-08-09 01:34:52 -07:00