Browse Source

finish port of bug 1821963

Bill Gianopoulos 1 year ago
parent
commit
ce490f976b
1 changed files with 111 additions and 1 deletions
  1. 111 1
      comm-central/patches/WIP-9999999-port1821963-suite-bustage.patch

+ 111 - 1
comm-central/patches/WIP-9999999-port1821963-suite-bustage.patch

@@ -1,6 +1,6 @@
 # HG changeset patch
 # User Bill Gianopoulos <wgianopoulos@gmail.com>
-# Date 1685133913 0
+# Date 1685208346 0
 Bug 9999999 - Port bug 1821963 to suite.
 Bug 1821963 - [CTW] Remove COM proxy infrastructure
 
@@ -96,3 +96,113 @@ diff --git a/suite/installer/windows/nsis/installer.nsi b/suite/installer/window
    ${LogUninstall} "File: \components\xpti.dat"
    ${LogUninstall} "File: \active-update.xml"
    ${LogUninstall} "File: \install.log"
+diff --git a/suite/installer/windows/nsis/shared.nsh b/suite/installer/windows/nsis/shared.nsh
+--- a/suite/installer/windows/nsis/shared.nsh
++++ b/suite/installer/windows/nsis/shared.nsh
+@@ -73,18 +73,16 @@
+   ${FixClassKeys}
+ 
+   ; Remove files that may be left behind by the application in the
+   ; VirtualStore directory.
+   ${CleanVirtualStore}
+ 
+   ${RemoveDeprecatedFiles}
+ 
+-  ; Register AccessibleHandler.dll with COM (this writes to HKLM)
+-  ${RegisterAccessibleHandler}
+ !macroend
+ !define PostUpdate "!insertmacro PostUpdate"
+ 
+ !macro SetAsDefaultAppUser
+   SetShellVarContext current
+ 
+   ; It is only possible to set this installation of the application as the
+   ; handler for the various types if those types were added to the respective
+@@ -755,21 +753,16 @@
+   ${IsHandlerForInstallDir} "nntp" $R9
+   ${If} "$R9" == "true"
+     ${AddHandlerValues} "SOFTWARE\Classes\nntp" "$2" "$8,0" "" "" ""
+   ${EndIf}
+ !macroend
+ !define UpdateProtocolHandlers "!insertmacro UpdateProtocolHandlers"
+ !insertmacro RegCleanAppHandler
+ 
+-!macro RegisterAccessibleHandler
+-  ${RegisterDLL} "$INSTDIR\AccessibleHandler.dll"
+-!macroend
+-!define RegisterAccessibleHandler "!insertmacro RegisterAccessibleHandler"
+-
+ ; Removes various registry entries for reasons noted below (does not use SHCTX).
+ !macro RemoveDeprecatedKeys
+   StrCpy $0 "SOFTWARE\Classes"
+   ; Remove support for launching gopher urls from the shell during install or
+   ; update if the DefaultIcon is from seamonkey.exe.
+   ${RegCleanAppHandler} "gopher"
+ 
+   ; Remove support for launching chrome urls from the shell during install or
+@@ -791,16 +784,21 @@
+   ${If} "$2" == "SeamonkeyURL"
+     DeleteRegKey HKCU "$0"
+   ${EndIf}
+ 
+   ; Remove the SupportUTF8 registry value as it causes MAPI issues on some locales
+   ; with non-ASCII characters in file names.
+   StrCpy $0 "Software\Clients\Mail\${ClientsRegName}"
+   DeleteRegValue HKLM $0 "SupportUTF8"
++
++  ; Unregister deprecated AccessibleHandler.dll.
++  ${If} ${FileExists} "$INSTDIR\AccessibleHandler.dll"
++    ${UnregisterDLL} "$INSTDIR\AccessibleHandler.dll"
++  ${EndIf}
+ !macroend
+ !define RemoveDeprecatedKeys "!insertmacro RemoveDeprecatedKeys"
+ 
+ ; Removes various directories and files for reasons noted below.
+ !macro RemoveDeprecatedFiles
+   ; Remove the Java Console extension (bug 1165156)
+   FindFirst $0 $1 "$INSTDIR\extensions\{CAFEEFAC-00*-0000-*-ABCDEFFEDCBA}"
+   loopDirs:
+@@ -1011,19 +1009,17 @@
+ ; required message is displayed. All files must be located in the $INSTDIR
+ ; directory.
+ !macro PushFilesToCheck
+   ; The first string to be pushed onto the stack MUST be "end" to indicate
+   ; that there are no more files to check in $INSTDIR and the last string
+   ; should be ${FileMainEXE} so if it is in use the CheckForFilesInUse macro
+   ; returns after the first check.
+   Push "end"
+-  Push "AccessibleHandler.dll"
+   Push "AccessibleMarshal.dll"
+-  Push "IA2Marshal.dll"
+   Push "freebl3.dll"
+   Push "nssckbi.dll"
+   Push "nspr4.dll"
+   Push "nssdbm3.dll"
+   Push "sqlite3.dll"
+   Push "mozsqlite3.dll"
+   Push "xpcom.dll"
+   Push "crashreporter.exe"
+diff --git a/suite/installer/windows/nsis/uninstaller.nsi b/suite/installer/windows/nsis/uninstaller.nsi
+--- a/suite/installer/windows/nsis/uninstaller.nsi
++++ b/suite/installer/windows/nsis/uninstaller.nsi
+@@ -352,19 +352,17 @@ Section "Uninstall"
+   ${un.CleanVirtualStore}
+ 
+   ; Only unregister the dll if the registration points to this installation
+   ReadRegStr $R1 HKCR "CLSID\{0D68D6D0-D93D-4D08-A30D-F00DD1F45B24}\InProcServer32" ""
+   ${If} "$INSTDIR\AccessibleMarshal.dll" == "$R1"
+     ${UnregisterDLL} "$INSTDIR\AccessibleMarshal.dll"
+   ${EndIf}
+ 
+-  ; Only unregister the dll if the registration points to this installation
+-  ReadRegStr $R1 HKCR "CLSID\${AccessibleHandlerCLSID}\InProcHandler32" ""
+-  ${If} "$INSTDIR\AccessibleHandler.dll" == "$R1"
++  ${If} ${FileExists} "$INSTDIR\AccessibleHandler.dll"
+     ${UnregisterDLL} "$INSTDIR\AccessibleHandler.dll"
+   ${EndIf}
+ 
+   ; Parse the uninstall log to unregister dll's and remove all installed
+   ; files / directories this install is responsible for.
+   ${un.ParseUninstallLog}
+ 
+   ; Remove the uninstall directory that we control