Commit graph

1395 commits

Author SHA1 Message Date
Yury Semikhatsky ad6e40538a
fix(electron): make sure user arguments go first (#29204) 2024-01-29 15:00:12 -08:00
Pavel Feldman c85308d717
chore: remove deprecated debug controller events (#29203) 2024-01-29 14:58:29 -08:00
Dmitry Gozman acc72c2663
fix(codegen): assertValue works with disabled input (#29205)
Also add tests for new codegen functionality.

Fixes #29161.
2024-01-27 14:54:22 -08:00
Yury Semikhatsky 82981a8091
fix: interception id not found error in route.continue (#29180)
We stopped catching all exceptions in
https://github.com/microsoft/playwright/pull/28539 in hope that we'll
get loadingFailed even before Fetch.continue/fulfill command's error.
Turns out this is racy and may fail if the test cancels the request
while we are continuing it. The following test could in theory reproduce
it if stars align and the timing is good:

```js
it('page.continue on canceled request', async ({ page }) => {
  let resolveRoute;
  const routePromise = new Promise<Route>(f => resolveRoute = f);
  await page.route('http://test.com/x', resolveRoute);

  const evalPromise = page.evaluate(async () => {
    const abortController = new AbortController();
    (window as any).abortController = abortController;
    return fetch('http://test.com/x', { signal: abortController.signal }).catch(e => 'cancelled');
  });
  const route = await routePromise;
  void page.evaluate(() => (window as any).abortController.abort());
  await new Promise(f => setTimeout(f, 10));
  await route.continue();
  const req = await evalPromise;
  expect(req).toBe('cancelled');
});
```

Fixes https://github.com/microsoft/playwright/issues/29123
2024-01-25 16:54:42 -08:00
Max Schmitt 4c4789c740
chore: validate deps during install (#28932)
Motivation: On Windows we call around 50 times `PrintDeps.exe` which
takes on a very fast machine 500+ms. On Linux we do it around 120 times
(`ldd`) which takes around 150ms.

This change validates the dependencies once on browser install (`npx
playwright install`). In case its failing, it will emit a warning, in
case of a success, it will create a marker file that the binary has been
validated. For future `launch()` calls, we'll read this file and if
exists, we'll not validate again. Otherwise we'll validate again.

Note: If the marker file is older than 30 days, the browser will be
validated again.
2024-01-25 20:55:53 +01:00
Dmitry Gozman f5de6e5538
feat(codegen): generate multiple selectors to choose from (#29154)
When possible, "pick locator" generates:
- default locator;
- locator without any text;
- locator without css `#id`.

Fixes #27875, fixes #5178.
2024-01-25 07:35:58 -08:00
Dmitry Gozman bc83d7084c
fix(chromium): emulate navigator.userAgentData along with UA (#29159)
Fixes #28989, fixes #29139.
2024-01-25 07:34:11 -08:00
Playwright Service 129f5bfdbe
feat(chromium): roll to r1100 (#29167)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-25 15:24:49 +01:00
Max Schmitt ba8d141de8
chore: drop Ubuntu 18.04 (#29145)
This will now yield:

```
root@a85fb37f0c96:/work# npx playwright install
Failed to install browsers
Error: ERROR: Playwright does not support chromium on ubuntu18.04-x64
```

On Ubuntu 18.04.
2024-01-24 17:46:20 +01:00
Dmitry Gozman 1ce3ca25a2
chore(role): cache element list by role (#29130) 2024-01-23 13:45:26 -08:00
Dmitry Gozman 8e607d509f
fix(recorder): disallow external imports (#29129)
Previously, new `Recorder` instance was given an existing
`InjectedScript`. However, we built a separate source for
`InjectedScript` vs `Recorder`, and both bundles contain their own copy
of all helper modules, e.g. `roleUtils`.

This resulted in two copies of helper modules, which is troublesome for
any module-level globals like a top-level cache. Depending on whether
`Recorder` or `InjectedScript` called into the helper, they would access
the different value of a module global, which lead to bugs.

To prevent this, we force any external dependencies to be imported
through the `InjectedScript.utils`.
2024-01-23 11:29:40 -08:00
Dmitry Gozman 5bc5056a1f
chore(role): cache pseudo content calculation (#29115) 2024-01-23 10:09:23 -08:00
Playwright Service 3e2d7fe7e7
feat(chromium): roll to r1099 (#29120)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-23 13:34:59 +01:00
Dmitry Gozman 9b974e0026
chore: speedup frequent element text normalization (#29113)
We cache `ElementText` for frequent operations, but then call
`normalizeWhitespace` on it every time which burns a lot of CPU.
2024-01-22 21:33:56 -08:00
Yury Semikhatsky b2de9bc865
fix: mock safari.pushNotification (#29107)
Fixes https://github.com/microsoft/playwright/issues/29032
2024-01-22 15:44:13 -08:00
Dmitry Gozman f3fac6f4e9
feat: page.handleLocator that closes any interstitial pages/dialogs (#29029) 2024-01-19 12:35:00 -08:00
Max Schmitt e551506c9e
Revert "feat(codegen): add range input recording support (#28767)" (#29069) 2024-01-19 19:47:59 +01:00
Max Schmitt 4a45724633
fix: open 0.0.0.0 as localhost (#29054)
Fixes https://github.com/microsoft/playwright/issues/29047
2024-01-18 22:21:49 +01:00
Pavel Feldman 03815b9eb1
chore: migrate to Node 18 lockFileVersion 3 (#29051) 2024-01-18 11:33:23 -08:00
Dmitry Gozman e6d51cf7bd
chore: refactor actionability check to go through node-side retry (#28982)
This allows to inject a checkpoint in between the actionability checks.

Drive-by: cleanup `InjectedScriptPoll`-related code.
2024-01-16 19:11:41 -08:00
Dmitry Gozman 48317af1cc
feat(trace): preserve noscript when javascript is disabled (#28971)
Closes #27504, closes #27532.
2024-01-12 12:11:39 -08:00
Yury Semikhatsky 8936885a67
fix(chromium): preserve header overrides in redirects (#28962)
Reference https://github.com/microsoft/playwright/issues/28758
2024-01-12 08:55:20 -08:00
Playwright Service 3ace946fc2
feat(chromium): roll to r1097 (#28949)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-11 14:38:16 +01:00
Yury Semikhatsky 19a4f15eb6
chore: remove redundant checks from network interception (#28922)
We only intercept requests in Playwright so these fields are always
undefined.
2024-01-09 13:35:51 -08:00
Max Schmitt 2ddf3a45f9
chore(firefox): rewrite error message for $HOME directory ownership mismatch (#28921)
Fixes https://github.com/microsoft/playwright/issues/28896
2024-01-09 20:40:39 +01:00
Max Schmitt feece0f569
fix(deps): check only .dll/.exe files on Windows (#28901)
Fixes https://github.com/microsoft/playwright/issues/28846
2024-01-08 21:53:18 +01:00
Playwright Service f428f0793f
feat(firefox): roll to r1438 (#28882)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-05 21:11:34 +01:00
Playwright Service 572e656be0
feat(chromium): roll to r1096 (#28878)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-05 13:21:50 +01:00
Playwright Service a7c9060731
feat(webkit): roll to r1963 (#28820)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-02 09:37:18 +01:00
Rui Figueira 778828cc43
feat(codegen): add range input recording support (#28767) 2023-12-30 17:22:57 -08:00
Yury Semikhatsky ff99aa33b0
fix: input events triggered by playwright actions should have composed=true (#28730)
Fixes https://github.com/microsoft/playwright/issues/28726
2023-12-21 15:25:16 -08:00
Yury Semikhatsky afc1ac7063
fix: errors in evaluate should be JavaScriptErrorInEvaluate (#28706)
Fixes https://github.com/microsoft/playwright/issues/28690
2023-12-19 10:47:43 -08:00
Max Schmitt 44c3ad5ceb
chore: make csharp library codegen more csharp like (#28663) 2023-12-15 10:24:26 -08:00
Yury Semikhatsky f8d0204d2f
chore: provide better message for unhandled internal server errors (#28653)
This changes error message from `Error: ` to `Error: Protocol error
(Fetch.continueRequest): Internal server error, session closed.` when
running `npm run ctest -- --repeat-each 100 -x --headed --timeout 3000
--workers 1 library/browsercontext-route.spec.ts:172` prior to
9d91b7caf5.
2023-12-14 13:49:11 -08:00
Dmitry Gozman 35e8c440c2
fix(dispatchers): separate gc bucket for main frame, increased limit (#28629)
- Keep main frames in a separate bucket, so that page methods that
redirect to the main frame continue to work.
- Increase default dispatchers limit to `10_000`.
- Increase dispatchers limit for `JSHandle`/`ElementHandle` to
`100_000`.

Fixes #28320, #28503.
2023-12-14 10:42:08 -08:00
Playwright Service d4c66a6295
feat(chromium): roll to r1095 (#28649) 2023-12-14 08:58:59 -08:00
Yury Semikhatsky 9d91b7caf5
fix(route): silently catch errors when handling route on server (#28612)
This is a follow-up to 119afdf788 Since
continue/fulfill/abort now may throw on the server after page has been
closed, we need to catch the errors manually. On the client it's fixed
by the original change.

This fixes errors in the existing tests:
```
  1) [chromium] › library/browsercontext-route.spec.ts:172:3 › should support Set-Cookie header ────

    Error: 

       at ../packages/playwright-core/src/server/chromium/crConnection.ts:147

      145 |     const id = this._connection._rawSend(this._sessionId, method, params);
      146 |     return new Promise((resolve, reject) => {
    > 147 |       this._callbacks.set(id, { resolve, reject, error: new ProtocolError('error', method) });
          |                                                         ^
      148 |     });
      149 |   }
      150 |

        at /Users/yurys/playwright/packages/playwright-core/src/server/chromium/crConnection.ts:147:57
        at new Promise (<anonymous>)
        at CRSession.send (/Users/yurys/playwright/packages/playwright-core/src/server/chromium/crConnection.ts:146:12)
        at RouteImpl.continue (/Users/yurys/playwright/packages/playwright-core/src/server/chromium/crNetworkManager.ts:566:25)
        at FrameManager.requestStarted (/Users/yurys/playwright/packages/playwright-core/src/server/frames.ts:299:23)
        at CRNetworkManager._onRequest (/Users/yurys/playwright/packages/playwright-core/src/server/chromium/crNetworkManager.ts:314:57)
        at CRNetworkManager._onRequestPaused (/Users/yurys/playwright/packages/playwright-core/src/server/chromium/crNetworkManager.ts:202:12)
        at CRSession.emit (node:events:517:28)
        at /Users/yurys/playwright/packages/playwright-core/src/server/chromium/crConnection.ts:172:14
        at runNextTicks (node:internal/process/task_queues:60:5)
        at processImmediate (node:internal/timers:447:9)
```


![image](https://github.com/microsoft/playwright/assets/9798949/1c436dc2-f113-4ba6-952c-dca5a8c5fa62)

Reference https://github.com/microsoft/playwright/issues/28490
2023-12-13 09:34:20 -08:00
Yury Semikhatsky 66e056c306
fix: disable PaintHolding to be able to click in oopifs (#28604)
Fixes https://github.com/microsoft/playwright/issues/28023
2023-12-12 12:20:44 -08:00
Pavel Feldman 76ace0fc09
chore: workaround webkit screenshot animation issue (#28582) 2023-12-11 18:20:24 -08:00
Playwright Service 7827838d22
feat(chromium): roll to r1094 (#28560)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-12-08 14:59:38 -08:00
Andrey Lushnikov 8d3a931377
feat(firefox): roll FF Stable & Beta to 1433 (#28543)
Fixes #28495
2023-12-08 10:48:44 -08:00
Yury Semikhatsky 119afdf788
fix: throw if fuliflled with unsupported status code (#28539)
If request gets cancelled by the page before we fulfill it, we receive
`loadingFailed` event. In that case we'll ignore interception error if
any, otherwise the error will be propagated to the caller.

Fixes https://github.com/microsoft/playwright/issues/28490
2023-12-07 16:57:39 -08:00
Dmitry Gozman d587435efa
feat(trace): show target point for raw mouse apis (#28459)
Fixes #27931.
2023-12-07 06:27:49 -08:00
Playwright Service 4b968412c9
feat(firefox): roll to r1430 (#28489)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-12-05 13:00:30 -08:00
Max Schmitt 524ed3e269
fix(electron): after v28.0 (#28499)
Fixes https://github.com/microsoft/playwright/issues/28048
Relates https://github.com/electron/electron/issues/40501
2023-12-05 12:46:28 -08:00
Playwright Service aadc9345fa
feat(webkit): roll to r1951 (#28498)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-12-05 12:28:24 -08:00
Yury Semikhatsky ab68d7b9de
fix(webkit): delay request event until requestIntercepted is received (#28484)
Previously we were wrongly firing `route` event for the request which
are not in fact intercepted (e.g. requests from service worker).

Related https://github.com/microsoft/playwright/pull/28414
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-04 13:02:00 -08:00
Yury Semikhatsky 9a95d9a60c
chore: remove unused request._redirectedFrom (#28485) 2023-12-04 12:38:07 -08:00
Pavel Feldman facec88c99
fix: speed up caret hiding while screenshotting (#28460)
Fixes #28375
2023-12-03 21:06:40 -08:00
Yury Semikhatsky 607a243380
chore: remove unused fields from wk network (#28455) 2023-12-01 14:51:41 -08:00
Yury Semikhatsky b166189247
fix: disable memory cache when intercepting in webkit (#28458) 2023-12-01 14:49:27 -08:00
Pavel Feldman 0a7a10d0f6
feat(vrt): allow providing screenshot style (#28229) 2023-11-30 17:42:45 -08:00
Playwright Service b06f9ab055
feat(chromium): roll to r1093 (#28421) 2023-11-30 05:41:23 -08:00
Pavel Feldman 022b36332d
chore: do not add to the internal action logs (#28365)
Fixes https://github.com/microsoft/playwright/issues/28319
2023-11-27 16:43:47 -08:00
Playwright Service 96ce1a8f88
feat(webkit): roll to r1949 (#28358)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-27 21:51:30 +01:00
Alexander Kachkaev 41728e7098
chore(install): Improve ECONNRESET handling in downloadFile (#28344)
See
https://github.com/microsoft/playwright/issues/28329#issuecomment-1826753106
for context
2023-11-27 21:44:24 +01:00
Playwright Service 7dd121c784
feat(chromium): roll to r1092 (#28312)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-23 16:04:35 +01:00
Yury Semikhatsky 82f970e5c1
chore: print more accurate MiB instead of Mb when downloading browsers (#28304)
Fixes https://github.com/microsoft/playwright/issues/28283
2023-11-23 11:09:38 +01:00
Max Schmitt 2f1b0d6ff7
fix(install): hang on server side connection close (#28278) 2023-11-22 20:26:21 +01:00
Pavel Feldman 3f55587dd8
feat(vrt): bring back wait for font loading (#28226) 2023-11-17 17:16:32 -08:00
Dmitry Gozman 738155d85d
fix(dispatcher): only remove stale dispatcher after sending "create" (#28176)
Otherwise, we might dispose objects referenced in the initializer of the
new object being created, which triggers an exception on the client.
2023-11-16 15:07:43 -08:00
Dmitry Gozman 61c089fcbd
feat(recorder): UX updates for assertion tools (#28198)
- No locator editor.
- No value editor for `toHaveValue`.
- Visual feedback for `toBeVisible`/`toHaveValue`.
- UI tweaks.
2023-11-16 13:19:36 -08:00
Dmitry Gozman da6707f785
fix(chromium): properly detect session closed errors for oopifs (#28197)
Exposed by the flaky test `should not throw on exposeFunction when oopif
detaches`.
2023-11-16 11:44:10 -08:00
Max Schmitt 80bab8afae
fix(electron/android): re-add Element.prototype.checkVisibility check (#28173)
Regressed in https://github.com/microsoft/playwright/pull/28148.
2023-11-15 15:10:13 -08:00
Playwright Service 0867c3ce5b
feat(chromium): roll to r1091 (#28171)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-15 21:31:01 +01:00
Max Schmitt 611badcf74
fix: setInputFiles test in driver mode (#28166)
https://github.com/microsoft/playwright/pull/28156
2023-11-15 20:09:36 +01:00
Playwright Service bb241abaff
feat(webkit): roll to r1944 (#28148)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-11-15 19:34:53 +01:00
Max Schmitt b66839b039
fix(exposeFunction): exposeFunction should not leak client side BindingCalls (#28163)
This should already make it a bit better. There is more going on tho.

https://github.com/microsoft/playwright/issues/28146
2023-11-15 17:15:25 +01:00
Dmitry Gozman 557f3afd74
feat(recorder): assert value as a separate tool (#28145) 2023-11-14 15:17:42 -08:00
Dmitry Gozman 0a052cb4d6
feat(recorder): assert visibility tool (#28142) 2023-11-14 12:55:34 -08:00
Max Schmitt 2ac1cde879
fix(recorder): resize of assert overlay textarea (#28137) 2023-11-14 18:07:27 +01:00
Pavel Feldman 60a37f37ef
chore: allow tabbing from codemirror locator editor (#28116) 2023-11-14 08:13:29 -08:00
Dmitry Gozman 16aee8b5d0
fix(codegen): comment-out generated expects for library scripts (#28118)
- reverts "fix(codegen): generate expect import for library
(https://github.com/microsoft/playwright/pull/28107)";
- comments-out generated expects.
2023-11-13 16:56:27 -08:00
Dmitry Gozman 36b99c3437
chore(recorder): standby mode, expose setModeRequested in DebugController (#28117) 2023-11-13 16:39:14 -08:00
Dmitry Gozman 2c3955a28c
chore: remove fake error from expect calls (#28112)
We used to have a fake `error` property, so that trace viewer shows
failed expectes as such. Today, we have a step for each expect that
contains a proper error. Sending the fake error to the client confuses
language ports.
2023-11-13 16:39:05 -08:00
Pavel Feldman b0f75a6a3a
chore: allow editing locator while matching text (#28115) 2023-11-13 15:42:46 -08:00
Pavel Feldman ae5cdf16f0
chore: allow asserting substring (#28111) 2023-11-13 14:38:04 -08:00
Max Schmitt 8b1c637c16
fix(codegen): generate expect import for library (#28107) 2023-11-13 21:54:30 +01:00
Pavel Feldman cd70d51aa8
chore: remove redundant check for highlight liveness (#28108)
Closes https://github.com/microsoft/playwright/issues/28002
2023-11-13 11:44:25 -08:00
Pavel Feldman db38f0d2df
chore: flag text mismatch when editing (#28106) 2023-11-13 11:44:06 -08:00
Dmitry Gozman 120f0228c5
feat(selector generator): try improving text candidate with heuristics (#28074)
- Drop number-like prefixes and/or suffixes.
- Trim long texts to a word boundary around 15-25 character.
2023-11-13 11:30:16 -08:00
Mattias Wallander c6d154f9c4
feat: Add support for dispatching device motion events (#28067)
References #27887.
2023-11-13 08:58:46 -08:00
Pavel Feldman 1b3349d091
chore: use codemirror in the on-hover locator editor (#28090) 2023-11-10 22:00:28 -08:00
Yury Semikhatsky fae5dd898a
chore: remove from client check if browser is co-located with server (#28071)
Reference https://github.com/microsoft/playwright/issues/27792
2023-11-10 15:24:31 -08:00
Playwright Service 93d202c480
feat(chromium): roll to r1090 (#28052)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-09 15:16:20 +01:00
Pavel Feldman b004c1a0a7
chore: rework assert dialog (#28043) 2023-11-08 20:09:58 -08:00
Max Schmitt 5f527fedb1
fix: JSHandle preview text for non-ascii attributes/children (#28038)
This surfaced in .NET that the string in the driver got incorrectly cut,
then transferred to .NET as an invalid UTF8 character
[`\ud835`](https://charbase.com/d835-unicode-invalid-character) which
.NET wasn't able to parse and threw an error.

Drive-by: Move similar function from
`packages/playwright-core/src/client/page.ts` into isomorphic
`stringUtils`.

https://github.com/microsoft/playwright-dotnet/issues/2748
2023-11-09 00:11:01 +01:00
Mattias Wallander 5a9fa69c6d
feat: Add support for dispatching device orientation events (#27960)
Fixes #27887
2023-11-08 09:50:25 -08:00
Pavel Feldman 061ded19b6
chore: place overlay inside the glass pane (#28026) 2023-11-07 19:36:12 -08:00
Max Schmitt e788c711c6
fix: electron video tests (#28004) 2023-11-07 23:42:17 +01:00
Playwright Service b9aaa38d3b
feat(firefox): roll to r1429 (#28020)
Fixes https://github.com/microsoft/playwright/issues/27682

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-07 22:20:55 +01:00
Pavel Feldman eeda25c47f
chore(recorder): glue the overlay to the top (#28021) 2023-11-07 12:58:41 -08:00
Dmitry Gozman 810382c074
chore(recorder): more UX fixes for text assertions (#27995) 2023-11-06 16:40:33 -08:00
Pavel Feldman 87787dcc7d
chore: allow click close the page w/o errors (#27994) 2023-11-06 15:13:41 -08:00
Dmitry Gozman ffd2e02aa3
feat(recorder): various UX fixes (#27967) 2023-11-04 21:18:27 -07:00
Dmitry Gozman f401a482d2
fix(codegen): consume pointer events alongside mouse events (#27949)
Fixes #27926.
2023-11-03 13:41:51 -07:00
Max Schmitt 326c9785b4
fix(trace-viewer): keep searchParams on / redirect (#27956)
Relates to https://github.com/microsoft/playwright/issues/27952.

Might help future users too.
2023-11-03 17:38:55 +01:00
Max Schmitt f9c4955fe8
fix(msedge): install with multiple artifacts (#27939)
The API response looked like this:

<img width="1584" alt="image"
src="https://github.com/microsoft/playwright/assets/17984549/89d32ad4-8770-48c3-b562-231ae7b9ef3b">

-> multiple entries for `Windows` and `X64`, but some without artifacts.
-> We filter now for `artifacts.length > 0` which seems like a healthy
change.

Fixes https://github.com/microsoft/playwright/issues/22841
2023-11-02 15:30:40 -07:00
Dmitry Gozman a7fd515626
chore(recorder): use designMode for text selection tool (#27936)
This allows us to barely support shadow dom, compared to no support at
all.
2023-11-02 13:47:53 -07:00
Playwright Service 059c865689
feat(chromium): roll to r1089 (#27925)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-02 15:16:43 +01:00
Dmitry Gozman 07da88dcf1
feat(recorder): generate toHaveValue/toBeEmpty/toBeChecked (#27913) 2023-11-01 21:17:25 -07:00
Pavel Feldman 0f2de59b7c
chore: remove graceful browser.close cleanup (#27916) 2023-11-01 20:17:10 -07:00
Pavel Feldman 817a130cdc
chore: dispose-based callback termination (#27911) 2023-11-01 16:36:39 -07:00
Dmitry Gozman 3dedbced13
feat(recorder): in-page overlay (#27904) 2023-11-01 15:56:49 -07:00
Yury Semikhatsky 36c4c24f8a
fix: only convert input files for browser collocated with server (#27873)
Reference #27452
Fixes #27792
2023-11-01 08:40:12 -07:00
Playwright Service 38115d121b
feat(chromium): roll to r1088 (#27897)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-01 13:52:00 +01:00
Playwright Service 0c4de1f4ce
feat(webkit): roll to r1932 (#27884)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-31 19:39:23 +01:00
Max Schmitt cff9ac04e4
fix: cross-origin Page.goto referer (#27859)
Fixes https://github.com/microsoft/playwright/issues/27765
2023-10-31 11:10:15 +01:00
Yury Semikhatsky c7b6a76437
fix(fetch): throw when methods are called on disposed context (#27868)
Fixes #27822
2023-10-30 15:23:12 -07:00
Max Schmitt 59b8cf008e
fix(codegen): don't generate page.frame() calls anymore (#27820)
Fixes https://github.com/microsoft/playwright/issues/27650
2023-10-30 21:56:45 +01:00
Dmitry Gozman 88f30d1ce2
feat: support firefoxUserPrefs in launchPersistentContext (#27840)
Fixes #27773.
2023-10-27 09:24:41 -07:00
Playwright Service 49b662c22c
feat(chromium): roll to r1087 (#27834)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-27 14:19:42 +02:00
Dmitry Gozman 4d8dd55b90
chore: refactor Recorder, introduce RecorderTool (#27826) 2023-10-26 19:42:03 -07:00
Dmitry Gozman 24deac458b
feat(expect): generate toHaveText (#27824) 2023-10-26 18:49:14 -07:00
Pavel Feldman 778047facc
chore: stream trace viewer logs (#27807) 2023-10-26 11:15:43 -07:00
Yury Semikhatsky 5e51a734e7
fix: interrupt request.allHeaders()/response() on page.close() (#27695)
Reference https://github.com/microsoft/playwright/issues/27227
2023-10-23 12:45:35 -07:00
Michaël Vanderheyden 0a0878d567
feat: add pixel 7 device with android 14 (#27700) 2023-10-23 12:59:42 +02:00
Max Schmitt 6d7d37061d
fix(recorder): Locator picker had wrong initial language in language bindings (#27706)
**Description**

When a language port was using Inspector with the "Locator Picker"
feature, it only recognised JavaScript as a language by default. As a
workaround the user was able to click record, interact with the page and
then the language would be correctly used -> csharp e.g. would work in
the "Locator Picker".

**Why?**

Our language bindings are setting `PW_LANG_NAME=<sdkLanguage>` env var
-> good. Our recorder harness also uses this along its internal state
here:


b9b289b641/packages/playwright-core/src/server/recorder.ts (L369)

and it gets used here (no parameter means: we use the first language
aka. primary language):


b9b289b641/packages/playwright-core/src/server/recorder.ts (L95)

The only issue is that the Inspector frontend in the beginning does not
know which language it should use and pass over to the server side, it
then falls back to JavaScript.

**Proposed fix**

Instead of passing it over from the frontend to the server side, we just
always use it from the server side, aka. "currentLanguage". When the
user switches languages in the frontend, "currentLanguage" already gets
updated properly via the "fileChanged" event.

https://github.com/microsoft/playwright-dotnet/issues/2718

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-10-22 13:02:14 +02:00
Dmitry Gozman d1d5fc67dc
fix(recorder): show action point in main frame only (#27719) 2023-10-20 20:58:09 -07:00
Dmitry Gozman 6e62a11643
fix(trace): EPERM on windows (#27693)
When merging trace files, we sometimes left open read streams from the
zip, which prevents it from being removed.

Fixes #27286.
2023-10-19 11:14:17 -07:00
Max Schmitt b1325c9208
fix(keyboard): event order for Escape key (#27711)
This test was failing in Chromium before this change.

Caused by
40d5e3a3c9/packages/playwright-core/src/server/chromium/crInput.ts (L54-L55)

which messes up the order of the protocol calls.

Fixes https://github.com/microsoft/playwright/issues/27709.
2023-10-19 18:18:29 +02:00
Playwright Service 920f8766f0
feat(chromium): roll to r1086 (#27703)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-19 16:15:22 +02:00
Yury Semikhatsky bd58c0d5d2
fix: preserve lastModified timestamp in setInputFiles (#27671)
Fixes #27452
2023-10-18 14:05:09 -07:00
Pavel Feldman 3aa147914c
chore: split error to client and server sides (#27672) 2023-10-17 21:34:02 -07:00
Pavel Feldman 091f6883f5
chore: remove the usages of raw target closed message constant (#27669) 2023-10-17 15:35:41 -07:00
Playwright Service 5262e5ab35
feat(chromium-tip-of-tree): roll to r1159 (#27605) 2023-10-17 22:41:23 +02:00
Pavel Feldman d4296dbff4
chore: break dowload.path() to throw (#27662) 2023-10-17 12:56:56 -07:00
Josh Lee 08bc4fd801
fix(registry): don't download x64 binaries on other platforms (#27462)
On Linux platforms, specifically check that process.arch is x64, rather
than treating it as 'not arm64'.

Treat Raspbian's /etc/os-release file as Debian.

Document the supported platforms somewhat.

Fixes #27453
2023-10-17 12:54:20 -07:00
Pavel Feldman a54dbfdadf
chore: plumb the target close reason when test fails (#27640) 2023-10-16 20:32:13 -07:00
Yury Semikhatsky 4e845e7b1d
fix(fetch): JSON.stringify on client (#27644)
Fixes https://github.com/microsoft/playwright/issues/27602
2023-10-16 16:33:49 -07:00
Dmitry Gozman e8b4c03e54
fix(chromium): do not cancel downloads when intercepting (#27638)
Fixes #27575.
2023-10-16 15:12:52 -07:00
Playwright Service f8277ca99c
feat(webkit): roll to r1927 (#27639)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-16 23:27:15 +02:00
Pavel Feldman b0c73b72f1
chore: push protocol error conversion to dispatcher (#27608) 2023-10-16 13:13:00 -07:00
Dmitry Gozman d83d9ce268
chore: make sure that we print warning for unsupported OS (#27610)
Also, fix some missing paths in download lists.
2023-10-16 10:49:57 -07:00
Playwright Service b3bcf1c75a
feat(chromium): roll to r1085 (#27604)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-14 16:17:50 +02:00
Yury Semikhatsky bc59565d77
fix(webkit): support clipboard.readText (#27581)
Reference #27475
2023-10-13 09:10:35 -07:00
Pavel Feldman f212fd1a83
chore: unify target closed errors (#27540) 2023-10-12 11:05:34 -07:00
Dmitry Gozman 4f9b285c07
chore: update WebKit version to 17.4 (#27536) 2023-10-10 14:49:49 -07:00
Dmitry Gozman 2407041090
fix(chromium): avoid premature continue of redirects (#27520)
This has recently regressed in #27429.

We now continue requests that are paused for the second time. However,
redirects share `networkId` with the original request, so we may confuse
paused redirect with a second pause for the original request.

This is covered by the flaky test `page-route.spec.ts:392 > should work
with redirects for subresources`
References #27294.
2023-10-09 20:08:35 -07:00
Pavel Feldman fd6bf8aa2c
chrome: improve error messages on vscode side (#27521) 2023-10-09 19:55:24 -07:00
Playwright Service 9062dd0139
feat(chromium): roll to r1084 (#27497) 2023-10-07 10:48:51 +00:00
Pavel Feldman b807c974c3
chore: allow passing path to property in toHaveJSProperty (#27495)
Fixes https://github.com/microsoft/playwright/issues/27487
2023-10-06 15:47:07 -07:00
Dmitry Gozman cba2fc0752
chore: align FFConnection with CRConnection (#27450) 2023-10-05 13:46:41 -07:00
Playwright Service 5e2b9f158c
feat(webkit): roll to r1917 (#27444)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-10-05 19:21:21 +00:00
Playwright Service 2ea28c9732
feat(webkit): roll to r1915 (#27443)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-10-05 17:31:40 +00:00
Playwright Service b3897b209e
feat(chromium): roll to r1083 (#27445)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-05 16:52:10 +00:00
Jim Hays dcc8dcca73
Fix various typos (Fixes #27396) (#27391)
Fixes https://github.com/microsoft/playwright/issues/27396
2023-10-04 19:56:42 -07:00
Dmitry Gozman 045e8aa368
chore: move devices from Playwright to LocalUtils (#27437)
Also, do not create `LocalUtils` for remote connections. This avoids
sending device on every remote connect.
2023-10-04 16:48:54 -07:00
Dmitry Gozman d426f2fd4e
fix(chromium): continue requests paused for the second time (#27429)
Sometimes Chromium restarts requests. This leads to multiple
`Fetch.requestPaused` for a single `Network.requestWillBeSent`.

Fixes #27294.
2023-10-04 11:18:06 -07:00
Playwright Service 7dcba6f5f0
feat(firefox): roll to r1425 (#27427)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-04 11:00:50 -07:00
Yury Semikhatsky ac48a47d33
feat: toHaveAttribute without value (#27418)
This time not doing it in other languages due to unjustified generator
complexity.

Fixes #27341
2023-10-04 09:27:28 -07:00
Pavel Feldman 47b0255b89
chore: instrument nested workers (#27400)
Ref: https://github.com/microsoft/playwright/issues/27376
2023-10-03 13:08:15 -07:00
Pavel Feldman ae08d03d75
fix(role): compute <output> accessible name from labels (#27415)
Fixes: https://github.com/microsoft/playwright/issues/27403
2023-10-03 13:01:13 -07:00
Yury Semikhatsky 567386c23f
fix(webkit): add libnghttp2 to the deps on older distros (#27399)
`bin/WPENetworkProcess` depends on `libsoup-3.0.so.0` which we bundle
with the browser on Ubuntu 20 and Debian 11, but soup3 depends on
`libnghttp2.so` which is expected to be installed on the host.

Fixes https://github.com/microsoft/playwright/issues/27255
2023-10-02 18:06:28 -07:00
Dmitry Gozman 2aca7fdcc2
fix(chromium): scroll into view elements inside iframes before waiting (#27394)
This forces iframes to be visible, so that `rAF`s always run.

Fixes #27196.
2023-10-02 17:21:06 -07:00
Playwright Service 1bed74bc8b
feat(webkit): roll to r1914 (#27279) 2023-10-02 11:36:23 -07:00
Dmitry Gozman 55c4bb97af
chore: extract CDPSession on the server side, remove duplicate code (#27349)
This makes sure that protocol calls after target close are rejected
correctly.
2023-09-29 12:50:02 -07:00
Yury Semikhatsky 0f14446518
chore: log formatting for single state (#27351)
Fixes formatting for "waiting for element to be  and stable".
2023-09-29 09:14:26 -07:00
Dmitry Gozman c8143748e6
chore: remove Page._didDisconnect (#27317)
Instead of having `didClose` based on page creation/destruction and
`didDisconnect` based on session lifetime, we make session lifetime
being managed by the `CRPage`/`FFPage`/`WKPage` instead.
2023-09-27 14:09:56 -07:00
Pavel Feldman ffd20f43f8
chore: dispose stale handles to prevent oom, 1000 of a kind max (#27315)
https://github.com/microsoft/playwright/issues/6319
2023-09-26 15:54:33 -07:00
Dmitry Gozman 9a5356f93b
fix(snapshot): invalidate style sheet upon CSSGroupingRule changes (#27296)
Previously, snapshotter listened to CSSStyleSheet modifications, but one
can also modify the list of rules inside CSSGroupingRule.

Fixes #27288.
2023-09-25 14:34:17 -07:00
wodyjowski 522782cce6
fix: desiredCapabilities removed (#27275)
DesiredCapabilities field was removed in selenium grid > 4.8.2
Without this field removed it's impossible to connect to grid.
Grid throws exception on POST /session
[stackoverflow issue](https://stackoverflow.com/a/76695833)

Fixes #27276
2023-09-25 13:52:16 -07:00
Dmitry Gozman 0f72ef0584
fix(streams): avoid leaking event listeners (#27291)
Fixes #26998.
2023-09-25 10:59:14 -07:00
Pavel Feldman 287d720b8e
chore: remove dedicated console channel (#27234) 2023-09-21 16:16:43 -07:00
Dmitry Gozman 1857a3fb56
fix(evaluate): make sure to try/catch toJSON access (#27238) 2023-09-21 13:31:28 -07:00
Dmitry Gozman b9509b3ec6
Revert "feat(evaluate): serialize map and set (#26730)" (#27219)
This reverts commit ee203b782c.

References #24040.
Fixes #27181.
2023-09-20 18:31:09 -07:00
Dmitry Gozman 2af7d672ef
fix(tracing): bump trace version to V5, migrate V4 traces to consoleMessage.args (#27162)
This moves the fix in #27095 from `modernize` to `appendEvent`. The
reason is that `trace V4` is used both for older traces that do not have
`consoleMessage.args` and the new ones with `args`. Since we do not call
`modernize` for traces of the same version, the original fix does not
help in this case.

Fixes #27144.
2023-09-19 16:21:09 -07:00
Yury Semikhatsky 88038f1b00
fix: do not throw from fetch when response has invalid cookie (#27192)
Cookie value is limited by 4096 characters in the browsers. If
setCookies failed we try setting each cookie individually just in case
only some of them are bad.

Fixes https://github.com/microsoft/playwright/issues/27165
2023-09-19 16:18:16 -07:00
Andrey Lushnikov 94e272ba0f
fix(firefox): properly handle navigations (#27132)
In firefox, the `frameRequestedNavigation` is coming from renderer and
thus can happen **after** the `Network.requestWillBeSent`, which is
dispatched from the browser process.

Fixes https://github.com/microsoft/playwright/issues/24132
2023-09-18 17:01:19 -07:00
Dmitry Gozman a26f568b36
fix(tracing): support old traces with consoleMessage.args (#27095)
Fixes #27072.
2023-09-14 17:07:29 -07:00
Dmitry Gozman b3edf8e562
fix(har): handle invalid Expires/Max-Age (#27098)
Fixes #27073.
2023-09-14 17:06:56 -07:00
Playwright Service 57e5183809
feat(chromium): roll to r1081 (#27080)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-14 16:00:21 +02:00
Max Schmitt c06ed8c0bc
chore: add --disable-search-engine-choice-screen flag to Chromium (#27038)
As per `https://github.com/puppeteer/puppeteer/pull/10880`
2023-09-13 18:06:50 +02:00
Playwright Service bf35390c8d
feat(webkit): roll to r1908 (#27049) 2023-09-13 17:40:18 +02:00
Playwright Service 00b74a4aae
feat(chromium): roll to r1080 (#27041)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-13 14:12:45 +02:00
Yury Semikhatsky 700b310150
fix(fetch): restore from empty storage state (#27025)
Fixes #26833
2023-09-12 13:11:18 -07:00
Max Schmitt 6bbc09c96c
chore: show channel name in trace viewer metadata (#26987)
Fixes https://github.com/microsoft/playwright/issues/26986
2023-09-11 23:06:56 +02:00
Playwright Service aa3f4f208e
feat(chromium): roll to r1079 (#26934) 2023-09-07 18:48:50 +02:00
Playwright Service bf1f2d2c81
feat(firefox): roll to r1424 (#26915)
Fixes https://github.com/microsoft/playwright/issues/26463

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-06 23:02:52 -07:00
Playwright Service bcf59ed721
feat(webkit): roll to r1905 (#26909) 2023-09-07 07:41:46 +02:00
Pavel Feldman 7fa16d2230
chore: pick frame selectors in recorder (#26923) 2023-09-06 18:35:32 -07:00
Pavel Feldman d65da74b8f
fix(trace): allow typing in selector w/ frames (#26919) 2023-09-06 16:14:40 -07:00
Max Schmitt f71df9fb50
chore: introduce sdkLanguage based userDataDir misuse error (#26894)
Fixes https://github.com/microsoft/playwright-python/issues/2059

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-09-06 22:58:44 +02:00
Max Schmitt d79dad09e8
fix(ui-mode/tv): do not open new tab on macOS (#26877)
Fixes https://github.com/microsoft/playwright/issues/9434
2023-09-06 22:57:29 +02:00
Andrey Lushnikov 9105a20ac4
fix: remove window.stop() from page.setContent() implementation (#26886)
The call was added back in 2019 to stop network loading. See commit:
56a48559c2

However, there's no evidence that this call is needed any more:
- all the tests pass without it
- `window.stop()` behavior is poorly defined, so relying on it is
unfortunate.

The `window.stop()` call, however, causes trouble while rolling firefox:
under certain condititions, the call prevents document from firing the
`load` event in the `document.open().write(..).close()` sequence that
comes immediately after the call. While this does look like a bug in
Firefox itself, we failed to reproduce it in isolation.

For the reference, the following tests fail with the Firefox 116 (using
`PWTEST_TRACE=1` triggers the race condition somewhere):

```bash
PWTEST_TRACE=1 npm run ftest cli-codegen
```
2023-09-06 11:02:38 -07:00
Pavel Feldman b4012df160
fix(trace): make locator picker work for iframes (#26883)
Fixes https://github.com/microsoft/playwright/issues/26878
2023-09-06 09:44:47 -07:00
Dmitry Gozman 740472ce8f
fix(trace viewer): retain currentSrc of all images (#26841)
When `<source>` or `srcset=` are involved, the actual image src is
determinted at runtime based on factors like `devicePixelRatio` and
media queries that depend on width/height.

Since these factors may differ in the Trace Viewer itself, we should
preserve the `currentSrc`, use it as an actual `src`, and disable
various `<source>` and `srcset=`.
2023-09-05 12:48:07 -07:00
Playwright Service 94c1b749b2
feat(webkit): roll to r1904 (#26855)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-04 16:08:23 +02:00
Dmitry Gozman 741c649d56
fix(trace viewer): make sure target inside shadow dom is highlighted (#26823)
References #24532.
2023-08-31 12:46:49 -07:00
Playwright Service 6629b31a97
feat(webkit): roll to r1902 (#26812)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-31 17:31:13 +02:00
Playwright Service 60e70c187d
feat(chromium): roll to r1078 (#26811)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-31 16:03:16 +02:00
Pavel Feldman fd31f5bc50
chore: fix har date types (#26783) 2023-08-30 12:40:46 -07:00
Pavel Feldman 99b8ca2be2
chore: flush har when recording tracing (#26746) 2023-08-28 17:44:48 -07:00
Sander ee203b782c
feat(evaluate): serialize map and set (#26730)
closes: https://github.com/microsoft/playwright/issues/24040
2023-08-28 14:32:41 -07:00
Yury Semikhatsky 501ed32856
fix(fetch): update host header on redirect (#26750)
Fixes https://github.com/microsoft/playwright/issues/26743
2023-08-28 12:42:50 -07:00
Max Schmitt 5c72cbdb23
feat(webkit): roll WebKit to r1898 (#26738) 2023-08-28 19:44:52 +02:00
Pavel Feldman eb9ef64e7d
fix(android): use domain socket suffix chrome can discover (#26724)
Fixes: https://github.com/microsoft/playwright/issues/26721
2023-08-25 19:30:09 -07:00
Pavel Feldman bc1f6272d8
chore: deflate large web socket messages (#26720) 2023-08-25 16:13:46 -07:00
Pavel Feldman 0ecd561db2
chore: improve network panel rendering (#26708) 2023-08-25 12:10:28 -07:00
Playwright Service ce446437fb
feat(chromium): roll to r1077 (#26709)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-25 19:31:19 +02:00