Commit 7ddb49b
committed
[v2] fix: Files DragAndDrop bugs with OnDomReady and DisableWebViewDrop
This commit fixes the issues reported in #3563:
1. OnDomReady triggering multiple times during drag-and-drop:
- Root cause: When files are dropped without proper event handling, the
browser navigates to the dropped file, triggering navigation completion
callbacks and thus OnDomReady again.
- Fix: Register drag/drop event handlers early in the runtime JavaScript
(main.js) before the user has a chance to drop files. These handlers
call e.preventDefault() for file drops, preventing browser navigation.
- Added setup() function in draganddrop.js that's called from main.js.
- Additionally added OnDomReady single-fire guards on all platforms as
a safety measure.
2. DisableWebViewDrop + EnableFileDrop conflict on Windows:
- When both options were enabled, AllowExternalDrag(false) was called,
which blocked ALL drag events including the ones needed for file drops.
- Now only calls AllowExternalDrag(false) when DisableWebViewDrop is true
AND EnableFileDrop is false.
Platform-specific changes:
- Windows: Fixed navigationCompleted to only call OnDomReady once
- Linux: Added domReadySent flag to prevent multiple DomReady messages
- macOS: Added domReadySent property to track if DomReady was sent
Fixes #35631 parent 7b8355a commit 7ddb49b
9 files changed
Lines changed: 76 additions & 20 deletions
File tree
- v2/internal/frontend
- desktop
- darwin
- linux
- windows
- runtime
- desktop
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
473 | 473 | | |
474 | 474 | | |
475 | 475 | | |
476 | | - | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
477 | 482 | | |
478 | 483 | | |
479 | 484 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
469 | 469 | | |
470 | 470 | | |
471 | 471 | | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
472 | 475 | | |
473 | 476 | | |
474 | 477 | | |
475 | 478 | | |
476 | | - | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
477 | 486 | | |
478 | 487 | | |
479 | 488 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
488 | 488 | | |
489 | 489 | | |
490 | 490 | | |
491 | | - | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
492 | 498 | | |
493 | 499 | | |
494 | 500 | | |
| |||
901 | 907 | | |
902 | 908 | | |
903 | 909 | | |
904 | | - | |
905 | | - | |
906 | | - | |
907 | | - | |
908 | 910 | | |
909 | 911 | | |
910 | 912 | | |
| |||
918 | 920 | | |
919 | 921 | | |
920 | 922 | | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
921 | 929 | | |
922 | 930 | | |
923 | 931 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| |||
245 | 246 | | |
246 | 247 | | |
247 | 248 | | |
248 | | - | |
249 | | - | |
250 | | - | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
251 | 252 | | |
252 | 253 | | |
253 | 254 | | |
| |||
274 | 275 | | |
275 | 276 | | |
276 | 277 | | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
219 | 225 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments