Closed Bug 308700 Opened 19 years ago Closed 19 years ago

Application hang on install of security certificate

Categories

(Camino Graveyard :: Security, defect, P1)

PowerPC
macOS
defect

Tracking

(Not tracked)

RESOLVED FIXED
Camino1.0

People

(Reporter: edsbugs, Assigned: sfraser_bugs)

References

()

Details

(Keywords: fixed1.8, hang)

Attachments

(1 file)

User-Agent:       Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050914 Camino/1.0a1
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050914 Camino/1.0a1

If you follow the instructions below.  A dialog pops up saying "Generating key
pair for certificate".  This dialog stays on the screen and doesn't go away. 
After 15 minutes I tried to cancel the dialog using the "Cancel" button, but the
dialog stayed on the screen.

Had to "Force Quit" Camino to be able to use it again.

This works in  FF 1.5Beta1 and in Safari 412+

Reproducible: Always

Steps to Reproduce:
1. Go to service.sap.com
2. Click on "Benefit from single sign on" in the bottom right corner.
3. Click on the "apply for SAP passport button".
4. Enter your username and password (please e-mail me for this when you need it)
5. Re-Confirm your password
6. click on "Apply for SAP Passport.

Actual Results:  
The key pair dialog stayed on the screen and couldn't be cancelled

Expected Results:  
Installed a certificate into the certificate manager
Severity: normal → critical
Keywords: hang
I'll investigate.
Assignee: dveditz → sfraser_bugs
Priority: -- → P1
Target Milestone: --- → Camino1.0
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Two problems here:
1. The PLEvent that handled the proxied Observer notification that the keygen
   finished is not propagating, for some reason. This works on cacert.org, so
   I don't know why it doesn't work here.

2. The cancel button in the dialog is not wired up  :)
Flags: camino1.0+
(In reply to comment #2)
> Two problems here:
> 1. The PLEvent that handled the proxied Observer notification that the keygen
>    finished is not propagating, for some reason. This works on cacert.org, so
>    I don't know why it doesn't work here.

Tricky one. What I think is happening is that the entire cert generation process
is already happening on a PLEvent callback (it's a OnLinkClickEvent()), so the
PLEvent that notifies of keygen completion is delayed until we're off that
stack. We might have to have a nested event loop here, or some manual processing.

> 2. The cancel button in the dialog is not wired up  :)

Easily fixed.
Attached patch PatchSplinter Review
The PLEvent fix is to use nsIEventQueueService::PushThreadEventQueue to push a
new event queue while running the modal dialog, so that the PLEvent for the
proxied "Observe" callback comes on that new queue, so that we don't care if
we're already in the midst of processing PLEvents higher up the stack.
Fixed on trunk and branch.
Status: ASSIGNED → RESOLVED
Closed: 19 years ago
Keywords: fixed1.8
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.