From ef82f957de0b7cf40b7e08de8c5406d1e517878e Mon Sep 17 00:00:00 2001 From: web-padawan Date: Tue, 4 Feb 2025 11:31:39 +0200 Subject: [PATCH 1/4] chore: upgrade puppeteer version in yarn.lock to 23.11.1 --- yarn.lock | 65 +++++++++++++++++++++++++++---------------------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/yarn.lock b/yarn.lock index e005c73a365..a4910441bde 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1697,15 +1697,15 @@ dependencies: spacetrim "0.11.59" -"@puppeteer/browsers@2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.4.0.tgz#a0dd0f4e381e53f509109ae83b891db5972750f5" - integrity sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g== +"@puppeteer/browsers@2.6.1": + version "2.6.1" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.6.1.tgz#d75aec5010cae377c5e4742bf5e4f62a79c21315" + integrity sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg== dependencies: - debug "^4.3.6" + debug "^4.4.0" extract-zip "^2.0.1" progress "^2.0.3" - proxy-agent "^6.4.0" + proxy-agent "^6.5.0" semver "^7.6.3" tar-fs "^3.0.6" unbzip2-stream "^1.4.3" @@ -3804,13 +3804,12 @@ chrome-launcher@^0.15.0: is-wsl "^2.2.0" lighthouse-logger "^1.0.0" -chromium-bidi@0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.6.5.tgz#31be98f9ee5c93fa99d240c680518c9293d8c6bb" - integrity sha512-RuLrmzYrxSb0s9SgpB+QN5jJucPduZQ/9SIe76MDxYJuecPW5mxMdacJ1f4EtgiV+R0p3sCkznTMvH0MPGFqjA== +chromium-bidi@0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.11.0.tgz#9c3c42ee7b42d8448e9fce8d649dc8bfbcc31153" + integrity sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA== dependencies: mitt "3.0.1" - urlpattern-polyfill "10.0.0" zod "3.23.8" ci-info@^2.0.0: @@ -4536,7 +4535,7 @@ debounce@^1.2.0: resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.6, debug@^4.3.7, debug@^4.4.0: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.7, debug@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== @@ -4764,10 +4763,10 @@ detect-indent@^6.0.0: resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -devtools-protocol@0.0.1330662: - version "0.0.1330662" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz#400fe703c2820d6b2d9ebdd1785934310152373e" - integrity sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw== +devtools-protocol@0.0.1367902: + version "0.0.1367902" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz#7333bfc4466c5a54a4c6de48a9dfbcb4b811660c" + integrity sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg== dezalgo@^1.0.0: version "1.0.4" @@ -10259,7 +10258,7 @@ protocols@^2.0.1: resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== -proxy-agent@^6.4.0, proxy-agent@^6.5.0: +proxy-agent@^6.5.0: version "6.5.0" resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.5.0.tgz#9e49acba8e4ee234aacb539f89ed9c23d02f232d" integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== @@ -10313,28 +10312,28 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -puppeteer-core@23.3.0, puppeteer-core@^23.2.0: - version "23.3.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-23.3.0.tgz#e9e7367367e230ab3ed0b6b674170b09ba0a96e3" - integrity sha512-sB2SsVMFs4gKad5OCdv6w5vocvtEUrRl0zQqSyRPbo/cj1Ktbarmhxy02Zyb9R9HrssBcJDZbkrvBnbaesPyYg== +puppeteer-core@23.11.1, puppeteer-core@^23.2.0: + version "23.11.1" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-23.11.1.tgz#3e064de11b3cb3a2df1a8060ff2d05b41be583db" + integrity sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg== dependencies: - "@puppeteer/browsers" "2.4.0" - chromium-bidi "0.6.5" - debug "^4.3.6" - devtools-protocol "0.0.1330662" + "@puppeteer/browsers" "2.6.1" + chromium-bidi "0.11.0" + debug "^4.4.0" + devtools-protocol "0.0.1367902" typed-query-selector "^2.12.0" ws "^8.18.0" puppeteer@^23.2.0: - version "23.3.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-23.3.0.tgz#f2a3b28c05c17504adf1a903247e01f93e27d6b5" - integrity sha512-e2jY8cdWSUGsrLxqGm3hIbJq/UIk1uOY8XY7SM51leXkH7shrIyE91lK90Q9byX6tte+cyL3HKqlWBEd6TjWTA== + version "23.11.1" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-23.11.1.tgz#98fd9040786b1219b1a4f639c270377586e8899c" + integrity sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw== dependencies: - "@puppeteer/browsers" "2.4.0" - chromium-bidi "0.6.5" + "@puppeteer/browsers" "2.6.1" + chromium-bidi "0.11.0" cosmiconfig "^9.0.0" - devtools-protocol "0.0.1330662" - puppeteer-core "23.3.0" + devtools-protocol "0.0.1367902" + puppeteer-core "23.11.1" typed-query-selector "^2.12.0" q@^1.5.1: @@ -12603,7 +12602,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== -urlpattern-polyfill@10.0.0, urlpattern-polyfill@^10.0.0: +urlpattern-polyfill@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== From 9d7b663f06f386a0a63307aa872718f1d3fd5b62 Mon Sep 17 00:00:00 2001 From: web-padawan Date: Fri, 7 Feb 2025 11:13:31 +0200 Subject: [PATCH 2/4] chore: override resetMouse command to workaround Chrome issue --- test/test-runner-commands/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/test-runner-commands/index.js b/test/test-runner-commands/index.js index dbfbf414018..c20f9adcd79 100644 --- a/test/test-runner-commands/index.js +++ b/test/test-runner-commands/index.js @@ -30,6 +30,17 @@ export async function sendMouseToElement(payload) { await executeServerCommand('send-mouse', { ...payload, position: [x, y] }); } +/** + * Resets the mouse position and releases mouse buttons. + */ +export async function resetMouse() { + await executeServerCommand('reset-mouse'); + // 'reset-mouse' moves mouse to [0,0], which can interfere with following tests that + // depend on mouse events by causing unwanted `mouseenter` events with Puppeteer. + // Instead move it somewhere far away to make it less likely to affect other tests + await executeServerCommand('send-mouse', { type: 'move', position: [9999, 9999] }); +} + /** * Extends the `sendKeys` command to support pressing multiple keys * simultaneously when provided in the format "Shift+Tab". This format From 632f4c1980cb60c3bc18dd9a2d81dbf6891803dc Mon Sep 17 00:00:00 2001 From: web-padawan Date: Fri, 7 Feb 2025 11:56:11 +0200 Subject: [PATCH 3/4] test: use bottom right corner to avoid Webdriver error --- test/test-runner-commands/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test-runner-commands/index.js b/test/test-runner-commands/index.js index c20f9adcd79..3f622929324 100644 --- a/test/test-runner-commands/index.js +++ b/test/test-runner-commands/index.js @@ -37,8 +37,8 @@ export async function resetMouse() { await executeServerCommand('reset-mouse'); // 'reset-mouse' moves mouse to [0,0], which can interfere with following tests that // depend on mouse events by causing unwanted `mouseenter` events with Puppeteer. - // Instead move it somewhere far away to make it less likely to affect other tests - await executeServerCommand('send-mouse', { type: 'move', position: [9999, 9999] }); + // Instead move it to the bottom right to make it less likely to affect other tests. + await executeServerCommand('send-mouse', { type: 'move', position: [window.innerWidth, window.innerHeight] }); } /** From 603cbc60f2e87af086d51a5bcb9f2d5eaa51a48e Mon Sep 17 00:00:00 2001 From: web-padawan Date: Fri, 7 Feb 2025 13:09:02 +0200 Subject: [PATCH 4/4] test: limit workaround to Chrome to avoid Firefox timeouts --- test/test-runner-commands/index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/test-runner-commands/index.js b/test/test-runner-commands/index.js index 3f622929324..3c16cd8a0fb 100644 --- a/test/test-runner-commands/index.js +++ b/test/test-runner-commands/index.js @@ -38,7 +38,9 @@ export async function resetMouse() { // 'reset-mouse' moves mouse to [0,0], which can interfere with following tests that // depend on mouse events by causing unwanted `mouseenter` events with Puppeteer. // Instead move it to the bottom right to make it less likely to affect other tests. - await executeServerCommand('send-mouse', { type: 'move', position: [window.innerWidth, window.innerHeight] }); + if (/Chrome/u.test(navigator.userAgent) && /Google Inc/u.test(navigator.vendor)) { + await executeServerCommand('send-mouse', { type: 'move', position: [window.innerWidth, window.innerHeight] }); + } } /**