Firefox/Features/Tab move detach animations/Edge cases
Herein lies a brain dump of various (edge) cases that I tested manually while developing the tab move/detach animations feature:
- The tab being dragged might be closed during the drag, e.g. window.close() getting called on it if it's a child tab. Check if tab.parentNode or a field on the tab's binding exists. If not, try to abort the operation.
- The number of tabs open might change during the drag. This matters because the drag feedback needs to be updated, especially when only one visible tab is open (the detach threshold is decreased).
- A normal tab might be dragged to the app tab region and vice versa. The proper visual feedback, which is not yet implemented, should incorporate a smooth animation.
- A drag that enters another window should raise that window, but the drag panel should always remain on top of all other windows.
- Pressing the esc key at any point during a drag should cancel it.
- Pressing a keyboard shortcut to switch windows (e.g. alt+tab on Windows or cmd+tab on OS X) should not cause the drag to end or glitch. The dragged tab should continue to follow the cursor.
- The tab being dragged might have its focus stolen, e.g. via window.confirm() getting called on another tab.
- The user might switch into Tab Groups view during the drag. (If implemented with the drag & drop API, Firefox's internal keyboard shortcuts are likely disabled, so this wouldn't occur.)