Closed Bug 1930931 Opened 1 year ago Closed 10 months ago

Unloaded tabs cannot be dragged from icon until after they have been loaded

Categories

(Core :: DOM: Copy & Paste and Drag & Drop, defect)

Desktop
Unspecified
defect

Tracking

()

VERIFIED FIXED
137 Branch
Tracking Status
firefox-esr115 --- wontfix
firefox-esr128 --- wontfix
firefox132 --- wontfix
firefox133 --- wontfix
firefox134 --- wontfix
firefox135 --- wontfix
firefox136 --- wontfix
firefox137 --- verified

People

(Reporter: rdoghi, Assigned: sefeng211)

References

(Blocks 2 open bugs, Regression)

Details

(Keywords: regression)

Attachments

(4 files)

Attached video Tabs20s.mp4

Found in

  • 134.0a1 (2024-11-13)

Affected versions

  • 134.0a1 (2024-11-13)
  • Beta 133.0b7
  • Release 132
  • Esr 128

Preconditions
Have a Previous session with a lot of tabs.

Affected platforms

  • all

Steps to reproduce

  1. Launch Firefox and Restore the previous session.
  2. Before the Tabs have a chance to load try to move them around.

Expected result

  • The user should be able to move the tabs around even if they have not started to load their content.

Actual result

  • Sometimes the user has to click a tab again in order to move them while the first click starts to load the content from that tab.
    Please note that this issue does not happen at a 100% repro rate.

You can see this issue at around second 20 in the attached video

Regression range
Not a Regression.

Severity: -- → S3
Priority: -- → P3
Duplicate of this bug: 1930359

STR:

  1. Create a tab and unload it by right-clicking > Unload Tab or from about:processes or close and restore the window.
  2. Drag the unloaded tab from the icon. On Windows this must be done before the loading animation finishes.

Expected:
Unloaded tab can be dragged from the icon.

Actual:
Tab does not respond to dragging from the icon until after it has loaded and drag is performed again.

Windows is more forgiving, allowing drag to work if the cursor is held still until after the loading animation finishes but this is not the case on Linux.

Vertical tabs in the collapsed state are especially affected since the icon dominates the draggable area. This is also the case with horizontal pinned tabs but they load on startup by default so are not normally affected. Rearranging many unloaded tabs requires "waking up" each tab first or dragging from the edges of the tab.

First appeared in version 57 when tabs changed to Photon design.

Regression window:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=52285ea5e54c73d3ed824544cef2ee3f195f05e6&tochange=63e261ce8cb04c913d2e6b19ea451b7078d24dc1

Possibly regressed by Bug 1349555.

Keywords: regression
Regressed by: 1349555
See Also: → 1612268
Summary: Unable to move Tabs that did not start to load → Unloaded tabs cannot be dragged from icon until after they have been loaded

:dao, since you are the author of the regressor, bug 1349555, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(dao+bmo)

with

<div id="parent" draggable="true">
   <div id="children">children</div>
</div>

it seems like if the "children" gets replaced between mousedown and dragstart, the drag would not start(when click inside children's display area), demo attached

I don't know if this is desired behavior, but in chromium the drag would start normally

for the issue of unloaded tabs, looks like it's setting tab label and icon when loading, leads to behavior described above

add pointer-events: none; to both .tab-icon-image and .tab-label-container seems fix it for tab

Moving this to Core based on comment 5.

Severity: S3 → --
Component: Tabbed Browser → DOM: Copy & Paste and Drag & Drop
Flags: needinfo?(dao+bmo)
Priority: P3 → --
Product: Firefox → Core

NI myself to take a look, I vaguely remember seeing something similar.

Severity: -- → S3
Flags: needinfo?(sefeng)
Blocks: tabs-dnd
Duplicate of this bug: 1874229
See Also: → 1922592

So we prevent the drag from starting because the node is disconnected, hence this check fails. Maybe we should update the gesture content to the parent when that happens. I am trying to come up a patch.

Assignee: nobody → sefeng
Status: NEW → ASSIGNED
Pushed by sefeng@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/0294168d500c Make the dragging interaction still happens when the event target frame is moved/destroyed upon mousedown r=masayuki,dom-core
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/50884 for changes under testing/web-platform/tests
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → 137 Branch

Since nightly and release are affected, beta will likely be affected too.
For more information, please visit BugBot documentation.

Verified as fixed in our latest Nightly build 137.0a1 (2025-02-23)

Status: RESOLVED → VERIFIED
Upstream PR merged by moz-wptsync-bot
Regressions: 1959275
See Also: → 1963307
Flags: needinfo?(sefeng)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: