Closed Bug 1721308 Opened 3 years ago Closed 2 years ago

dragging tab when it pops up "Allow this site to open the <protocol> link?" dialog breaks tabbar

Categories

(Firefox :: Tabbed Browser, defect)

Desktop
All
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: tnikkel, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

STR:

  1. Enable restore tabs from last session on start.
  2. Have two tabs, the first can be anything, the second needs to be a page that when loaded it pops up the "Allow this site to open the <protocol> link?" dialog. For me any link to a podcast on the apple podcast site (eg https://podcasts.apple.com/us/podcast/edith/id1571400332) does that but I can't get a fresh profile to do that, I'm not sure why, someone who knows this area more can maybe provide a page that does that or prefs to flip.
  3. Select the first tab and close Firefox.
  4. Restart firefox.
  5. Click and hold the second tab and drag it in the tab bar, wait until the dialog pops up.

Trying to click in the url bar will fail and your interactions with the tabbar will probably be broken as well.

Bisected to https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=f3a829091fef65cf49209ed374688cdd6d5753ed&tochange=66d3efe9fc7a276ba284bb1f98a4e9c3cc53e1fb

which contains bug 1635709 so I'm guessing it's that, but I didn't look in detail, just looked for drag changes.

Flags: needinfo?(mbrodesser)

(In reply to Timothy Nikkel (:tnikkel) from comment #0)

STR:

  1. Enable restore tabs from last session on start.
  2. Have two tabs, the first can be anything, the second needs to be a page that when loaded it pops up the "Allow this site to open the <protocol> link?" dialog. For me any link to a podcast on the apple podcast site (eg https://podcasts.apple.com/us/podcast/edith/id1571400332) does that but I can't get a fresh profile to do that, I'm not sure why, someone who knows this area more can maybe provide a page that does that or prefs to flip.
  3. Select the first tab and close Firefox.
  4. Restart firefox.
  5. Click and hold the second tab and drag it in the tab bar, wait until the dialog pops up.

Trying to click in the url bar will fail and your interactions with the tabbar will probably be broken as well.

Bisected to https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=f3a829091fef65cf49209ed374688cdd6d5753ed&tochange=66d3efe9fc7a276ba284bb1f98a4e9c3cc53e1fb

which contains bug 1635709 so I'm guessing it's that, but I didn't look in detail, just looked for drag changes.

The pushlog contains only part 24.1 - part 27 of bug 1635709. My guess is, those parts didn't cause this regression, but one needs to bisect to be sure.

Rares: can you please help determining which exact commit caused this regression?

Flags: needinfo?(mbrodesser) → needinfo?(rares.doghi)

(In reply to Mirko Brodesser (:mbrodesser) -- away June 17th - August 8th 2021 from comment #1)

The pushlog contains only part 24.1 - part 27 of bug 1635709. My guess is, those parts didn't cause this regression, but one needs to bisect to be sure.

Rares: can you please help determining which exact commit caused this regression?

The regression range is over a year old now, so we no longer have access to builds to narrow this range anymore unless someone happens to have builds cached in their mozregression cache. I doubt it's an easy task to build from source that old too, so I'm afraid this might be the best we can do by the way of bisecting. Perhaps you could take a look at the regression range and see if anything sticks out to you?

(In reply to Timothy Nikkel (:tnikkel) from comment #0)

STR:

  1. Enable restore tabs from last session on start.
  2. Have two tabs, the first can be anything, the second needs to be a page that when loaded it pops up the "Allow this site to open the <protocol> link?" dialog.

What's meant with the "<protocol> link" dialog? Could you please explain and/or upload a screenshot?

For me any link to a podcast on the apple podcast site (eg https://podcasts.apple.com/us/podcast/edith/id1571400332) does that but I can't get a fresh profile to do that, I'm not sure why, someone who knows this area more can maybe provide a page that does that or prefs to flip.
3) Select the first tab and close Firefox.
4) Restart firefox.
5) Click and hold the second tab and drag it in the tab bar, wait until the dialog pops up.

Trying to click in the url bar will fail and your interactions with the tabbar will probably be broken as well.

Bisected to https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=f3a829091fef65cf49209ed374688cdd6d5753ed&tochange=66d3efe9fc7a276ba284bb1f98a4e9c3cc53e1fb

which contains bug 1635709 so I'm guessing it's that, but I didn't look in detail, just looked for drag changes.

Perhaps you could take a look at the regression range and see if anything sticks out to you?

Had a look, maybe bug 1606797?

Flags: needinfo?(rares.doghi)
Flags: needinfo?(tnikkel)
Flags: needinfo?(tnikkel)

Gijs, could you take a look? This might be a regression from bug 1606797?

Flags: needinfo?(gijskruitbosch+bugs)

This happens with other dialogs too (cf bug 1542353), so I'm not sure it really makes sense to treat this as a new regression.

bug 1544167 is the likely solution here, AIUI, and although that's in core, the immediate issue here is tabbrowser-related so I guess this should live there, like 1542353... X-ref https://bugzilla.mozilla.org/show_bug.cgi?id=1538460#c21 for more details on the modal vs. drag operation issue and how to fix that...

Component: DOM: Selection → Tabbed Browser
Depends on: 1544167
Flags: needinfo?(gijskruitbosch+bugs)
OS: Unspecified → All
Product: Core → Firefox
Hardware: Unspecified → Desktop

Is this still reproducible on today's Nightly when that's available, and on which OS are you seeing this? I fixed bug 1544167 but I'm not 100% sure that that would do anything to address this. I'm a little confused because when I tested, entering modal state already triggered the drag service's EndDragSession method, so I would have thought that that would already be happening here, but perhaps only for the child process/window or something?

Flags: needinfo?(tnikkel)

It was on macOS where I was seeing this.

Unfortunately Apple podcast pages no longer open a dialog on load for me. So I don't have a way to test this.

If you know of a way to make a similar dialog appear on pageload I can test that.

Flags: needinfo?(tnikkel)

Running something like this in the web console:

setTimeout(() => { window.location = 'itunes:blah' }, 5000);

and then starting a tab drag and not dropping it before the 5 seconds are up, should repro.

... and it does, still. I'll try and take a look.

Flags: needinfo?(gijskruitbosch+bugs)
Blocks: 1637238
Has Regression Range: --- → yes

The patch I currently have up in bug 1753861 fixes this, I think.

Depends on: 1753861
Flags: needinfo?(gijskruitbosch+bugs)

This now WFM, dragging tabs doesn't break anymore.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: