Closed Bug 257237 Opened 20 years ago Closed 20 years ago

[FIXr]passwords not displayed in password manager (after show passwords)

Categories

(Core :: XUL, defect, P1)

x86
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla1.8beta1

People

(Reporter: ajschult784, Assigned: bzbarsky)

References

Details

(Keywords: regression)

Attachments

(1 file)

After opening the password manager and attempting to show the passwords, the columns are changed to Site / Username / Password, but the passwords are not actually displayed. If I cover up part of the window and then uncover it, the passwords show up in that part of the window. With the classic theme, hovering the "Close" button also fixes it, but that doesn't work in Modern. This regressed between linux trunk 2004080905 and 2004081006.
Possible fixes in that range that could be responsible: bug 230170, bug 69355 (unlikely). Chances are, it's the former. Can you try backing out that patch locally and seeing whether that helps? Or just adding a call to ProcessRestyles() right after the restyle event is posted in nsCSSFrameConstructor::AttributeChanged?
> Or just adding a call to ProcessRestyles() right after the restyle event is > posted in nsCSSFrameConstructor::AttributeChanged? that fixed it.
<sigh>. I'll look into this when I have a tree again. Any help in locating the exact attribute change responsible would be much appreciated...
OK, this is mine. The short of it is that nsTreeColFrame::AttributeChanged invalidates the tree for changes to the "hidden" attribute (as here). The problem is that the actual restyle (which changes the visibility and triggers the reflow) happens async; in particular, it happens after the invalidate. The problem, in short, is that changing an attribute on a node has to invalidate some other node's frame. I suppose I could keep track of this in the attr change data I post in the frame constructor (probably flag these exact two attributes with a boolean in the event I post for cases when the frame is a treecol frame and either call AttributeChanged() after I process the restyles or call some other API that I can add). But is there any way to make this happier? Shouldn't any reflow on the treecol frame cause an invalidate of the tree? Or are treecol frames not reflown? I don't see a Reflow() method on them.... The reason I think there should be a better way to do this is that it's possible to show the treecol frame without changing the "hidden" attribute (eg by setting the "visibility" property by some other CSS rule than the one in XUL.css). This is broken in the current code even without the patch to bug 230170.
Assignee: roc → bzbarsky
Component: Layout: View Rendering → XP Toolkit/Widgets: Trees
To be more precise, _someone_ is changing the mRect of the treecol frame. That's what should invalidate the tree, not magic attribute changes.
Also note that on nsIFrame SetRect/SetSize/etc are non-virtual, as is Invalidate, so I can't easily hook into them to find who changes the size of the treecol frame. Here's hoping Neil or Jan knows. If not, I guess I'll change nsIFrame and start experimenting...
Priority: -- → P1
Target Milestone: --- → mozilla1.8beta
Some more investigation shows that the DoLayout() method of the treecol is called, but that the Reflow()/DidReflow() methods are now. I could probably just hook into SetBounds() for this invalidation business, I guess... Patch coming up, hopefully.
Attached patch Proposed fix (deleted) — Splinter Review
Comment on attachment 160233 [details] [diff] [review] Proposed fix roc, if we plan to make SetBounds non-virtual, then we'll need some other way to notify XUL boxes that layout is done...
Attachment #160233 - Flags: superreview?(roc)
Attachment #160233 - Flags: review?(varga)
Summary: passwords not displayed in password manager (after show passwords) → [FIX]passwords not displayed in password manager (after show passwords)
Comment on attachment 160233 [details] [diff] [review] Proposed fix yes, this is more correct
Attachment #160233 - Flags: review?(varga) → review+
Attachment #160233 - Flags: superreview?(roc) → superreview+
Summary: [FIX]passwords not displayed in password manager (after show passwords) → [FIXr]passwords not displayed in password manager (after show passwords)
Fixed on trunk for 1.8a5.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Blocks: 230170
Component: XP Toolkit/Widgets: Trees → XUL
QA Contact: ian → xptoolkit.widgets
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: