Closed
Bug 36830
Opened 25 years ago
Closed 25 years ago
Single singon not being notified on form submission
Categories
(Core :: DOM: Core & HTML, defect, P3)
Core
DOM: Core & HTML
Tracking
()
VERIFIED
FIXED
M16
People
(Reporter: morse, Assigned: pollmann)
References
()
Details
(Whiteboard: Fix in hand)
Go to http://people.netscape.com/morse/password.htm, fill in form, and press
submit button.
Expected result: single signon dialog appears asking if you want to save this
login.
Actual result: no single signon dialog appears.
Here is some more information about the problem:
1. I set a breakpoint at the entry point to wallet/single-signon code when a
form submission occurs -- specificall the Notify routine in
extensions/wallet/src/nsWalletServices.cpp. That breakpoint is never reached.
2. I ran an older version of the browser, set the same breakpoint, and it
indeed was hit. Below is the stack trace I obtained when the breakpoint was
hit.
3. The caller at the time that the breakpoint was hit was the following lines in
nsFormFrame.cpp:
for (theEnum->First(); theEnum->IsDone() != NS_OK; theEnum->Next()) {
result = theEnum->CurrentItem(getter_AddRefs(inst));
if (NS_SUCCEEDED(result) && inst) {
nsCOMPtr<nsIFormSubmitObserver> formSubmitObserver =
do_QueryInterface(inst, &result);
if (NS_SUCCEEDED(result) && formSubmitObserver) {
formSubmitObserver->Notify(mContent);
}
--> }
}
4. Using the latest version, I set a breakpoint in the above code of
nsFormFrame.cpp and discovered that the call to theEnum->CurrentItem (in the
second line of code) is returning an error.
***********
STACK TRACE FROM PREVIOUS VERSION OF BROWSER
WalletlibService::Notify(nsWalletlibService * const 0x01fdb358, nsIContent *
0x02b93f4c) line 180
nsFormFrame::OnSubmit(nsFormFrame * const 0x021ace70, nsIPresContext *
0x02e4f480, nsIFrame * 0x021cebf8) line 712
nsHTMLButtonControlFrame::MouseClicked(nsIPresContext * 0x02e4f480) line 339
nsGfxButtonControlFrame::HandleEvent(nsGfxButtonControlFrame * const 0x021cebf8,
nsIPresContext * 0x02e4f480, nsGUIEvent * 0x0012f68c, nsEventStatus *
0x0012f9d0) line 646
nsEventStateManager::CheckForAndDispatchClick(nsEventStateManager * const
0x02b88470, nsIPresContext * 0x02e4f480, nsMouseEvent * 0x0012fac4,
nsEventStatus * 0x0012f9d0) line 1558 + 30 bytes
nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x02b88470,
nsIPresContext * 0x02e4f480, nsGUIEvent * 0x0012fac4, nsIFrame * 0x021cebf8,
nsEventStatus * 0x0012f9d0, nsIView * 0x02b91590) line 714 + 24 bytes
PresShell::HandleEvent(PresShell * const 0x027ccc14, nsIView * 0x02b91590,
nsGUIEvent * 0x0012fac4, nsEventStatus * 0x0012f9d0, int & 1) line 3462 + 43
bytes
nsView::HandleEvent(nsView * const 0x02b91590, nsGUIEvent * 0x0012fac4, unsigned
int 8, nsEventStatus * 0x0012f9d0, int & 1) line 811
nsView::HandleEvent(nsView * const 0x02b90120, nsGUIEvent * 0x0012fac4, unsigned
int 8, nsEventStatus * 0x0012f9d0, int & 1) line 784
nsView::HandleEvent(nsView * const 0x027cd720, nsGUIEvent * 0x0012fac4, unsigned
int 28, nsEventStatus * 0x0012f9d0, int & 1) line 784
nsViewManager2::DispatchEvent(nsViewManager2 * const 0x027cd900, nsGUIEvent *
0x0012fac4, nsEventStatus * 0x0012f9d0) line 1354
HandleEvent(nsGUIEvent * 0x0012fac4) line 69
nsWindow::DispatchEvent(nsWindow * const 0x02b91ba4, nsGUIEvent * 0x0012fac4,
nsEventStatus & nsEventStatus_eIgnore) line 498 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fac4) line 519
nsWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line 3137 +
21 bytes
ChildWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line
3344
nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 5308851, long *
0x0012fd94) line 2322 + 24 bytes
nsWindow::WindowProc(HWND__ * 0x06bb06be, unsigned int 514, unsigned int 0, long
5308851) line 676 + 27 bytes
USER32! 77e71268()
NS_NewScriptHTMLFormControlList(nsIScriptContext *, nsISupports *, nsISupports
*, void * *) line 332 + 29 bytes
Assignee | ||
Comment 1•25 years ago
|
||
Hi Steve, sorry about this, it is completely my doing. I have a fix in my tree,
which partially backs out Friday's change (bug 33203). I will check this in
shortly!
Thanks for the great bug report, this made fixing the bug a snap!
The problem was that I attempted to streamline the form submit observer
interface by making it inherit from nsIObserver and thus remove the need to
implement both nsIObserver and nsIFormSubmitObserver. In the method you noticed
returning a failure code (theEnum->CurrentItem), it checks to ensure you
implement nsIObserver before returning success.
I will revert this, and require that all people implementing
nsIFormSubmitObserver also implement nsIObserver. Sorry again for any
inconvenience this may have caused!
Severity: normal → critical
Status: NEW → ASSIGNED
OS: Windows NT → All
Hardware: PC → All
Whiteboard: Fix in hand
Target Milestone: --- → M16
Assignee | ||
Comment 2•25 years ago
|
||
Fix checked in. To verify, go to Steve's testcase at:
http://people.netscape.com/morse/password.htm
Submit the form by clicking the button labeled ENTER.
You should see a dialog pop up asking if you would like to save your user name
and password. Thanks!
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Comment 3•25 years ago
|
||
Clearing nsbeta2 nomination. Bug fixed.
Marking VERIFED FIXED on:
- MacOS9 2000-04-26-08-M16 Commercial Build
- Linux6 2000-04-26-08-M16 Commercial Build
- Win98 2000-26-11-M16 Mozilla Build
Status: RESOLVED → VERIFIED
Keywords: nsbeta2
Updated•6 years ago
|
Component: HTML: Form Submission → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•