Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21743e0b7c | ||
|
|
c97a22776d | ||
|
|
c484dbcca5 | ||
|
|
54f15d7afe |
No files matched your search
+6
-3
@@ -4761,11 +4761,14 @@ GCRuntime::sweepFinalizationRegistries()
|
||||
if (!obj || !obj->is<FinalizationRegistryObject>()) {
|
||||
zone->finalizationRegistries.erase(zone->finalizationRegistries.begin() + i);
|
||||
continue;
|
||||
}
|
||||
|
||||
obj->as<FinalizationRegistryObject>().sweepAfterGC(rt);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
for (size_t i = 0; i < zone->finalizationRegistries.length(); i++) {
|
||||
JSObject* obj = zone->finalizationRegistries[i].unbarrieredGet();
|
||||
obj->as<FinalizationRegistryObject>().sweepAfterGC(rt);
|
||||
}
|
||||
zone->finalizationRegistries.clear();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,6 +77,13 @@
|
||||
<li><a href="about:license#apple">Apple License</a></li>
|
||||
<li><a href="about:license#apple-mozilla">Apple/Mozilla NPRuntime License</a></li>
|
||||
<li><a href="about:license#arm">ARM License</a></li>
|
||||
#ifdef MOZ_AV1
|
||||
#ifdef AV1_USE_AOM
|
||||
<li><a href="about:license#aom">AV1 codec license (AOM)</a></li>
|
||||
#else
|
||||
<li><a href="about:license#dav1d">AV1 codec license (Dav1d)</a></li>
|
||||
#endif
|
||||
#endif
|
||||
#ifdef MOZ_UPDATER
|
||||
<li><a href="about:license#bspatch">bspatch License</a></li>
|
||||
#endif
|
||||
@@ -2511,7 +2518,69 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
<hr>
|
||||
#ifdef MOZ_AV1
|
||||
#ifdef AV1_USE_AOM
|
||||
<h1><a id="aom"></a>AV1 codec license (AOM)</h1>
|
||||
<pre>
|
||||
Copyright (c) 2016, Alliance for Open Media. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
</pre>
|
||||
#else
|
||||
<h1><a id="dav1d"></a>AV1 codec license (Dav1d)</h1>
|
||||
<pre>
|
||||
Copyright © 2018-2025, VideoLAN and dav1d authors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
</pre>
|
||||
#endif
|
||||
|
||||
|
||||
<hr>
|
||||
#endif
|
||||
#ifdef MOZ_UPDATER
|
||||
<h1><a id="bspatch"></a>bspatch License</h1>
|
||||
|
||||
|
||||
@@ -5186,13 +5186,6 @@
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
|
||||
ReadINIStr $R8 $R7 "Install" "QuickLaunchShortcut"
|
||||
${If} $R8 == "false"
|
||||
StrCpy $AddQuickLaunchSC "0"
|
||||
${Else}
|
||||
StrCpy $AddQuickLaunchSC "1"
|
||||
${EndIf}
|
||||
|
||||
ReadINIStr $R8 $R7 "Install" "DesktopShortcut"
|
||||
${If} $R8 == "false"
|
||||
StrCpy $AddDesktopSC "0"
|
||||
@@ -5812,43 +5805,11 @@
|
||||
Push $0
|
||||
|
||||
!ifndef NONADMIN_ELEVATE
|
||||
${If} ${AtLeastWinVista}
|
||||
UAC::IsAdmin
|
||||
; If the user is not an admin already
|
||||
${If} "$0" != "1"
|
||||
UAC::SupportsUAC
|
||||
; If the system supports UAC
|
||||
${If} "$0" == "1"
|
||||
UAC::GetElevationType
|
||||
; If the user account has a split token
|
||||
${If} "$0" == "3"
|
||||
UAC::RunElevated
|
||||
UAC::Unload
|
||||
; Nothing besides UAC initialized so no need to call OnEndCommon
|
||||
Quit
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Else}
|
||||
${GetParameters} $R9
|
||||
${If} $R9 != ""
|
||||
ClearErrors
|
||||
${GetOptions} "$R9" "/UAC:" $0
|
||||
; If the command line contains /UAC then we need to initialize
|
||||
; the UAC plugin to use UAC::ExecCodeSegment to execute code in
|
||||
; the non-elevated context.
|
||||
${Unless} ${Errors}
|
||||
UAC::RunElevated
|
||||
${EndUnless}
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
!else
|
||||
${If} ${AtLeastWinVista}
|
||||
UAC::IsAdmin
|
||||
; If the user is not an admin already
|
||||
${If} "$0" != "1"
|
||||
UAC::SupportsUAC
|
||||
; If the system supports UAC require that the user elevate
|
||||
; If the system supports UAC
|
||||
${If} "$0" == "1"
|
||||
UAC::GetElevationType
|
||||
; If the user account has a split token
|
||||
@@ -5858,41 +5819,69 @@
|
||||
; Nothing besides UAC initialized so no need to call OnEndCommon
|
||||
Quit
|
||||
${EndIf}
|
||||
${Else}
|
||||
; Check if UAC is enabled. If the user has turned UAC on or off
|
||||
; without rebooting this value will be incorrect. This is an
|
||||
; edgecase that we have to live with when trying to allow
|
||||
; installing when the user doesn't have privileges such as a public
|
||||
; computer while trying to also achieve UAC elevation. When this
|
||||
; happens the user will be presented with the runas dialog if the
|
||||
; value is 1 and won't be presented with the UAC dialog when the
|
||||
; value is 0.
|
||||
ReadRegDWord $R9 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" "EnableLUA"
|
||||
${If} "$R9" == "1"
|
||||
; This will display the UAC version of the runas dialog which
|
||||
; requires a password for an existing user account.
|
||||
UAC::RunElevated
|
||||
${If} "$0" == "0" ; Was elevation successful
|
||||
UAC::Unload
|
||||
; Nothing besides UAC initialized so no need to call OnEndCommon
|
||||
Quit
|
||||
${EndIf}
|
||||
; Unload UAC since the elevation request was not successful and
|
||||
; install anyway.
|
||||
UAC::Unload
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Else}
|
||||
ClearErrors
|
||||
${${_MOZFUNC_UN}GetParameters} $R9
|
||||
${${_MOZFUNC_UN}GetOptions} "$R9" "/UAC:" $R9
|
||||
; If the command line contains /UAC then we need to initialize the UAC
|
||||
; plugin to use UAC::ExecCodeSegment to execute code in the
|
||||
; non-elevated context.
|
||||
${Unless} ${Errors}
|
||||
UAC::RunElevated
|
||||
${EndUnless}
|
||||
${GetParameters} $R9
|
||||
${If} $R9 != ""
|
||||
ClearErrors
|
||||
${GetOptions} "$R9" "/UAC:" $0
|
||||
; If the command line contains /UAC then we need to initialize
|
||||
; the UAC plugin to use UAC::ExecCodeSegment to execute code in
|
||||
; the non-elevated context.
|
||||
${Unless} ${Errors}
|
||||
UAC::RunElevated
|
||||
${EndUnless}
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
!else
|
||||
UAC::IsAdmin
|
||||
; If the user is not an admin already
|
||||
${If} "$0" != "1"
|
||||
UAC::SupportsUAC
|
||||
; If the system supports UAC require that the user elevate
|
||||
${If} "$0" == "1"
|
||||
UAC::GetElevationType
|
||||
; If the user account has a split token
|
||||
${If} "$0" == "3"
|
||||
UAC::RunElevated
|
||||
UAC::Unload
|
||||
; Nothing besides UAC initialized so no need to call OnEndCommon
|
||||
Quit
|
||||
${EndIf}
|
||||
${Else}
|
||||
; Check if UAC is enabled. If the user has turned UAC on or off
|
||||
; without rebooting this value will be incorrect. This is an
|
||||
; edgecase that we have to live with when trying to allow
|
||||
; installing when the user doesn't have privileges such as a public
|
||||
; computer while trying to also achieve UAC elevation. When this
|
||||
; happens the user will be presented with the runas dialog if the
|
||||
; value is 1 and won't be presented with the UAC dialog when the
|
||||
; value is 0.
|
||||
ReadRegDWord $R9 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" "EnableLUA"
|
||||
${If} "$R9" == "1"
|
||||
; This will display the UAC version of the runas dialog which
|
||||
; requires a password for an existing user account.
|
||||
UAC::RunElevated
|
||||
${If} "$0" == "0" ; Was elevation successful
|
||||
UAC::Unload
|
||||
; Nothing besides UAC initialized so no need to call OnEndCommon
|
||||
Quit
|
||||
${EndIf}
|
||||
; Unload UAC since the elevation request was not successful and
|
||||
; install anyway.
|
||||
UAC::Unload
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Else}
|
||||
ClearErrors
|
||||
${${_MOZFUNC_UN}GetParameters} $R9
|
||||
${${_MOZFUNC_UN}GetOptions} "$R9" "/UAC:" $R9
|
||||
; If the command line contains /UAC then we need to initialize the UAC
|
||||
; plugin to use UAC::ExecCodeSegment to execute code in the
|
||||
; non-elevated context.
|
||||
${Unless} ${Errors}
|
||||
UAC::RunElevated
|
||||
${EndUnless}
|
||||
${EndIf}
|
||||
!endif
|
||||
|
||||
@@ -5956,10 +5945,6 @@
|
||||
!define ${_MOZFUNC_UN}UnloadUAC "!insertmacro ${_MOZFUNC_UN}UnloadUACCall"
|
||||
|
||||
Function ${_MOZFUNC_UN}UnloadUAC
|
||||
${Unless} ${AtLeastWinVista}
|
||||
Return
|
||||
${EndUnless}
|
||||
|
||||
Push $R9
|
||||
|
||||
ClearErrors
|
||||
@@ -6307,7 +6292,6 @@
|
||||
*/
|
||||
!macro _LoggingShortcutsCommon
|
||||
!insertmacro LogDesktopShortcut
|
||||
!insertmacro LogQuickLaunchShortcut
|
||||
!insertmacro LogSMProgramsShortcut
|
||||
!macroend
|
||||
!define _LoggingShortcutsCommon "!insertmacro _LoggingShortcutsCommon"
|
||||
@@ -6329,9 +6313,9 @@
|
||||
|
||||
/**
|
||||
* Adds shortcut entries to the shortcuts log ini file. This macro is primarily
|
||||
* a helper used by the LogDesktopShortcut, LogQuickLaunchShortcut, and
|
||||
* LogSMProgramsShortcut macros but it can be used by other code if desired. If
|
||||
* the value already exists the the value is not written to the file.
|
||||
* a helper used by the LogDesktopShortcut and LogSMProgramsShortcut macros but
|
||||
* it can be used by other code if desired. If the value already exists the the
|
||||
* value is not written to the file.
|
||||
*
|
||||
* @param _SECTION_NAME
|
||||
* The section name to write to in the shortcut log ini file
|
||||
@@ -6424,38 +6408,6 @@
|
||||
!verbose pop
|
||||
!macroend
|
||||
|
||||
/**
|
||||
* Adds a QuickLaunch shortcut entry to the shortcuts log ini file.
|
||||
*
|
||||
* @param _FILE_NAME
|
||||
* The shortcut file name (e.g. shortcut.lnk)
|
||||
*/
|
||||
!macro LogQuickLaunchShortcut
|
||||
|
||||
!ifndef LogQuickLaunchShortcut
|
||||
!insertmacro LogShortcut
|
||||
|
||||
!verbose push
|
||||
!verbose ${_MOZFUNC_VERBOSE}
|
||||
!define LogQuickLaunchShortcut "!insertmacro LogQuickLaunchShortcutCall"
|
||||
|
||||
Function LogQuickLaunchShortcut
|
||||
Call LogShortcut
|
||||
FunctionEnd
|
||||
|
||||
!verbose pop
|
||||
!endif
|
||||
!macroend
|
||||
|
||||
!macro LogQuickLaunchShortcutCall _FILE_NAME
|
||||
!verbose push
|
||||
!verbose ${_MOZFUNC_VERBOSE}
|
||||
Push "QUICKLAUNCH"
|
||||
Push "${_FILE_NAME}"
|
||||
Call LogQuickLaunchShortcut
|
||||
!verbose pop
|
||||
!macroend
|
||||
|
||||
/**
|
||||
* Adds a Start Menu shortcut entry to the shortcuts log ini file.
|
||||
*
|
||||
@@ -6611,10 +6563,6 @@
|
||||
!define ${_MOZFUNC_UN}SetAppLSPCategories "!insertmacro ${_MOZFUNC_UN}SetAppLSPCategoriesCall"
|
||||
|
||||
Function ${_MOZFUNC_UN}SetAppLSPCategories
|
||||
${Unless} ${AtLeastWinVista}
|
||||
Return
|
||||
${EndUnless}
|
||||
|
||||
Exch $R9
|
||||
Push $R8
|
||||
Push $R7
|
||||
@@ -6724,8 +6672,7 @@
|
||||
|
||||
StrCpy $R5 "false"
|
||||
|
||||
${If} ${AtLeastWin7}
|
||||
${AndIf} ${FileExists} "$QUICKLAUNCH\User Pinned\TaskBar"
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\TaskBar"
|
||||
FindFirst $R8 $R7 "$QUICKLAUNCH\User Pinned\TaskBar\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\TaskBar\$R7"
|
||||
@@ -6804,8 +6751,7 @@
|
||||
|
||||
StrCpy $R5 "false"
|
||||
|
||||
${If} ${AtLeastWin7}
|
||||
${AndIf} ${FileExists} "$QUICKLAUNCH\User Pinned\StartMenu"
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\StartMenu"
|
||||
FindFirst $R8 $R7 "$QUICKLAUNCH\User Pinned\StartMenu\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\StartMenu\$R7"
|
||||
@@ -6876,8 +6822,7 @@
|
||||
|
||||
StrCpy $R9 0
|
||||
|
||||
${If} ${AtLeastWin7}
|
||||
${AndIf} ${FileExists} "$QUICKLAUNCH\User Pinned\TaskBar"
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\TaskBar"
|
||||
FindFirst $R8 $R7 "$QUICKLAUNCH\User Pinned\TaskBar\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\TaskBar\$R7"
|
||||
@@ -6937,8 +6882,7 @@
|
||||
|
||||
StrCpy $R9 0
|
||||
|
||||
${If} ${AtLeastWin7}
|
||||
${AndIf} ${FileExists} "$QUICKLAUNCH\User Pinned\StartMenu"
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\StartMenu"
|
||||
FindFirst $R8 $R7 "$QUICKLAUNCH\User Pinned\StartMenu\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$QUICKLAUNCH\User Pinned\StartMenu\$R7"
|
||||
@@ -7018,132 +6962,109 @@
|
||||
|
||||
StrCpy $R3 "false"
|
||||
|
||||
${If} ${AtLeastWin7}
|
||||
; installed shortcuts
|
||||
${${_MOZFUNC_UN}GetLongPath} "$INSTDIR\uninstall\${SHORTCUTS_LOG}" $R6
|
||||
${If} ${FileExists} "$R6"
|
||||
; Update the Start Menu shortcuts' App ID for this application
|
||||
StrCpy $R2 -1
|
||||
${Do}
|
||||
IntOp $R2 $R2 + 1 ; Increment the counter
|
||||
ClearErrors
|
||||
ReadINIStr $R5 "$R6" "STARTMENU" "Shortcut$R2"
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
|
||||
${If} ${FileExists} "$SMPROGRAMS\$R5"
|
||||
ShellLink::GetShortCutTarget "$SMPROGRAMS\$$R5"
|
||||
Pop $R4
|
||||
${GetLongPath} "$R4" $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$SMPROGRAMS\$R5" "$R8"
|
||||
Pop $R4
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
|
||||
; Update the Quick Launch shortcuts' App ID for this application
|
||||
StrCpy $R2 -1
|
||||
${Do}
|
||||
IntOp $R2 $R2 + 1 ; Increment the counter
|
||||
ClearErrors
|
||||
ReadINIStr $R5 "$R6" "QUICKLAUNCH" "Shortcut$R2"
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
|
||||
${If} ${FileExists} "$QUICKLAUNCH\$R5"
|
||||
ShellLink::GetShortCutTarget "$QUICKLAUNCH\$R5"
|
||||
Pop $R4
|
||||
${GetLongPath} "$R4" $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$QUICKLAUNCH\$R5" "$R8"
|
||||
Pop $R4
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
|
||||
; Update the Start Menu Programs shortcuts' App ID for this application
|
||||
; installed shortcuts
|
||||
${${_MOZFUNC_UN}GetLongPath} "$INSTDIR\uninstall\${SHORTCUTS_LOG}" $R6
|
||||
${If} ${FileExists} "$R6"
|
||||
; Update the Start Menu shortcuts' App ID for this application
|
||||
StrCpy $R2 -1
|
||||
${Do}
|
||||
IntOp $R2 $R2 + 1 ; Increment the counter
|
||||
ClearErrors
|
||||
ReadINIStr $R7 "$R6" "SMPROGRAMS" "RelativePathToDir"
|
||||
${Unless} ${Errors}
|
||||
${${_MOZFUNC_UN}GetLongPath} "$SMPROGRAMS\$R7" $R7
|
||||
${Unless} "$R7" == ""
|
||||
StrCpy $R2 -1
|
||||
${Do}
|
||||
IntOp $R2 $R2 + 1 ; Increment the counter
|
||||
ClearErrors
|
||||
ReadINIStr $R5 "$R6" "SMPROGRAMS" "Shortcut$R2"
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
ReadINIStr $R5 "$R6" "STARTMENU" "Shortcut$R2"
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
|
||||
${If} ${FileExists} "$R7\$R5"
|
||||
ShellLink::GetShortCutTarget "$R7\$R5"
|
||||
${If} ${FileExists} "$SMPROGRAMS\$R5"
|
||||
ShellLink::GetShortCutTarget "$SMPROGRAMS\$$R5"
|
||||
Pop $R4
|
||||
${GetLongPath} "$R4" $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$SMPROGRAMS\$R5" "$R8"
|
||||
Pop $R4
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
|
||||
; Update the Start Menu Programs shortcuts' App ID for this application
|
||||
ClearErrors
|
||||
ReadINIStr $R7 "$R6" "SMPROGRAMS" "RelativePathToDir"
|
||||
${Unless} ${Errors}
|
||||
${${_MOZFUNC_UN}GetLongPath} "$SMPROGRAMS\$R7" $R7
|
||||
${Unless} "$R7" == ""
|
||||
StrCpy $R2 -1
|
||||
${Do}
|
||||
IntOp $R2 $R2 + 1 ; Increment the counter
|
||||
ClearErrors
|
||||
ReadINIStr $R5 "$R6" "SMPROGRAMS" "Shortcut$R2"
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
|
||||
${If} ${FileExists} "$R7\$R5"
|
||||
ShellLink::GetShortCutTarget "$R7\$R5"
|
||||
Pop $R4
|
||||
${GetLongPath} "$R4" $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$R7\$R5" "$R8"
|
||||
Pop $R4
|
||||
${GetLongPath} "$R4" $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$R7\$R5" "$R8"
|
||||
Pop $R4
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
${EndUnless}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
${EndUnless}
|
||||
${EndIf}
|
||||
|
||||
StrCpy $R7 "$QUICKLAUNCH\User Pinned"
|
||||
StrCpy $R3 "false"
|
||||
|
||||
; $R9 = main application executable path
|
||||
; $R8 = appid
|
||||
; $R7 = user pinned path
|
||||
; $R6 = find handle
|
||||
; $R5 = found filename
|
||||
; $R4 = GetShortCutTarget result
|
||||
|
||||
; TaskBar links
|
||||
FindFirst $R6 $R5 "$R7\TaskBar\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$R7\TaskBar\$R5"
|
||||
ShellLink::GetShortCutTarget "$R7\TaskBar\$R5"
|
||||
Pop $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$R7\TaskBar\$R5" "$R8"
|
||||
Pop $R4 ; pop Set result off the stack
|
||||
StrCpy $R3 "true"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
ClearErrors
|
||||
FindNext $R6 $R5
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
FindClose $R6
|
||||
|
||||
; Start menu links
|
||||
FindFirst $R6 $R5 "$R7\StartMenu\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$R7\StartMenu\$R5"
|
||||
ShellLink::GetShortCutTarget "$R7\StartMenu\$R5"
|
||||
Pop $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$R7\StartMenu\$R5" "$R8"
|
||||
Pop $R4 ; pop Set result off the stack
|
||||
StrCpy $R3 "true"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
ClearErrors
|
||||
FindNext $R6 $R5
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
FindClose $R6
|
||||
${EndUnless}
|
||||
${EndIf}
|
||||
|
||||
StrCpy $R7 "$QUICKLAUNCH\User Pinned"
|
||||
StrCpy $R3 "false"
|
||||
|
||||
; $R9 = main application executable path
|
||||
; $R8 = appid
|
||||
; $R7 = user pinned path
|
||||
; $R6 = find handle
|
||||
; $R5 = found filename
|
||||
; $R4 = GetShortCutTarget result
|
||||
|
||||
; TaskBar links
|
||||
FindFirst $R6 $R5 "$R7\TaskBar\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$R7\TaskBar\$R5"
|
||||
ShellLink::GetShortCutTarget "$R7\TaskBar\$R5"
|
||||
Pop $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$R7\TaskBar\$R5" "$R8"
|
||||
Pop $R4 ; pop Set result off the stack
|
||||
StrCpy $R3 "true"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
ClearErrors
|
||||
FindNext $R6 $R5
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
FindClose $R6
|
||||
|
||||
; Start menu links
|
||||
FindFirst $R6 $R5 "$R7\StartMenu\*.lnk"
|
||||
${Do}
|
||||
${If} ${FileExists} "$R7\StartMenu\$R5"
|
||||
ShellLink::GetShortCutTarget "$R7\StartMenu\$R5"
|
||||
Pop $R4
|
||||
${If} "$R4" == "$R9" ; link path == install path
|
||||
ApplicationID::Set "$R7\StartMenu\$R5" "$R8"
|
||||
Pop $R4 ; pop Set result off the stack
|
||||
StrCpy $R3 "true"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
ClearErrors
|
||||
FindNext $R6 $R5
|
||||
${If} ${Errors}
|
||||
${ExitDo}
|
||||
${EndIf}
|
||||
${Loop}
|
||||
FindClose $R6
|
||||
|
||||
ClearErrors
|
||||
|
||||
StrCpy $R9 $R3
|
||||
@@ -7249,23 +7170,21 @@
|
||||
Exch $R8 ; stack: $R8, $R9 | $R8 = regpath
|
||||
Push $R7
|
||||
|
||||
${If} ${AtLeastWin7}
|
||||
${${_MOZFUNC_UN}GetLongPath} "$R9" $R9
|
||||
; Always create a new AppUserModelID and overwrite the existing one
|
||||
; for the current installation path.
|
||||
CityHash::GetCityHash64 "$R9"
|
||||
Pop $AppUserModelID
|
||||
${If} $AppUserModelID == "error"
|
||||
GoTo end
|
||||
${EndIf}
|
||||
${${_MOZFUNC_UN}GetLongPath} "$R9" $R9
|
||||
; Always create a new AppUserModelID and overwrite the existing one
|
||||
; for the current installation path.
|
||||
CityHash::GetCityHash64 "$R9"
|
||||
Pop $AppUserModelID
|
||||
${If} $AppUserModelID == "error"
|
||||
GoTo end
|
||||
${EndIf}
|
||||
ClearErrors
|
||||
WriteRegStr HKLM "$R8" "$R9" "$AppUserModelID"
|
||||
${If} ${Errors}
|
||||
ClearErrors
|
||||
WriteRegStr HKLM "$R8" "$R9" "$AppUserModelID"
|
||||
WriteRegStr HKCU "$R8" "$R9" "$AppUserModelID"
|
||||
${If} ${Errors}
|
||||
ClearErrors
|
||||
WriteRegStr HKCU "$R8" "$R9" "$AppUserModelID"
|
||||
${If} ${Errors}
|
||||
StrCpy $AppUserModelID "error"
|
||||
${EndIf}
|
||||
StrCpy $AppUserModelID "error"
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
|
||||
@@ -7351,15 +7270,12 @@
|
||||
StrCpy $ITaskbarList3 0
|
||||
; Don't create when running silently.
|
||||
${Unless} ${Silent}
|
||||
; This is only supported on Win 7 and above.
|
||||
${If} ${AtLeastWin7}
|
||||
System::Call "ole32::CoCreateInstance(g '${CLSID_ITaskbarList}', \
|
||||
i 0, \
|
||||
i ${CLSCTX_INPROC_SERVER}, \
|
||||
g '${IID_ITaskbarList3}', \
|
||||
*i .s)"
|
||||
Pop $ITaskbarList3
|
||||
${EndIf}
|
||||
System::Call "ole32::CoCreateInstance(g '${CLSID_ITaskbarList}', \
|
||||
i 0, \
|
||||
i ${CLSCTX_INPROC_SERVER}, \
|
||||
g '${IID_ITaskbarList3}', \
|
||||
*i .s)"
|
||||
Pop $ITaskbarList3
|
||||
${EndUnless}
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Reference in new issue
Block a user