Commit Graph

1566 Commits

Author SHA1 Message Date
jrandolf
27636afacf
chore: implement boxModel, contentFrame, and nested frame boundingBox (#10773) 2023-08-23 16:58:18 +02:00
jrandolf
ce9e2df04d
chore: update dependencies (#10763) 2023-08-21 20:13:03 +02:00
Alex Rudenko
052745a9e7 test: unskip more tests (#10755) 2023-08-18 16:10:12 +02:00
Alex Rudenko
72a10faa5e
test: update test expectations (#10752) 2023-08-18 14:52:01 +02:00
Alex Rudenko
8424ecf4c4
chore: use setViewport (#10748) 2023-08-18 10:15:43 +02:00
Alex Rudenko
fc08a7dd54
fix: locator.fill should work for textareas (#10737)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-08-17 06:05:58 +00:00
Alex Rudenko
81ecb60190
fix: relative ordering of events and command responses should be ensured (#10725) 2023-08-16 14:12:29 +00:00
Alex Rudenko
bec2357aee
feat: allow installing chrome/chromedriver by milestone and version prefix (#10720) 2023-08-10 13:00:22 +02:00
Nikolay Vitkov
47dfc3578d
chore: add evaluateOnNewDocument for BiDi (#10712) 2023-08-09 10:00:33 +02:00
Alex Rudenko
f70048c84f
refactor: turn Frame into EventEmitter (#10711) 2023-08-08 16:42:45 +02:00
Alex Rudenko
932a5e0415
refactor: add parentSession() to CDPSession (#10709) 2023-08-08 12:21:43 +02:00
Nikolay Vitkov
2dec12fe8b
chore: update test expectations BiDi (#10703) 2023-08-08 08:18:43 +00:00
jrandolf
8b8770c004
fix: destroy puppeteer utility on context destruction (#10672) 2023-08-07 14:44:12 +02:00
Nikolay Vitkov
512a0f2a9d
chore: enable _client for Chrome BiDi (#10688) 2023-08-04 13:09:10 +00:00
Nikolay Vitkov
f4c711e25b
chore: BiDi close error (#10687) 2023-08-04 14:45:38 +02:00
Nikolay Vitkov
4a0a2bb2db
chore: enable PuppeteerUtil test for BiDi (#10686) 2023-08-04 11:02:30 +00:00
jrandolf
1b44b911d3
fix: use handle frame instead of page (#10676) 2023-08-03 12:11:44 +02:00
Nikolay Vitkov
63b2be122d
chore: fix waitForNavigation BiDi (#10671) 2023-08-02 13:13:39 +02:00
Nikolay Vitkov
4f60a567a6
chore: update chromium-bidi (#10670) 2023-08-01 16:38:27 +02:00
Nikolay Vitkov
76f67ebd76
chore: add Dialogs for BiDi (#10659) 2023-08-01 15:53:02 +02:00
jrandolf
04369db145
chore: implement partial ElementHandle.prototype.boundingBox (#10660) 2023-08-01 15:07:48 +02:00
Nikolay Vitkov
0757d04358
chore: update chromium-bidi (#10620) 2023-07-28 11:11:14 +02:00
jrandolf
fdada74ba7
feat: implement Locator.prototype.waitHandle (#10650) 2023-07-27 10:47:29 +02:00
Alex Rudenko
448a18310d
refactor: add browser target (#10642) 2023-07-27 09:56:13 +02:00
jrandolf
6ad92f7f84
feat: implement function locators (#10632) 2023-07-27 09:23:28 +02:00
jrandolf
34be28db5d
feat: implement immutable locator operations (#10638) 2023-07-26 17:00:00 +02:00
Alex Rudenko
30ccbf855a
refactor: target events for bidi (#10634) 2023-07-26 12:19:27 +00:00
jrandolf
e73d35def0
feat: implement Locator.prototype.filter (#10631) 2023-07-25 16:46:10 +02:00
jrandolf
47eecf5bb1
feat: implement Locator.prototype.map (#10630) 2023-07-25 16:45:10 +02:00
jrandolf
5d34d42d15
feat: implement Locator.prototype.wait (#10629) 2023-07-25 16:43:18 +02:00
jrandolf
ede43ca2d3
chore: use RxJS for locator implementation (#10607)
Using RxJS greatly simplifies the control flow for locators and comes with automatic cleanup on failure. It greatly simplifies the `signal` logic and the retry logic.
2023-07-25 12:43:07 +02:00
Alex Rudenko
e8e7bf1d3c
test: format test expectations (#10628) 2023-07-25 10:02:28 +02:00
Nikolay Vitkov
7d97b5804f
chore: launcher test should respect headless (#10625) 2023-07-25 07:06:35 +00:00
Julian Descottes
186b994fba
test: upstream test and expectation for Firefox sync to puppeteer v20.9.0 (#10622) 2023-07-25 08:30:03 +02:00
Alex Rudenko
d0c5b8e089
feat: add page.createCDPSession method (#10515) 2023-07-21 14:03:52 +02:00
Alex Rudenko
c5016cc670
test: update Firefox expectations (#10611) 2023-07-21 11:52:10 +02:00
Alex Rudenko
0e60ce4cec
refactor: move Target to api (#10602) 2023-07-21 09:04:14 +02:00
Alex Rudenko
44712d1e6e
refactor!: use Target for filters (#10601) 2023-07-20 16:18:00 +02:00
jrandolf
0715ad8281
refactor: move locators to separate files (#10591) 2023-07-20 15:06:42 +02:00
jrandolf
5a411ca629
chore: use clock.restore for locator test (#10597) 2023-07-20 10:23:37 +02:00
Alex Rudenko
25e33717f5
chore: implement isIncognito (#10595) 2023-07-20 08:52:50 +02:00
Alex Rudenko
6c9306a72e
feat: add autofill support (#10565) 2023-07-19 17:42:31 +00:00
jrandolf
c14f9b64a7
chore: implement typed Locators, expects, and internal contexts (#10573) 2023-07-19 15:39:38 +00:00
Alex Rudenko
bf6304e064
fix: restore proxy-agent (#10569) 2023-07-19 13:38:52 +02:00
browser-automation-bot
830f926d48
feat: roll to Chrome 115.0.5790.98 (r1148114) (#10584)
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2023-07-19 08:11:45 +00:00
Alex Rudenko
c7f3fb21be
test: enable addScriptTag tests (#10583) 2023-07-18 21:55:30 +02:00
Alex Rudenko
d71836e7ed
test: remove obsolete expectations (#10581) 2023-07-18 21:12:00 +02:00
Alex Rudenko
3b4ff2ad32
test: enable waitForXPath tests (#10580) 2023-07-18 21:11:12 +02:00
jrandolf
b032b629cb
test: skip headful tests in headless modes (#10578) 2023-07-18 20:18:22 +02:00
Alex Rudenko
a419abf509
test: unskip style tag tests (#10572) 2023-07-18 18:27:41 +02:00
Alex Rudenko
e3dd5968ca
fix(locators): reject the race if there are only failures (#10567) 2023-07-18 11:26:06 +02:00
Nikolay Vitkov
de09b058ba
chore: update Prettier and other deps (#10555) 2023-07-17 10:52:54 +02:00
dependabot[bot]
5e50bf2104
chore(deps): Bump glob from 10.3.1 to 10.3.3 (#10539)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-11 17:41:02 +02:00
Alex Rudenko
56a97dd2fb
fix: add an internal page.locatorRace (#10512) 2023-07-06 09:24:19 +02:00
Nikolay Vitkov
0d2c42a1c4
ci: fix Actions not running sometimes (#10503) 2023-07-04 14:17:25 +02:00
Nikolay Vitkov
0caf124182
chore: move unit tests (#10498) 2023-07-03 13:25:43 +00:00
Nikolay Vitkov
d0d738d2fc
chore: readd browser setup hook (#10478) 2023-07-03 14:01:29 +02:00
Alex Rudenko
5a3abb2f5e
ci: fix mocha utils (#10496) 2023-07-03 11:41:24 +02:00
Nikolay Vitkov
58e9c64f63
chore: fix expectations (#10484)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2023-06-30 11:18:01 +00:00
Alex Rudenko
02634d80da
test: update tests for aborted requests (#10476) 2023-06-30 11:56:16 +02:00
release-please[bot]
74f588f1c1
chore: release main (#10445)
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2023-06-29 16:51:40 +00:00
jrandolf
84a956f56b
fix: fix escaping algo for P selectors (#10474) 2023-06-29 11:00:57 +00:00
jrandolf
1c80ebe846
chore: update Bidi key values (#10466) 2023-06-29 07:31:49 +00:00
Nikolay Vitkov
1f0dc4f3a3
refactor: move EventEmitter tests (#10463) 2023-06-28 13:36:26 +02:00
dependabot[bot]
6edb392ebc
chore(deps): Bump glob from 10.3.0 to 10.3.1 (#10460)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-28 09:15:32 +00:00
Nikolay Vitkov
ceb6fbb365
chore: use a less chatty BiDi+ (#10453) 2023-06-28 09:54:16 +02:00
Alex Rudenko
e452647739
chore: move Deferred test (#10452) 2023-06-26 14:01:36 +02:00
Alex Rudenko
c35084dd2c
ci: separate unit tests (#10436) 2023-06-26 10:57:48 +02:00
Nikolay Vitkov
42bdfa20d7
chore: add Deferred test for BiDi (#10434) 2023-06-22 09:39:39 +00:00
dependabot[bot]
28e5cf0f0b
chore(deps): Bump glob from 10.2.7 to 10.3.0 (#10433)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-22 10:48:01 +02:00
Nikolay Vitkov
45a05e038b
chore: add Deferred.race test (#10432) 2023-06-21 22:51:15 +02:00
Nikolay Vitkov
ff8529696d
ci: remove before hooks (#10431) 2023-06-21 19:41:09 +00:00
Nikolay Vitkov
337184e722
chore: BiDi waitForNavigation (#10424) 2023-06-21 12:45:17 +02:00
jrandolf
fbdcc0d646
fix: add parenthesis to JS values in interpolateFunction (#10426) 2023-06-20 16:26:10 +02:00
Alex Rudenko
c16a4a7276
ci: check number of tests (#10423) 2023-06-20 13:56:11 +02:00
Alex Rudenko
0556799e5a
chore: fix error in Connection for Firefox (#10422) 2023-06-20 11:07:56 +02:00
jrandolf
3ba7fba838
chore: implement Bidi keyboard (#10417) 2023-06-19 17:44:39 +02:00
Alex Rudenko
769dd593ab
chore: enable locator tests (#10416) 2023-06-19 14:28:54 +02:00
jrandolf
4f6b0d4e45
chore: implement Webdriver BiDi mouse and touchscreen (#10402)
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2023-06-19 11:26:30 +00:00
jrandolf
39847bd231
refactor: use input API for CDP inputs (#10401) 2023-06-19 10:12:43 +02:00
Alex Rudenko
90a9de7257
chore: implement default context and newPage/pages (#10397) 2023-06-16 15:27:31 +02:00
Alex Rudenko
eda592426e
chore: enable waitForFunction tests (#10396) 2023-06-16 12:58:08 +02:00
Nikolay Vitkov
d560299aa8
chore: add waitForSelector for BiDi (#10383) 2023-06-16 09:16:04 +02:00
Alex Rudenko
866addd132
chore: emulation over bidi+ (#10391) 2023-06-15 15:58:48 +02:00
Alex Rudenko
853d0dc76f
chore: enable coverage over bidi+ (#10387) 2023-06-15 10:00:14 +02:00
Alex Rudenko
2961449391
test: misc test improvements (#10371) 2023-06-13 13:05:01 +00:00
Alex Rudenko
b8db12fd8e
chore: fix firefox bidi test (#10374) 2023-06-13 13:53:01 +02:00
Alex Rudenko
9473d740e7
chore: tracing over bidi+ (#10370)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-06-13 09:25:32 +00:00
Alex Rudenko
c2d3488ad8
fix: specify the context id when adding bindings (#10366) 2023-06-13 10:17:48 +02:00
Alex Rudenko
903afc3715
chore: implement acceptInsecureCerts and version for BiDi (#10365) 2023-06-13 10:17:23 +02:00
jrandolf
35aedc0dbb
feat: add reset to mouse (#10340) 2023-06-12 17:59:28 +00:00
Nikolay Vitkov
9aee41a53d
chore: run more BiDi test (#10355) 2023-06-12 14:50:30 +02:00
Nikolay Vitkov
a31231ef54
chore: implement common functions for BiDi (#10345) 2023-06-12 11:32:19 +02:00
Nikolay Vitkov
e3e68a99d2
chore: use launch helper (#10344) 2023-06-12 10:44:18 +02:00
release-please[bot]
d89072a368
chore: release main (#10298)
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2023-06-12 08:11:43 +00:00
Alex Rudenko
edb03d695b
chore: add a11y to bidi over bidi+ (#10338) 2023-06-07 13:54:09 +02:00
Alex Rudenko
b8782fd7a2
chore: enable a browser spec test (#10342) 2023-06-07 13:50:51 +02:00
Nikolay Vitkov
3552d97360
chore: update dependencies (#10336) 2023-06-07 11:17:31 +00:00
Alex Rudenko
9c35e9ab1f
feat: implement Locator.race (#10337) 2023-06-07 12:45:02 +02:00
Nikolay Vitkov
dde569b97d
ci: fix flaky test (#10335) 2023-06-07 10:18:01 +02:00
Nikolay Vitkov
0371beebba
chore: $ and $$ BiDi support (#10318) 2023-06-06 12:39:54 +00:00
Alex Rudenko
272f6c79f4
test: fix expectations for pqueries (#10323) 2023-06-06 11:34:12 +02:00
Alex Rudenko
514ad107d7
docs: add a few examples for ARIA queries (#10320)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-06-06 09:46:26 +02:00
Alex Rudenko
ade6ad89f4
test: update bidi tests for firefox (#10316) 2023-06-05 16:11:30 +00:00
Alex Rudenko
1f978f5fc5
feat: implement Locators (#10305) 2023-06-02 17:46:10 +00:00
Nikolay Vitkov
4d0dbbc517
feat: add page.removeExposedFunction (#10297) 2023-06-02 14:08:36 +02:00
Nikolay Vitkov
9abd48a062
fix: content() not showing comments outside html tag (#10293) 2023-06-01 21:51:16 +02:00
Nikolay Vitkov
74becdb6a0
chore: add browser and browserContext methods to Page (#10290) 2023-06-01 11:04:36 +00:00
Nikolay Vitkov
39e9737232
refactor: Deferred to a class (#10282) 2023-05-31 23:36:19 +02:00
release-please[bot]
5fc136eec1
chore: release main (#10281)
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2023-05-31 13:09:47 +00:00
Nikolay Vitkov
6f8ea5764d
chore: add Page.reload for BiDi (#10274) 2023-05-31 13:13:34 +02:00
Nikolay Vitkov
e61d9cbb4b
chore: refactor waitForNetworkIdle + waitForEvent (#10277) 2023-05-31 09:32:16 +02:00
Alex Rudenko
54d6192262
chore: add methods to configure locators (#10273) 2023-05-30 13:20:00 +00:00
Nikolay Vitkov
b03acac30f
chore: add support for waitForNetworkIdle (#10261) 2023-05-30 11:07:55 +00:00
Alex Rudenko
73b72b31b2
test: catch unhandled in a network test (#10242) 2023-05-30 08:03:06 +00:00
Nikolay Vitkov
1e5865c911
chore: remove unused files (#10259) 2023-05-30 07:22:09 +00:00
Nikolay Vitkov
f342c26d95
chore: add WaitForRequest and WaitForResponse (#10257) 2023-05-26 14:50:00 +02:00
Alex Rudenko
ff22ba8679
refactor: rename DeferredPromise to Deferred (#10255) 2023-05-26 09:42:22 +00:00
Junyan
b5a124ff73
feat: Page.removeScriptToEvaluateOnNewDocument (#10250)
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2023-05-26 07:56:45 +00:00
Alex Rudenko
79b5299c5b
chore: recover Buffer.concat on errors (#10252) 2023-05-26 06:45:02 +00:00
Alex Rudenko
c9cca17833
refactor: make deferred promises more robust to use (#10245) 2023-05-26 08:02:17 +02:00
Nikolay Vitkov
557ec24cfc
fix: stacktraces should not throw errors (#10231) 2023-05-24 14:42:08 +02:00
Alex Rudenko
cf28dae775
chore: convert async describe to sync (#10238) 2023-05-24 12:08:36 +00:00
Nikolay Vitkov
49360eac10
chore: fixes expectation for test in Firefox (#10239) 2023-05-24 11:56:24 +02:00
Alex Rudenko
4edcb72430
chore: fix test expectations (#10232) 2023-05-23 14:46:08 +02:00
Alex Rudenko
9ca9bbf259
chore: implement fill for locators (#10220) 2023-05-23 13:55:12 +02:00
Junyan
81f73a55f3
feat: Page.setBypassServiceWorker (#10229)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2023-05-23 13:51:32 +02:00
Alex Rudenko
640422680f
fix: webpack tests to use dirname (#10230) 2023-05-23 12:06:26 +02:00
Nikolay Vitkov
070ee03d31
chore: network module for BiDi (#10159) 2023-05-22 14:52:31 +02:00
Alex Rudenko
87ca58f97a
chore: implement locators for scroll and hover (#10219) 2023-05-22 09:57:51 +00:00
Alex Rudenko
1ad32ec994
feat: add an ability to trim cache for Puppeteer (#10199) 2023-05-17 15:21:40 +02:00
release-please[bot]
1e0cb1a164
chore: release main (#10185)
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2023-05-16 07:42:00 +00:00
Nikolay Vitkov
2808240c71
chore: implement Frames for BiDi (#10121) 2023-05-15 16:39:47 +02:00
Alex Rudenko
4398f66f28
fix: downloadPath should be used by the install script (#10163) 2023-05-11 17:09:24 +00:00
Nikolay Vitkov
c00cf45009
chore: create a test helper for launching browser (#10152) 2023-05-11 13:10:27 +00:00
jrandolf
317fa732f9
feat: implement detailed errors for evaluation (#10114) 2023-05-10 10:23:29 +02:00
Alex Rudenko
90ed263eaf
feat: support stable/dev/beta/canary keywords for chrome and chromium (#10140) 2023-05-08 14:54:44 +02:00
Alexandra Borovova
510d9717be
chore: try to enable some tests for firefox (#10136) 2023-05-08 11:39:23 +02:00
Alex Rudenko
9a1aff8a4c
chore: implement locators with a click (#10009)
Co-authored-by: jrandolf <101637635+jrandolf@users.noreply.github.com>
2023-05-05 09:11:16 +00:00
Nikolay Vitkov
4615607b7d
chore: add test console after navigation (#10110) 2023-05-04 09:43:12 +00:00
Alex Rudenko
df4d60c187
feat!: switch to Chrome for Testing instead of Chromium (#10054)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-05-02 08:53:40 +02:00
Alex Rudenko
1b125094b9
chore: implement defaultViewport (#10089) 2023-04-26 15:56:23 +02:00
Alex Rudenko
deeb314930
chore: update test expectations for passing tests (#10088) 2023-04-26 15:00:47 +02:00
Alex Rudenko
dd8c229a4f
chore: add bidi+ emulation command (#10087) 2023-04-26 14:37:31 +02:00
Nikolay Vitkov
e4b57c279a
chore: add EsLint rule for no-floating-promises (#10084) 2023-04-26 09:53:02 +00:00
Alex Rudenko
4dd4cb9292
feat: add AbortSignal to waitForFunction (#10078)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-04-26 10:50:08 +02:00
Nikolay Vitkov
5e79d53bd3
refactor: tests use toHaveLength and waitEvent (#10061) 2023-04-25 15:02:25 +02:00
jrandolf
8124a7d5bf
fix: implement click count (#10069) 2023-04-25 13:28:47 +02:00
Nikolay Vitkov
513f658989
chore: bump BiDi Mapper to latest (#10060) 2023-04-24 08:25:39 +02:00
Alex Rudenko
704624eb20
fix: move fs.js to the node folder (#10055) 2023-04-21 09:45:04 +02:00
Alex Rudenko
8283823cb8
fix: continue requests without network instrumentation (#10046) 2023-04-20 12:28:56 +00:00
jrandolf
bbf2c0a8ec
chore: use AbortSignal instead of AbortController (#10048) 2023-04-20 08:18:48 +02:00
Alex Rudenko
9109b76276
feat: support AbortController in waitForSelector (#10018) 2023-04-18 16:45:10 +00:00
jrandolf
34db39e447
fix: improve mouse actions (#10021) 2023-04-17 10:56:51 +02:00
Alex Rudenko
285c7912fc
test: installation test for @puppeteer/browsers (#10027) 2023-04-14 16:47:59 +02:00
Alex Rudenko
26c81b7408
feat: add ElementHandle.isVisible and ElementHandle.isHidden (#10007) 2023-04-12 11:19:46 +02:00
Alex Rudenko
0d556a71d6
feat: add ElementHandle.scrollIntoView (#10005) 2023-04-12 07:17:18 +02:00
Alex Rudenko
656b562c74
fix: make isIntersectingViewport work with SVG elements (#10004) 2023-04-11 14:05:10 +00:00
Alex Rudenko
e7265c9aa9
fix: ignore extraInfo events if the response is served from cache (#9983) 2023-04-06 12:29:10 +02:00
Nikolay Vitkov
c03f5922f8
docs: small misc. updates (#9978)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2023-04-05 18:06:33 +02:00
Alex Rudenko
de0cc3245e
chore: simplify installation tests (#9945) 2023-04-04 17:07:24 +00:00
Alex Rudenko
c8f6adf9f3
refactor: use browsers for launchers (#9937) 2023-04-04 13:29:21 +00:00
Nikolay Vitkov
fe934ad092
chore: fix only for skipped tests (#9964) 2023-04-04 09:37:15 +02:00
jrandolf
728547d460
fix: use shadowRoot for tree walker (#9950) 2023-03-31 17:19:59 +02:00
Alex Rudenko
9af680d3e5
chore: increase timeouts for tests creating many pages (#9931) 2023-03-28 15:09:18 +00:00
Alex Rudenko
3936600ba9
refactor: use @puppeteer/browsers for install (#9898)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-03-28 09:27:50 +00:00
Nikolay Vitkov
95c99e84b8
chore: add PDF print for BiDi (#9914) 2023-03-27 11:39:40 +02:00
Alex Rudenko
de86cafe3c
chore: reduce default timeout to 10s (#9906) 2023-03-24 09:35:45 +01:00
Nikolay Vitkov
48e7bdd75e
chore: use events rather than commands (#9904) 2023-03-23 17:18:48 +01:00
jrandolf
6c018acf5d
chore: update deep implementation for P selectors (#9908) 2023-03-23 15:46:33 +01:00
Alex Rudenko
f6ef167b0f
chore: validate licenses (#9873) 2023-03-23 10:22:52 +01:00
Alex Rudenko
ad7bbaebef
chore: remove retries and fix expectations (#9897) 2023-03-23 10:22:17 +01:00
Alex Rudenko
976684e4e1
chore: remove operations for now (#9899) 2023-03-22 16:56:12 +01:00
Alex Rudenko
1f76cdda12
chore: replace rimraf with a helper in BrowserFetcher/Connector (#9890) 2023-03-21 13:41:56 +01:00
Alex Rudenko
f1488b6c3a
chore: replace rimraf in tests with a helper with retries (#9888) 2023-03-21 11:39:15 +01:00
dependabot[bot]
9150cfe253
chore(deps): Bump glob from 9.3.0 to 9.3.1 (#9887)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-21 10:23:26 +01:00
Nikolay Vitkov
36c029b38d
fix: waitForNavigation issue with aborted events (#9883) 2023-03-21 10:22:57 +01:00
Nikolay Vitkov
3ea15dc395
chore: JavaScript error should produce pageerror events (#9884) 2023-03-21 10:21:48 +01:00
Michael "Z" Goddard
a5149d52f5
feat: add Page.waitForDevicePrompt (#9299)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
Co-authored-by: Alex Rudenko <alexrudenko@chromium.org>
2023-03-21 10:21:10 +01:00
Nikolay Vitkov
cb079378bb
chore: add BiDi support for SetContent (#9878) 2023-03-20 14:00:13 +01:00
Nikolay Vitkov
9ccde6ebf5
chore: added * pattern for test expectations (#9870) 2023-03-20 10:59:50 +01:00
Alex Rudenko
aa7c475461
test: add a few regressed selectors (#9875) 2023-03-17 12:55:39 +01:00
dependabot[bot]
e3b8321f55
chore(deps): Bump glob from 9.2.1 to 9.3.0 (#9855)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
2023-03-17 08:57:58 +01:00
jrandolf
9f9394ca42
chore: use parsel (#9865) 2023-03-16 14:41:38 +01:00
Nikolay Vitkov
16b39de5ca
chore: extract HTTP prep for BiDi network module (#9840) 2023-03-15 17:51:34 +01:00
Nikolay Vitkov
4351e0de9e
chore: fix Actions Node version to LTS (#9859) 2023-03-15 13:59:42 +01:00
Nikolay Vitkov
17c650b6d1
chore: prefer use of fs/promise to utils/promisify (#9848)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2023-03-14 18:30:41 +01:00
jrandolf
dd16ecae03
chore: use custom tokenizer (#9837) 2023-03-14 10:13:23 +01:00
jrandolf
9044609be3
fix: sort elements based on selector matching algorithm (#9836) 2023-03-13 16:11:16 +01:00
Nikolay Vitkov
175362c048
chore: add BiDi for goto navigation (#9795) 2023-03-10 15:59:02 +00:00
Alex Rudenko
5bb41e1c11
chore: restore rimraf in test code (#9823) 2023-03-10 10:37:14 +01:00
jrandolf
364b23f8b5
fix: update dependencies (#9781) 2023-03-06 13:43:37 +01:00
jrandolf
813882db7b
chore: update glob (#9776) 2023-03-06 12:28:33 +01:00
jrandolf
2123f809e8
chore: remove rimraf (#9775) 2023-03-06 11:33:38 +01:00
jrandolf
f84873c121
chore: support commas in P selectors (#9769) 2023-03-06 10:56:52 +01:00
Henrik Skupin
d3b25df34d
chore: update test expectation data for Firefox for 19.7.2 downstream sync (#9756) 2023-03-01 13:00:51 +00:00
Nikolay Vitkov
004a99aaef
chore: implement simple BiDi ElementHandle (#9753) 2023-03-01 11:09:17 +01:00
Nikolay Vitkov
232873ae76
chore: fix Mocha test runner suggestion when hooks fail (#9750) 2023-02-28 12:55:20 +01:00
Nikolay Vitkov
3db7d55d26
chore: remove BigInt exists checks (#9744) 2023-02-24 19:26:29 +01:00
Nikolay Vitkov
9910aae2f7
chore: Fix BiDi session.status Param type (#9723) 2023-02-21 19:16:07 +00:00
jrandolf
84845e4901
chore: implement operations (#9717) 2023-02-21 11:12:27 +01:00
Nikolay Vitkov
9b54365df5
chore: Add Page.Console event to BiDi (#9700) 2023-02-20 13:00:29 +01:00
Nikolay Vitkov
eefe9583d0
chore: Add EsLint rule import/order (#9685) 2023-02-15 15:09:31 -08:00
jrandolf
2b3cf3ace9
chore: implement P queries (#9639) 2023-02-15 10:42:32 -08:00
jrandolf
e8f25e403f
refactor: custom query handlers and global bindings (#9678) 2023-02-15 07:33:18 -08:00
Nikolay Vitkov
0c85c0611c
chore: Implement JSHandle for BiDi (#9660) 2023-02-15 10:29:18 +00:00
jrandolf
56f99f7b10
refactor: migrate to iterator-based query handlers (#9676) 2023-02-14 13:31:30 -08:00
Alex Rudenko
df59d010c2
feat(chromium): roll to Chromium 111.0.5556.0 (r1095492) (#9656) 2023-02-13 09:46:01 +00:00
Henrik Skupin
404839d175
Refactor test expectation status for recent Firefox Nightly builds (#9642) 2023-02-10 12:45:40 +01:00
Nikolay Vitkov
b8ea891ab8
chore: Extract JSHandle to API (#9632) 2023-02-09 18:04:06 +01:00
Henrik Skupin
e14cf7ebac
fix: update test expectations for next Firefox Nightly changes (#9635) 2023-02-09 12:50:42 +01:00
Nikolay Vitkov
471e291e05
chore: Rename chrome-headless to new-headless (#9628) 2023-02-06 19:18:28 +01:00
Rafael Martins
ddb0cc174d
fix: page.goto error throwing on 40x/50x responses with an empty body (#9523) (#9577)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2023-02-06 09:40:51 +00:00
charlieinitialdigital
c8bb11adfc
feat: add touchstart, touchmove and touchend methods (#9622) 2023-02-03 10:59:21 +00:00
Nikolay Vitkov
abcc1756dd
chore: Add BiDi Page.evaluate (#9609) 2023-02-02 15:14:28 +01:00
Rafael-Martins
f12f27e1eb
docs: clarify the waitForXPath return type (#9541) (#9583) 2023-02-01 15:23:32 +00:00
jrandolf
050a7b0624
fix: atomically get Puppeteer utilities (#9597) 2023-01-27 11:58:40 -08:00
Nikolay Vitkov
90ef8793ac
chore: Add --no-suggestion to custom test runner (#9598) 2023-01-27 12:20:32 +00:00
Alex Rudenko
6edd996768
fix(revert): use LazyArg for puppeteer utilities (#9590)
Reverts puppeteer/puppeteer#9575
2023-01-26 09:50:06 +01:00
jrandolf
496658f029
fix: use LazyArg for puppeteer utilities (#9575)
This PR fixes the following edge case:

 - `const oldPromise = world.puppeteerUtil`. 
- setContext occurs but context is immediately destroyed, i.e.
`world.#puppeteerUtil === oldPromise` is not resolved.
- clearContext occurs due to destruction, i.e. `world.#puppeteerUtil` is
replaced (`world.#puppeteerUtil !== oldPromise`).
 - `oldPromise` never resolves.
2023-01-26 08:56:33 +01:00
Alexandra Borovova
3d249dc3a3
chore: update test expectations for firefox (#9569)
<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->

**What kind of change does this PR introduce?**

Test expectation file update

**Did you add tests for your changes?**

no

**Summary**

Unskippes tests for Firefox and linux, which were missed in the previous
update

**Does this PR introduce a breaking change?**

no
2023-01-24 15:36:50 +01:00
Ophir Back
e3d69ec554
feat(page): Adding support for referrerPolicy in page.goto (#9561)
Issue: #9394

**What kind of change does this PR introduce?**

Feature - Added support of the `referrerPolicy` parameter (from CDP's
`Page.navigate`) to Puppeteer's `page.goto`.

**Did you add tests for your changes?**

No, currently it has no meaning that isn't browser implementation based,
which might get broken in the future. If there are suggestions to tests,
please let me know so I'll add them.

**If relevant, did you update the documentation?**
Yes, the documentation of the `goto` method has been updated.

**Summary**
I wanted to contribute to this project, which I used for testing on our
environment and saw issue #9394, so I decided to resolve it :)

**Does this PR introduce a breaking change?**
No. I added the `referrerPolicy` as an optional parameter, which will
use the HTTP header `Referrer-Policy` if not provided (much like the
`referer` parameter) so it will not interfere.

Co-authored-by: Ophir Back <ophir.back@broadcom.com>
2023-01-23 11:11:20 +00:00
Alexandra Borovova
9a97c5f8dd
chore: update test expectations for firefox (#9551)
What kind of change does this PR introduce?
Test expectation file update

Summary
Closes https://github.com/puppeteer/puppeteer/issues/9118.
This PR updates the test expectation file with more specific status for
firefox (like fail, fail-pass), removes the duplications.

Does this PR introduce a breaking change?
no
2023-01-23 11:20:19 +01:00
Alex Rudenko
41494950c0
chore: fix bidi expectations (#9562) 2023-01-23 10:09:19 +01:00
dependabot[bot]
6e484ffbdb
chore(deps): Bump glob from 8.0.3 to 8.1.0 (#9531)
Bumps [glob](https://github.com/isaacs/node-glob) from 8.0.3 to 8.1.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/isaacs/node-glob/blob/main/changelog.md">glob's
changelog</a>.</em></p>
<blockquote>
<h2>8.1</h2>
<ul>
<li>Add <code>windowsPathsNoEscape</code> option</li>
</ul>
<h2>8.0</h2>
<ul>
<li>Only support node v12 and higher</li>
<li><code>\</code> is now <strong>only</strong> used as an escape
character, and never as a
path separator in glob patterns, so that Windows users have a
way to match against filenames containing literal glob pattern
characters.</li>
<li>Glob pattern paths <strong>must</strong> use forward-slashes as path
separators, since <code>\</code> is an escape character to match literal
glob pattern characters.</li>
<li>(8.0.2) <code>cwd</code> and <code>root</code> will always be
automatically coerced
to use <code>/</code> as path separators on Windows, as they cannot
contain glob patterns anyway, and are often supplied by
<code>path.resolve()</code> and other methods that will use
<code>\</code> path
separators by default.</li>
</ul>
<h2>7.2</h2>
<ul>
<li>Add fs option to allow passing virtual filesystem</li>
</ul>
<h2>7.1</h2>
<ul>
<li>Ignore stat errors that are not <code>ENOENT</code> to work around
Windows issues.</li>
<li>Support using root and absolute options together</li>
<li>Bring back lumpy space princess</li>
<li>force 'en' locale in string sorting</li>
</ul>
<h2>7.0</h2>
<ul>
<li>Raise error if <code>options.cwd</code> is specified, and not a
directory</li>
</ul>
<h2>6.0</h2>
<ul>
<li>Remove comment and negation pattern support</li>
<li>Ignore patterns are always in <code>dot:true</code> mode</li>
</ul>
<h2>5.0</h2>
<ul>
<li>Deprecate comment and negation patterns</li>
<li>Fix regression in <code>mark</code> and <code>nodir</code> options
from making all cache
keys absolute path.</li>
<li>Abort if <code>fs.readdir</code> returns an error that's
unexpected</li>
<li>Don't emit <code>match</code> events for ignored items</li>
<li>Treat ENOTSUP like ENOTDIR in readdir</li>
</ul>
<h2>4.5</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1b6bf20239"><code>1b6bf20</code></a>
8.1.0</li>
<li><a
href="1756fccfe7"><code>1756fcc</code></a>
add windowsPathsNoEscape option</li>
<li><a
href="af57da21c7"><code>af57da2</code></a>
update tap, libtap</li>
<li><a
href="e19db65d23"><code>e19db65</code></a>
Remove dependency on path-is-absolute</li>
<li>See full diff in <a
href="https://github.com/isaacs/node-glob/compare/v8.0.3...v8.1.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=glob&package-manager=npm_and_yarn&previous-version=8.0.3&new-version=8.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-18 09:12:52 +01:00
Kyrylo
3e80667048
chore: use named import for devtools-protocol module (#9511)
<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->

**What kind of change does this PR introduce?**
types fix

**Did you add tests for your changes?**
No

**If relevant, did you update the documentation?**
Not relevant

**Summary**
I am updating `import`s of `devtools-protocol` to always use named
import instead of the default.
For some reason, typescript doesn't understand when it is imported as
default.

```
node_modules/puppeteer-core/lib/esm/puppeteer/common/TargetManager.d.ts:23:59 - error TS2694: Namespace '"/Users/kyrylo/pacakge/node_modules/puppeteer-core/node_modules/devtools-protocol/types/protocol"' has no exported member 'Target'.

23 export declare type TargetFactory = (targetInfo: Protocol.Target.TargetInfo, session?: CDPSession) => Target;
                                                             ~~~~~~


Found 1 error in node_modules/puppeteer-core/lib/esm/puppeteer/common/TargetManager.d.ts:23
```

**Does this PR introduce a breaking change?**
No
<!-- If this PR introduces a breaking change, please describe the impact
and a migration path for existing applications. -->

**Other information**
I am updating `import`s of `devtools-protocol` to always use named
import instead of the default.
2023-01-17 11:34:57 +00:00
Kian-Meng Ang
4437bceb6e docs: fix typos (#9476)
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
2023-01-16 20:25:09 +01:00
Alexandra Borovova
31ff55cc03
chore: filter expectations by the whole test or file name (#9503)
<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->

**What kind of change does this PR introduce?**

This is a change to a custom mocha runner to look for expectation of the
test case by the whole test name instead of by the part of the name.

**Summary**

Working on integration of the puppeteer expectation file in mozilla repo
and unskipping a lot of tests, I've noticed that some tests get wrong
statuses. For example, a test case with the name `navigation Page.goto
should fail when navigating to bad SSL` got the status of `navigation
Page.goto should fail when navigating to bad SSL after redirects` or
`ElementHandle specs ElementHandle.boundingBox should work` get the
status of `ElementHandle specs ElementHandle.boundingBox should work
with SVG nodes`. So it seems like checking for the whole name of the
test should be safer, but let me know if I'm missing something here.

**Does this PR introduce a breaking change?**
no
2023-01-13 16:14:37 +01:00
Alex Rudenko
06e816bbfa
feat(chromium): roll to Chromium 110.0.5479.0 (r1083080) (#9500)
Closes #9470
2023-01-12 11:31:20 +01:00
Alex Rudenko
29a50764d4
chore: add BiDi integration for Chromium (#9410)
This PR adds experimental support for WebDriver BiDi by making use of
chromium-bidi to implement the BiDi protocol. The tests are disabled on
Windows due to flakiness (filed
https://github.com/GoogleChromeLabs/chromium-bidi/issues/361).
2022-12-20 14:37:31 +00:00
jrandolf
c7a063a152
feat: add element validation (#9352)
This PR adds a method to ElementHandle that validates the tag type of
that handle and returns it.

Fixed: #8579, #9280
2022-12-19 13:25:56 +01:00
Darío Kondratiuk
e3e9cc622a
fix(puppeteer-core): target interceptor is not async (#9430)
I found that the only call to `addTargetInterceptor` passes
`onAttachedToTarget` and is not async.
I also found a typo 🤓
2022-12-17 17:47:21 +00:00
Alex Rudenko
02fe50194e
fix: improve a11y snapshot handling if the tree is not correct (#9405)
Bug #9404
2022-12-13 08:31:26 +00:00
Alex Rudenko
1668d47b2f
docs: various doc improvements (#9396)
See commits for details.

Closes #1837, #5880, #7822, #8101, #8821, #9367, #9382, #9378, #4731
2022-12-09 13:57:39 +01:00
Alex Rudenko
810e0cd74e
fix: remove oopif expectations and fix oopif flakiness (#9375)
With M109 the flakiness should be reduced. Any present flakiness should
be investigated.

Drive-by: a new debugging helper to debug on CI.
2022-12-09 11:36:39 +00:00
Nikolay Vitkov
1875da6191
feat(chromium): roll to Chromium 109.0.5412.0 (r1069273) (#9364)
Closes #9233
2022-12-07 14:54:00 +01:00
Henrik Skupin
be7626bad8
chore: fix race in test Frame.waitForFunction should work when context is destroyed (#9368)
Fixes the race condition which causes intermittent failures in Firefox
because we haven't implemented bootstrap scripts to run on document
creation.
2022-12-06 16:59:44 +00:00
Junyan
b7ebc5d9bb
feat(puppeteer-core): keydown supports commands (#9357)
Issue: #1313

<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->

**What kind of change does this PR introduce?**

Feature.

**Did you add tests for your changes?**

Yes.

**If relevant, did you update the documentation?**

Yes.

**Summary**

Supports keyboard shotcuts on MacOS. See Chrome Devtools Protocol
document:
https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent.
2022-12-03 11:23:47 +01:00
Alex Rudenko
f3c87dcdb7
chore: upgrade mitt (#9340) 2022-11-29 19:50:58 +00:00
Alex Rudenko
507efc610b
chore: mark a waitForFunction test as flaky in Firefox (#9323) 2022-11-24 13:13:03 +01:00
Alex Rudenko
da92055e9c
chore: include headless in the flaky test expectation (#9316) 2022-11-23 15:11:26 +01:00
Alex Rudenko
181b20fedf
test: mark Frame.waitForSelector test as flaky in headful Firefox (#9307) 2022-11-23 13:09:19 +01:00
Alex Rudenko
30c6b13eec
chore: re-export all exports (#9241)
Adds index files to subfolders and removes generation of types.ts in
puppeteer-core.
2022-11-10 17:11:18 +01:00
Alexandra Borovova
9e95774596
chore: add missing golden asset for firefox (#9171)
<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->

**What kind of change does this PR introduce?**

- adds missing golden asset for firefox

**Summary**

- This change will let us see in mozilla ci, where we don't skip this
test, a better error message. Right now it fails with missing asset
error.

**Does this PR introduce a breaking change?**
no
2022-10-27 09:33:38 +00:00
Alex Rudenko
e78a4e89c2
feat(chromium): roll to Chromium 108.0.5351.0 (r1056772) (#9153) 2022-10-25 12:55:19 +02:00
jrandolf
ec201744f0
feat: use configuration files (#9140)
This PR adds configurations files to `puppeteer`'s methods for
configuration. Under the hood, `puppeteer` relies on
https://www.npmjs.com/package/cosmiconfig which resolves several formats
of configuration:

- a `puppeteer` property in package.json
- a `.puppeteerrc` file in JSON or YAML format
- a `.puppeteerrc.json`, `.puppeteerrc.yaml`, `.puppeteerrc.yml`,
`.puppeteerrc.js`, or `.puppeteerrc.cjs` file
- a `puppeteer.config.js` or `puppeteer.config.cjs` CommonJS module
exporting an object

Documentation will be added later.

Fixed: #9128
2022-10-21 15:09:21 +02:00
Alex Rudenko
122778a1f8
feat: expose browser context id (#9134)
Closes #9132
2022-10-19 08:30:57 +00:00
Alex Rudenko
a19b270018
chore: extract BrowserContext to its own file (#9133) 2022-10-19 07:06:31 +00:00
jrandolf
8f4902eed9
chore: use test runner for installation tests (#9110) 2022-10-14 13:37:07 +02:00
jrandolf
6a05d8e9c1
chore: improve docs and scripts (#9107)
This PR updates some docs and scripts related to the recent changes in
the repository.
2022-10-13 18:55:11 +02:00
jrandolf
3df375baed
feat!: use ~/.cache/puppeteer for browser downloads (#9095) 2022-10-11 11:20:45 +00:00
Alex Rudenko
557d4a06c4
chore: update expectations for flaky tests (#9091) 2022-10-11 09:49:42 +02:00
jrandolf
1847704789
fix!: refactor custom query handler API (#9078)
This PR removes the deprecated query selector API from the `puppeteer`
instance. Direct imports of the query selector API have also been
deprecated and users are now expected to use the static methods defined
on `Puppeteer`.
2022-10-10 16:01:09 +02:00
jrandolf
acbc59999b
fix: remove viewport conditions in waitForSelector (#9087)
This PR removes the viewport conditions in `waitForSelector`.

See discussion:
https://github.com/puppeteer/puppeteer/pull/8954#issuecomment-1272338883
2022-10-10 16:00:47 +02:00
jrandolf
87c08fd86a
fix!: remove puppeteer.devices in favor of KnownDevices (#9075)
This PR removes the deprecated `puppeteer.devices` in favor of a new
exported object `KnownDevices`. `devices` can also be exported, but has
been deprecated.
2022-10-10 15:30:12 +02:00
Alex Rudenko
04270a39ea
chore: update test expectations (#9088) 2022-10-10 15:24:46 +02:00
smithc
a032583b6c feat: add ability to collect JS code coverage at the function level (#9027) 2022-10-06 23:53:05 +02:00
jrandolf
41d0122b94 fix!: deprecate indirect network condition imports (#9074) 2022-10-06 23:52:58 +02:00
jrandolf
9f4f43a28b fix!: deprecate indirect error imports (#9072) 2022-10-06 23:52:51 +02:00
jrandolf
3675f168ef
chore: improve CI jobs (#9054)
This PR separates the installations tests from normal tests and changes
the matrices as follows:

- Installations tests on all platforms and the latest 3 node versions.
- Chrome tests are done on all platforms on the latest node version.
- Firefox tests are done only on linux on the latest node version.
2022-10-06 15:45:22 +02:00
jrandolf
416d56b033
chore: refactor utils (#9053)
This PR

- renames the `utils` folder to `tools` (follows internal practice),
- migrates the contents of `scripts` into `tools` and removes scripts.
2022-10-06 10:27:14 +02:00
Egor Andreyuk
8f6b2c9b7c
fix: waitForRequest works with async predicate (#9058) 2022-10-05 20:46:34 +02:00
jrandolf
f42336cf83
feat: separate puppeteer and puppeteer-core (#9023)
This PR moves the puppeteer source code into separate mono-repo packages:

- `puppeteer` and `puppeteer-core` are now separated into their own
packages.
- `puppeteer-core` has a new exports called `puppeteer-core/internal`
for internal usage.

Tests and various tools have been updated to accommodate the migration.
2022-10-05 14:17:03 +02:00
Alex Rudenko
022fbde85e
feat(chromium): roll to Chromium 107.0.5296.0 (r1045629) (#9039) 2022-10-05 08:13:43 +02:00
jrandolf
c0c7878adc
chore: initiate monorepo migration (#9022)
This PR starts the monorepo migrations as per
https://github.com/puppeteer/puppeteer/issues/8922. To scope migrations,
we are only moving the `testserver` into a separate package. Further
migrations will come later.
2022-09-29 10:08:55 +02:00
Alex Rudenko
023ebd8f78
chore: enable firefox tests on Mac (#9002) 2022-09-23 19:06:09 +02:00
Henrik Skupin
5a1b8d2d7c
chore: add headful support for Firefox (#9004)
* chore: add headful support for Firefox

* chore: update test expectation data for Firefox headful tests
2022-09-23 07:23:36 +02:00
Alex Rudenko
a6f4584a74
chore: clarify build instructions (#9000) 2022-09-22 14:53:06 +02:00
Alex Rudenko
31e7b608d5
chore: implement basic evaluate in BiDi (#8989)
Only the basic return values are supported.
The follow-up PRs will re-use the shared code
from the ExecutionContext and introduce Frame
in BiDi.
2022-09-21 08:10:50 +02:00
jrandolf
7efcb9ca3d
chore: remove unused code (#8977) 2022-09-19 12:48:14 +02:00
jrandolf
2a2af7134f
chore: incrementally erase cache on text change (#8961) 2022-09-15 18:48:55 +02:00
Alex Rudenko
fa084bcdcd
chore: extract CDPSession base class for easy mocking (#8950) 2022-09-15 13:50:12 +00:00
jrandolf
633e7cfdf9
feat: add text query handler (#8956) 2022-09-15 11:12:13 +00:00
jrandolf
ac9929d80f
fix!: fix bounding box visibility conditions (#8954) 2022-09-15 09:25:20 +02:00
jrandolf
7c4f41fadc
chore: use injections for wait tasks (#8943)
This PR refactors wait tasks to use injected scripts.
2022-09-15 08:22:20 +02:00
Alex Rudenko
8d5097d7f6
chore: split CI jobs to run in parallel (#8934) 2022-09-15 05:59:11 +00:00
Alex Rudenko
db28203e64 chore: support WebDriver BiDi browser instances (#8932)
This PR adds a basic support for WebDriver BiDi that currently includes only the ability to establish a connection and shutdown the browser. Therefore, the implementation is marked as internal and won't show up in the changelog as it's barely useful at the moment.

The API classes are kept as classes instead of interfaces so that clients relying on instanceof checks still work.
2022-09-15 02:15:15 +02:00
jrandolf
6fd05d963e
chore: use handle instead of globals for injection (#8946) 2022-09-13 14:06:40 +02:00
Alex Rudenko
504c7a1ae6
chore: implement custom mocha interface for the runner (#8929)
Instead of checking skipped tests in mocha-utils this PR
implements a custom mocha interface for better flexibility
when skipping tests. That should allow skipping tests without
running before and after hooks.
2022-09-09 11:12:18 +02:00
Alex Rudenko
d8830cbc55
chore: implement a test runner on top of mocha (#8866)
* chore: implement a test runner on top of mocha

This PR implements a test runner on top of mocha
that performs multiple mocha runs as defined in
TestSuites.json and compares the outcome of the runs
against TestExpectations.json. This allows us to
remove most of helpers from mocha-utils and be more
flexible when defining the test configurations.
2022-09-08 10:32:39 +00:00
Alex Rudenko
8b3caae8d1
chore: enable cookie restoration test (#8909)
Closes #4111
2022-09-07 09:42:06 +00:00
smithc
0c577b9bf8
fix: add missing code coverage ranges that span only a single character (#8911) 2022-09-07 07:10:07 +00:00
Alex Rudenko
260e428227
fix: support scale for screenshot clips (#8908)
Closes #5329
2022-09-07 05:27:40 +00:00
Alex Rudenko
a870c258bf
chore: update expectations for Firefox when evaluate fails (#8890) 2022-09-02 09:41:34 +00:00
jrandolf
6b4a99fcfa
chore: migrate addStyleTag (#8879)
* chore: remove unnecessary type signature

* chore: fix tests

* chore: migrate `addStyleTag`

* chore: fix tests

* chore: fix tests
2022-09-01 17:52:08 +02:00
jrandolf
8f11237a67
chore: migrate addScriptTag (#8878) 2022-09-01 17:09:57 +02:00
jrandolf
ae4c5ea031
chore: refactor build commands (#8874) 2022-09-01 01:05:20 +02:00
Alex Rudenko
61624d2695
chore: fix a flaky test in request interception (#8870) 2022-08-31 16:10:49 +02:00
Alex Rudenko
6e9a47a6fa
feat(chromium): roll to Chromium 106.0.5249.0 (r1036745) (#8869) 2022-08-31 15:27:59 +02:00
jrandolf
292216652b
chore: add injection framework (#8862)
* chore: add injection framework
2022-08-31 10:50:22 +02:00
jrandolf
b49e742e30
chore: make execution context frame-independent (#8845) 2022-08-25 17:38:02 +02:00
Alex Rudenko
2a0eefb99f
fix: handle service workers in extensions (#8807)
Closes #8800
2022-08-17 19:34:34 +02:00
jrandolf
51b2f0576d
chore: move Frame to Frame.ts (#8806) 2022-08-17 17:45:45 +02:00
jrandolf
bdcb748b98
chore: infrastructure for injecting scripts into DOMWorlds (#8801) 2022-08-17 14:39:41 +02:00
Alex Rudenko
3fad05d333
fix: custom sessions should not emit targetcreated events (#8788)
Closes #8787
2022-08-16 10:56:13 +00:00
jrandolf
ddbe88b887
chore: add custom rule for formatting comments (#8777) 2022-08-12 14:15:26 +02:00
Alex Rudenko
73221042db
chore: follow test:$browser[:$flavor] naming for tests + retries for Firefox (#8775) 2022-08-11 18:45:52 +00:00
jrandolf
a238f5758d
chore: refactor JSHandle and ExecutionContext (#8773) 2022-08-11 11:45:35 +02:00
Alex Rudenko
ee2540baef
fix: use targetFilter in puppeteer.launch (#8774)
Drive-by: adds Symbol.toStringTag to Target to simplify
debugging.

Closes #8772
2022-08-11 09:15:00 +00:00
Alex Rudenko
2580347b50
fix: resolve navigation flakiness (#8768)
Two main sources of flakiness addressed: 

1) we should dispose the lifecycle watcher after we waited for the navigation response (bad API? we need to refactor but I think it'd be valuable to stabilize tests first without too many changes).
2) we should wait for the navigation request's response if there is a navigation request in the watcher.

Closes #8644
2022-08-10 15:59:58 +00:00
Alex Rudenko
c23cdb73a7
fix: make sure there is a check for targets when timeout=0 (#8765)
Previously, if timeout is falsy, the targets would only
be checked if a browser-level event fires which lead to
a race: if the events arrived before waiting for a target,
the promise would never resolve.

Fixes #8763
2022-08-10 15:49:59 +02:00
Alex Rudenko
af78cc768f
chore: fix proxy-related tests (#8753) 2022-08-08 14:31:12 +00:00
Alex Rudenko
8cb5043868
fix: resolve target manager init if no existing targets detected (#8748)
Closes #8747
2022-08-06 15:35:42 +02:00
jrandolf
5cf9b4de8d
feat: use an xpath query handler (#8730) 2022-08-04 15:45:21 +02:00
Alex Rudenko
2abd772c9c feat: detect Firefox in connect() automatically (#8718)
This PR implements automatic detection of the Firefox product when the `.connect()` method is used. This partially undoes the breaking change in https://github.com/puppeteer/puppeteer/pull/8520 but it's also a breaking change on its own since we don't accept an explicit product name anymore (it does not look like it was used anyway).
2022-08-02 13:18:51 +00:00
Alex Rudenko
6f81b23728 fix: address flakiness in frame handling (#8688)
When we attach to a frame, we send a call to get
the page frame tree from CDP. Based on the tree data
we look up the parent frame if parentId is provided.
The problem is that the call to get the page frame
tree could take arbitrary time and the calls for the
parent and child frames might happen at the same time.
So the situation where the frame tree for the child frame
is resolved before the parent frame is known is fairly
common.

This PR addresses the issue by awaiting for the parent
frame id before attempting to register a child frame.
2022-08-02 13:18:47 +00:00
Alex Rudenko
2cbfdeb0ca feat: use CDP's auto-attach mechanism (#8520)
* feat: use CDP's auto-attach mechanism

In this PR, we refactor Puppeteer to make use of the CDP's auto-attach mechanism. This allows the backend to pause
new targets and give Puppeteer a chance to configure them properly. This fixes the flakiness related to dealing with
OOPIFs and should fix some other issues related to the network interception and navigations. If those are not fixed completely by this PR, the PR serves a solid base for fixing them.

Closes https://github.com/puppeteer/puppeteer/issues/8507, https://github.com/puppeteer/puppeteer/issues/7990
Unlocks https://github.com/puppeteer/puppeteer/issues/3667

BREAKING CHANGE: With Chromium, Puppeteer will now attach to page/iframe targets immediately to allow reliable configuration of targets.
2022-08-02 13:18:07 +00:00
Alex Rudenko
2abb9f0c14
fix: taking a screenshot with null viewport should be possible (#8680)
Closes #8673
2022-07-21 10:34:18 +02:00
Alex Rudenko
af08c5c903
feat: expose the page getter on Frame (#8657)
* feat: expose the page getter on Frame

Closes #8654

* test: add a test
2022-07-11 21:06:35 +02:00
Asen Bozhilov
b47f066c2c
fix(page): fix page.#scrollIntoViewIfNeeded method (#8631)
This patch fixes page.#scrollIntoViewIfNeeded, so that it works with devtools protocol.
Now it blocks the main thread and waits until the scrolling action finishes in Chrome.
Fallbacks to the old implementation if `DOM.scrollIntoViewIfNeeded` is not supported for Firefox.

Issues: #8627, #1805
2022-07-08 06:53:45 +00:00
Alex Rudenko
d0c4291995
fix: expose a RemoteObject getter (#8642)
Closes #8639
2022-07-07 13:04:28 +00:00
jrandolf
5ff205dc8b
fix: extends ElementHandle to Nodes (#8552)
* fix: extends `ElementHandle` to `Node`s (#8552)
2022-07-06 09:05:37 +02:00
jrandolf
28e236f1a6
chore: use --parallel (#8612) 2022-07-05 14:42:55 +02:00
jrandolf
32c9f3e6fb
chore: update contributing.md (#8616) 2022-07-01 16:29:21 +02:00
jrandolf
066f440ba7
feat: add documentation (#8593) 2022-07-01 11:52:39 +00:00
Levi Pesin
79e11985ba
feat: add fromSurface option to page.screenshot (#8496) 2022-06-27 12:37:37 +00:00
Alex Rudenko
329195011f
chore: fix chrome-headless ci (#8560) 2022-06-27 12:35:09 +02:00
jrandolf
7001322cd1
feat: export public types only (#8584) 2022-06-27 09:24:23 +02:00
Pablo Matías Gomez
9787a1d8df
fix: clean up tmp profile dirs when browser is closed (#8580)
* fix: clean up tmp profile dirs when browser is closed
2022-06-27 07:40:30 +02:00
Alex Rudenko
fb7d31e369
feat(chromium): roll to Chromium 104.0.5109.0 (r1011831) (#8569)
* feat(chromium): roll to Chromium 104.0.5109.0 (r1011831)

* test: update a11y test expectations
2022-06-24 14:13:31 +00:00
Alex Rudenko
383e855847
fix: CSS coverage should work with empty stylesheets (#8570)
Closes #8535
2022-06-24 14:17:16 +02:00
jrandolf
8100cbb295
fix: infer unioned handles (#8562) 2022-06-24 06:40:08 +00:00
jrandolf
ebcb8a2760
chore: split JSHandle.ts (#8551) 2022-06-23 11:31:43 +02:00
jrandolf
26c3acbb07
feat!: type inference for evaluation types (#8547)
This PR greatly improves the types within Puppeteer:

- **Almost everything** is auto-deduced.
  - Parameters don't need to be specified in the function. They are deduced from the spread.
  - Return types don't need to be specified. They are deduced from the function. (More on this below)
  - Selections based on tag names correctly deduce element type, similar to TypeScript's mechanism for `getElementByTagName`.
- [**BREAKING CHANGE**] We've removed the ability to declare return types in type arguments for the following reasons:
  1. Setting them will indubitably break auto-deduction.
  2. You can just use `as ...` in TypeScript to coerce the correct type (given it makes sense).
- [**BREAKING CHANGE**] `waitFor` is officially gone.

To migrate to these changes, there are only four things you may need to change:
- If you set a return type using the `ReturnType` type parameter, remove it and use `as ...` and `HandleFor` (if necessary).
 `evaluate<ReturnType>(a: number, b: number) => {...}, a, b)`
 `(await evaluate(a, b) => {...}, a, b)) as ReturnType`
 `evaluateHandle<ReturnType>(a: number, b: number) => {...}, a, b)`
 `(await evaluateHandle(a, b) => {...}, a, b)) as HandleFor<ReturnType>`
- If you set any type parameters in the *parameters* of an evaluation function, remove them.  
 `evaluate(a: number, b: number) => {...}, a, b)`
 `evaluate(a, b) => {...}, a, b)`
- If you set any type parameters in the method's declaration, remove them.
 `evaluate<(a: number, b: number) => void>((a, b) => {...}, a, b)`
 `evaluate(a, b) => {...}, a, b)`
2022-06-23 11:29:46 +02:00
jrandolf
347101883f
chore: split Launcher.ts (#8544) 2022-06-23 00:13:39 +02:00
jrandolf
84712cbc28
chore: use Google's TS style guide's format config (#8542) 2022-06-22 15:25:44 +02:00
jrandolf
ce0dd25349
chore: use braces in function bodies (#8525) 2022-06-15 12:42:21 +02:00
jrandolf
570087ea94
chore: use strict typing in tests (#8524)
* The testing tsconfig.json inherits from the base TS config.
  * A lot of type assertions have been inserted...a lot.
* All testing utilities have migrated to TS.
* text-diff is being replaced with diff for TS compatibility.
* ProtocolError has been added to PuppeteerErrors and PuppeteerErrors is no longer a record (it's been frozen).
* Fixes a small bug where null was an allowable media type in emulation (should be undefined).
2022-06-15 12:09:22 +02:00
jrandolf
80373f7a12
chore: use composite builds for tests (#8522) 2022-06-15 12:05:25 +02:00
jrandolf
e6442dd767
chore: use curly (#8519) 2022-06-14 13:55:35 +02:00
jrandolf
0678343b53
chore: move helper.js to util.js (#8510) 2022-06-14 13:16:21 +02:00
jrandolf
6c960115a3
chore: use private fields (#8506) 2022-06-13 11:16:25 +02:00
jrandolf
733cbecf48
chore: use c8 coverage (#8495) 2022-06-10 18:49:14 +02:00
jrandolf
4d359906a4
fix: use error-like (#8504) 2022-06-10 15:27:42 +02:00
Alex Rudenko
58ff348b76
chore: skip an oopif test for headful and chrome headless (#8501) 2022-06-10 12:39:18 +02:00
jrandolf
75c3f94a54
chore: namespace commands (#8494) 2022-06-10 11:55:53 +02:00
jrandolf
465a7c405f
feat: export puppeteer methods (#8493) 2022-06-09 19:00:50 +02:00
jrandolf
b30f3f44cd
fix: parse empty options in <select> (#8489) 2022-06-09 13:27:34 +02:00
jrandolf
e8378666c6
fix: don't throw on bad access (#8472) 2022-06-07 16:17:21 +02:00
Alex Rudenko
5c9050aea0
fix: use isPageTargetCallback in Browser::pages() (#8460) 2022-06-02 13:27:31 +02:00
jrandolf
30438e6532
chore: use ts-doc and factor out importFSModule (#8449) 2022-06-01 11:11:09 +02:00
jrandolf
b4e751f29c
feat: use strict typescript (#8401) 2022-05-31 16:34:16 +02:00
Junyan
92110151d9
fix: multiple same request event listener (#8404) 2022-05-30 20:34:08 +00:00
Julian Descottes
f866274360
chore: enable anchor navigation tests for Firefox (#8394) 2022-05-25 06:46:17 +00:00
Alex Rudenko
f657233ca4
test: skip dumpio test in non-headless modes (#8388) 2022-05-24 11:50:49 +00:00
Alex Rudenko
ea47ff0766
chore: fix failing test for the chrome headless (#8364) 2022-05-19 07:41:29 +00:00
jrandolf
74380303ac
fix: only check loading iframe in lifecycling (#8348) 2022-05-17 12:15:44 +00:00
Alex Rudenko
24dfbd5f7f
chore: remove console.log from test (#8351) 2022-05-16 10:04:57 +02:00
Alex Rudenko
3b66a2c47e
feat: allow handling other targets as pages internally (#8336)
Co-authored-by: jrandolf <101637635+jrandolf@users.noreply.github.com>
2022-05-13 08:04:46 +02:00
Alex Rudenko
0ae8936f5e
chore: disable failing permission test (#8337) 2022-05-12 20:09:23 +02:00