Commit graph

1325 commits

Author SHA1 Message Date
Dmitry Gozman 0d54afab9c
feat(test runner): show beforeAll/afterAll hooks similar to tests (#10923)
Reporters now get notified about hooks start/end/steps.
2021-12-15 10:39:49 -08:00
Max Schmitt b310c6bd6c
chore(dotnet): make JSHandle inherit from IAsyncDisposable (#10905) 2021-12-14 12:40:56 -08:00
Pavel Feldman a82a3f1128
chore: move html report to package (#10898) 2021-12-13 16:38:26 -08:00
Joel Einbinder d8abb18c57
chore: allow private build-only packages (#10893) 2021-12-13 15:37:41 -08:00
Yury Semikhatsky 976af162b0
feat(tracing): pack sources to trace on the driver side (#10815) 2021-12-09 17:21:17 -08:00
Max Schmitt 5ba7903ba0
devops: migrate from master to main branch (#10303) 2021-12-07 22:58:33 -08:00
Max Schmitt 6e607bc109
chore: fix .NET docs comments which contained < or > (#10772) 2021-12-07 16:33:28 -08:00
Andrey Lushnikov 6ea607ce2a
devops: move docker publishing logic to main repo (#10768)
This patch:
- moves docker publishing to main repo
- extracts all the logic from the GHA YML file to Bash
- starts using the script in both `publish_canary.yml` and
  `publish_release.yml`

Fixes #10351
2021-12-07 15:28:47 -08:00
Andrey Lushnikov e680b733f5
devops: demand explicit arch when building docker (#10743)
Currently, arch is inhereted from host. This patch explicitly
sets desired docker build arch.

References #10351
2021-12-07 09:28:59 -08:00
Max Schmitt c3687a693b
chore(dotnet): fix channel generation for 1.17 (#10711) 2021-12-06 13:40:26 -08:00
Pavel Feldman 518d67add5
feat(test.info): expose information on the currently running test (#10708) 2021-12-06 09:25:11 -08:00
Max Schmitt ea9475d37d
chore: fix utils/generate_dotnet_channels.js after monorepo (#10710) 2021-12-03 18:51:25 -08:00
Pavel Feldman b9731a904e
chore: add validations into check_deps (#10661) 2021-12-01 18:14:13 -08:00
Pavel Feldman 541248006c
chore: remove create-playwright, it is in monorepo by mistake (#10654) 2021-12-01 13:09:35 -08:00
Max Schmitt 5c93066437
chore: fix bump_package_versions.js under Node.js 12 (#10629) 2021-12-01 18:26:36 +01:00
Max Schmitt 0936ce2bbd chore: add wget to Docker images 2021-11-30 19:35:48 +01:00
Max Schmitt 11a389c8f9
chore: have correct version in driver (#10374) 2021-11-29 18:05:43 +01:00
Max Schmitt af28a779be
docs: migrate JS assertions over to Java/Python assertions (#10431) 2021-11-24 21:58:35 +01:00
Max Schmitt 5a8010cf4f
fix: noncompliant Firefox User-Agents (#10492) 2021-11-23 18:56:22 +01:00
Ross Wollman 854f321532
feat(api): add explicit async testInfo.attach (#10121)
feat(api): add explicit async testInfo.attach

We add an explicit async API for attaching file paths (and Buffers) to
tests that can be awaited to help users ensure they are attaching files
that actually exist at both the time of the invocation and later when
reporters (like the HTML Reporter) run and package up test artifacts.

This is intended to help surface attachment issues as soon as possible
so you aren't silently left with a missing attachment
minutes/days/months later when you go to debug a suddenly breaking test
expecting an attachment to be there.

NB: The current implemntation incurs an extra file copy compared to
manipulating the raw attachments array. If users encounter performance
issues because of this, we can consider an option parameter that uses
rename under the hood instead of copy. However, that would need to be
used with care if the file were to be accessed later in the test.
2021-11-23 09:30:53 -08:00
Joel Einbinder bd5ae9e0cb
fix(dotnet): correctly mark members as deprecated (#9977) 2021-11-23 03:00:12 -05:00
Pavel Feldman daae8d4863
chore: open trace.playwright.dev (#10475) 2021-11-22 10:41:22 -08:00
Dmitry Gozman 0302e759df
feat(test runner): allow top-level test.fixme similar to test.skip (#10250)
```js
test.fixme('my test name', () => {});
```
2021-11-19 11:40:40 -08:00
Dmitry Gozman d9f849fb14
feat(test runner): replace declare/define with "options" (#10293)
1. Fixtures defined in test.extend() can now have `{ option: true }` configuration that makes them overridable in the config. Options support all other properties of fixtures - value/function, scope, auto.
```
const test = base.extend<MyOptions>({
  foo: ['default', { option: true }],
});
```

2. test.declare() and project.define are removed.

3. project.use applies overrides to default option values and nothing else. Any test.extend() and test.use() calls take priority over config options.

Required user changes: if someone used to define fixture options with test.extend(), overriding them in config will stop working. The solution is to add `{ option: true }`.

```
// Old code
export const test = base.extend<{ myOption: number, myFixture: number }>({
  myOption: 123,
  myFixture: ({ myOption }, use) => use(2 * myOption),
});

// New code
export const test = base.extend<{ myOption: number, myFixture: number }>({
  myOption: [123, { option: true }],
  myFixture: ({ myOption }, use) => use(2 * myOption),
});
```
2021-11-18 15:45:52 -08:00
Dmitry Gozman c470080aec
test: move grid tests to installation-tests (#10418)
- Determine the actual chrome version.
- Download chromedriver.
- Run tests.
2021-11-18 15:32:09 -08:00
Andrey Lushnikov f14e105051 chore: fixes to helper scripts 2021-11-17 17:02:29 -08:00
Pavel Feldman 70ede0d987
chore: use channel traits (#10389) 2021-11-17 15:26:01 -08:00
Andrey Lushnikov 32bc83d322
chore: be on the safe side with publishing release candidate (#10363)
Make sure we never publish any other version that contains `rc`
as part of the version.

References #10334
2021-11-16 15:38:14 -08:00
Andrey Lushnikov 6904d6c7e6
chore: support release candidate publishing (#10360)
Fixes #10334
2021-11-16 14:28:34 -08:00
Andrey Lushnikov fd3ec50cf6
devops: switch to LF line-endings in Git for text files (#10292)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-11-15 17:48:49 +01:00
Andrey Lushnikov 8ce6633937
chore: clean up docker image (#10260)
This patch:
- removes the Visual Regression bits from the images. These will
  probably be added back when it's ready for the prime time.
    * removes VNC && noVNC
    * removes Playwright Agent
- cleans up apt caches

This drops image size from 2.03GB to 1.91GB.
2021-11-11 15:35:57 -08:00
Dmitry Gozman f38f611478
chore: add npm run lint-tests (#10252) 2021-11-11 13:27:50 -08:00
Max Schmitt 96d7b21b34
devops: fix driver deployment (#10208)
follow-up for #10207
2021-11-10 11:21:25 +01:00
Andrey Lushnikov 8375bff1db
devops: support arm drivers for Mac and Linux (#10207)
- Move to node 16 for driver (Node publishes Mac arm64 builds since Node 16)
- Publish Mac Arm64 driver
- Publish Linux Arm64 driver
2021-11-10 01:19:05 -08:00
Andrey Lushnikov 7af0dc178b
devops: support beta deployment for Trace viewer (#10201)
Trace Viewer will have 3 deployments:
- Stable: https://trace.playwright.dev
- Beta (from release branch): https://trace.playwright.dev/beta
- Next (from master branch): https://trace.playwright.dev/next
2021-11-09 17:21:51 -08:00
Max Schmitt c98b8ebd2b devops: follow-up on Trace Viewer deployment (#10154) 2021-11-09 00:42:59 +01:00
Pavel Feldman 7b64161a37
feat(test-runner): allow specifying fine-grained trace options (#10147) 2021-11-08 15:39:58 -08:00
Max Schmitt 51910b7a01
devops: add Trace Viewer deployment (#10154) 2021-11-09 00:27:54 +01:00
Dmitry Gozman 9cebe60831
feat(reporters): augment non-stdio reporters with dot/line (#10003) 2021-11-03 08:25:16 -07:00
Nick Partridge a51ac39275
feat: add snapshotDir to set base snapshot directory (#9260) 2021-11-02 08:02:49 -07:00
Andrey Lushnikov e26a722d23
devops: fix publishing @next versions (#9963)
This patch:

- removes the "is this upstream check?" when publishing daily version
- fixes the bug when manually triggered builds were pushed under @beta
  tag

Drive-by: rename "tip-of-tree" flag to "next" for consistency.
2021-11-02 02:35:03 -07:00
Pavel Feldman 56ca3a18f5
feat(trace-viewer): show test name (#9957) 2021-11-01 21:23:35 -07:00
Max Schmitt 96d611ed7d
devops: publish devrelease:npm to beta on release branches (#9949)
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-01 17:29:56 -07:00
Yury Semikhatsky 13cc266b37
feat: add "commit" to possible waitUntil options (#9892) 2021-11-01 17:12:19 -07:00
Max Schmitt ce50b5d40a
chore: add script to update package/lock.json (#9919) 2021-11-01 20:09:23 +01:00
Dmitry Gozman 4f1027bdd0
feat(test runner): introduce TestInfo.parallelIndex (#9762)
This is a worker number between `0` and `workers - 1` that
does not change after worker process restart.
2021-11-01 10:37:34 -07:00
Pavel Feldman d6adff7792
fix(html): include html into the reporter types (#9907) 2021-10-31 11:06:28 -07:00
Yury Semikhatsky 9f3f25916e
fix(devops): do not upload -win32.zip to Azure (#9884) 2021-10-29 09:54:04 -07:00
Max Schmitt 82dd7c87ad
devops: do not publish Win 32 bit driver anymore (#9789) 2021-10-27 23:48:26 +02:00
Max Schmitt fef5c38b3e
chore: remove Win/32bit from registry (#9790) 2021-10-27 23:48:17 +02:00
Max Schmitt 113d425f15
chore: use Node.js 16 in Docker (#9824) 2021-10-27 23:48:10 +02:00
Andrey Lushnikov 7927920c35
fix(docker): do not export DISPLAY for everybody without XVFB running (#9795)
Fixes #9756
2021-10-26 13:21:18 -07:00
Joel Einbinder f2888395a6
fix: support even older node 12 (#9718) 2021-10-22 15:59:52 -04:00
Max Schmitt 60939a91b2
devops: release create-playwright over publish infra (#9683) 2021-10-22 10:13:49 +02:00
Max Schmitt 94d1fcf835
chore: move create-playwright build to build.js infra (#9687)
Co-authored-by: Joel Einbinder <joel.einbinder@gmail.com>
2021-10-22 10:13:05 +02:00
Andrey Lushnikov 39516c29d1
chore: fix //utils/print_versions.js (#9647) 2021-10-20 02:20:46 -07:00
Max Schmitt c60dcea3e5 chore: fix roll_browsers.js 2021-10-20 10:24:16 +02:00
Andrey Lushnikov 983cfde4d4
feat: introduce docker integration for Playwright Test (#9599) 2021-10-19 16:10:24 -07:00
Yury Semikhatsky ade2171c4b
fix(docs): APIRequest* variable names (#9621) 2021-10-19 09:37:17 -07:00
Joel Einbinder 53c866c0f2
fix(monorepo): explicitly list package.json exports instead of using glob patterns (#9584) 2021-10-19 12:28:02 -04:00
Dmitry Gozman 6d554a5e30
feat(reporter): expose more apis (#9603) 2021-10-19 08:38:04 -07:00
Yury Semikhatsky 6d727401bf
chore(fetch): rename ApiRequest* to APIRequest* (#9606) 2021-10-19 07:38:27 -07:00
Pavel Feldman e37660b068
feat(api): expose step location (#9602) 2021-10-18 21:06:18 -07:00
Pavel Feldman e31b96cc26
feat(tracing): make context.request appear in the trace (#9555) 2021-10-15 15:22:49 -07:00
Joel Einbinder 4c9d7d5ccc
chore(webpack): fix watch for webpack 5 (#9516) 2021-10-14 15:16:15 -04:00
Andrey Lushnikov cd92451b9f
fix: protocol generation in monorepo (#9513) 2021-10-14 11:14:50 -07:00
Joel Einbinder c8f875a193
chore: move test runner types into the playwright test package (#9472)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-14 11:55:08 +02:00
Pavel Feldman bb77912aee
chore: don't include babel compiled files in webpack bundles (#9491) 2021-10-13 19:27:50 -07:00
Max Schmitt 1a69b26db1
Revert "fix(build): don't compile our web files twice with babel (#9470)" (#9488)
This reverts commit 4d7b6b4b50.
2021-10-14 01:02:31 +02:00
Joel Einbinder 4d7b6b4b50
fix(build): don't compile our web files twice with babel (#9470) 2021-10-13 13:41:38 -07:00
Joel Einbinder 2a0a44bc09
chore: move diff_match_patch into the test package (#9475) 2021-10-13 13:38:26 -07:00
Joel Einbinder 74bb75ce03
chore: dont throw errors about deviceDescriptors.js on first watch (#9469) 2021-10-13 13:35:50 -07:00
Max Schmitt 617380ffee
chore: fix bots after adjusting package descriptions (#9454)
follow-up for: bcfd47343c
2021-10-13 00:07:21 +02:00
Pavel Feldman c0945d9d00
chore(trace): make trace viewer a pwa (#9438) 2021-10-12 14:42:50 -07:00
Max Schmitt ded1e718b5
types(test-runner): fix access worker fixtures in test.skip (#9447) 2021-10-12 17:44:00 +02:00
Pavel Feldman 9dfc0a3394
chore: make sw global in trace viewer (#9431) 2021-10-11 20:52:28 -07:00
Max Schmitt 9dd6bb8c6a Revert "feat(test-runner): allow parametrized tests that don't extend base (#9301)"
This reverts commit f63af830de.
2021-10-11 17:32:31 +02:00
Max Schmitt f884103b62 devops: do not publish create-playwright pkg 2021-10-11 17:24:05 +02:00
Max Schmitt 4ae3a07a75 devops: allow dirty tree when publishing ToT release 2021-10-11 17:13:21 +02:00
Joel Einbinder c89d5a50dd
chore: migrate to monorepo (#9421) 2021-10-11 16:52:17 +02:00
Max Schmitt 49a53e23df
chore: add iPhone 13 device family (#9392) 2021-10-08 22:43:23 +02:00
Michael Rienstra 09250fd265
chore: bump 'expect' dev dep from v26 to v27 (#8718)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-10-08 17:01:31 +02:00
Pavel Feldman bc71d20d0f
feat(request): add global request fixture (#9332) 2021-10-06 10:09:27 -07:00
Pavel Feldman f63af830de
feat(test-runner): allow parametrized tests that don't extend base (#9301) 2021-10-04 17:16:33 -07:00
Sidharth Vinod ec5e7495df
types(test-runner): Add github to built in reporters (#9283) 2021-10-04 11:31:26 +02:00
Dmitry Gozman edf07949be
test: use separate Playwright instance to automate inspector (#9270)
This will prevent inspector from picking up test actions.
2021-10-01 17:06:13 -07:00
Yury Semikhatsky 235eaca34a
fix(fetch): use data, form and multipart for different post data (#9248) 2021-10-01 12:11:33 -07:00
Nick Partridge b126a5685b
feat: add path option to toMatchSnapshot (#9156) 2021-10-01 09:15:44 -07:00
Pavel Feldman c4c6efe7c7
chore: dedupe return types in the dotnet api generator (#9181) 2021-09-27 13:25:07 -07:00
Dmitry Gozman d22dd4a4e7
feat(test runner): improve fixture typings for function fixtures (#9138)
When fixture value `R` is a function, TypeScript sometimes confuses
function `R` and function `async ({}, use) => {}`. This leads to
`any` types in the latter because it could be either of the functions
as TS thinks.

The solution is to only accept the second syntax, assuming that noone
passes fixture value that is a function as is:

```js
// This will stop working.
test.extend<{ foo: (x: number) => number }>({
  foo: x => 2 * x,
});

// This will get inferred types and autocomplete.
test.extend<{ foo: (x: number) => number }>({
  foo: async ({}, use) => {
    await use(x => 2 * x);
  },
});
```
2021-09-24 19:59:30 -07:00
Max Schmitt 3632231cc1 chore: fix utils/roll_browser.js after #9078 2021-09-24 17:09:54 +02:00
Pavel Feldman 0908dc98c8
chore: migrate expect(locator).toMatchText to protocol (#9117) 2021-09-23 16:46:46 -07:00
Max Schmitt 89aace688f
fix: make Serializable type any (#9059) 2021-09-23 11:06:34 -07:00
Dmitry Gozman 2afe76d86d
feat(launch): connect to process.env.SELENIUM_REMOTE_URL instead of local launch (#9056) 2021-09-22 21:13:32 -07:00
Dmitry Gozman e6f5404621
test: unflake "should timeout in socket while connecting" (#9093) 2021-09-22 17:08:49 -07:00
Yury Semikhatsky 79eb7744bc
feat(fetch): support options in playwright._newRequest (#9061) 2021-09-22 12:44:22 -07:00
Max Schmitt 5b93df0bab
chore(docker): upgrade to NPM 7 (#8915) 2021-09-22 16:38:50 +02:00
Dmitry Gozman cb7285a8c0
docs(test): separate TestOptions from Fixtures (#9000) 2021-09-17 17:13:47 -07:00
Pavel Feldman 63ff405e6e
fix(inspector): stop on all snapshottable actions (#8990) 2021-09-17 15:24:15 -07:00
Max Schmitt abc989eb3e
chore: use Node.js 14 (LTS) for driver (#8965) 2021-09-16 15:14:11 +02:00
Andrey Lushnikov 4f762ba90a
feat: introduce experimental general-purpose grid (#8941)
This patch adds a general-purpose grid framework to parallelize
Playwright across multiple agents.

This patch adds two CLI commands to manage grid:

- `npx playwright experimental-grid-server` - to launch grid
- `npx playwrigth experimental-grid-agent` - to launch agent in a host
  environment.

Grid server accepts an `--agent-factory` argument. A simple
`factory.js` might look like this:

```js
const child_process = require('child_process');

module.exports = {
  name: 'My Simple Factory',
  capacity: Infinity, // How many workers launch per agent
  timeout: 10_000, // 10 seconds timeout to create agent
  launch: ({agentId, gridURL, playwrightVersion}) => child_process.spawn(`npx`, [
    'playwright'
    'experimental-grid-agent',
    '--grid-url', gridURL,
    '--agent-id', agentId,
  ], {
    cwd: __dirname,
    shell: true,
    stdio: 'inherit',
  }),
};
```

With this `factory.js`, grid server could be launched like this:

```bash
npx playwright experimental-grid-server --factory=./factory.js
```

Once launched, it could be used with Playwright Test using env variable:

```bash
PW_GRID=http://localhost:3000 npx playwright test
```
2021-09-16 01:20:36 -07:00
Yury Semikhatsky c58f34fb2e
feat(fetch): introduce global fetch request (#8927) 2021-09-14 18:31:35 -07:00
Yury Semikhatsky 5141407c6b
fix(fetch): prefix request with underscore (#8922) 2021-09-14 12:56:09 -07:00
Pavel Feldman 16baaa317d
chore: remove stale html experiments (#8905) 2021-09-13 20:34:46 -07:00
Dmitry Gozman 6722d95a7a
docs: fix markdown parser swallowing lines after code snippets (#8904) 2021-09-13 18:48:16 -07:00
Dmitry Gozman d9d2d809a2
fix(test): make use in config accept option values only (#8828)
Also include default options in FullConfig/FullProject.
Also make examples compile and add a test.
2021-09-13 17:50:31 -07:00
Yury Semikhatsky b79be5d98d
feat(fetch): introduce failOnStatusCode (#8896) 2021-09-13 15:38:27 -07:00
Yury Semikhatsky f8c0f0d637
feat(fetch): support query params (#8893) 2021-09-13 14:29:44 -07:00
Pavel Feldman 7bbb63d143
feat(test): start authoring raw reporter (#8790) 2021-09-09 14:17:18 -07:00
Dmitry Gozman eca82eee4a
fix(video): reduce buffering in ffmpeg, avoid overbooking cpu (#8786)
This is an attempt to improve video performance when encoding
does not keep up with frames. This situation can be reproduced
by running multiple encoders at the same time.

Added `utils/video_stress.js` to manually reproduce this issue.

Observing ffmpeg logs, it does not do any encoding initially and
instead does "input analysis / probing" that detects fps and other
parameters. By the time it starts encoding (launches vpx and creates
the video file), we already have many frames in the buffer.
Reducing probing helps:
`-avioflags direct -fpsprobesize 0 -probesize 32 -analyzeduration 0`

Another issue observed is questionable default `-threads` value.
We compile without threads support, so logs say "using emulated threads".
For some reason, setting explicit `-threads 1` (or any other value)
makes it better when cpu is loaded.
2021-09-09 12:41:06 -07:00
Joel Einbinder e914f6bbc7
feat(network): remove Headers class and add headersArray method (#8749) 2021-09-07 10:27:53 -07:00
Yury Semikhatsky 152f6c6f1c
fix: support connectOverCDP over https (#8703) 2021-09-03 17:52:22 -07:00
Dmitry Gozman 962a33993f
fix(types): leave a single js-flavor=ts snippet in JSDoc (#8669) 2021-09-02 16:18:22 -07:00
Dmitry Gozman e691b649de
feat(test runner): describe.parallel (#8662) 2021-09-02 15:42:07 -07:00
Dmitry Gozman 947ff6755d
feat(types): generate JSDoc for things like test.describe.only (#8663) 2021-09-02 13:56:36 -07:00
Max Schmitt 5f6ec04cfe
fix(test-runner): add jest-matcher-utils to dependencies (#8501) 2021-09-02 19:56:30 +02:00
Max Schmitt 595f2296a6
chore: fix roll browser script which broke in #8579 (#8628) 2021-09-01 09:17:06 -07:00
Dmitry Gozman bee8ed117b
feat(html reporter): preview source code, steps and step errors (#8598) 2021-08-31 16:34:52 -07:00
Pavel Feldman e47bacdecb
fix(cookies): read response headers off extra info event, if any (#8526) 2021-08-30 09:58:44 -07:00
Max Schmitt 65dc238b32
chore(channels): generate dispatcher event types (#8540) 2021-08-30 18:43:18 +02:00
Dmitry Gozman bb5e44fbc4
docs: introduce overloads, generate JSDoc for overloads (#8485)
- Each overload, e.g. for `page.evaluate`, shows a nice autocomplete doc,
  not only the first one.
- We can have multiple overloads directly on the docs page, e.g.
  `test.skip(title, fn)` and `test.skip(condition, description)`.
  These overloads are internally named `Test.skip#1` and all aliased
  to `test.skip`.
2021-08-27 21:57:40 -07:00
Dmitry Gozman 17146b44c2
docs: validate links for all languages (#8478) 2021-08-26 10:59:33 -07:00
Dmitry Gozman a479cb6f52
fix(test runner): add an overload for test.skip(title, fn) (#8454)
We shipped this feature, but forgot to add the right overload to d.ts.
2021-08-25 14:36:36 -07:00
Dmitry Gozman e726c18788
chore: use 'mime' for various mimeType-extension mappings (#8426) 2021-08-25 11:18:35 -07:00
Anže Vodovnik 061b5c67f2
chore(dotnet): generate [Obsolete] on deprecated members (#8434) 2021-08-25 14:24:18 +02:00
Anish Karandikar e7aec6d82b
chore: minor edit to utils/update_canary_version.js (#8244) 2021-08-24 03:02:24 -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
Pavel Feldman 7b861dcee6 chore: dotnet connect + generator 2021-08-16 12:49:25 -07:00
Pavel Feldman f4c8fa3c56
fix(android): fix android tests (4) (#8211) 2021-08-16 08:13:02 -07:00
Pavel Feldman 5aff9db3ca fix(android): fix android tests (3) 2021-08-15 23:22:16 -07:00
Pavel Feldman dfb2616918 fix(android): fix android tests (2) 2021-08-15 23:04:45 -07:00
Pavel Feldman bdb772d710
fix(android): fix android tests (#8209) 2021-08-15 22:54:30 -07:00
Dmitry Gozman 052e0e197c
fix(types): allow specifying scope when overriding fixtures (#8139)
Otherwise it show a confusing error.
2021-08-11 10:44:15 -07:00
Dmitry Gozman a5e0965087
feat(test runner): implement test.describe.serial (#8132) 2021-08-10 21:26:45 -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
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
Pavel Feldman 290f601dae
feat(expect): introduce explicit default async expect timeout (#8071) 2021-08-07 22:08:56 -07:00
Pavel Feldman a8d404cd29
feat(test-runner): basic html reporter (#7994) 2021-08-05 13:36:47 -07:00
Pavel Feldman 19b673e467
fix(webpack): use production mode in production builds (#8007) 2021-08-05 12:07:43 -07:00
Anže Vodovnik 8792955f82
fix: generator incorrectly appends <T> to name of files (#8011) 2021-08-05 11:17:51 -07:00
Dmitry Gozman 1bbf86d060
feat(test runner): file scope fixtures (#7969)
These are reset after running tests from a single file.
2021-08-04 21:11:02 -07:00
Max Schmitt 385d489b35
feat(test-runner): re-enable web server (#7906)
Co-authored-by: Joel Einbinder <joel.einbinder@gmail.com>
2021-08-03 23:24:14 +02:00
Joel Einbinder a2cbba9c1c
chore(typescript): update to 4.3 (#7809) 2021-08-03 12:21:07 -04:00
Pavel Feldman 3b34e57ee4
feat(test-runner): introduce test.step (#7956) 2021-08-02 22:11:37 -07:00
Pavel Feldman 5803035c1b
feat(test-runner): introduce steps (#7952) 2021-08-02 17:17:20 -07:00
Pavel Feldman 4163cec93b
feat(test-runner): introduce actionTimeout and navigationTimeout (#7919) 2021-07-29 21:03:50 -07:00
Dmitry Gozman ba7d11e08b
fix(build): watch test types changes and update .d.ts (#7921) 2021-07-29 14:33:47 -07:00
Dmitry Gozman dd0b089d13
feat(test runner): createContext fixture for multi-context scenarios (#7779) 2021-07-29 14:03:58 -07:00
Dmitry Gozman 3f0485486d
feat(test runner): show errors from interrupted tests when available (#7874)
This shows the exact operation that is timing out (like click) when
user hits Ctrl+C.
2021-07-28 15:43:37 -07:00
Pavel Feldman 49e9f8c15e
feat(expect): add text and true matchers (#7873) 2021-07-28 12:07:11 -07:00
Dmitry Gozman 34b96a5759
chore: generate JSDoc for testing types from md reference (#7799) 2021-07-27 19:10:55 -07:00
Pavel Feldman b9aad5eb86
chore: move locators to strict selectors (#7866) 2021-07-27 15:27:36 -07:00
Pavel Feldman 0a6ae11da1
feat(strict): introduce strict mode (#7851) 2021-07-26 22:00:23 -07:00
Pavel Feldman 827fb80465
feat(locator): implement element locators (#7808) 2021-07-22 21:37:20 -07:00
Dmitry Gozman bfbba5a979
docs(test runner): api reference for reporter api (#7811) 2021-07-22 19:56:36 -07:00
Dmitry Gozman fd9c72015f
docs(test runner): API reference for builtin fixtures (#7805) 2021-07-22 14:47:12 -07:00
Max Schmitt 449c8a77dd
chore: disable source-map reference in JS for production builds (#7622) 2021-07-22 20:29:36 +02:00
Dmitry Gozman 8f1074c76e
docs(test-runner): initial API docs for test runner (#7732) 2021-07-22 11:01:18 -07:00
Max Schmitt acdc531efc
chore: migrate connect/overCDP to options instead of params (#7606) 2021-07-22 16:55:23 +02:00
Max Schmitt 86b21d5299
feat: add High DPI and Low DPI Desktop device descriptors (#7531) 2021-07-15 22:16:27 +02:00
Max Schmitt 1b92c674f9
feat: have up2date user-agents for WK and FF (#7644) 2021-07-15 17:41:23 +02:00
Pavel Feldman 3eb21e2322
feat(webkit): roll to r1515 (#7625) 2021-07-14 18:43:51 -07:00
Dmitry Gozman 7b795c9bc5
chore: fix roll_browser script (#7626) 2021-07-14 18:39:39 -07:00
Anže Vodovnik 61365b21ce
chore(dotnet): stop generating adapters (#7513) 2021-07-14 11:13:48 +02:00
Dmitry Gozman d1170b30fc
Revert "api: remove timeout option from isVisible and isHidden methods (#7414)" (#7600)
This reverts commit 9f71c96740.
2021-07-14 10:46:00 +02:00
Dmitry Gozman 0742cb9076
chore: move working with browser channels to Registry Executables (#7581) 2021-07-13 19:03:49 -07:00
Dmitry Gozman 57c5e4d8cf
chore: replace Registry api with Executable list (#7544) 2021-07-13 15:57:40 -07:00
Joel Einbinder 0f118618d4
fix(types): fix typo in event description (#7543) 2021-07-09 18:21:47 -05:00
Joel Einbinder e4698b5f6a
fix(types): add better descriptions for event emitter methods (#6417) 2021-07-08 11:24:46 -05:00
Max Schmitt 08da9d207e
chore: move processLauncher into src/utils (#7504) 2021-07-07 21:14:16 +02:00
Max Schmitt 98bcf26656
feat(test-runner): add webServer (#7368) 2021-07-07 20:19:42 +02:00
Dmitry Gozman 47885db116
chore: move install to Registry (#7433)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-06 20:59:16 -07:00
Pavel Feldman f52a53e21e
feat(trace-viewer): add nicer params rendering (#7448) 2021-07-02 16:45:09 -07:00
Pavel Feldman 99d7d196c5
feat(trace-viewer): render call info w/ params, result (#7438) 2021-07-02 14:33:38 -07:00
Andrey Lushnikov fe32d38414
feat: move browser fonts to tools section (#7443)
This way we not only fix Docker images, but also fix `npx playwright
install-deps` in virtual machines.
2021-07-02 02:09:31 -07:00
Andrey Lushnikov a6421c690b
devops: add missing fonts to docker (#7435)
These fonts are taken from Selenium docker image:

77db00ced0/NodeBase/Dockerfile (L57-L89)

Fixes #6907
2021-07-01 23:29:33 -07:00
Pavel Feldman e19d509c32
feat(icon): add an icon for trace viewer (#7430) 2021-07-01 17:05:14 -07:00
Pavel Feldman 8fb0454488
fix(trace-viewer): fall back to stable channels (#7429) 2021-07-01 15:26:55 -07:00
Dmitry Gozman 9f71c96740
api: remove timeout option from isVisible and isHidden methods (#7414)
It is unused and confusing.
2021-07-01 13:30:16 -07:00
Pavel Feldman f43b4efbc9
fix(trace-viewer): include waitFor* in trace viewer (#7413) 2021-06-30 17:56:48 -07:00
Pavel Feldman b1d66d54f0
fix(tracing): explicitly list actions to snapshot (#7376) 2021-06-29 15:28:15 -07:00
Max Schmitt 9f9201420a
fix(websockets): filter for text and binary frames (#7360) 2021-06-28 21:23:29 +02:00
Joel Einbinder 1a6d46d844
chore(typescript): compile with babel, lint everything with tsc (#6872) 2021-06-23 18:01:48 -07:00
Max Schmitt b3cc683e6b
chore hide Download._cancel (#7282) 2021-06-23 23:20:36 +02:00
Max Schmitt 07fc8cc777
fix(driver): fix compatibility when folder contains space (#7240) 2021-06-21 10:18:09 -07:00
Joel Einbinder 4a04a939a9
fix(docker): use node 14 not node 16 (#7212) 2021-06-17 16:14:10 -07:00
Max Schmitt 36c5395d2d
chore: rebase documentation and markdown classes from docs (#7172) 2021-06-17 08:19:24 +02:00
Andrey Lushnikov a3e4185b2f
chore: nuke 'webkit-technology-preview' experiment (#7164)
It proved to be unmaintainable due to the following reasons:
- determining upstream branch for the technology preview was a manual
and tedious process
- once determined, actual Safari Technology Preview occasionally
diverted from the branch
2021-06-15 23:58:30 -07:00
Andrey Lushnikov ec68b31dc4
feat: support chromium-with-symbols channel (#7135)
References #7130
2021-06-15 17:57:31 -07:00
Dmitry Gozman b625a04adc
types: move exported objects from index.d.ts to overrides.d.ts (#7152)
This way we generate these types right away, without duplicating them everywhere.
2021-06-15 15:06:18 -07:00
Pavel Feldman 9550106e1d
fix(test-runner): video: 'retain-on-failure' leaves empty folders behind (#7125) 2021-06-15 10:06:49 -07:00
Anže Vodovnik 66f9aeee17
chore: use .Core namespace for dotnet (#7103) 2021-06-15 11:47:24 +02:00
Max Schmitt 64b23040dc
chore: use new links in generated types (#7102) 2021-06-14 17:13:28 +02:00
Peng-Yu Chen 5f6d4a7b73
feat(download): adding a new Download._cancel method (#6236) 2021-06-12 22:23:22 +02:00
Pavel Feldman 6ec70bc0ac
api(dotnet): embrace nullable references (#6964) 2021-06-08 12:20:35 -07:00
Andrey Lushnikov 53d68bdb38
feat: firefox is stable by default (#6953)
This patch:
- rolls Firefox to v1269 which is now a firefox-stable build.
- introduces a new channel, `firefox-beta`, for our internal needs.

Fixes #6817
2021-06-08 09:34:17 -07:00
Dmitry Gozman f745bf1fbc
chore: bring in folio source (#6923)
- Source now lives at `src/test`.
- Former folio tests live at `tests/playwright-test`.
- We use `src/test/internal.ts` that exposes base test without
  Playwright fixtures for most tests (to avoid modifications for now).
- Test types live in `types/testFoo.d.ts`.
- Stable test runner is installed to `tests/config/test-runner` during `npm install`.
- All deps including test-only are now listed in `package.json`.
  Non-test deps must also be listed in `build_package.js` to get included.
2021-06-06 17:09:53 -07:00
Dmitry Gozman 69b734629c
fix: various test-related fixes (#6916)
- Closing inspector window resumes the script.
- Replace FOLIO_WORKER_INDEX with TEST_WORKER_INDEX.
- Account for `@playwright/test` stack traces.
2021-06-04 18:43:54 -07:00
Max Schmitt 064150f8dd
chore: use fs.promises API instead of promisify (#6871) 2021-06-03 18:55:33 +02:00
Dmitry Gozman 3de3a88930
feat(test): introduce npx playwright test (#6816) 2021-06-03 08:07:55 -07:00
Dmitry Gozman 33c2f6c31e
chore: do not bundle api.json and protocol.yml (#6841)
These are only needed for the driver, so bundle them
in the driver explicitly.
2021-06-02 14:01:05 -07:00
Max Schmitt 79b244a2f4
chore: use bash instead of sh in code blocks (#6847) 2021-06-02 18:23:06 +02:00
Andrey Lushnikov cb4adb1446
feat: install chrome-beta via cli (#6831)
This patch starts introduces `npx playwright install chrome-beta`
command and switches our Chrome Beta tests to it.
2021-06-01 18:26:12 -07:00
Dmitry Gozman d36bffb9a9
fix(connect): respect timeout in all scenarios (#6762)
Drive-by: fix console error in test arising from bad usage
of test websocket server in `connect()` calls.
2021-05-26 15:18:52 -07:00
Pavel Feldman bb0e196b15
api(dotnet): specialize waitForEvent (#6761) 2021-05-26 15:11:31 -07:00
Pavel Feldman 93648aafc0
chore: generate dotnet initializers (#6755) 2021-05-26 08:04:45 -07:00
Andrey Lushnikov c60974d922
feat: do not rely on chocolatey to install Google Chrome Beta (#6735) 2021-05-25 17:32:08 -07:00
Pavel Feldman 24a2326031
api(dotnet): use lists, not collections (#6746) 2021-05-25 15:26:44 -07:00
Pavel Feldman f7f08c9c02
api(dotnet): normalize enums, remove browser channel enum (#6738) 2021-05-25 14:33:27 -07:00
Pavel Feldman be95cf48b6
api(dotnet): make headers a dict (#6709) 2021-05-22 20:05:26 -07:00
Pavel Feldman 3bdb1c356f
api(dotnet): generate api in a specific folder (#6708) 2021-05-22 11:47:13 -07:00
Pavel Feldman 7d0b4c263f
chore: fix model types generation (#6706) 2021-05-22 10:13:58 -07:00
Darío Kondratiuk 544ca37c00
chore(dotnet): generate clone constructors for options (#6684) 2021-05-20 16:24:05 -07:00
Andrey Lushnikov ae35906fb5
devops: flakiness dashboard to support new folio report (#6677)
JSON report will change again in https://github.com/microsoft/playwright/pull/6656
This patch modifies azure function to accomodate to the new format.

Note: with the new notion of projects instead of per-test parameters,
we can actually compress dashboard per commit much more efficient. If
the format sticks, we'll follow-up with a `dashboard_compressed_v2.js`.
2021-05-20 09:46:50 -07:00
Joel Einbinder 447a0c4bb8
feat(types): export ScreenshotOptions (#6419) 2021-05-20 09:22:01 -07:00
Pavel Feldman ba637e6e41
chore: bring back dblclick alias (#6667) 2021-05-19 16:29:35 -07:00
Pavel Feldman e679d99421
chore: remove input files and selected option overrides (#6665) 2021-05-19 16:13:17 -07:00
Pavel Feldman 1f22673c29
api(dotnet): introduce RunAndWaitForAsync (#6660) 2021-05-19 15:49:44 -07:00
Pavel Feldman 972f0ec2b5
api(dotnet): migrate to options (#6651) 2021-05-18 23:33:52 -07:00
Pavel Feldman 36c0765c98
api(dotnet): remove serializer options (#6641) 2021-05-18 10:55:03 -07:00
Pavel Feldman d2938d0a30
api(dotnet): generate options (#6630) 2021-05-18 07:55:04 -07:00
Max Schmitt 9592486225
feat: use up2date Chromium user-agents for device descriptors (#6594) 2021-05-18 09:29:48 +02:00
Pavel Feldman 1e6f899c82
chore(dotnet): simplify enum generation (2) (#6628) 2021-05-17 22:28:14 -07:00
Pavel Feldman 50d24387b4
chore(dotnet): simplify enum generation (#6623) 2021-05-17 21:27:41 -07:00
Pavel Feldman 7eca573eb4
api(dotnet): remove some overrides (#6622) 2021-05-17 20:10:32 -07:00
Pavel Feldman 691644666e
chore: jsify dotnet generator (#6620) 2021-05-17 19:16:14 -07:00
Pavel Feldman c497c32ec9 fix(dotnet): follow up, add WaitFor(action) in order 2021-05-16 19:02:22 -07:00
Pavel Feldman 3aa9ab88ef
api(dotnet): introduce WaitFor*(action) (#6610) 2021-05-16 19:01:14 -07:00
Pavel Feldman 333397c0e8
chore(dotnet): fix generator escaping, make script lf-friendly (#6606) 2021-05-16 09:58:40 -07:00
Darío Kondratiuk 2477dccee9
chore(dotnet): generate As as a method (#6576) 2021-05-14 07:48:07 -07:00
Pavel Feldman 7b844c5fab
chore(tracing): simplify resource treatment (#6571) 2021-05-13 20:41:32 -07:00
Darío Kondratiuk c4321887d1
chore(dotnet): remove set properties (#6531) 2021-05-13 12:00:45 -07:00
Manu Chambon 2697f8380f
devops(docker): upgrade to node 16 (#6498) 2021-05-12 09:23:38 -07:00
Darío Kondratiuk 5aa00d1e5e
docs(dotnet): fix link regex on xmldocs (#6528) 2021-05-12 08:08:12 -07:00
Max Schmitt e0aaef5eab
docs: get rid of dollar sign prefix in code snippets (#6494) 2021-05-11 20:47:48 +02:00
Max Schmitt 5f7739962c
chore: get rid of trailing spaces in types.d.ts (#6481) 2021-05-10 16:26:11 +02:00
Andrey Lushnikov 7906a8f2f5
feat: add best-effort support for Ubuntu 21.04 (#6429)
With this patch:
- `npx playwright install-deps` will install deps on Ubuntu 21.04
- launch doctor knows the package<->lib mapping for Ubuntu 21.04

**NOTE:** our webkit build, however, doesn't work on Ubuntu 21.04. Since
this is not LTS release, we're doing best-effort here.

Fixes #6405
2021-05-06 10:37:06 -07:00
Andrey Lushnikov 298b7aef2a
devops: install Google Chrome Beta testers (#6389) 2021-05-06 10:07:00 -07:00
Anže Vodovnik 67f98d00eb
chore(dotnet): split unions into multiple overloads (#6400) 2021-05-06 10:23:10 +02:00
Jason Harwig 42a5566653
fix(types): fix waitForSelector typing to not union null when appropriate (#6344)
Previously when options were defined, but no `state` key was provided,
the types would return null as an option. Even though the default state
is `visible` and shouldn't allow `null`.

Tests updated to fail appropriately and new tests added for this case.
2021-05-05 13:03:27 -07:00
Anže Vodovnik dddfbaaeb2
chore(dotnet): run dotnet format after generation (#6376) 2021-05-03 10:23:36 +02:00
Max Schmitt a59a494e64
chore: drop support for Node.js 10 (#6371) 2021-04-30 07:49:10 -07:00
Darío Kondratiuk ba652c177f
docs: inline parsing should honor template location (#6289) 2021-04-29 21:16:09 -07:00
Darío Kondratiuk bb8453972a
chore(dotnet): don't generate setters on interfaces (#6293) 2021-04-29 21:10:59 -07:00
Darío Kondratiuk d9015b99d0
chore(dotnet): translate Javascript words to csharp (#6321)
There are some words that we can replace so we don't need to write csharp specific comments
2021-04-29 21:08:46 -07:00
Max Schmitt 1b771ed360
docs(python): add Error base class (#6315) 2021-04-28 10:41:46 +02:00
Pavel Feldman 922d9ce1fb
chore(tracing): fix some of the start/stop scenarios (#6337) 2021-04-27 11:07:07 -07:00
Pavel Feldman 97cf86d20a
chore: make instrumentation per-context (#6302) 2021-04-23 18:34:52 -07:00
Yury Semikhatsky fd31ea8b0d
feat: support extra http headers in browserType.connect() (#6301) 2021-04-23 14:52:27 -07:00
Yury Semikhatsky f63f92be5e
chore: repair run_static_server.js (#6298) 2021-04-23 11:42:54 -07:00
Anže Vodovnik 6e9b76fa8f
chore(dotnet): enable nullable enum arguments (#6271) 2021-04-23 11:22:38 +02:00
Andrey Lushnikov cffab1f5c7
chore: update //utils/roll_browser.js script to roll anything (#6279) 2021-04-22 17:45:34 -07:00
Darío Kondratiuk 7dccfd4227
chore(dotnet): generate IDownload.createReadStream method (#6192) 2021-04-19 13:28:57 -07:00
Dmitry Gozman 243ede5dfb
feat(waitForEvent): allow async predicate (#6201)
We await the predicate now. For synchronous predicates,
nothing should change becase the await will finish before
the next protocol message arrives (thanks to `makeWaitForNextTask`).
2021-04-19 10:32:51 -07:00
Andrey Lushnikov 2c34eaeaf9
devops: better upload flakiness dashboard upload script (#6176)
This patch moves some duplicated logic from YAML workflows to
the dashboard uploading script.
2021-04-19 08:39:10 -07:00
Dmitry Gozman fff1f3d45c
chore: simplify remote connection protocol (#6164)
This changes the root object from RemoteBrowser to Playwright,
similar to local driver connection. This way, any remote connection
gets a Playwright object.

This also starts reusing PlaywrightServer class, and introduces
`cli run-server` hidden command that runs ws server on the
specified port.

Previous structure:
```
RemoteBrowser
  - browser (using ConnectedBrowser for remote-specific behavior)
  - selectors (special instance for this remote connection)
```

New structure:
```
Playwright
  - ...
  - selectors (special instance for this remote connection)
  - preLaunchedBrowser (using ConnectedBrowser for remote-specific behavior)
```
2021-04-12 11:14:54 -07:00
Dmitry Gozman bd8433ba49
test: cleanup various testing env variables (#6155) 2021-04-09 07:59:09 -07:00
Joel Einbinder 63d0d466e3
feat(cdp): replace wsEndpoint with protocol neutral endpointURL (#6141) 2021-04-08 14:55:28 -07:00
Joel Einbinder 779355ad51
feat(types): make the template on BrowserType optional (#6142)
This makes it much nicer to use `BrowserType` because it no longer has a template.

Technically a breaking change because of the rare edge case where someone used their own non-browser type inside the template, but I don't consider that intended behavior and think this is fine.
2021-04-08 10:27:24 -07:00
Darío Kondratiuk e82b546085
docs(dotnet): generate arguments in a consistent order (#5800) 2021-04-08 14:21:10 +02:00
Andrey Lushnikov 0c00891b80
devops: prepare flakiness dashboard cloud function to Android tests (#6129) 2021-04-07 12:09:17 -07:00
Anže Vodovnik b37116d7b1
chore(dotnet): fix generating from parent directory (#6095) 2021-04-07 17:17:57 +02:00
Darío Kondratiuk fd40c92a92
chore(dotnet): generate generic EventHandlers (#6076) 2021-04-06 12:23:26 +02:00
Darío Kondratiuk 33198c3d1a
chore(dotnet): format generateDotnetApi (#6075) 2021-04-06 12:21:31 +02:00
Darío Kondratiuk e5b011ae74
chore(dotnet): remove Get prefix (#6074) 2021-04-06 11:55:24 +02:00
Andrey Lushnikov 1a44f68155
devops: migrate flakiness dashboard to the new folio reporter format (#6089)
New folio changed the JSON report, so we have to keep with the changes.

The most notable changes:
- there are no parameters any more. We recreate these as `testInfo.data`
  arguments that are saved under test result's data.
- `test.runs` are renamed into `test.results`

I didn't find other changes so far - let's see if this works in the
cloud!
2021-04-05 17:35:34 -07:00
Dmitry Gozman e3cf675624
test: remove a copy of folio, use upstream (#6080) 2021-04-05 13:23:49 -07:00
Pavel Feldman a7630c91d5
api: remove Chromium* classes (#6040) 2021-04-01 18:47:14 -07:00
Yury Semikhatsky 28b14fc5f7
feat(docker): use playwright install-deps for building docker image (#5995) 2021-03-29 23:48:54 -07:00
Darío Kondratiuk fdb3c1f153
chore(dotnet): don't generate set only properties (#5982) 2021-03-29 20:06:44 -07:00
Darío Kondratiuk 5c1e8dcd80
chore(dotnet): fix properties with Is prefix (#5981) 2021-03-29 20:05:51 -07:00
Yury Semikhatsky 8c6822bd32
fix(docker): update native deps and docker files for chromium (#5989) 2021-03-29 13:43:31 -07:00
Darío Kondratiuk bc6dc1d108
chore(dotnet): treat file as a reserved word (#5960)
Avoid collision with System.IO.File and unify handling reserved file names and enum values.
2021-03-29 10:22:06 +02:00
Darío Kondratiuk 779037a77e
chore(dotnet): avoid adding two prefixes (#5974) 2021-03-27 09:58:36 -07:00
Darío Kondratiuk f791495624
chore(dotnet): Improve enum values (#5939) 2021-03-25 16:45:41 +01:00
Dmitry Gozman 2cf4caa4cf
chore: implement mixins in protocol.yml (#5932) 2021-03-24 06:37:10 -07:00
Anže Vodovnik 3a27bdd3e6
chore(dotnet): improve name generation for objects (#5860) 2021-03-23 10:44:50 +01:00
rob salmond 1bcbb15299
set system default python3 to python3.8 (#5892) 2021-03-22 12:29:54 -07:00
Anže Vodovnik fbb4626442
chore(dotnet): support for optional properties in generated objects (#5889) 2021-03-19 17:19:42 +01:00
Pavel Feldman ad5c028f37
test(android): run selected page tests on android (#5879) 2021-03-18 19:31:54 -07:00
Pavel Feldman c4410d3f4d Revert "chore(docs): add support for language specific notes (#5810)"
This bubbled up in Python comments.
2021-03-18 13:50:17 -07:00
Darío Kondratiuk de16d17726
docs(dotnet): move options arguments last (#5856) 2021-03-17 21:17:45 -07:00
Anže Vodovnik 693e5699ac
chore(docs): add support for language specific notes (#5810) 2021-03-17 15:20:37 +01:00
Anže Vodovnik 36a61c36b3
docs(dotnet): ability to generate generics and null on path args (#5824) 2021-03-16 09:19:30 -07:00
Pavel Feldman c4578f19f2
chore: organize per-browser dependencies (#5787) 2021-03-11 20:22:50 -08:00
Anže Vodovnik 43de259522
fix(xmldocs): over-greedy regex for md links and clean-up (#5798)
* fix(xmldocs): over-greedy regex for Markdown links
* fix(dotnet): missing using and extra spaces
2021-03-11 18:07:45 +01:00
Anže Vodovnik 42e9a4703c
chore(xmldocs): resolve MD links to XmlDocs tags (#5782) 2021-03-10 09:07:23 -08:00
Anže Vodovnik 0bc39f2786
chore(generator): change dotnet default value from null to default (#5764) 2021-03-09 09:16:15 -08:00
Pavel Feldman 1a94ea5f6c
chore: refactor trace viewer to reuse snapshot storage (#5756) 2021-03-08 19:49:57 -08:00
Yury Semikhatsky ea9485ec9a
docs: document PlaywrightException in java (#5743) 2021-03-05 15:32:33 -08:00
Anže Vodovnik ad27f3bf02
docs(xml): code escaping for XMLDocs generation (#5703) 2021-03-03 19:39:06 +01:00
Anže Vodovnik 23b035b052
chore(dotnet): add documentation on result classes and include property name (#5694) 2021-03-03 19:36:27 +01:00
Andrey Lushnikov 5ad8da962b
devops(docker): fix typo in docker build (#5705) 2021-03-03 10:26:23 -08:00
Anže Vodovnik 1eb0f42981
chore(dotnet): unique name for generated files, change root namespace (#5678) 2021-03-02 18:29:29 +01:00
Kevin Brotcke 3b9d4f2b49
docs: Add ffmpeg to roll_browser.js usage output (#5643)
This is a small change to show that ffmpeg is a supported browser parameter
value in the script usage. Although, the whole file should probably be
refactored now to something more generic like roll_download.js since ffmpeg
is just reusing the logic and isn't a browser.
2021-03-01 19:59:20 -08:00
Andrey Lushnikov f637b0302d
devops(docker): fix registry to be accessible by Azure Pipelines user (#5672)
Turns out Azure Pipelines is doing a few modifications to the base
container. One of the important modification is that they add a new
user to the container that has a passwordless sudo permissions. This
user is used later on to run all the pipeline steps.

This patch makes sure our shared registry inside the docker containers
is accessible to all the users.

Fixes #5635
2021-03-01 17:24:07 -08:00
Yury Semikhatsky c390f3950f
fix: include parsed .md spec into api.json (#5662) 2021-03-01 13:00:01 -08:00
Anže Vodovnik 86c7d77967
chore(dotnet): handle setters and ordering bug (#5654) 2021-03-01 18:49:14 +01:00
Yury Semikhatsky 6c9e806672
docs: add java snippets to the examples in guides (#5638) 2021-03-01 09:18:44 -08:00
Anže Vodovnik 28f3fe8e48
chore(dotnet): generate dotnet API from Markdown (#5089)
Introduces the generator for the .NET API surface to be used by the .NET language port to ensure greater consistency with other language ports.
2021-02-26 18:04:03 +01:00
Dmitry Gozman 96e099aca3
docs: use "argument: <type>" notation for events (#5626) 2021-02-25 22:22:47 -08:00
Yury Semikhatsky cb0a890a09
docs: java snippets for api classes (#5629) 2021-02-25 22:03:39 -08:00
Pavel Feldman 992f808210
chore(snapshot): implement in-memory snapshot (#5624) 2021-02-25 13:09:26 -08:00
Pavel Feldman 2ff6d54f26
chore: extract snapshotter from trace viewer (#5618) 2021-02-25 09:33:32 -08:00
Pavel Feldman 6bf3fe8432
chore: make trace model a class (#5600) 2021-02-24 14:22:34 -08:00
Pavel Feldman f71bf9a42a
chore: move trace viewer into server (#5597) 2021-02-24 13:39:51 -08:00
Andrey Lushnikov 3dd06815b9
chore: udpate scripts that generates release draft (#5556) 2021-02-24 13:26:44 -08:00
Pavel Feldman 48c237b3cf
chore: move trace to server (#5565) 2021-02-23 22:08:14 -08:00
Joel Einbinder 180446d20f
fix(types): restore electron types (#5574) 2021-02-23 20:29:10 -08:00
Dmitry Gozman 5cb914b2fe
fix(types): do not use import('electron') (#5572) 2021-02-23 18:48:34 -08:00
Pavel Feldman 65bf44d52b
docs(inspector): add initial inspector docs (#5541) 2021-02-21 18:36:39 -08:00
Pavel Feldman b2227c1bcf
feat(inspector): allow selecting file (#5483) 2021-02-17 14:05:41 -08:00
Anže Vodovnik 8f3a6c6b45
chore(docs): improve xmldoc inline code parsing (#5480) 2021-02-17 10:45:15 -08:00
Naresh cc749fe679
fix(android): added recent apps button (#5331) 2021-02-16 19:37:46 -08:00
Anže Vodovnik 9dd443e1aa
chore(docs): add ability to generate xmldocs (#5164)
Introduces a naive XmlDocs renderer for Markdown nodes. It needs to be called separately for now.
2021-02-15 19:41:40 +01:00
Pavel Feldman aef052aecc
chore: pause on input in pwdebug mode (#5427) 2021-02-12 10:11:30 -08:00
Dmitry Gozman 3e7b8e3d74
test: add basic end-to-end driver test (#5426)
- Introduce internal "out of process" start()/stop() mode.
- This mode is used both in regular tests and installation tests.
- Emulate basic driver installation, browser download and running.
2021-02-12 09:05:32 -08:00
Yury Semikhatsky 0c8d8a3d0f
fix(docs): correctly detect type-only overrides (#5430) 2021-02-11 23:43:59 -08:00
Andrey Lushnikov 5ea6d6eefd
fix(docker): avoid symlink hack in Docker images (#5429)
Instead of symlinking pwuser's registry to root's registry, we now
use the `PLAYWRIGHT_BROWSERS_PATH` variable to define a single
browser registry across the docker image, accessible for all
users.

Fixes #4485
2021-02-11 18:33:30 -08:00
Pavel Feldman 449adfd3ae
chore(recorder): move recording output into the gui app (#5425) 2021-02-11 17:46:54 -08:00
Dmitry Gozman 99f8e1cf63
docs: document Android and friends (#5415)
These are experimental, currently available through `_android`.
2021-02-11 10:31:57 -08:00
Pavel Feldman 6e6e36b565
chore: move progress log into the metadata (#5411) 2021-02-10 21:50:29 -08:00
Pavel Feldman a06cf70d28
chore: pass parsed stack in metainfo (#5407) 2021-02-10 18:52:28 -08:00
Yury Semikhatsky d39d2eaf4c
docs: support method overrides (#5405) 2021-02-10 14:27:20 -08:00
Dmitry Gozman c12374ea07
feat(docs): improve link validation (#5394) 2021-02-10 07:13:14 -08:00
Andrey Lushnikov e2013b29e3 devops: fix driver publish 2021-02-09 17:02:24 -07:00
Andrey Lushnikov 1240dd48cb
devops: start publishing canary at midnight every day (#5343)
This patch:
- starts publishing canary NPM package at 00:10AM UTC
- canary version is published from default (`master`) branch and is 
  named with a date. E.g. for a version published on Feb 5, 2021, the
  version would be `1.8.0-alpha-feb-5-2021`
- versions from release branches are still published on every commit and have the 
  regular commit timestamp suffix
2021-02-09 14:28:04 -08:00
Yury Semikhatsky adeb2348cf
docs: change WebSocket.frame* event type to WebSocketFrame in java (#5384) 2021-02-09 12:11:48 -08:00
Andrey Lushnikov d499cf08d1
refactor: remove browserPaths in favor of Registry class (#5318)
This patch introduces a new Registry class that incapsulates
all logic regarding browsers and their paths.

Fixes #5278
2021-02-08 16:02:49 -08:00
Andrey Lushnikov 32ba29a143 devops: introduce compressed dashboard
Compressed dashboard is 10 times smaller yet has all the data to
render flakiness.

Drive-by: remove old dashboard implementations since they are no
longer used.
2021-02-06 22:12:35 -07:00
Joel Einbinder 3d14780bcb
fix(docker): add fonts-liberation for chromium (#5344) 2021-02-06 09:05:45 -08:00
Yury Semikhatsky a1b3164864
docs: fix nested union handling (#5341) 2021-02-05 16:32:13 -08:00
Dmitry Gozman 983e04374a
chore: fix build/packaging for recorder and traceviewer (#5338) 2021-02-05 16:19:09 -08:00
Yury Semikhatsky 4b74f5693c
docs: add enum aliases (#5335) 2021-02-05 15:28:48 -08:00
Anže Vodovnik ff06399afd
docs(csharp): events convention based naming fix for csharp (#5238)
* docs(gen): Updating events names to camelCase.
* docs(gen): updating generator to match new assumption for event names
* docs(gen): renaming references to events
2021-02-04 19:34:09 +01:00
Anže Vodovnik cf96b15051
fix(docs): ignore case when validating order of events and methods (#5309) 2021-02-04 19:19:38 +01:00
Joel Einbinder 3126fee780
fix(lint): correctly find api.ts on windows (#5308) 2021-02-04 05:31:59 -08:00
Andrey Lushnikov 3c36322c72
feat(ffmpeg): roll FFMPEG to r1005 (#5303)
Drive-By: update `//utils/roll_browser.js` script to support FFMPEG

References #5278
2021-02-03 21:15:09 -08:00
Pavel Feldman 1db5ef24a8
docs: document electron api (#5229) 2021-02-01 11:43:26 -08:00
Yury Semikhatsky e71ef7949b
docs: add java traits to some methods (#5222) (#5243) 2021-02-01 11:13:13 -08:00
Pavel Feldman bf8c30a88b
feat(ui): extract recorder sidebar into a window (#5223) 2021-01-31 16:37:13 -08:00
Pavel Feldman 82bb92f103 Revert "docs: add java traits to some methods (#5222)"
Breaks playwright.dev
2021-01-30 22:15:56 -08:00
Yury Semikhatsky 9c4668685d
docs: add java traits to some methods (#5222) 2021-01-29 19:15:25 -08:00
Yury Semikhatsky a1d875ed97
docs: make inline refs us parameter name instead of its alias (#5219) 2021-01-29 16:02:17 -08:00
Pavel Feldman 975519150e
chore: centralize playwright creation, bind context listeners to instance (#5217) 2021-01-29 16:00:56 -08:00
Anže Vodovnik dbcdf9dcd7
chore(docs): aliases for dotnet/chsarp docs. (#5162)
Co-authored-by: Yury Semikhatsky <yurys@chromium.org>
2021-01-29 11:08:22 -08:00
Yury Semikhatsky 21041bc331
docs: support argument overrides (#5200) 2021-01-28 17:51:41 -08:00
Pavel Feldman 79e00e4911
feat(ui): more recorder uis (#5208) 2021-01-28 14:25:10 -08:00
Pavel Feldman 8d8fa4c322
chore: move trace viewer to the src/web (#5199) 2021-01-28 09:33:20 -08:00
Anže Vodovnik f2ef7f51b8
Link patching now picks up multiple in single line (#5163) 2021-01-27 16:21:27 -08:00
Andrey Lushnikov 5358fed49a chore: fix typo 2021-01-27 20:56:46 +03:00
Andrey Lushnikov a4f59dd57c
devops: upload host arch as part of test report (#5167) 2021-01-27 09:05:31 -08:00
Andrey Lushnikov 9de0a5a963
chore: add Python to docker images (#5139)
This adds +100MB to network transfer size but enables our
users to use playwright-python from-inside docker container.
2021-01-27 08:51:51 -08:00
Pavel Feldman 01d6f83597
chore: introduce debug toolbar (#5145) 2021-01-25 14:49:26 -08:00
Pavel Feldman 464fdc1800
chore: make recorder a supplement (#5131) 2021-01-24 19:21:19 -08:00
Pavel Feldman be9bef513e
chore: move recorder to server side (#5128) 2021-01-24 08:44:11 -08:00
Andrey Lushnikov 8ad7318119
devops: fix publish script to return code zero when tip-of-tree moved (#5123) 2021-01-23 04:09:37 +03:00
Yury Semikhatsky 71d82a5a57
fix(lint): fix type test to work nicely with close param (#5114) 2021-01-22 14:41:24 -08:00
Pavel Feldman 8f06761ba1
docs: link to the new docs from source (#5092) 2021-01-21 14:35:20 -08:00
Dmitry Gozman 0d0a6e8f82
devops: update publish script to work for @next (#5072) 2021-01-20 13:38:03 -08:00
Dmitry Gozman a7949173e0
devops: always check git status before publishing to npm (#5070) 2021-01-20 13:08:51 -08:00
Dmitry Gozman 17e953c2d8
chore: make generate_types not depend on the source (#5040)
The only dependency is a list of devices that we
can turn into a js file.
2021-01-17 12:09:20 -08:00
Pavel Feldman 41e394bc22
docs: allow overriding return types (#5031) 2021-01-15 16:01:41 -08:00
Pavel Feldman 6e94c11034
docs: prepare docs for tabbed snippets (#5026) 2021-01-15 12:30:10 -08:00
Andrey Lushnikov 3ed9f2d63e
chore: disable v1 flakiness dashboard (#5015)
Computing V1 flakiness dashboard was very expensive (>1 minute for AZ
function to run).

Disable it now in favor of V2 flakiness dashboard that proves to be very
reliable.
2021-01-14 21:43:42 +03:00
Pavel Feldman 8354a91d0e
docs: add python snippets for api classes (#5011) 2021-01-14 07:48:56 -08:00
Pavel Feldman 5408e26e02
docs: add python snippets for class Page (#5010) 2021-01-13 21:03:35 -08:00
Dmitry Gozman e3ebba5573
chore: cleanup code that is not used by cli anymore (#5005) 2021-01-13 17:02:53 -08:00
Andrey Lushnikov fcbfbe6fa1
devops: fix azure function bugs (#4998)
This patch:
- starts processing dashboards serially to avoid hitting node.js azure
  function heap limit
- fixes typo in the new `dashboards_raw` processor
2021-01-13 14:15:38 +03:00
Andrey Lushnikov 8316dee44d
devops(flakiness): persist all test reports, aggregated per commit sha (#4991)
We can either load it raw as-is and process later on the front-end side,
or post-process while experimenting with different storage solutions.
2021-01-13 04:31:48 +03:00
Pavel Feldman cac119f3bf
docs: python api review (#4986) 2021-01-12 12:14:27 -08:00
Pavel Feldman 7a8214cd95
chore: prepare non-api docs for non-js variants (#4969) 2021-01-11 09:34:49 -08:00
Pavel Feldman 4dbbb47583
docs: document Python's expect_event methods (#4963) 2021-01-10 21:00:52 -08:00
Pavel Feldman e67d89747a
chore: update docs to cover python specifics (#4960) 2021-01-10 18:18:35 -08:00
Pavel Feldman 3b617b3709
docs: validate member links (#4955) 2021-01-08 16:36:52 -08:00
Joel Einbinder 31d980fc92
chore(webpack): minify injected sources (#4946) 2021-01-08 16:15:05 -08:00
Pavel Feldman 114d586f07
chore: add python aliases (#4949) 2021-01-08 15:00:14 -08:00
Pavel Feldman 15c0a29526
docs: split nodejs and python links (#4942) 2021-01-07 23:37:53 -08:00
Dmitry Gozman 2e05feac25
feat(cli): bring in trace viewer (#4920) 2021-01-07 16:15:34 -08:00
Pavel Feldman 54c06a1b45
chore: mark methods as js-only, add python-specific methods (#4938) 2021-01-07 16:12:25 -08:00
Pavel Feldman e56832b646
chore: language-specific members api (#4936) 2021-01-07 15:00:04 -08:00
Dmitry Gozman ffa169ba92
chore: use chokidar for build (#4932) 2021-01-07 13:26:34 -08:00
Pavel Feldman bdf12e32e4
docs: split api-body into classes (#4931) 2021-01-07 11:46:05 -08:00
Pavel Feldman 4cd989c653
docs: introduce deprecation annotation and any type (#4930) 2021-01-07 11:11:40 -08:00
Pavel Feldman 913f85249f
docs: make all links relative (#4926) 2021-01-06 20:02:51 -08:00
Dmitry Gozman 4ff7e1a419
chore: cleanup our build system (#4903)
- Consolidate our build and watch to a single build.js file.
- Update contributing docs.
- Remove unused scripts and package.json script entries.
2021-01-06 12:41:17 -08:00
Pavel Feldman 2311c282d6
docs: pref docs to be language-specific (#4916) 2021-01-06 11:59:29 -08:00
Dmitry Gozman f672033e11
chore: bundle small build of highlight.js (#4907)
This follows the "build from source" configuration (https://highlightjs.org/usage/#source)
and reduces the footprint from 2mb to 100kb.
2021-01-06 09:31:42 -08:00
Andrey Lushnikov 6b3dcb01aa
chore: fix randomly crashing build-playwright-driver.sh (#4909)
Some googling showed that CI systems might not be capable of
handling too much STDOUT that `tar -v` produces.
([source](https://stackoverflow.com/questions/37540792/jenkins-script-tar-write-error)).

This patch:
- removes verbose flag from tar to reduce output
- sets `+x` to get some logging for the script
- silences zip output
2021-01-06 14:13:01 +03:00
Pavel Feldman b6cd385a67
docs: mark some paths as such (#4896) 2021-01-05 17:05:43 -08:00
Dmitry Gozman a9c776f56e
chore: watch to regenerate api.json (#4901) 2021-01-05 15:25:25 -08:00
Dmitry Gozman d47fb6a780
feat(cli): build driver and upload to cdn (#4841) 2021-01-05 14:04:47 -08:00
Pavel Feldman 4996eacd5b
docs: split numbers into integers and floats (#4887) 2021-01-05 09:42:49 -08:00
Joel Einbinder 4a89158293
fix(type-generator): make the generated by message consistent on windows (#4888) 2021-01-05 06:42:38 -08:00
Pavel Feldman 80f8a0fdf5
doc: further align docs w/ playwright.dev (3) (#4884) 2021-01-04 17:59:23 -08:00
Pavel Feldman 31ffeb32e3
doc: further align docs w/ playwright.dev (2) (#4871) 2021-01-04 13:50:29 -08:00
Dmitry Gozman 706c1e44d1
chore: use last commit timestamp for @next builds (#4876) 2021-01-04 11:12:42 -08:00
Pavel Feldman ae935a43d9
doc: further align docs w/ playwright.dev (#4866) 2021-01-03 08:47:29 -08:00
Pavel Feldman e0e836cb6e
doc: split classes into files (#4864) 2021-01-01 15:17:27 -08:00
Pavel Feldman ba291372e7
docs: generate all docs off docs-src (#4858) 2020-12-30 18:04:51 -08:00
Pavel Feldman a5bd415edc
doc: generate class toc as a part of the api generation (#4852) 2020-12-29 17:35:01 -08:00
Pavel Feldman 9817d1095a
doc: generator code health (3) (#4850) 2020-12-29 12:12:46 -08:00
Pavel Feldman 722db85e1c
doc: generator code health (2) (#4843) 2020-12-28 23:42:51 -08:00
Pavel Feldman 70c14e6b99
doc: generator code health (#4840) 2020-12-28 17:38:00 -08:00
Dmitry Gozman a1232b6980
chore: simplify and remove some scripts (#4838) 2020-12-28 16:19:28 -08:00
Dmitry Gozman 068d8612a7
feat(cli): make run-driver work (#4836) 2020-12-28 15:44:24 -08:00
Dmitry Gozman 293a7bdd4c
feat(cli): bring in codegen and tests (#4815) 2020-12-28 14:50:12 -08:00
Dmitry Gozman 94077e0e74
chore: remove JS types checker, rely on typescript (#4831)
chore: remove JS types checker, rely on typescript

We keep checking that all methods are documented, and no extra methods
are documented, but rely on typescript for everything else.
2020-12-28 10:54:47 -08:00
Pavel Feldman a446792c18
docs: generate api.md off documentation model (#4832) 2020-12-28 07:03:09 -08:00
Pavel Feldman fee7dd7cc1
chore: nit type validator fix (#4830) 2020-12-27 08:42:22 -08:00
Dmitry Gozman 905f28c339
feat(types): simplify android and electron types (#4829)
These now follow the scheme for regular types.
2020-12-26 20:25:18 -08:00
Dmitry Gozman 34c1b338be
feat(types): make our client classes implement public types (#4817)
This patch:
- introduces non-exported but used in api/impl struct types (e.g. Point);
- makes all client classes implement respective public api interface.

Pros:
- Typescript is now responsible for type checking.
  We can remove our doclint checker (not removed yet).
- Electron and Android types can be defined in the same way
  (this is not implemented yet).
- We can move most of the type structs like Point to the public api
  and make some of them available.

Cons:
- Any cons?
2020-12-26 17:05:57 -08:00
Pavel Feldman dc25173ae3
chore(docs): fix crlf (#4828) 2020-12-26 17:05:44 -08:00
Pavel Feldman 2cb5770183
docs: move playwright module into api-body.md (#4827) 2020-12-26 15:33:29 -08:00
Pavel Feldman 15cdfd1cc1
chore: generate types, api.json off md rather than html (#4825) 2020-12-26 14:31:41 -08:00
Dmitry Gozman 9dd982c508
chore: commit generated types to the repository (#4826)
Also check them during `npm run lint` and regenerate during `npm run watch`.
2020-12-26 13:52:05 -08:00
Pavel Feldman 277d255fc3
chore: brush up md processing (#4819) 2020-12-23 19:35:43 -08:00
Dmitry Gozman 225e65e076
feat(cli): share console api between cli and debug mode (#4807) 2020-12-23 14:15:16 -08:00
Dmitry Gozman f709e2300c
feat(cli): bring selector generator into playwright (#4795)
Also remove unused `SelectorEngine.create` function and add tests.
2020-12-23 12:44:47 -08:00
Dmitry Gozman d40afa2fbf
feat(cli): first few cli commands (#4773)
This sets up cli capabilities and brings in a few commands from playwright-cli.
2020-12-22 14:54:13 -08:00
Dmitry Gozman cc32217e84
chore: fix check-deps (#4801) 2020-12-22 11:01:25 -08:00
Yury Semikhatsky a7f4c69a60
docs: fix browser version generation script (#4797) 2020-12-21 18:09:55 -08:00
Pavel Feldman 2e220df7ac
docs: explicitly annotate methods and parameters (#4771) 2020-12-18 15:31:34 -08:00
Pavel Feldman 774eb53980
fix(adb): force page scale factor update on connection (#4755) 2020-12-17 18:28:49 -08:00
Pavel Feldman e02c54485c
chore(adb): make driver smaller (#4713) 2020-12-14 18:39:14 -08:00
Pavel Feldman 4799e8f20b
feat(adb): add screenshot (#4701) 2020-12-13 23:20:13 -08:00
Pavel Feldman 1596b53da2
test(adb): fix browser tests (#4700) 2020-12-13 22:33:00 -08:00
Max Schmitt b8112dedca
devops: fix Android tests on GHA (#4698) 2020-12-13 14:38:51 -08:00
Max Schmitt f4eff4dbe0
devops: add bot to test Android (#4693) 2020-12-13 14:13:50 -08:00
Pavel Feldman 2ba60e92e3
test(adb): add some adb tests (#4679) 2020-12-11 23:36:08 -08:00
Pavel Feldman aa1b546bd0
chore(android): respect timeout, add build script (#4690) 2020-12-11 23:35:25 -08:00
Pavel Feldman 616df7d2f4
fix(adb): minor fixes (#4678) 2020-12-10 16:37:18 -08:00
Andrey Lushnikov 84ff20f193
test: fix test server on Node 15 (#4668)
This patch fixes a bug in our test server that manifests itself in
Node 15.

Context: Node 14 does not support Apple Silicon (and probably will not),
so we currently have to run tests on Node 15 on new macs.
2020-12-10 09:47:06 -08:00
Pavel Feldman aacd8e633c
chore: expose adb devices and actions (#4647) 2020-12-09 15:06:57 -08:00
Pavel Feldman 1717cbd3d5
doc: describe return value as a part of method (#4608) 2020-12-05 15:29:16 -08:00
Pavel Feldman 96a1f79e96
docs: reformat api-body to allow multiline params documentation (#4604) 2020-12-04 18:05:35 -08:00
Pavel Feldman bf7dff80da chore: remove the --only-update-browsers option 2020-12-04 12:22:34 -08:00
Pavel Feldman 20c17d5470 chore: fix the doclint tests 2020-12-04 12:10:44 -08:00
Pavel Feldman 150d778ca7
docs: disambiguate events (#4597) 2020-12-04 11:09:20 -08:00
Pavel Feldman 761b78efc0
docs: generate links based on the method names (#4593) 2020-12-04 09:03:33 -08:00
Pavel Feldman 2452d07ff7
docs: generate method signatures in docs (#4590) 2020-12-03 22:28:11 -08:00
Pavel Feldman 0eb6f85617
docs: pretty-print api.md (#4588) 2020-12-03 18:05:36 -08:00
Pavel Feldman 5d47a9744c
docs: reformat template parameters (#4587) 2020-12-03 16:02:34 -08:00
Joel Einbinder bc701629db
fix(doclint): exit 1 when doclint throws an error (#4572) 2020-12-03 09:21:56 -08:00
Max Schmitt d2b7e0d1df
fix(types): add typed cb for Page.waitForResponse (#4575) 2020-12-03 09:20:53 -08:00
Pavel Feldman 95c502d274
docs: use templates to reuse documentation properties (#4578) 2020-12-03 09:11:48 -08:00
Pavel Feldman 1fa7e86ea9
docs: generate api.md (#4576) 2020-12-02 13:50:10 -08:00
Joel Einbinder d116787a4d
fix(lint): update check_deps for src/remote (#4547)
check_deps was throwing an error, but nobody was catching it and it still returned an exit code 0. I fixed that, and also fixed the error by adding deps for src/remote.
2020-11-30 14:57:17 -08:00
Andrey Lushnikov d104591aa1
devops(flakiness): azure function to store dashboard in a new format (#4540)
This refactors azure function and adds a new dashboard format implementation that is 15x smaller while tracking specs with non-empty annotations.

Old dashboard is still updated.
2020-11-30 10:16:03 -08:00
Andrey Lushnikov f916c98081
chore: update WebKit version to 14.1 (#4515)
Safari Technology Preview now reports WebKit 14.1
2020-11-23 16:21:42 -08:00
Andrey Lushnikov 06e0aa40eb
devops: add source code for flakiness dashboard (#4479)
This adds source code for the azure function that processes flakiness reports
2020-11-23 15:02:04 -08:00
Dmitry Gozman 38fadcaded
fix(chromium): use frameDetached reason (#4468)
This fixes the local -> remote frame swap when
Page.frameDetached arrives before Target.attachedToTarget.

Instead of error-prone logic we do currently, new CDP exposes
frame detach reason that we can use.
2020-11-17 10:24:13 -08:00
Andrey Lushnikov 2bfee8dc0a
chore: fix publishing @next from release branch (#4418) 2020-11-12 12:18:20 -08:00
Pavel Feldman 2158d6d073
feat(scopes): make page a scope (#4385) 2020-11-10 14:47:26 -08:00
Pavel Feldman 28f6547d67
chore: add adb-based connectivity (#4375) 2020-11-06 16:31:11 -08:00
Dmitry Gozman 12afb79e73
test: unflake har tests (#4335)
Our test server throws Parse Error when connection
aborts at unfortunate time.
2020-11-04 10:24:01 -08:00
Yury Semikhatsky 46e124a933
fix(api.json): use separate maps for methods and events (#4310) 2020-11-02 18:31:32 -08:00
Andrey Lushnikov 51f8f23c5d
devops(flakiness): collect more commit information (#4315)
Collect commit title and author details.
2020-11-02 18:28:03 -08:00
Pavel Feldman 333916a83d
infra: bump to next version on trunk at a branch point (#4288) 2020-10-29 17:46:07 -07:00
Andrey Lushnikov e62f27ac47
chore: eliminate dead code (#4253)
Remove a stray code from original experimentation with flakiness
dashboard.
2020-10-27 00:00:28 -07:00
Pavel Feldman be8428475d
feat(websocket): implement Web Sockets for Chromium & WebKit (#4234) 2020-10-26 22:20:43 -07:00
Andrey Lushnikov 86e1e3f3fe
devops: collect host os name and version (#4244)
Our test annotations don't provide (and don't require) a fine-grained
information regarding ubuntu version, so we collect it separately.
2020-10-26 16:44:32 -07:00
Pavel Feldman 7fc4b797eb
feat(har): allow saving har for context (#4214) 2020-10-26 14:32:07 -07:00
Andrey Lushnikov d5fbe3a662
devops: start uploading test reports to flakiness dashboard (#4239) 2020-10-26 13:46:26 -07:00
Pavel Feldman c2adc98cb0
chore: roll folio to 0.3.8 (#4113) 2020-10-12 13:48:56 -07:00
Dmitry Gozman 46b14bc740
chore: roll folio to 0.3.6 (#4110) 2020-10-12 09:16:02 -07:00
Pavel Feldman 0db09f8ed4
test: roll test runner to 0.9.20 (#4062) 2020-10-05 17:03:24 -07:00
Yury Semikhatsky fbe0fb2977
fix(api.json): do not copy documentation from base class members (#4048) 2020-10-02 19:19:19 -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 d658b687ca
chore: refactor screencast tests (#4007) 2020-09-29 18:52:30 -07:00
Pavel Feldman 7ccdc5176d
chore: include api.json into the Playwright package (#4003) 2020-09-29 13:48:24 -07:00
Pavel Feldman 6102052832
Revert "chore: don't hold sourcemap reference in prod build (#3959)" (#3979)
I like my tests showing TS source lines more!
2020-09-25 15:25:54 -07:00
Pavel Feldman 970b011cba
chore: roll @playwright/test to 0.9.6 (#3977) 2020-09-25 12:52:06 -07:00
Max Schmitt 6d5ab534d9
chore: don't hold sourcemap reference in prod build (#3959) 2020-09-23 22:19:45 -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
Pavel Feldman c20cbae529
chore: remove trace viewer (#3869) 2020-09-14 07:56:04 -07:00
Pavel Feldman f94df318d5
chore: roll test runner to 0.3.9 (#3847) 2020-09-11 10:02:07 -07:00
Pavel Feldman a597004780
chore: roll test runner to 0.3.5 (#3832) 2020-09-10 21:31:46 -07:00
Dmitry Gozman 9e41518c92
feat(rpc): allow sending metadata with rpc calls (#3836)
Currently, metadata does only contain the stack trace,
and we send it from the JS client.
2020-09-10 19:25:44 -07:00
Andrey Lushnikov 45542a5334
docs: fix table-of-contents generation (#3840) 2020-09-10 15:14:00 -07:00
Andrey Lushnikov 868740067b
refactor: consolidate ffmpeg-related files in third_party/ffmpeg (#3815)
This patch:
- moves ffmpeg binaries from `//bin/` to `//third_party/ffmpeg`
- adds [COPYING.GPLv3](https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.GPLv3)
ffmpeg license
- changes npm packaging to include `//third_party/ffmpeg` only in `playwright` and `playwrihgt-chromium` a
2020-09-09 09:51:28 -07:00
Andrey Lushnikov 143adc1634
refactor: bake ffmpeg into npm instead of CDN (#3799) 2020-09-08 15:10:36 -07:00
Joel Einbinder 658b34e3fe
fix(lint): fix doclint and preprocessor tests (#3793) 2020-09-08 10:19:26 -07:00
Dmitry Gozman 675ce00432
chore: introduce "instrumentation" that is used for debug and trace (#3775) 2020-09-04 16:31:52 -07:00
Max Schmitt 190d16daa3
feat: add browser type to device descriptors (#3731) 2020-09-03 13:12:43 -07:00
Andrey Lushnikov 8b9be6bbbe
devops: fix publishing of @next packages to NPM (#3759)
This patch:
- stop relying on stdout from `//packages/build_package.js` to get
output paths. This was a legacy code that's not needed anymore
- remove stray output from `//packages/build_package.js`
2020-09-03 11:59:58 -07:00
Dmitry Gozman a4563a85ce
fix(snapshot): remove integrity checksum for css (#3729)
Otherwise we cannot override css with cssom changes.
2020-09-02 10:20:52 -07:00
Yury Semikhatsky 8ec55e1fb2
feat(screencast): use ffmpeg to produce webm in chromium (#3668) 2020-08-31 08:43:14 -07:00
Joel Einbinder 3cc91093a1
chore(testrunner): move out of the repo (#3687) 2020-08-29 08:27:32 -07:00
Joel Einbinder 6a93cb9749
fix(types): don't show types that we don't export (#3185)
Today we have a bunch of types used by the d.ts file that are not exported. We don't want to export them because it would greatly increase our semver API surface area, so this patch inlines them. Now users will not see names of types they can't import.
2020-08-28 17:53:03 -07:00
Dmitry Gozman e5ff283a40
fix(trace): only enable on separate tracing bots (#3677) 2020-08-28 13:50:06 -07:00
Dmitry Gozman b34d9aba25
feat(trace): experimental traces for our tests (#3567)
This introduces basic tracing enabled in our tests.

What is captured:
- network resources;
- snapshots at the start of most actions;
- snapshot after the test failure.

How this integrates with test runner:
- context fixture calls private method context._initSnapshotter() and uses Tracer to trace all events;
- all tests share a single test-results/trace-storage directory to store blobs;
- each test has its own trace file.
- npm run show-trace opens a bare-minimum trace viewer that renders snapshots.
2020-08-28 10:51:55 -07:00
Max Schmitt 254238cdce
enh: bake browser revisions and api into driver (#3514) 2020-08-26 16:01:42 -07:00
Yury Semikhatsky a2a96198e6
fix(devops): fix firefox protocol.ts location (#3630) 2020-08-25 16:23:43 -07:00
Dmitry Gozman bdbcae16cb
chore: remove injected -> types dependency (#3606)
This way, injected is self-contained and we can ensure it does not
depend on anything node-specific.
2020-08-24 15:30:45 -07:00
Dmitry Gozman a099e941d6
chore: move last rpc files to their place (#3604)
Also update check-deps to be more user-friendly.
2020-08-24 14:48:03 -07:00
Dmitry Gozman cd220daa83
chore: move src files to server (#3593) 2020-08-24 06:51:51 -07:00
Dmitry Gozman 43893cc0f8
chore: improve check-deps (#3592) 2020-08-23 21:24:16 -07:00
Dmitry Gozman 73e53b21df
chore: move injected and debug to src/server (#3591) 2020-08-23 20:25:59 -07:00
Dmitry Gozman 847201b132
chore: move firefox to src/server/firefox (#3590) 2020-08-23 17:05:58 -07:00
Dmitry Gozman 6a53b205e5
chore: move webkit to src/server/webkit (#3589) 2020-08-23 15:39:03 -07:00
Dmitry Gozman 2e1493a5fa
chore: move browserPaths to utils, enforce more deps (#3584) 2020-08-22 21:15:03 -07:00
Dmitry Gozman f4e8f34c96
chore: move chromium to src/server/chromium, enfore installer deps (#3582) 2020-08-22 15:46:42 -07:00
Dmitry Gozman 9fca63f8ec
chore: move src/rpc/client to src/client (#3581) 2020-08-22 15:13:51 -07:00
Dmitry Gozman 655013d025
chore: move shared utilities to src/utils (#3575) 2020-08-22 07:07:13 -07:00
Dmitry Gozman 6fe1cd9812
chore: move protocol files to src/protocol (#3571) 2020-08-21 18:46:11 -07:00
Joel Einbinder 8ae3c4be06
feat(testrunner): delete types.d.ts (#3551) 2020-08-21 09:53:02 -07:00
Joel Einbinder 012f9425bf
chore(test-runner): move into its own folder and typescript project (#3548) 2020-08-20 16:04:27 -07:00
Joel Einbinder 0d03cc0f9a
feat(utils): add a script for watching various builds (#3545)
Watches our main typescript compilation, webpacks, type generation, and rpc channel generation.
2020-08-20 09:27:04 -07:00
Pavel Feldman 86815d70e0
test: convert rename options to parameters, remove options magic (#3543) 2020-08-19 21:32:12 -07:00
Dmitry Gozman 5aa4116204
docs: sort all enums in doclint (#3488)
Currently, the order depends on some internals of typescript compiler
and changes from time to time. Sorting makes it stable.
2020-08-17 10:47:21 -07:00
Joel Einbinder c0b9cecc65
feat(types): export ConnectOptions (#3147) 2020-08-16 16:40:25 -07:00
Joel Einbinder d516f81eeb
fix(rpc): add a custom toJSON to help jest's expect library (#3489) 2020-08-16 14:41:33 -07:00
Dmitry Gozman 85c93e91a7
api: introduce ElementHandle.waitForSelector (#3452)
This is similar to Frame.waitForSelector, but relative to the handle.
2020-08-14 14:47:24 -07:00
Pavel Feldman 6abc352498
test: remove output and golden directory notions (#3456) 2020-08-13 17:32:27 -07:00
Dmitry Gozman 9b52ca8676
chore: remove unused non-rpc code, test options, infra, bots (#3444) 2020-08-13 16:00:23 -07:00
Joel Einbinder 84441f8f77
chore(test): run doclint tests with mocha, delete testrunner again (#3447) 2020-08-13 13:57:27 -07:00
Andrey Lushnikov 4f05039944
devops: do not fail check when refusing to publish TOT revision (#3443) 2020-08-13 10:39:45 -07:00
Pavel Feldman 51bd3709ff
Revert "chore(test): run doclint tests with mocha, delete utils/testrunner (#3428)" (#3432) 2020-08-12 22:01:37 -07:00
Joel Einbinder 061ff25741
chore(test): run doclint tests with mocha, delete utils/testrunner (#3428) 2020-08-12 20:02:48 -07:00
Andrey Lushnikov 40f685226b
devops: migrate //utils/check_availability.js off browser fetcher (#3418)
The script is used to check the state of chromium CDN, whereas
our browser fetcher now defaults to Playwright CDN.
2020-08-12 15:01:07 -07:00
Joel Einbinder 6054f14794
chore(tests): convert all tests to typescript (#3384) 2020-08-11 15:50:53 -07:00
Joel Einbinder 55a78482e4
fix(types): fix type generation to make ts tests work (#3385) 2020-08-11 14:31:20 -07:00
Pavel Feldman 823ef86470
test: add support for mocha (#3376) 2020-08-10 20:10:39 -07:00
Joel Einbinder d76166beca
chore(test): require playwright fixtures from userland (#3355)
This patch moves fixtures.js to base.fixtures.ts that sits next to tests. All tests get an extra import to get the base fixtures (both types and implementations).
2020-08-10 16:48:34 -07:00
Dmitry Gozman 3179e71912
feat(rpc): in-process rpc on by default (#3104) 2020-08-10 14:18:58 -07:00
Dmitry Gozman ef76f5b922
feat(rpc): introduce JSON type in the protocol for arbitrary blobs (#3367) 2020-08-10 11:20:32 -07:00
Pavel Feldman 6f09590c9a
test: restore nojest runner (#3359) 2020-08-08 19:43:00 -07:00
Dmitry Gozman c6acc32889
docs(api): explicit nulls, use Serializable and EvaluationArgument more (#3358) 2020-08-07 20:55:22 -07:00
Joel Einbinder c9409bf1b3
fix(types): add missing properties to DeviceDescriptor (#3332) 2020-08-06 15:45:13 -07:00
Dmitry Gozman 126b1f79d4
feat(rpc): run doclint against rpc client (#3260) 2020-07-31 17:00:36 -07:00
Pavel Feldman 93056ed8ef
chore(rpc): more protocol nits (#3246) 2020-07-30 17:51:41 -07:00
Dmitry Gozman 6297f86cfa
feat(rpc): run generate-channels during lint (#3238) 2020-07-30 15:08:21 -07:00
Dmitry Gozman 3bd97776b8
feat(rpc): do not use server types and events in rpc/client (#3219)
This change removes almost all dependencies from rpc/client
to the rest of the project. The last ones would be utilities
like helper, converters, etc.
2020-07-29 17:26:59 -07:00
Andrey Lushnikov 487bc589b0
devops: re-factor list-dependencies script to output per-browser results (#3194)
This patch:
- refactors script to output per-browser package dependencies. This is to aid with
  per-browser docker setup and Playwright github action.
- sorts package maps for both Ubuntu 18.04 and Ubuntu 20.04 alphabetically (and removes a stray dependency)

References #2926
2020-07-29 13:38:54 -07:00
Max Schmitt 21b1be7351
docs(selectors): fixed selector register example (#3169) 2020-07-29 10:37:57 -07:00
Dmitry Gozman bdfde5cd5c
fix(firefox): roll firefox for postdata fix (#3196) 2020-07-28 18:47:25 -07:00
Dmitry Gozman 6cb1e03713
feat(rpc): disallow deps into rpc client from outside (#3199)
For this, common converters are extracted from rpc serializers.
2020-07-28 15:33:38 -07:00
Dmitry Gozman e406119f0c
chore: add check_deps script (#3182)
This will be used to disallow cross-directory imports,
for example from impl to rpc.
2020-07-27 13:02:28 -07:00
Dmitry Gozman 98cc9db8e8
chore: simplify doclint (#3162)
This renames CRBrowserContext events into ChromiumBrowserContext and
simplifies some doclint/coverage logic.
2020-07-24 20:40:21 -07:00
Dmitry Gozman fd2e65b73c
api: export all browsers from every package (#3128)
This makes it easier to reason about our packages.
The only difference is what each package downloads.
When the browser is not downloaded, it will fail to launch.

Each browser gets a 'download' attribute in the browser.json file.
2020-07-24 16:36:00 -07:00
Andrey Lushnikov c8c92c509d
fix(utils): fix check-availability script (#3158) 2020-07-24 16:22:52 -07:00
Dmitry Gozman 415e94f410
feat(rpc): server-side validator (#3150) 2020-07-24 15:16:33 -07:00
Pavel Feldman e7cca86757
fix(postData): allow overriding binary post data (#3120) 2020-07-24 12:16:45 -07:00
Dmitry Gozman 68c4f79b02
feat(rpc): convert protocol to yaml (#3102) 2020-07-22 19:38:19 -07:00
Dmitry Gozman b1a5a02154
feat(rpc): client-side parameters validation (#3069) 2020-07-22 18:05:07 -07:00
Dmitry Gozman 4db035dff4
chore: roll_browser to also update docs (#3088) 2020-07-22 11:03:35 -07:00
Andrey Lushnikov 47e30f047b
feat: introduce chromiumSandbox launch option (#3067)
The option is intended to be used instead of the `--no-sandbox`
argument that is accepted exclusively by Chromium and crashes
WebKit.

References #2745
2020-07-21 13:49:09 -07:00
Dmitry Gozman 3dead4c8d1
feat(rpc): remove last union types from the protocol (#3059) 2020-07-21 12:44:30 -07:00
Dmitry Gozman 5848ed8f41
feat(rpc): introduce protocol.pdl (#3054)
We now generate channels.ts from the protocol definition. There are still some shortcomings,
like union types - these will be addressed in follow ups.
2020-07-20 17:38:06 -07:00
Andrey Lushnikov 377404448c
devops: add script to generate shared object => package mapping (#3022)
We use this mapping to provide recommendations on which packages
to install on Linux distributions.

References #2745
2020-07-20 10:35:42 -07:00
Andrey Lushnikov 0346c3a1dc
chore: update release notes draft gen (#2932) 2020-07-13 14:48:29 -07:00
Joel Einbinder 040c6a6a41
chore(jest): run tests with jest (#2754)
Experimentally run `npx jest` to run our tests with jest.
2020-07-08 11:13:18 -07:00
Andrey Lushnikov 760283ea4e
testrunner: fix default environment name (#2870) 2020-07-07 22:14:04 -07:00
Dmitry Gozman 0c80c22716
feat(rpc): plumb CDPSession (#2862) 2020-07-07 18:47:00 -07:00
Joel Einbinder 6ed8b5fcc6
chore(eslint): lint for copyrights on files (#2858) 2020-07-07 11:12:45 -07:00
Andrey Lushnikov 15ddb5d32b
chore: update webkit version (#2804)
Safari Technology Preview reports WebKit 14.0. Align with them!
2020-07-06 15:13:53 -07:00
Andrey Lushnikov 05b019f1ba
reland: testrunner: make environment a simple class (#2812)
This re-lands PR https://github.com/microsoft/playwright/pull/2769

It was reverted before in https://github.com/microsoft/playwright/pull/2790
because it was breaking the new CHANNEL bot.
2020-07-02 11:05:38 -07:00
Andrey Lushnikov 5484217c9f chore: make //utils/roll_browser.js executable 2020-07-02 00:40:47 -07:00
Dmitry Gozman 5c4751d5dd
chore: generate protocol during browser roll (#2719)
We now commit protocol.ts files during the roll.
New utils/roll_browser.js helps with that.

This makes our installation very shallow:
- build installer;
- download browsers.
2020-07-01 15:22:29 -07:00
Pavel Feldman e467ea57e7
revert: testrunner: make environment a simple class (#2769) (#2790) 2020-07-01 10:56:19 -07:00
Andrey Lushnikov f00fc0760a chore: fix utils/check_availability.js 2020-06-30 16:54:52 -07:00
Andrey Lushnikov 1605cb453c
testrunner: make environment a simple class (#2769)
This patch:
- makes environment a simple class with optional methods `beforeEach`, `afterEach`, `beforeAll`, `afterAll`, `globalSetup` and `globalTeardown`
- removes capability to have multiple hooks of the same name inside suite
- removes default environment for test. (`dit` now adds a `TraceTestEnvironment` to the test)
- extracts all environments that we use in our tests in `//test/environments.js`

Downsides:
- we no longer know hook locations for the environments. This, however, should not be a big deal since stack traces (if any) will still point into it.
- this also regresses hook locations for suites for simplicity. We can get them back, but it shouldn't be pressing since we now have only one hook of each kind in every suite.
2020-06-30 16:51:03 -07:00
Andrey Lushnikov 1865c5685a
testrunner: support globalSetup and globalTeardown hooks. (#2686) 2020-06-24 22:08:46 -07:00
Andrey Lushnikov 07dbd0baae
testrunner: teach runHook to accept hook arguments (#2682) 2020-06-23 18:17:14 -07:00
Andrey Lushnikov c61e2d6cc9
testrunner: drop nested test environments (#2681) 2020-06-23 16:45:00 -07:00
Joel Einbinder fb84e19b6f
feat(types): autocomplete for default devices (#2198)
* feat(types): autocomplete for default devices

* don't export the extra Device type

Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-06-18 12:28:20 -07:00
Pavel Feldman f2c47b1d33
feat(cli): introduce basic playwright CLI tool (#2571) 2020-06-14 17:24:45 -07:00
Pavel Feldman 894826dec0
chore: form the debug script for authoring hints / helpers (#2551) 2020-06-11 18:18:33 -07:00
Pavel Feldman fb058ffe0d
feat(proxy): allow specifying proxy (#2485) 2020-06-05 13:50:15 -07:00
Dmitry Gozman 1d37a10558
chore: migrate navigations to Progress (#2463) 2020-06-04 16:43:48 -07:00
Dmitry Gozman 8e6375f532
chore: reduce the number of evaluate methods, improve types (#2454)
Types can now handle non-trivial tuples with handles inside.
2020-06-03 13:22:05 -07:00
Pavel Feldman 4ac30f354a
feat(webkit): roll WebKit to 1246 (#2400) 2020-05-28 22:35:01 -07:00
Andrey Lushnikov 43eed027bd
chore: rename root index-for-dev.js into index.js (#2337) 2020-05-23 00:03:57 -07:00
Andrey Lushnikov 3c84e9ec3a
devops: enable canary publishing (#2335) 2020-05-21 16:56:57 -07:00
Andrey Lushnikov 505d94ab1a
chore: drop dependency on playwright-core in all our packages (#2318)
This patch:
- drops dependency on playwright-core in all our packages. Instead of
  the dependency, packages are now built with `//packages/build_package.sh`
  script.
- unifies `browsers.json` - now there's a single `//browsers.json` file
  that is used to manage browser revisions.

This patch temporary switches canary publishing to `--dryn-run` from CI/CD so that we
can verify that it does sane things.

We'll unify all our package management scripts under `//packages/` in a
follow-up.

Fixes #2268
2020-05-21 13:18:15 -07:00
Pavel Feldman aa0d844c76
chore: introduce utility script for evaluate helpers (#2306) 2020-05-20 15:55:33 -07:00
Joel Einbinder 8e396fdac0
fix(types): add missing types for removing event listeners (#2307) 2020-05-20 07:34:36 -07:00
Pavel Feldman e558f0516b
chore: print the launch error message to console (#2304) 2020-05-20 00:10:10 -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
Pavel Feldman c5b0baacd1
chore: remove main index.js from playwright-core (#2178) 2020-05-11 09:38:09 -07:00
Pavel Feldman d487a315b9
doc: fix the route docs (#2174) 2020-05-11 08:22:48 -07:00
Vasilii Artemchuk 4c4fa8d38c
docs: some syntax fixes (#2116) 2020-05-07 12:33:35 -07:00
Andrey Lushnikov 193924f405
chore: add script to generate release notes (#2099) 2020-05-04 22:28:09 -07:00
Dmitry Gozman 963dc72dd2
devops: add headful linux bot (#2060) 2020-05-04 15:15:51 -07:00
Pavel Feldman bcce48362a
api(waitForSelector): make "state: visible" default, includes rename to state (#2091) 2020-05-04 11:03:44 -07:00
Andrey Lushnikov a9f0c40af3
feat(testrunner): improvements to testrunner (#2070)
This patch:
- teaches test runner to understand custom argument spelling, e.g. `--file=evalu` and `-j10`
- fixes `--file` filter to actually focus file paths instead of focusing
all tests with given path
2020-05-01 10:09:45 -07:00
Andrey Lushnikov 3251465657
chore: add script to fetch closed bugs since git commit (#2066) 2020-04-30 17:57:45 -07:00
Pavel Feldman 2cdf297245
chore: remove uncompiled download-browser (#2018) 2020-04-28 17:06:01 -07:00
Pavel Feldman d52bd92983
chore: read browser revisions off browsers.json (#2009) 2020-04-28 10:37:23 -07:00
Pavel Feldman b60c006c63
chore: simplify and restructure downloads (#1974) 2020-04-24 19:14:10 -07:00
Andrey Lushnikov 4b263d6334
docs(releasing): update releasing docs according to new process (#1958) 2020-04-24 08:55:29 -07:00
Andrey Lushnikov 21dc346b16
devops: auto-correct links in our documentation (#1955) 2020-04-23 19:52:06 -07:00
Joel Einbinder 671cfa0a54
fix(types): support objects with typed keys and values (#1752)
There are a few places in the API where we use objects as maps. This patch adds them to docs and the types.

For `env`, we accept booleans and numbers as well because they are often used for their string values.
2020-04-23 14:45:57 -07:00
Andrey Lushnikov 511883d3f0
devops: fix checking if branch is tip-of-tree when publishing @next (#1926)
This should fix publishing @next from release branches.
2020-04-22 17:02:38 -07:00
Andrey Lushnikov 89007c8f3d
devops: make README.md to always reflect tip-of-tree (#1911)
As of today, we have tooling in place that makes sure that our
main README.md **roughly** represents the state of the last release:
- browser versions and browser badges are those that we released last
- links to our API point to the last-released API version

This tooling, however, relies on the fact that every release is a sequence
of two consecutive commits:
- one commit that sets `package.json` version to a released version
- the following that "bumps" version to `-post`.

This release process is very unfortunate, because:
- it made releasing from branch impossible
- it required "freezing" commits to the master branch

This patch removes all the tooling and transitions `README.md` to always
represent tip-of-tree state. We will fully rely on
`https://playwright.dev` to show versioned docs.
2020-04-21 22:08:56 -07:00