Skip to content

chore: remove custom drag&drop implementation for chromium #36287

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

dgozman
Copy link
Contributor

@dgozman dgozman commented Jun 11, 2025

Chromium implemented drag&drop support through Input.dispatchMouseEvent a while ago:

A few changes in behavior:

  • Chromium now aligns with other browsers and sends a dragover event immediately. See the should not send dragover on the first mousemove test. This behavior is not specced, and support varies between browsers. However, this is technically a minor regression.
  • Every press('Escape') call now first cancels an ongoing drag in a separate protocol call. This is due to Chromium not implementing this functionality natively, and instead relying on OS for it. The effect is minimal, so we can keep the behavior.

process.env.PLAYWRIGHT_LEGACY_DRAG_AND_DROP opts into old behavior for now.

This comment has been minimized.

@dgozman dgozman added the CQ1 label Jun 12, 2025

This comment has been minimized.

This comment has been minimized.

@dgozman dgozman force-pushed the cr-drag-drop-default branch from 43b505a to 2a1469f Compare June 16, 2025 12:32

This comment has been minimized.

@dgozman dgozman force-pushed the cr-drag-drop-default branch from 2a1469f to bb9a843 Compare June 17, 2025 15:36
Copy link
Contributor

Test results for "tests 1"

6 flaky ⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-ubuntu-22.04-node18
⚠️ [playwright-test] › ui-mode-test-output.spec.ts:117:5 › should collapse repeated console messages for test @macos-latest-node18-1
⚠️ [webkit-library] › library/trace-viewer.spec.ts:1312:1 › should pick locator in iframe @webkit-ubuntu-22.04-node18
⚠️ [webkit-page] › page/page-event-popup.spec.ts:28:3 › should work with window features @webkit-ubuntu-22.04-node18
⚠️ [webkit-page] › page/page-screenshot.spec.ts:345:5 › page screenshot › should work while navigating @webkit-ubuntu-22.04-node18
⚠️ [playwright-test] › ui-mode-test-watch.spec.ts:145:5 › should watch all @windows-latest-node18-1

39519 passed, 832 skipped
✔️✔️✔️

Merge workflow run.

@dgozman dgozman added CQ1 and removed CQ1 labels Jun 17, 2025
Copy link
Contributor

Test results for "tests others"

1 flaky ⚠️ [electron-page] › page/page-set-input-files.spec.ts:146:5 › should upload large file @electron-windows-latest

22190 passed, 552 skipped
✔️✔️✔️

Merge workflow run.

Copy link
Contributor

Test results for "tests 2"

1 fatal errors, not part of any test
12 failed
❌ [chromium-library] › library/logger.spec.ts:19:3 › should log @smoke @channel-chromium-macos-latest
❌ [chromium-library] › library/browsertype-connect.spec.ts:670:5 › run-server › should fulfill with global fetch result @chrome-macos-latest
❌ [firefox-library] › library/browsercontext-storage-state.spec.ts:361:3 › should support IndexedDB @firefox-windows-latest
❌ [chromium-page] › page/locator-misc-2.spec.ts:188:3 › should fill programmatically enabled textarea @msedge-dev-macos-latest
❌ [chromium-page] › page/locator-misc-2.spec.ts:188:3 › should fill programmatically enabled textarea @msedge-dev-ubuntu-22.04
❌ [chromium-library] › library/browsertype-connect.spec.ts:939:7 › run-server › socks proxy › should proxy based on the pattern @msedge-macos-latest
❌ [chromium-library] › library/browsertype-connect.spec.ts:970:7 › run-server › socks proxy › should check proxy pattern on the client @msedge-macos-latest
❌ [chromium-library] › library/logger.spec.ts:19:3 › should log @smoke @msedge-macos-latest
❌ [webkit-library] › library/screenshot.spec.ts:289:14 › element screenshot › should restore viewport after page screenshot and timeout @tracing-webkit
❌ [webkit-library] › library/video.spec.ts:441:5 › screencast › should work for popups @tracing-webkit
❌ [webkit-library] › library/browsercontext-proxy.spec.ts:67:3 › should send secure cookies to subdomain.localhost @webkit-headed-windows-latest
❌ [webkit-library] › library/browsercontext-proxy.spec.ts:67:3 › should send secure cookies to subdomain.localhost @webkit-windows-latest

133 flaky ⚠️ [chromium-library] › library/browser.spec.ts:54:5 › should dispatch page.on(close) upon browser.close and reject evaluate @channel-chromium-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:484:5 › run-server › should not throw on close after disconnect @channel-chromium-macos-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-2.spec.ts:93:7 › cli codegen › should not lead to an error if html gets clicked @channel-chromium-macos-latest
⚠️ [chromium-library] › library/inspector/pause.spec.ts:23:3 › should resume when closing inspector @channel-chromium-macos-latest
⚠️ [chromium-library] › library/inspector/title.spec.ts:35:5 › should update primary page URL when original primary closes @channel-chromium-macos-latest
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:25:3 › Page.workers @smoke @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:150:3 › should report network activity @channel-chromium-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:271:3 › should support extra http headers @channel-chromium-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:738:5 › run-server › setInputFiles should preserve lastModified timestamp @chrome-beta-macos-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-2.spec.ts:93:7 › cli codegen › should not lead to an error if html gets clicked @chrome-beta-macos-latest
⚠️ [chromium-library] › library/inspector/title.spec.ts:35:5 › should update primary page URL when original primary closes @chrome-beta-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:25:3 › Page.workers @smoke @chrome-beta-macos-latest
⚠️ [chromium-library] › library/browsercontext-cookies-third-party.spec.ts:250:1 › save/load third party 'Partitioned;' cookies @chrome-beta-windows-latest
⚠️ [chromium-library] › library/browsercontext-proxy.spec.ts:27:3 › should work when passing the proxy only on the context level @chrome-macos-latest
⚠️ [chromium-library] › library/browsertype-launch.spec.ts:107:3 › should accept objects as options @chrome-macos-latest
⚠️ [chromium-library] › library/browsertype-launch.spec.ts:115:3 › should fire close event for all contexts @chrome-macos-latest
⚠️ [chromium-library] › library/fetch-proxy.spec.ts:21:3 › context request should pick up proxy credentials @chrome-macos-latest
⚠️ [chromium-library] › library/inspector/pause.spec.ts:23:3 › should resume when closing inspector @chrome-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:44:3 › should use proxy for second page @chrome-macos-latest
⚠️ [chromium-library] › library/video.spec.ts:580:5 › screencast › should capture static page in persistent context @smoke @chrome-windows-latest
⚠️ [chromium-library] › library/chromium/oopif.spec.ts:284:3 › should click @chromium-headed-macos-14-xlarge
⚠️ [chromium-library] › library/trace-viewer.spec.ts:471:1 › should show snapshot URL @chromium-headed-ubuntu-24.04
⚠️ [chromium-page] › page/page-mouse.spec.ts:174:3 › should select the text with mouse @chromium-headed-windows-latest
⚠️ [chromium-page] › page/page-mouse.spec.ts:244:3 › should tween mouse movement @chromium-headed-windows-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-3.spec.ts:222:7 › cli codegen › should generate frame locators (4) @chromium-macos-14-xlarge
⚠️ [chromium-page] › page/workers.spec.ts:150:3 › should report network activity @chromium-tip-of-tree-macos-13
⚠️ [chromium-page] › page/workers.spec.ts:271:3 › should support extra http headers @chromium-tip-of-tree-macos-13
⚠️ [chromium-page] › page/workers.spec.ts:150:3 › should report network activity @chromium-tip-of-tree-macos-13--headed
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:206:1 › should reset mouse position @chromium-tip-of-tree-ubuntu-22.04--headed
⚠️ [chromium-library] › library/trace-viewer.spec.ts:471:1 › should show snapshot URL @chromium-tip-of-tree-ubuntu-22.04--headed
⚠️ [chromium-library] › library/video.spec.ts:379:5 › screencast › should capture navigation @chromium-tip-of-tree-windows-latest--headed
⚠️ [chromium-page] › page/page-set-input-files.spec.ts:204:5 › should upload large file with relative path @chromium-tip-of-tree-windows-latest--headed
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-beta-macos-latest
⚠️ [firefox-page] › page/page-event-request.spec.ts:182:3 › should return response body when Cross-Origin-Opener-Policy is set @firefox-beta-macos-latest
⚠️ [firefox-page] › page/page-goto.spec.ts:81:3 › should work with Cross-Origin-Opener-Policy @firefox-beta-macos-latest
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-beta-macos-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-beta-ubuntu-22.04
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-beta-windows-latest
⚠️ [firefox-library] › library/browsercontext-basic.spec.ts:361:3 › should emulate media in cross-process iframe @firefox-headed-macos-14-xlarge
⚠️ [firefox-library] › library/capabilities.spec.ts:252:3 › requestFullscreen @firefox-headed-macos-14-xlarge
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-headed-macos-14-xlarge
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-headed-macos-14-xlarge
⚠️ [firefox-library] › library/browsercontext-basic.spec.ts:36:3 › should be able to click across browser contexts @firefox-headed-ubuntu-24.04
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-headed-ubuntu-24.04
⚠️ [firefox-library] › library/inspector/title.spec.ts:35:5 › should update primary page URL when original primary closes @firefox-headed-ubuntu-24.04
⚠️ [firefox-library] › library/browsercontext-cookies-third-party.spec.ts:531:1 › should(not) block third party cookies - ephemeral context @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-locale.spec.ts:118:3 › should be isolated between contexts @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-viewport.spec.ts:109:3 › should throw on tap if hasTouch is not enabled @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-viewport.spec.ts:144:12 › should report null viewportSize when given null viewport @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsercontext-viewport.spec.ts:177:12 › should be able to get correct orientation angle on non-mobile devices @firefox-headed-windows-latest
⚠️ [firefox-library] › library/browsertype-connect.spec.ts:1027:3 › launchServer only › should be able to reconnect to a browser 12 times without warnings @firefox-headed-windows-latest
⚠️ [firefox-library] › library/capabilities.spec.ts:22:3 › SharedArrayBuffer should work @smoke @firefox-headed-windows-latest
⚠️ [firefox-library] › library/download.spec.ts:54:5 › download event › should report download when navigation turns into download @smoke @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/pause.spec.ts:108:5 › pause › should show source @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/pause.spec.ts:121:5 › pause › should pause on next pause @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/pause.spec.ts:137:5 › pause › should step @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/pause.spec.ts:155:5 › pause › should step with keyboard shortcut @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/pause.spec.ts:468:5 › pause › should not prevent key events @firefox-headed-windows-latest
⚠️ [firefox-library] › library/tracing.spec.ts:476:5 › should include interrupted actions @firefox-headed-windows-latest
⚠️ [firefox-library] › library/video.spec.ts:323:5 › screencast › should work with weird screen resolution @firefox-headed-windows-latest
⚠️ [firefox-page] › page/page-click-timeout-4.spec.ts:20:3 › should timeout waiting for stable position @firefox-headed-windows-latest
⚠️ [firefox-page] › page/page-click-timeout-4.spec.ts:52:3 › should fail to click the button behind a large header after scrolling around @firefox-headed-windows-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-macos-13-large
⚠️ [firefox-library] › library/video.spec.ts:163:5 › screencast › should work with old options @firefox-macos-13-large
⚠️ [firefox-library] › library/video.spec.ts:379:5 › screencast › should capture navigation @firefox-macos-13-large
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-macos-13-xlarge
⚠️ [firefox-library] › library/tracing.spec.ts:430:14 › should produce screencast frames scale @firefox-macos-13-xlarge
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-macos-13-xlarge
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-macos-14-large
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-macos-14-large
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-macos-14-xlarge
⚠️ [firefox-library] › library/video.spec.ts:163:5 › screencast › should work with old options @firefox-macos-14-xlarge
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-ubuntu-24.04
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-ubuntu-24.04
⚠️ [firefox-library] › library/debug-controller.spec.ts:71:1 › should pick element @firefox-windows-latest
⚠️ [firefox-library] › library/inspector/cli-codegen-1.spec.ts:986:7 › cli codegen › should not throw csp directive violation errors @firefox-windows-latest
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @firefox-windows-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-beta-macos-latest
⚠️ [chromium-library] › library/downloads-path.spec.ts:91:5 › downloads path › should accept downloads in persistent context @msedge-beta-macos-latest
⚠️ [chromium-library] › library/fetch-proxy.spec.ts:21:3 › context request should pick up proxy credentials @msedge-beta-macos-latest
⚠️ [chromium-library] › library/logger.spec.ts:19:3 › should log @smoke @msedge-beta-macos-latest
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @msedge-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › with other bypasses › localhost @msedge-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:93:11 › should proxy local network requests › with other bypasses › link-local @msedge-beta-macos-latest
⚠️ [chromium-library] › library/proxy.spec.ts:291:3 › should use SOCKS proxy for websocket requests @msedge-beta-macos-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-beta-ubuntu-22.04
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @msedge-beta-ubuntu-22.04
⚠️ [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 @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-fetch.spec.ts:871:3 › should support timeout option @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-fetch.spec.ts:1262:3 › should work with connectOverCDP @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-proxy.spec.ts:27:3 › should work when passing the proxy only on the context level @msedge-dev-macos-latest
⚠️ [chromium-library] › library/inspector/cli-codegen-1.spec.ts:55:7 › cli codegen › should double click @msedge-dev-macos-latest
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @msedge-dev-macos-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-dev-ubuntu-22.04
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @msedge-dev-ubuntu-22.04
⚠️ [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 @msedge-macos-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:162:5 › launchServer › should be able to visit ipv6 @msedge-macos-latest
⚠️ [chromium-library] › library/browsertype-connect.spec.ts:1027:3 › launchServer only › should be able to reconnect to a browser 12 times without warnings @msedge-macos-latest
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @msedge-macos-latest
⚠️ [chromium-library] › library/signals.spec.ts:78:7 › signals › should close the browser on SIGINT @msedge-macos-latest
⚠️ [chromium-page] › page/workers.spec.ts:271:3 › should support extra http headers @msedge-macos-latest
⚠️ [chromium-library] › library/browsercontext-reuse.spec.ts:30:1 › should re-add binding after reset @msedge-ubuntu-22.04
⚠️ [chromium-library] › library/permissions.spec.ts:244:5 › should be able to use the local-fonts API @msedge-ubuntu-22.04
⚠️ [firefox-page] › page/page-wait-for-function.spec.ts:104:3 › should work with strict CSP policy @tracing-firefox
⚠️ [webkit-library] › library/multiclient.spec.ts:119:1 › should not allow parallel js coverage and cleanup upon disconnect @tracing-webkit
⚠️ [webkit-library] › library/multiclient.spec.ts:132:1 › should not allow parallel css coverage @tracing-webkit
⚠️ [webkit-library] › library/multiclient.spec.ts:260:1 › should remove init scripts upon disconnect @tracing-webkit
⚠️ [webkit-library] › library/screenshot.spec.ts:44:14 › page screenshot › should work with a mobile viewport @tracing-webkit
⚠️ [webkit-library] › library/screenshot.spec.ts:55:14 › page screenshot › should work with a mobile viewport and clip @tracing-webkit
⚠️ [webkit-library] › library/screenshot.spec.ts:205:14 › element screenshot › element screenshot should work with a mobile viewport @tracing-webkit
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:610:7 › cli codegen › should select @webkit-headed-macos-14-xlarge
⚠️ [webkit-page] › page/page-request-continue.spec.ts:261:5 › post data › should amend utf8 post data @webkit-headed-macos-14-xlarge
⚠️ [webkit-page] › page/page-request-fallback.spec.ts:239:5 › post data › should amend binary post data @webkit-headed-macos-14-xlarge
⚠️ [webkit-library] › library/browsercontext-reuse.spec.ts:206:1 › should reset mouse position @webkit-headed-ubuntu-22.04
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:578:7 › cli codegen › should generate getByLabel @webkit-headed-ubuntu-22.04
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:332:7 › cli codegen › should fill textarea @webkit-headed-ubuntu-24.04
⚠️ [webkit-page] › page/page-click.spec.ts:261:3 › should click on checkbox input and toggle @webkit-headed-ubuntu-24.04
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:96:7 › cli codegen › should ignore programmatic events @webkit-headed-windows-latest
⚠️ [webkit-library] › library/inspector/cli-codegen-1.spec.ts:578:7 › cli codegen › should uncheck @webkit-headed-windows-latest
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:636:7 › cli codegen › should consume pointer events @webkit-headed-windows-latest
⚠️ [webkit-library] › library/inspector/cli-codegen-3.spec.ts:784:7 › cli codegen › should assert value on disabled input @webkit-headed-windows-latest
⚠️ [webkit-library] › library/inspector/cli-codegen-pick-locator.spec.ts:23:7 › should inspect locator @webkit-headed-windows-latest
⚠️ [webkit-library] › library/tracing.spec.ts:430:14 › should produce screencast frames fit @webkit-macos-13-xlarge
⚠️ [webkit-library] › library/tracing.spec.ts:430:14 › should produce screencast frames crop @webkit-macos-13-xlarge
⚠️ [webkit-library] › library/tracing.spec.ts:430:14 › should produce screencast frames scale @webkit-macos-13-xlarge
⚠️ [webkit-page] › page/page-request-continue.spec.ts:248:5 › post data › should amend method and post data @webkit-macos-13-xlarge
⚠️ [webkit-page] › page/page-request-fallback.spec.ts:239:5 › post data › should amend binary post data @webkit-macos-14-large
⚠️ [webkit-library] › library/tracing.spec.ts:430:14 › should produce screencast frames crop @webkit-macos-14-xlarge
⚠️ [webkit-library] › library/tracing.spec.ts:430:14 › should produce screencast frames scale @webkit-macos-14-xlarge
⚠️ [webkit-library] › library/video.spec.ts:379:5 › screencast › should capture navigation @webkit-macos-15-large
⚠️ [webkit-library] › library/inspector/cli-codegen-aria.spec.ts:76:7 › should update aria snapshot highlight @webkit-windows-latest

237764 passed, 9718 skipped
✔️✔️✔️

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.

1 participant