Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: unflake contextmenu recorder test #31749

Merged
merged 1 commit into from
Jul 26, 2024

Conversation

mxschmitt
Copy link
Member

@mxschmitt mxschmitt commented Jul 18, 2024

Looking at the last 5 runs on the flakiness dashboard, it shows that Chromium based browsers on Windows are red on this test. This is because on windows 'auxclick' fires before 'contextmenu' (this was also reproduced on a minimal example) which causes an action to be in progress, so when the actual 'contextmenu' fires, it does not emit any actions.

In order to fix it, we ignore right click 'auxclick' events, which sound reasonable, since they are handled via 'contextmenu' event.

This comment has been minimized.

This comment has been minimized.

@mxschmitt mxschmitt added the CQ1 label Jul 18, 2024

This comment has been minimized.

'button: pointermove',
'button: mousemove',
// trusted right click
'button: pointerup',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you understand why is there a pointerup at the start of the right-click?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pointer events were a fun way to try to describe how the world works for non mouse based inputs... https://w3c.github.io/pointerevents/#the-pointerup-event

Making all the events compatible/with pages is such a fun mess :) (signed, ex-(mobile)-browser/standards-dev)

This comment has been minimized.

@mxschmitt mxschmitt added CQ1 and removed CQ1 labels Jul 26, 2024
Copy link
Contributor

Test results for "tests 1"

2 failed
❌ [playwright-test] › runner.spec.ts:118:5 › should ignore subprocess creation error because of SIGINT
❌ [installation tests] › playwright-electron-should-work.spec.ts:21:5 › electron should work

6 flaky ⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-page] › page/page-event-request.spec.ts:169:3 › should return response body when Cross-Origin-Opener-Policy is set
⚠️ [firefox-page] › page/page-goto.spec.ts:182:3 › should properly cancel Cross-Origin-Opener-Policy navigation
⚠️ [playwright-test] › ui-mode-test-setup.spec.ts:87:5 › should show errors in config
⚠️ [chromium-library] › library/popup.spec.ts:264:3 › should not throw when click closes popup

29198 passed, 694 skipped
✔️✔️✔️

Merge workflow run.

Copy link
Contributor

Test results for "tests others"

1 flaky ⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work

17754 passed, 478 skipped
✔️✔️✔️

Merge workflow run.

@mxschmitt mxschmitt merged commit 6988194 into microsoft:main Jul 26, 2024
101 of 109 checks passed
Copy link
Contributor

Test results for "tests 2"

2 fatal errors, not part of any test
5 failed
❌ [chromium-library] › library/browsertype-connect.spec.ts:422:5 › run-server › should reject waitForEvent before browser.onDisconnect fires
❌ [chromium-library] › library/browsertype-connect.spec.ts:490:5 › run-server › should saveAs videos from remote browser
❌ [chromium-library] › library/inspector/cli-codegen-csharp.spec.ts:171:5 › should work with --save-har
❌ [chromium-page] › page/page-screenshot.spec.ts:283:5 › page screenshot › should work for canvas
❌ [webkit-library] › library/inspector/cli-codegen-2.spec.ts:493:7 › cli codegen › should --save-trace

91 flaky ⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/inspector/cli-codegen-1.spec.ts:23:7 › cli codegen › should click
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-page] › page/page-set-input-files.spec.ts:148:3 › should upload large file
⚠️ [chromium-library] › library/browser.spec.ts:54:5 › should dispatch page.on(close) upon browser.close and reject evaluate
⚠️ [chromium-library] › library/browsercontext-base-url.spec.ts:37:3 › should construct a new URL when a baseURL in browserType.launchPersistentContext is passed to page.goto
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch.spec.ts:1167:3 › should work with connectOverCDP
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:262:5 › launchServer › should support slowmo option
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:272:5 › run-server › disconnected event should be emitted when browser is closed or server is closed
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:434:5 › run-server › should respect selectors
⚠️ [chromium-library] › library/chromium/chromium.spec.ts:151:15 › should close service worker together with the context
⚠️ [chromium-library] › library/defaultbrowsercontext-1.spec.ts:42:3 › context.addCookies() should work
⚠️ [chromium-library] › library/defaultbrowsercontext-2.spec.ts:28:3 › should work in persistent context
⚠️ [chromium-library] › library/har.spec.ts:82:3 › should have pages in persistent context
⚠️ [chromium-library] › library/inspector/cli-codegen-2.spec.ts:493:7 › cli codegen › should --save-trace
⚠️ [chromium-library] › library/inspector/cli-codegen-java.spec.ts:92:5 › should work with --save-har
⚠️ [chromium-library] › library/video.spec.ts:381:5 › screencast › should capture navigation
⚠️ [chromium-library] › library/browsercontext-viewport.spec.ts:145:12 › should drag with high dpi
⚠️ [chromium-library] › library/emulation-focus.spec.ts:202:12 › should trigger hover state concurrently
⚠️ [chromium-page] › page/page-add-locator-handler.spec.ts:90:5 › should work with locator.hover()
⚠️ [chromium-page] › page/page-mouse.spec.ts:211:3 › should tween mouse movement
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/trace-viewer.spec.ts:1128:1 › should pick locator in iframe
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/page-clock.spec.ts:343:3 › popup › should not run time before popup on pause
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-page] › page/page-event-request.spec.ts:169:3 › should return response body when Cross-Origin-Opener-Policy is set
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-page] › page/page-mouse.spec.ts:166:3 › should trigger hover state
⚠️ [firefox-page] › page/page-screenshot.spec.ts:676:5 › page screenshot animations › should not capture infinite web animations
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/video.spec.ts:189:5 › screencast › should capture static page
⚠️ [firefox-page] › page/page-add-locator-handler.spec.ts:90:5 › should work with locator.hover()
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/inspector/cli-codegen-2.spec.ts:370:7 › cli codegen › should not clash pages
⚠️ [firefox-library] › library/inspector/cli-codegen-2.spec.ts:474:7 › cli codegen › should record navigations after identical pushState
⚠️ [firefox-library] › library/inspector/cli-codegen-3.spec.ts:444:7 › cli codegen › should generate getByAltText
⚠️ [firefox-library] › library/inspector/cli-codegen-csharp.spec.ts:30:5 › should print the correct imports and context options
⚠️ [firefox-library] › library/video.spec.ts:381:5 › screencast › should capture navigation
⚠️ [firefox-page] › page/frame-goto.spec.ts:46:3 › should continue after client redirect
⚠️ [firefox-page] › page/page-click.spec.ts:97:3 › should click the 1x1 div
⚠️ [firefox-page] › page/page-dialog.spec.ts:59:3 › should dismiss the confirm prompt
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-page] › page/page-goto.spec.ts:182:3 › should properly cancel Cross-Origin-Opener-Policy navigation
⚠️ [firefox-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/inspector/cli-codegen-3.spec.ts:502:7 › cli codegen › should generate getByLabel without regex
⚠️ [chromium-library] › library/inspector/cli-codegen-javascript.spec.ts:54:5 › should print the correct context options when using a device
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [chromium-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [firefox-page] › page/page-goto.spec.ts:182:3 › should properly cancel Cross-Origin-Opener-Policy navigation
⚠️ [webkit-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:553:7 › cli codegen › should select
⚠️ [webkit-library] › library/inspector/cli-codegen-test.spec.ts:88:5 › should work with --save-har
⚠️ [webkit-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:451:7 › cli codegen › should check
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:521:7 › cli codegen › should uncheck
⚠️ [webkit-page] › page/page-add-locator-handler.spec.ts:90:5 › should work with locator.hover()
⚠️ [webkit-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [webkit-library] › library/browsercontext-reuse.spec.ts:50:1 › should reset serviceworker
⚠️ [webkit-library] › library/emulation-focus.spec.ts:202:12 › should trigger hover state concurrently
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:228:7 › cli codegen › should fill
⚠️ [webkit-library] › library/inspector/cli-codegen-2.spec.ts:340:7 › cli codegen › should record open in a new tab with url
⚠️ [webkit-library] › library/tap.spec.ts:22:3 › should send all of the correct events @smoke
⚠️ [webkit-page] › page/page-add-locator-handler.spec.ts:90:5 › should work with locator.hover()
⚠️ [webkit-page] › page/page-set-input-files.spec.ts:40:3 › should upload a folder
⚠️ [webkit-library] › library/emulation-focus.spec.ts:202:12 › should trigger hover state concurrently
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:197:7 › cli codegen › should not target selector preview by text regexp
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:341:7 › cli codegen › should press
⚠️ [webkit-library] › library/inspector/cli-codegen-2.spec.ts:340:7 › cli codegen › should record open in a new tab with url
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:22:7 › cli codegen › should click locator.first
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:57:7 › cli codegen › should click locator.nth
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:632:7 › cli codegen › should assert value
⚠️ [webkit-page] › page/page-evaluate.spec.ts:509:3 › should transfer 100Mb of data from page to node.js
⚠️ [webkit-page] › page/page-request-fallback.spec.ts:239:5 › post data › should amend binary post data
⚠️ [webkit-library] › library/browsercontext-fetch-happy-eyeballs.spec.ts:46:3 › get should work
⚠️ [webkit-library] › library/tracing.spec.ts:412:14 › should produce screencast frames fit
⚠️ [webkit-page] › page/workers.spec.ts:243:3 › should support offline

212786 passed, 9354 skipped, 1412 did not run
✔️✔️✔️

Merge workflow run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants