Closed Bug 1602939 Opened 5 years ago Closed 5 years ago

"Delete Profile" dialog glitch

Categories

(Toolkit :: Startup and Profile System, defect)

73 Branch
Desktop
Windows 10
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla73
Tracking Status
firefox-esr68 --- unaffected
firefox71 --- disabled
firefox72 --- disabled
firefox73 --- verified

People

(Reporter: alice0775, Assigned: ntim)

References

(Regression)

Details

(Keywords: nightly-community, regression)

Attachments

(3 files, 2 obsolete files)

Attached image image.png

Reproducible: always

Steps To Reproduce:

  1. Start firefox.exe -p
  2. Try to delete an existing profile
    Click [Delete Profile] button

optionally
3. Click one of 3 button

Actual results:
Description and buttons overlap each other.
And the description covers button's clickable area.

Expected Results:
The dialog should be working properly.

Regression window:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=dfa7714e0543412adf6ee9e065069f9fe5d1b025&tochange=2d39de2be1ae9fa8063a19b459d8712fa90bc851

Flags: needinfo?(mats)
Assignee: nobody → ntim.bugs
Assignee: ntim.bugs → nobody
Attachment #9115039 - Attachment is obsolete: true
Attachment #9115039 - Attachment is obsolete: false
Attachment #9115039 - Attachment description: Bug 1602939 - Only apply XUL in CSS grid layout fix on certain items. → Bug 1602939 - Only apply XUL in CSS grid layout fix on certain items. [alternate approach]
Attachment #9115039 - Attachment description: Bug 1602939 - Only apply XUL in CSS grid layout fix on certain items. [alternate approach] → [alternate approach] Bug 1602939 - Only apply XUL in CSS grid layout fix on certain items.
Assignee: nobody → ntim.bugs

This avoids hitting both the XUL sizing code path and the CSS grid reflow code path which don't play well together

Depends on D56654

Alice0775, can you please check if this build fixes this bug and bug 1593060? Thanks!

I've checked locally on macOS, and both bugs seem fixed on my side, but I'm not sure about Windows or Linux.

Flags: needinfo?(alice0775)

(In reply to Tim Nguyen :ntim from comment #5)

Alice0775, can you please check if this build fixes this bug and bug 1593060? Thanks!

I've checked locally on macOS, and both bugs seem fixed on my side, but I'm not sure about Windows or Linux.

The try build Windows10 and Ubuntu18.04:
this bug is fixed. However, bug 1593060 is reproduced again.

Flags: needinfo?(alice0775)

Thanks Alice0775!

Emilio, Mats, the only solution I can think of at this point would be the alternate approach. Alternatively, we could back out all 3 patches (both XUL grid removals and dholbert’s patch), but we’d need to fix this anyway, so this would just save a bit of time for an extra cycle.

I unfortunately don’t know enough about the layout code to debug this further. Would you be OK with something like the alternative patch or do you have a bit of time to look into this?

Flags: needinfo?(emilio)

So the frame tree for the grid item looks something like this:

Box(vbox) (0,0,0,0) [state=0002000080801602] <
  Block(description) (0,0,81624,3420) [state=0002000000d00000] <
    line (0,0,36243,1140) <
      Text(0)"Deleting a profile will remove the profile from th" (0,0,36243,1140)
    >
    line (0,1140,81624,1140) <
      Text(0)"You may also choose to delete the profile data fil" (0,1140,81624,1140)
    >
    line (0,2280,17066,1140) <
      Text(0)"Would you like to delete the profile data files?" (0,2280,17066,1140)
    >
  >
>

Is there some way we could get rid of the Box frame there? Setting display:contents on it perhaps?
Or could we de-XULify the prompt content in general so that it uses a regular display:block instead?
Alternatively, this seems like a pretty insignificant dialog for the product, could we just hardcode a min height on the relevant element for now?

FTR, at the time the Grid container asks for the intrinsic block-size for the above item, GetXULPrefSize returns 24px (with an availISize=600.00px) which is clearly wrong. The reason is that nsBoxFrame::GetXULPrefSize:
https://searchfox.org/mozilla-central/rev/690e903ef689a4eca335b96bd903580394864a1c/layout/xul/nsBoxFrame.cpp#547
has a width, but no height, so it ends up using the Min size instead (enforced by the BoundsCheck call).
(Also, the XUL sizes are cached so we should probably invalidate that cache before/after each GetXULPrefSize call here for good measure. That doesn't make a difference in this case though.)

Flags: needinfo?(mats) → needinfo?(ntim.bugs)
Attachment #9115047 - Attachment is obsolete: true
Attachment #9115048 - Attachment is obsolete: true

(I don't think I can provide more input, I agree with Mats)

Flags: needinfo?(emilio)

Hi Mats, thanks for looking into it!
I've changed the grid item to use display: block, which does fix this specific issue. But is it possible to know what other cases were regressed by bug 1593060 other than testing ? There are quite a few XUL in CSS grid items now and I wonder if there are any others that are affected by a similar issue.

Flags: needinfo?(ntim.bugs) → needinfo?(mats)

We could add an assertion perhaps, but it might be hard to detect which ones will give the "wrong" result.
We should probably just warn about all of them (bug 1600544) and then try to remove them...
Easier said than done, I know ;-)

Flags: needinfo?(mats)
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73
See Also: → 1606617
Flags: qe-verify+

Managed to reproduce the issue using Fx73.0a1 buildID: 20191210212905.
The issue is verified fixed on the latest Fx73.0RC build as well as the latest Fx74.0a1 build on windows 10 and double checked on ubuntu and macOS to make sure nothing broke there.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: