Updates:
        Status: Started
        Cc: [email protected]

Comment #2 on issue 5471 by [email protected]: Chromium: Browser crash @  
PasswordFormManager::IsNewLogin()
http://code.google.com/p/chromium/issues/detail?id=5471

Problem stems from new infobar code. The "pending_save_manager_" used to  
only be non-
null between the time the user hits 'Submit' on a form and we either 1)  
show an
infobar, or 2) update an existing login. Now, instead, the member only gets  
reset on
InfoBarClosed(), so we have this unfortunate series of events:

--ExpireInfoBar, removes delegate from infobar_delegates_
--WebContents::DidStopLoading, causes PasswordManager to call AddInfoBar  
because it
has a pending_save_manager_ (and AddInfoBar succeeds because there is  
no "equal"
delegate already in the set)
--Animation terminates, which calls InfoBarClosed(), and resets the
pending_save_manager_
--Now we have an infobar and a null pending_save_manager_, so clicking  
Accept/Cancel
will deref 0 and epically fail!

One solution is to override InfoBarDelegate::ShouldExpire and reset
pending_save_manager_ if super.ShouldExpire returns true (and return that  
value), but
that seems hacky. Another option is to make sure we only AddInfoBar once  
ever for a
given pending_save_manager_. I'll try this out.



--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Chromium-bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/chromium-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to