Closed Bug 99526 Opened 24 years ago Closed 24 years ago

Installer for simple MAPI

Categories

(MailNews Core :: Simple MAPI, defect, P1)

x86
Windows 2000
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: tiantian, Assigned: ssu0262)

References

Details

(Whiteboard: PDT+)

Attachments

(4 files, 5 obsolete files)

This is to track the development for the installer for simple MAPI.
Blocks: 91702
Severity: normal → critical
Keywords: nsenterprise+
Priority: -- → P1
over to syd. cc:ing myself.
Assignee: ssu → syd
changing qa contact as per bug 95122 since this a related bug.
QA Contact: sheelar → trix
We will be able to do the MS COM registration part from preferences when the user checks/uncheck the checkbox for making mozilla as the default mail client.
Rajiv, could you put more description in the bug. We talked about several issues at the meeting. Adding dveditz to the cc.
The installer needs to install/un-install MAPI support dlls and register / un-register the MAPI support MS COM components and Mozilla executable as an MS COM component into the Windows registry. However the registration of MS COM components can be registered / un-registered when the user selects / un-select mozilla as default mail client. This will be done at two places .. when the user does this from the prefs dialog and when the user does so from the mail integration dialog. Thus Install will just copy the mozilla support dlls which will be part of the other Mozilla/mailnews module. During registration the preferences code will call the DllRegisterServer/DllUnregister function exposed by the mapiProxy Dll to register the MAPI support MS COM components as well as the RegisterServer/UnregisterServer function (needs to be exposed) of the msgMapi.dll to register Mozilla as MS COM component. Besides this the prefs will modify the MAPI registry key in Windows registry to update it with Mozilla's mapi32.dll. It will also back up the already defined key value (which would be pointing to the mapi32.dll of any other messaging application) into HKLM/Software/Mozilla/Desktop registry key, similiar to what is done during the the HTTP preference setting as mention by Sean Su in the meeting. This will be used by Un-Install to set the key back to the backed up value (the value before mozilla was selected as default mail client). Ideally Uninstall should also un-register the MAPI support MS COM component and Mozilla executable as an MS COM component (or call the Prefs code to do so) besides removing the Mapi support Dlls.
Please also add/create any appropriate windows registry keys that provide information on whether the mapi32.dll was replaced or the new method of referencing the correct mapi32.dlll using windows registry keys has been used. Even if we only end up supporting the new method, it would still be a good idea to set some type of flag in case we decide to support the older method that requires the replacement of the system mapi32.dll. As for unregistering the MS COM components, the installer just need to know what the names of these files are. The uninstaller already has the capability to handle this situation.
nsbranch+
Keywords: nsbranch+
is anyone working on this?
I've been in the loop of this bug. There's really nothing to do until we hear from Srilatha on what the registry keys are for the uninstaller to use in order to restore the previous default mail handler.
I'll take this. I'll check with Sean and Srilatha to see what can be done to get this in for emojo.
Assignee: syd → curt
The following two strings will be saved in the registry HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail HKEY_LOCAL_MACHINE\\Software\\Clients\\Mail\\"DefaultMailClient"\\protocols\\mai lto\\shell\\open\\command In the above string "DefaultMailClient" is the value of the first string. and they are stored in the key HKEY_LOCAL_MACHINE\\Software\\Mozilla\\Desktop
HI, Curt: Please could you let me know about the status of this bug before 10am on 9/18. I need the status for PDT meeting at 12 noon. Many thanks.
Whiteboard: PDT
Actually, I'll be working on this. It most likely will not be in tomorrow's build because I just got all the necessary info today. This fix/feature does not impact UI code. Is it really urgent to have this in by tonight? Please let me know.
Assignee: curt → ssu
Added PDT status, per PDT meeting today. Once we got all r and sr, will change it into PDT+. All r ans sr, please try your best to give comments within 24 hours. If no reply, then our assumption will be within 24 hours. If you cannot do it within 24 hours, please attend the PDT meeting at 12 noon on 9/18 at the pit of bldg 21 to explain why. Many thanks. ======================= Subject: Urgent: your review and super review comments. Date: Mon, 17 Sep 2001 13:18:36 -0700 From: Tiantian Kong <tiantiankong8@netscape.com> Reply-To: tiantiankong8@netscape.com To: sspitzer@netscape.com, dveditz@netscape.com, Doug Turner <dougt@netscape.com>, law@netscape.com, alecf@netscape.com, Rajiv Dayal <rdayal@netscape.com> CC: Elaine King <elaineking@netscape.com> Hi: You got this mail because you are the r or sr of features in simple MAPI. Pathes for these has been up on the bug. On behalf on PDT, I'm requesting that you provide immediate feeback. If you cannot be back to us today, please reply by email, and cc Elaine King, as to when you'll be able to get back to us. This is an urgent request, please drop everything else that you are doing. Thx. Elaine will be calling each of you as well. Rajiv, r, Pref, 95122 Seth, sr, Pref, 95122 Dan Veditz, r log on, log off, 95117/95121 Doug Turner, sr, log on, log off, 95117/95121 Bill Law, r xpfe/bootstrap for log on, off Alec, sr, xpfe/bootstrap for log on, off Tiantian =========================
Sean, we're trying to reach feature complete on this so we can begin testing and shake everything out. The urgency is not about the UI deadline. The sooner we're done coding this beast, the more likely we can get all the bugs fixed before it's too late.
Attached patch patch #1 (moz tree) (obsolete) — Splinter Review
Status: NEW → ASSIGNED
Whiteboard: PDT → PDT; have patches; seeking r=, sr=
Marking PDT+ for the branch, provisional on getting the revies completed.
Whiteboard: PDT; have patches; seeking r=, sr= → PDT+; have patches; seeking r=, sr=
Comment on attachment 49861 [details] Complete rdi.c file. Might be easier to read than the rdi.c part of the dif above. > ZeroMemory(szOutSubKeyPath, dwOutSubKeyPathSize); > /* search for the first '\' char */ > while((*ptr != 0) && > (*ptr != '\0') && > (*ptr != '\\')) > ++ptr; 0 and '\0' are the same thing so that's a redundant check. Unless that first test was supposed to be for 'ptr' rather than '*ptr', but if you're worried about the input arg being null you should test that once, not in the loop. More idiomatic would be while ( *ptr && *ptr != '\\' ) rather than comparing against null directly. But why not just use strchr() for this rather than roll your own? > if((*ptr == '\0') || > (*ptr == '\\')) How could it be anything else after the while-loop above? Maybe you just want to assert the above and print "Hit by Gamma rays!" if it fails. The code will work fine, so r=dveditz whether you fix the above or not. I'm sure you've tested the above so safer/faster to just use that for the branch, and consider the comments on the trunk in the future.
Attachment #49861 - Flags: review+
Comment on attachment 49860 [details] [diff] [review] patch #1 (moz tree) looks good, r=dveditz
Attachment #49860 - Flags: review+
Comment on attachment 49859 [details] [diff] [review] patch #1 (ns tree) r=dveditz
Attachment #49859 - Flags: review+
Comment on attachment 49861 [details] Complete rdi.c file. Might be easier to read than the rdi.c part of the dif above. sr=mscott
Attachment #49861 - Flags: superreview+
Comment on attachment 49860 [details] [diff] [review] patch #1 (moz tree) sr=mscott
Attachment #49860 - Flags: superreview+
Comment on attachment 49859 [details] [diff] [review] patch #1 (ns tree) sr=mscott
Attachment #49859 - Flags: superreview+
Due to a bug I found in the way the browser code restores the previous saved setting, a new moz tree patch is coming up. The new patch tries to detect if garbage chars have been saved in any of the HKLM\Software\Mozilla\Desktop vars. If so, it will not restore it. If no garbage chars have been found, the it performs its normal purpose.
Attachment #49860 - Attachment is obsolete: true
Attachment #49861 - Attachment is obsolete: true
Attached file New complete rdi.c file. (obsolete) —
Could we try to fix the browser bug as well? What "good" data is in these keys -- aren't they potentially path or file names? If so I have concerns about your algorithm which might reject valid multibyte pathnames. Does isprint() evenhandle single-byte chars > x7F ok?
Browser bug is being addressed by Bill Law. I talked to Dan off line already. We're going to do deal with the garbage chars only if the key path contains ddeexec (since that's where the problem only happens with), in order to minimize any collateral damage that may arise. New patch coming up.
Attachment #50039 - Attachment is obsolete: true
Attachment #50042 - Attachment is obsolete: true
Attachment #50043 - Attachment is obsolete: true
Comment on attachment 50142 [details] [diff] [review] patch #3 (moz tree) deals with garbage chars. >+ /* Due to a bug in the browser code that saves the previous HKEY >+ * value it's trying to replace as garbage chars, we need to try >+ * to detect it. If found, do not restore it. This bug only >+ * happens for the saved ddeexec keys. */ >+ if(DdeexecCheck(szSubKey, szValue)) >+ { >+ /* Restore the previous saved setting here */ The name of this function and the way this is written makes it sound like you're only restoring previous DDEExec key settings. Not worth changing if there are no other problems, but if you're ever in this code again reversing the sense of the function would make the code more maintainable if (!CorruptDdeexecKey()) // Restore setting or something like that. r=dveditz
Attachment #50142 - Flags: review+
rs=mscott after Dan's good review.
patches checked in to both branch and trunk. Since this code affects the uninstallation/restoration of the settings for mozilla/netscape 6 being the default browser, we need to still test to make sure we didn't break restoring the settings to the previous default browser. This new code should now also deal with restoring the previous default mail app at uninstall time.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Whiteboard: PDT+; have patches; seeking r=, sr= → PDT+
Component: Composition → Simple MAPI
Blocks: 102570
No longer blocks: 102570
verified on 2001-10-12-05-0.9.4
Status: RESOLVED → VERIFIED
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: