Closed Bug 70380 Opened 25 years ago Closed 25 years ago

nsISingleSignonPrompt needs to be pushed down a level, making it private.

Categories

(Core Graveyard :: Embedding: APIs, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9

People

(Reporter: jud, Assigned: ccarlen)

References

()

Details

Attachments

(2 files)

see URL for more info (the notes on nsIPrompt also talk about nsISingleSignOnPrompt).
Blocks: 70229
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9
targeting 0.8.1
Target Milestone: mozilla0.9 → mozilla0.8.1
-> mozilla0.9
Target Milestone: mozilla0.8.1 → mozilla0.9
Blocks: 70379
Sorry about the non-contextual diffs. Good news is that MacCVS can now generate diffs for a whole tree, bad news is that it does let you pick diff options so you get normal diffs. Contextual diffs will follow. The patch splits the username and password prompting methods of nsIPrompt into a new iface nsIAuthPrompt. Those methods (prompt, promptPassword, and promptUsernameAndPassword) which remain on nsIPrompt are specialized for password UI as opposed to password persistence. With this specialization, single-signon can now call the password prompting methods on nsIPrompt instead of the dreaded UniversalDialog. The only prompt iface which the embeddor will ever see is nsIPrompt. They will never need to be concerned with password persistence. The persistence layer is hooked up to their nsIPrompt under the covers in the webbrowser's docshell tree owner. Jud, Rick - Can you review and super-review?
What the patch does: (1) The prompting methods for which it was possible to specify a URL domain and whether and how to save the password have been moved into a new iface - nsIAuthPrompt. (2) Since nsIPrompt now handles only UI instead of UI and persistence, it's more capable. The prompting methods which are now left on nsIPrompt allow for names and passwords to be in/out params and to have an optional checkbox. This means UniversalDialog does not have to be used for what should be simple dialogs. (3) nsISingleSignonPrompt is completely from embeddors. It gets hooked up to their nsIPrompt automatically from the docshell tree owner which is below the level they can see. (4) A new component (which is pysically part of the embedComponents DLL) is introduced for the case of nsISingleSignonPrompt not being available (installed). It bypasses persistence by mapping nsIAuthPrompt methods to nsIPrompt.
Whoops, the line above which says: > (3) nsISingleSignonPrompt is completely from embeddors. should say: (3) nsISingleSignonPrompt is completely *hidden* from embeddors.
Conrad, thanks for copying me on this bug. Prior to today I wasn't aware of it and thought that the nsiPrompt work would have to be done as part of bug 70382.
r=valeski on the 03/26/01 15:07 patch, after the full check for password pointer validity in nsBrowserWindow::PromptUsernamePassword() is made. We'll need to cover any commercial instances as well before checking in though.
sr=rpotts... Looks good - it sure is a big patch :-) -- rick
Conrad, be forewarned that I just checked in my patch for bug 70382. As a result, you'll need to update the following files mentioned in your patch: nsIWalletService.idl nsWalletService.cpp singsign.cpp
Steve, next time I merge my changes with the tip (and certainly will before checking in), that'll be covered along with any other changes.
Fix checked in.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Correction: Changing QA contact for the Embed API bugs to David Epstein.
QA Contact: mdunn → depstein
reassign qa contact to Dharma.
QA Contact: depstein → dsirnapalli
-- verified.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: