Browse Source

sync with 2.53

Frank-Rainer Grahl 2 weeks ago
parent
commit
5fa65edfe4

+ 96 - 0
frg/work-js/comm-release/patches/9999999-handler-25320.patch

@@ -0,0 +1,96 @@
+# HG changeset patch
+# User Frank-Rainer Grahl <frgrahl@gmx.net>
+# Date 1727713945 -7200
+# Parent  b12d9beb551c25fcc88a8e96d7fea1eb00ae0420
+Bug 9999999 - Register as handler for media types. r=IanN a=IanN
+
+Register as default svg and webp handler. Register other media types if no
+handler exists.
+
+For some basic understanding see:
+- Bug 1197191 "Add .pdf and media file types to OpenWithProgid".
+- Bug 1340568 "Not possible to select Firefox as default browser".
+- Bug 1570477 "Register as a webp handler".
+
+We are not using a hash id because there are no different SeaMonkey
+installation types (Nightly, dev, plonk and so on).
+
+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
+@@ -286,16 +286,26 @@
+     ${If} "$AppUserModelID" != ""
+       ApplicationID::Set "$QUICKLAUNCH\${BrandFullName}.lnk" "$AppUserModelID"
+     ${EndIf}
+     ShellLink::SetShortCutWorkingDirectory "$QUICKLAUNCH\${BrandFullName}.lnk" "$INSTDIR"
+   ${EndUnless}
+ !macroend
+ !define ShowShortcuts "!insertmacro ShowShortcuts"
+ 
++!macro AddAssociationIfNoneExist FILE_TYPE KEY
++  ClearErrors
++  EnumRegKey $7 HKCR "${FILE_TYPE}" 0
++  ${If} ${Errors}
++    WriteRegStr SHCTX "SOFTWARE\Classes\${FILE_TYPE}"  "" ${KEY}
++  ${EndIf}
++  WriteRegStr SHCTX "SOFTWARE\Classes\${FILE_TYPE}\OpenWithProgids" ${KEY} ""
++!macroend
++!define AddAssociationIfNoneExist "!insertmacro AddAssociationIfNoneExist"
++
+ !macro SetHandlersBrowser
+   ${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
+ 
+   StrCpy $0 "SOFTWARE\Classes"
+   StrCpy $1 "$\"$8$\" -requestPending -osint -url $\"%1$\""
+   StrCpy $2 "$\"$8$\" -url $\"%1$\""
+   StrCpy $3 "$\"%1$\",,0,0,,,,"
+ 
+@@ -334,21 +344,23 @@
+      WriteRegStr SHCTX "$0\.xht" "" "SeaMonkeyHTML"
+   ${EndIf}
+ 
+   ReadRegStr $6 HKCR ".xhtml" ""
+   ${If} "$6" != "SeaMonkeyHTML"
+     WriteRegStr SHCTX "$0\.xhtml" "" "SeaMonkeyHTML"
+   ${EndIf}
+ 
+-  ; Only add webm if it's not present
+-  ${CheckIfRegistryKeyExists} "$0" ".webm" $7
+-  ${If} $7 == "false"
+-    WriteRegStr SHCTX "$0\.webm"  "" "SeaMonkeyHTML"
+-  ${EndIf}
++  ${AddAssociationIfNoneExist} ".oga"  "SeaMonkeyHTML"
++  ${AddAssociationIfNoneExist} ".ogg"  "SeaMonkeyHTML"
++  ${AddAssociationIfNoneExist} ".ogv"  "SeaMonkeyHTML"
++  ${AddAssociationIfNoneExist} ".svg"  "SeaMonkeyHTML"
++  ${AddAssociationIfNoneExist} ".webm" "SeaMonkeyHTML"
++  ${AddAssociationIfNoneExist} ".webp" "SeaMonkeyHTML"
++
+ !macroend
+ !define SetHandlersBrowser "!insertmacro SetHandlersBrowser"
+ 
+ !macro SetHandlersMail
+   ${GetLongPath} "$INSTDIR\${FileMainEXE}" $8
+ 
+   StrCpy $0 "SOFTWARE\Classes"
+   StrCpy $1 "$\"$8$\" $\"%1$\""
+@@ -421,16 +433,19 @@
+   WriteRegStr HKLM "$0\Capabilities" "ApplicationName" "${BrandShortName}"
+ 
+   WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".htm"   "SeaMonkeyHTML"
+   WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".html"  "SeaMonkeyHTML"
+   WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".shtml" "SeaMonkeyHTML"
+   WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".xht"   "SeaMonkeyHTML"
+   WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".xhtml" "SeaMonkeyHTML"
+ 
++  WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".svg"   "SeaMonkeyHTML"
++  WriteRegStr HKLM "$0\Capabilities\FileAssociations" ".webp"  "SeaMonkeyHTML"
++
+   WriteRegStr HKLM "$0\Capabilities\StartMenu" "StartMenuInternet" "$R9"
+ 
+   WriteRegStr HKLM "$0\Capabilities\URLAssociations" "ftp"    "SeaMonkeyURL"
+   WriteRegStr HKLM "$0\Capabilities\URLAssociations" "http"   "SeaMonkeyURL"
+   WriteRegStr HKLM "$0\Capabilities\URLAssociations" "https"  "SeaMonkeyURL"
+ 
+   ; Vista Registered Application
+   WriteRegStr HKLM "Software\RegisteredApplications" "${AppRegName}" "$0\Capabilities"

+ 3 - 0
frg/work-js/comm-release/patches/series

@@ -2197,6 +2197,9 @@ TOP-NOBUG-tempchainfix-25320.patch
 1658682-1-81a1.patch
 1658682-2-81a1.patch
 1661940-82a1.patch
+9999999-handler-25320.patch
+
+
 
 253-release-top.patch
 9999999-disablemaint-comm-25318.patch

+ 1 - 0
frg/work-js/comm-release/patches/series-test

@@ -2197,3 +2197,4 @@ TOP-NOBUG-tempchainfix-25320.patch
 1658682-1-81a1.patch
 1658682-2-81a1.patch
 1661940-82a1.patch
+9999999-handler-25320.patch

+ 84 - 0
frg/work-js/mozilla-release/patches/1479945-1no2-63a1.patch

@@ -0,0 +1,84 @@
+# HG changeset patch
+# User Kris Maglione <maglione.k@gmail.com>
+# Date 1533079891 25200
+# Node ID bd4c3fa90356094539c4db6e57e5305a54972ad3
+# Parent  fbbe1975be4aa3150bfea6bd158619077af7b182
+Bug 1479945: Part 1 - Remove nominal support for binary-component directive. r=froydnj
+
+MozReview-Commit-ID: LKF3A7EEY4J
+
+diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
+--- a/xpcom/components/ManifestParser.cpp
++++ b/xpcom/components/ManifestParser.cpp
+@@ -71,20 +71,16 @@ struct ManifestDirective
+ };
+ static const ManifestDirective kParsingTable[] = {
+   // clang-format off
+   {
+     "manifest",         1, false, false, true, true, false,
+     &nsComponentManagerImpl::ManifestManifest, nullptr,
+   },
+   {
+-    "binary-component", 1, true, true, false, false, false,
+-    &nsComponentManagerImpl::ManifestBinaryComponent, nullptr,
+-  },
+-  {
+     "interfaces",       1, false, true, false, false, false,
+     &nsComponentManagerImpl::ManifestXPT, nullptr,
+   },
+   {
+     "component",        2, false, true, false, false, false,
+     &nsComponentManagerImpl::ManifestComponent, nullptr,
+   },
+   {
+diff --git a/xpcom/components/nsComponentManager.cpp b/xpcom/components/nsComponentManager.cpp
+--- a/xpcom/components/nsComponentManager.cpp
++++ b/xpcom/components/nsComponentManager.cpp
+@@ -635,25 +635,16 @@ void
+ nsComponentManagerImpl::ManifestManifest(ManifestProcessingContext& aCx,
+                                          int aLineNo, char* const* aArgv)
+ {
+   char* file = aArgv[0];
+   FileLocation f(aCx.mFile, file);
+   RegisterManifest(aCx.mType, f, aCx.mChromeOnly);
+ }
+ 
+-void
+-nsComponentManagerImpl::ManifestBinaryComponent(ManifestProcessingContext& aCx,
+-                                                int aLineNo,
+-                                                char* const* aArgv)
+-{
+-  LogMessageWithContext(aCx.mFile, aLineNo,
+-                        "Binary XPCOM components are no longer supported.");
+-}
+-
+ static void
+ DoRegisterXPT(FileLocation& aFile)
+ {
+   uint32_t len;
+   FileLocation::Data data;
+   UniquePtr<char[]> buf;
+   nsresult rv = aFile.GetData(data);
+   if (NS_SUCCEEDED(rv)) {
+diff --git a/xpcom/components/nsComponentManager.h b/xpcom/components/nsComponentManager.h
+--- a/xpcom/components/nsComponentManager.h
++++ b/xpcom/components/nsComponentManager.h
+@@ -253,18 +253,16 @@ public:
+ 
+     NSLocationType mType;
+     mozilla::FileLocation mFile;
+     bool mChromeOnly;
+   };
+ 
+   void ManifestManifest(ManifestProcessingContext& aCx, int aLineNo,
+                         char* const* aArgv);
+-  void ManifestBinaryComponent(ManifestProcessingContext& aCx, int aLineNo,
+-                               char* const* aArgv);
+   void ManifestXPT(ManifestProcessingContext& aCx, int aLineNo,
+                    char* const* aArgv);
+   void ManifestComponent(ManifestProcessingContext& aCx, int aLineNo,
+                          char* const* aArgv);
+   void ManifestContract(ManifestProcessingContext& aCx, int aLineNo,
+                         char* const* aArgv);
+   void ManifestCategory(ManifestProcessingContext& aCx, int aLineNo,
+                         char* const* aArgv);

+ 135 - 0
frg/work-js/mozilla-release/patches/1479945-3no4-63a1.patch

@@ -0,0 +1,135 @@
+# HG changeset patch
+# User Kris Maglione <maglione.k@gmail.com>
+# Date 1533080307 25200
+# Node ID 018b21c272eef2eb6d4b13a5543cb7a8738b9334
+# Parent  7fe93b8927c687b569cdc95da70a7e103a216828
+Bug 1479945: Part 3 - Remove the unused 'apponly' directive flag. r=froydnj
+
+This is unused now that binary component support has been removed.
+
+MozReview-Commit-ID: KHTsF4sSoZX
+
+diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp
+--- a/xpcom/components/ManifestParser.cpp
++++ b/xpcom/components/ManifestParser.cpp
+@@ -41,19 +41,16 @@
+ 
+ using namespace mozilla;
+ 
+ struct ManifestDirective
+ {
+   const char* directive;
+   int argc;
+ 
+-  // Binary components are only allowed for APP locations.
+-  bool apponly;
+-
+   // Some directives should only be delivered for APP or EXTENSION locations.
+   bool componentonly;
+ 
+   bool ischrome;
+ 
+   bool allowbootstrap;
+ 
+   // The contentaccessible flags only apply to content/resource directives.
+@@ -67,63 +64,63 @@ struct ManifestDirective
+   void (nsChromeRegistry::*regfunc)(
+     nsChromeRegistry::ManifestProcessingContext& aCx,
+     int aLineNo, char* const* aArgv, int aFlags);
+   bool isContract;
+ };
+ static const ManifestDirective kParsingTable[] = {
+   // clang-format off
+   {
+-    "manifest",         1, false, false, true, true, false,
++    "manifest",         1, false, true, true, false,
+     &nsComponentManagerImpl::ManifestManifest, nullptr,
+   },
+   {
+-    "interfaces",       1, false, true, false, false, false,
++    "interfaces",       1, true, false, false, false,
+     &nsComponentManagerImpl::ManifestXPT, nullptr,
+   },
+   {
+-    "component",        2, false, true, false, false, false,
++    "component",        2, true, false, false, false,
+     &nsComponentManagerImpl::ManifestComponent, nullptr,
+   },
+   {
+-    "contract",         2, false, true, false, false, false,
++    "contract",         2, true, false, false, false,
+     &nsComponentManagerImpl::ManifestContract, nullptr,
+   },
+   {
+-    "category",         3, false, true, false, false, false,
++    "category",         3, true, false, false, false,
+     &nsComponentManagerImpl::ManifestCategory, nullptr,
+   },
+   {
+-    "content",          2, false, true, true, true,  true,
++    "content",          2, true, true, true,  true,
+     nullptr, &nsChromeRegistry::ManifestContent,
+   },
+   {
+-    "locale",           3, false, true, true, true, false,
++    "locale",           3, true, true, true, false,
+     nullptr, &nsChromeRegistry::ManifestLocale,
+   },
+   {
+-    "skin",             3, false, false, true, true, false,
++    "skin",             3, false, true, true, false,
+     nullptr, &nsChromeRegistry::ManifestSkin,
+   },
+   {
+-    "overlay",          2, false, true, true, false, false,
++    "overlay",          2, true, true, false, false,
+     nullptr, &nsChromeRegistry::ManifestOverlay,
+   },
+   {
+-    "style",            2, false, false, true, false, false,
++    "style",            2, false, true, false, false,
+     nullptr, &nsChromeRegistry::ManifestStyle,
+   },
+   {
+     // NB: note that while skin manifests can use this, they are only allowed
+     // to use it for chrome://../skin/ URLs
+-    "override",         2, false, false, true, true, false,
++    "override",         2, false, true, true, false,
+     nullptr, &nsChromeRegistry::ManifestOverride,
+   },
+   {
+-    "resource",         2, false, true, true, true, true,
++    "resource",         2, true, true, true, true,
+     nullptr, &nsChromeRegistry::ManifestResource,
+   }
+   // clang-format on
+ };
+ 
+ static const char kWhitespace[] = "\t ";
+ 
+ static bool
+@@ -596,24 +593,16 @@ ParseManifest(NSLocationType aType, File
+ 
+     if (!directive->allowbootstrap && NS_BOOTSTRAPPED_LOCATION == aType) {
+       LogMessageWithContext(aFile, line,
+                             "Bootstrapped manifest not allowed to use '%s' directive.",
+                             token);
+       continue;
+     }
+ 
+-#ifndef MOZ_BINARY_EXTENSIONS
+-    if (directive->apponly && NS_APP_LOCATION != aType) {
+-      LogMessageWithContext(aFile, line,
+-                            "Only application manifests may use the '%s' directive.", token);
+-      continue;
+-    }
+-#endif
+-
+     if (directive->componentonly && NS_SKIN_LOCATION == aType) {
+       LogMessageWithContext(aFile, line,
+                             "Skin manifest not allowed to use '%s' directive.",
+                             token);
+       continue;
+     }
+ 
+     NS_ASSERTION(directive->argc < 4, "Need to reset argv array length");

+ 238 - 0
frg/work-js/mozilla-release/patches/1900355-129a1.patch

@@ -0,0 +1,238 @@
+# HG changeset patch
+# User serge-sans-paille <sguelton@mozilla.com>
+# Date 1718028432 0
+# Node ID a7eca55087fc6e9714370170f94e72ef70f195d2
+# Parent  4aaf466d4d489e61affd19433f097d36bb79055c
+Bug 1900355 - Remove unused defines, variables and substitutions set in old-configure r=glandium
+
+These are leftovers from bug 1423461, bug 680792, bug 944935, bug 1479945 and bug 1255813.
+
+Differential Revision: https://phabricator.services.mozilla.com/D212618
+
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -1168,17 +1168,16 @@ if test -n "${CPU_ARCH}" -a -n "${TARGET
+ fi
+ 
+ dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
+ dnl features that Windows actually does support.
+ 
+ if test -n "$SKIP_COMPILER_CHECKS"; then
+    dnl Windows has malloc.h
+    AC_DEFINE(MALLOC_H, [<malloc.h>])
+-   AC_DEFINE(HAVE_FORCEINLINE)
+    AC_DEFINE(HAVE_LOCALECONV)
+ fi # SKIP_COMPILER_CHECKS
+ 
+ dnl Mozilla specific options
+ dnl ========================================================
+ dnl The macros used for command line options
+ dnl are defined in build/autoconf/altoptions.m4.
+ 
+@@ -1507,17 +1506,16 @@ AC_SUBST_LIST(HOST_OPTIMIZE_FLAGS)
+ AC_SUBST(HOST_BIN_SUFFIX)
+ 
+ AC_SUBST(TARGET_XPCOM_ABI)
+ 
+ AC_SUBST_LIST(DSO_CFLAGS)
+ AC_SUBST_LIST(DSO_PIC_CFLAGS)
+ AC_SUBST(DSO_LDOPTS)
+ AC_SUBST(BIN_SUFFIX)
+-AC_SUBST(USE_N32)
+ AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
+ AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
+ 
+ AC_CHECK_FUNCS(posix_fadvise posix_fallocate)
+ 
+ dnl Set various defines and substitutions
+ dnl ========================================================
+ 
+diff --git a/js/src/old-configure.in.1900355.later b/js/src/old-configure.in.1900355.later
+new file mode 100644
+--- /dev/null
++++ b/js/src/old-configure.in.1900355.later
+@@ -0,0 +1,26 @@
++--- old-configure.in
+++++ old-configure.in
++@@ -469,23 +469,16 @@ AC_LANG_C
++ 
++ fi # ! SKIP_COMPILER_CHECKS
++ 
++ TARGET_XPCOM_ABI=
++ if test -n "${TARGET_CPU}" -a -n "${TARGET_COMPILER_ABI}"; then
++     TARGET_XPCOM_ABI="${TARGET_CPU}-${TARGET_COMPILER_ABI}"
++ fi
++ 
++-dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
++-dnl features that Windows actually does support.
++-
++-if test -n "$SKIP_COMPILER_CHECKS"; then
++-fi # SKIP_COMPILER_CHECKS
++-
++ dnl Mozilla specific options
++ dnl ========================================================
++ dnl The macros used for command line options
++ dnl are defined in build/autoconf/altoptions.m4.
++ 
++ dnl ========================================================
++ dnl = Enable code optimization. ON by default.
++ dnl ========================================================
++
+diff --git a/old-configure.in b/old-configure.in
+--- a/old-configure.in
++++ b/old-configure.in
+@@ -254,17 +254,16 @@ esac
+ if test -n "$_WIN32_MSVC"; then
+     SKIP_PATH_CHECKS=1
+     SKIP_COMPILER_CHECKS=1
+     SKIP_LIBRARY_CHECKS=1
+ 
+     # Since we're skipping compiler and library checks, hard-code
+     # some facts here.
+     AC_DEFINE(HAVE_IO_H)
+-    AC_DEFINE(HAVE_ISATTY)
+ fi
+ 
+ fi # COMPILE_ENVIRONMENT
+ 
+ AC_SUBST(GNU_CC)
+ AC_SUBST(GNU_CXX)
+ 
+ AC_SUBST_LIST(STL_FLAGS)
+@@ -1435,17 +1434,16 @@ if test -n "${CPU_ARCH}" -a -n "${TARGET
+ fi
+ 
+ dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
+ dnl features that Windows actually does support.
+ 
+ if test -n "$SKIP_COMPILER_CHECKS"; then
+    dnl Windows has malloc.h
+    AC_DEFINE(MALLOC_H, [<malloc.h>])
+-   AC_DEFINE(HAVE_FORCEINLINE)
+    AC_DEFINE(HAVE_LOCALECONV)
+ fi # SKIP_COMPILER_CHECKS
+ 
+ dnl Mozilla specific options
+ dnl ========================================================
+ dnl The macros used for command line options
+ dnl are defined in build/autoconf/altoptions.m4.
+ 
+@@ -1592,17 +1590,16 @@ MOZ_UNIVERSALCHARDET=1
+ MOZ_XUL=1
+ MOZ_ZIPWRITER=1
+ MOZ_NO_SMART_CARDS=
+ MOZ_USE_NATIVE_POPUP_WINDOWS=
+ MOZ_EXCLUDE_HYPHENATION_DICTIONARIES=
+ MOZ_CONTENT_SANDBOX=
+ MOZ_GMP_SANDBOX=
+ MOZ_SANDBOX=1
+-MOZ_BINARY_EXTENSIONS=
+ MOZ_DEVTOOLS=server
+ 
+ case "$target_os" in
+     mingw*)
+         NS_ENABLE_TSF=1
+         AC_DEFINE(NS_ENABLE_TSF)
+         ;;
+ esac
+@@ -2663,22 +2660,16 @@ AC_SUBST(MOZ_UPDATER)
+ 
+ AC_SUBST(MOZ_ANDROID_APPLICATION_CLASS)
+ AC_SUBST(MOZ_ANDROID_BROWSER_INTENT_CLASS)
+ AC_SUBST(MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
+ AC_SUBST(INCREMENTAL_LINKER)
+ 
+ AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
+ 
+-AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
+-
+-if test -n "$MOZ_BINARY_EXTENSIONS"; then
+-  AC_DEFINE(MOZ_BINARY_EXTENSIONS)
+-fi
+-
+ AC_SUBST(MOZ_ADDON_SIGNING)
+ if test "$MOZ_ADDON_SIGNING" = 1; then
+   AC_DEFINE(MOZ_ADDON_SIGNING)
+ fi
+ AC_SUBST(MOZ_REQUIRE_SIGNING)
+ if test "$MOZ_REQUIRE_SIGNING" = 1; then
+   AC_DEFINE(MOZ_REQUIRE_SIGNING)
+ fi
+@@ -2898,30 +2889,30 @@ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSSE3)
+ AC_SUBST(HAVE_TOOLCHAIN_SUPPORT_MSSE4_1)
+ AC_SUBST(HAVE_X86_AVX2)
+ AC_SUBST(HAVE_ALTIVEC)
+ 
+ AC_SUBST_LIST(DSO_CFLAGS)
+ AC_SUBST_LIST(DSO_PIC_CFLAGS)
+ AC_SUBST(DSO_LDOPTS)
+ AC_SUBST(BIN_SUFFIX)
+-AC_SUBST(USE_N32)
+ AC_SUBST(NS_ENABLE_TSF)
+ AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
+ AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
+ 
+ AC_SUBST(MOZ_DEVTOOLS)
+ 
+ AC_SUBST(MOZ_PACKAGE_JSSHELL)
+ 
+ AC_SUBST(DMG_TOOL)
+ 
+ dnl Host JavaScript runtime, if any, to use during cross compiles.
+ AC_SUBST(JS_BINARY)
+ 
++dnl Used specifically by Thunderbird and SeaMonkey
+ AC_SUBST(NSS_EXTRA_SYMBOLS_FILE)
+ 
+ if test -n "$COMPILE_ENVIRONMENT"; then
+ AC_CHECK_FUNCS(posix_fadvise posix_fallocate)
+ 
+ dnl Check for missing components
+ if test "$MOZ_X11"; then
+     dnl ====================================================
+diff --git a/old-configure.in.1900355.later b/old-configure.in.1900355.later
+new file mode 100644
+--- /dev/null
++++ b/old-configure.in.1900355.later
+@@ -0,0 +1,40 @@
++--- old-configure.in
+++++ old-configure.in
++@@ -495,38 +494,29 @@ AC_LANG_C
++ fi # ! SKIP_COMPILER_CHECKS
++ 
++ TARGET_XPCOM_ABI=
++ if test -n "${TARGET_CPU}" -a -n "${TARGET_COMPILER_ABI}"; then
++     TARGET_XPCOM_ABI="${TARGET_CPU}-${TARGET_COMPILER_ABI}"
++     AC_DEFINE_UNQUOTED(TARGET_XPCOM_ABI, ["${TARGET_XPCOM_ABI}"])
++ fi
++ 
++-dnl We can't run TRY_COMPILE tests on Windows, so hard-code some
++-dnl features that Windows actually does support.
++-
++-if test -n "$SKIP_COMPILER_CHECKS"; then
++-fi # SKIP_COMPILER_CHECKS
++-
++ dnl Mozilla specific options
++ dnl ========================================================
++ dnl The macros used for command line options
++ dnl are defined in build/autoconf/altoptions.m4.
++ 
++ dnl ========================================================
++ dnl =
++ dnl = Application
++ dnl =
++ dnl ========================================================
++ 
++ MOZ_BRANDING_DIRECTORY=
++ MOZ_OFFICIAL_BRANDING=
++-MOZ_NO_SMART_CARDS=
++ MOZ_DEVTOOLS=server
++ 
++ dnl ========================================================
++ dnl = Trademarked Branding
++ dnl ========================================================
++ MOZ_ARG_ENABLE_BOOL(official-branding,
++ [  --enable-official-branding
++                           Enable Official mozilla.org Branding
++

+ 31 - 0
frg/work-js/mozilla-release/patches/1907053-131a1.patch

@@ -0,0 +1,31 @@
+# HG changeset patch
+# User serge-sans-paille <sguelton@mozilla.com>
+# Date 1723967410 0
+# Node ID c035bc6b00e596417331aff9b334fde22e4de996
+# Parent  e97b910ffc40fcc42a50f4a3700b8558a9d87946
+Bug 1907053 - Obsolete MOZ_POST_PROGRAM_COMMAND from old-configure r=glandium
+
+Differential Revision: https://phabricator.services.mozilla.com/D216162
+
+diff --git a/js/src/old-configure.in b/js/src/old-configure.in
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -1441,18 +1441,16 @@ AC_SUBST_LIST(MOZ_DEBUG_LDFLAGS)
+ AC_SUBST(WARNINGS_AS_ERRORS)
+ AC_SUBST_LIST(WARNINGS_CFLAGS)
+ AC_SUBST(LIBICONV)
+ 
+ AC_SUBST(INCREMENTAL_LINKER)
+ 
+ AC_SUBST_LIST(MOZ_FIX_LINK_PATHS)
+ 
+-AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
+-
+ AC_SUBST(MOZ_APP_DISPLAYNAME)
+ AC_SUBST(MOZ_APP_VERSION)
+ 
+ AC_SUBST(MOZ_PKG_SPECIAL)
+ 
+ dnl Echo the CFLAGS to remove extra whitespace.
+ CFLAGS=`echo \
+ 	$_COMPILATION_CFLAGS \

+ 352 - 0
frg/work-js/mozilla-release/patches/9999999-removebinary-25320.patch

@@ -0,0 +1,352 @@
+# HG changeset patch
+# User Frank-Rainer Grahl <frgrahl@gmx.net>
+# Date 1727650331 -7200
+# Parent  86173d21f2d52d8636bfe5aaf94ac0e38f3e7f53
+Bug 99999999 - Remove defunct binary manifest remains. r=IanN a=IanN
+SeaMonkey release branch only.
+
+diff --git a/python/mozbuild/mozpack/chrome/manifest.py b/python/mozbuild/mozpack/chrome/manifest.py
+--- a/python/mozbuild/mozpack/chrome/manifest.py
++++ b/python/mozbuild/mozpack/chrome/manifest.py
+@@ -251,24 +251,16 @@ class ManifestResource(ManifestEntry):
+         u = urlparse(self.target)
+         if u.scheme and u.scheme != 'jar':
+             return ManifestEntry.rebase(self, base)
+         clone = ManifestEntry.rebase(self, base)
+         clone.target = mozpath.rebase(self.base, base, self.target)
+         return clone
+ 
+ 
+-class ManifestBinaryComponent(ManifestEntryWithRelPath):
+-    '''
+-    Class for 'binary-component' entries.
+-        binary-component some/path/to/a/component.dll
+-    '''
+-    type = 'binary-component'
+-
+-
+ class ManifestComponent(ManifestEntryWithRelPath):
+     '''
+     Class for 'component' entries.
+         component {b2bba4df-057d-41ea-b6b1-94a10a8ede68} foo.js
+     '''
+     type = 'component'
+ 
+     def __init__(self, base, cid, file, *flags):
+diff --git a/python/mozbuild/mozpack/packager/__init__.py b/python/mozbuild/mozpack/packager/__init__.py
+--- a/python/mozbuild/mozpack/packager/__init__.py
++++ b/python/mozbuild/mozpack/packager/__init__.py
+@@ -8,17 +8,16 @@ import codecs
+ from collections import deque
+ import json
+ import os
+ import re
+ import six
+ from mozpack.errors import errors
+ from mozpack.chrome.manifest import (
+     Manifest,
+-    ManifestBinaryComponent,
+     ManifestChrome,
+     ManifestInterfaces,
+     is_manifest,
+     parse_manifest,
+ )
+ import mozpack.path as mozpath
+ from mozbuild.preprocessor import Preprocessor
+ 
+@@ -316,22 +315,16 @@ class SimplePackager(object):
+             # ManifestResources need to be given after ManifestChrome, so just
+             # put all ManifestChrome in a separate queue to make them first.
+             if isinstance(e, ManifestChrome):
+                 # e.move(e.base) just returns a clone of the entry.
+                 self._chrome_queue.append(self.formatter.add_manifest,
+                                           e.move(e.base))
+             elif not isinstance(e, (Manifest, ManifestInterfaces)):
+                 self._queue.append(self.formatter.add_manifest, e.move(e.base))
+-            # If a binary component is added to an addon, prevent the addon
+-            # from being packed.
+-            if isinstance(e, ManifestBinaryComponent):
+-                addon = mozpath.basedir(e.base, self._addons)
+-                if addon:
+-                    self._addons[addon] = 'unpacked'
+             if isinstance(e, Manifest):
+                 if e.flags:
+                     errors.fatal('Flags are not supported on ' +
+                                  '"manifest" entries')
+                 self._included_manifests[e.path] = path
+ 
+     def get_bases(self, addons=True):
+         '''
+diff --git a/python/mozbuild/mozpack/packager/formats.py b/python/mozbuild/mozpack/packager/formats.py
+--- a/python/mozbuild/mozpack/packager/formats.py
++++ b/python/mozbuild/mozpack/packager/formats.py
+@@ -3,17 +3,16 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ 
+ from __future__ import absolute_import, print_function, unicode_literals
+ 
+ from mozpack.chrome.manifest import (
+     Manifest,
+     ManifestInterfaces,
+     ManifestChrome,
+-    ManifestBinaryComponent,
+     ManifestResource,
+     ManifestMultiContent,
+ )
+ from mozpack.errors import errors
+ from six.moves.urllib.parse import urlparse
+ import mozpack.path as mozpath
+ from mozpack.files import (
+     ManifestFile,
+@@ -304,19 +303,17 @@ class OmniJarSubFormatter(PiecemealForma
+     def _get_base(self, path):
+         base = self._omnijar_name if self.is_resource(path) else ''
+         # Only add the omnijar file if something ends up in it.
+         if base and not self.copier.contains(base):
+             self.copier.add(base, self._sub_formatter[base].copier)
+         return base, path
+ 
+     def add_manifest(self, entry):
+-        base = ''
+-        if not isinstance(entry, ManifestBinaryComponent):
+-            base = self._omnijar_name
++        base = self._omnijar_name
+         formatter = self._sub_formatter[base]
+         return formatter.add_manifest(entry)
+ 
+     def is_resource(self, path):
+         '''
+         Return whether the given path corresponds to a resource to be put in an
+         omnijar archive.
+         '''
+diff --git a/python/mozbuild/mozpack/test/test_chrome_manifest.py b/python/mozbuild/mozpack/test/test_chrome_manifest.py
+--- a/python/mozbuild/mozpack/test/test_chrome_manifest.py
++++ b/python/mozbuild/mozpack/test/test_chrome_manifest.py
+@@ -12,17 +12,16 @@ from mozpack.chrome.manifest import (
+     ManifestLocale,
+     ManifestSkin,
+     Manifest,
+     ManifestResource,
+     ManifestOverride,
+     ManifestComponent,
+     ManifestContract,
+     ManifestInterfaces,
+-    ManifestBinaryComponent,
+     ManifestCategory,
+     ManifestStyle,
+     ManifestOverlay,
+     MANIFESTS_TYPES,
+     parse_manifest,
+     parse_manifest_line,
+ )
+ from mozpack.errors import errors, AccumulatedErrors
+@@ -76,17 +75,16 @@ class TestManifest(unittest.TestCase):
+             ManifestResource('', 'gre-resources', 'toolkit/res/'),
+             ManifestOverride('', 'chrome://global/locale/netError.dtd',
+                              'chrome://browser/locale/netError.dtd'),
+             ManifestComponent('', '{b2bba4df-057d-41ea-b6b1-94a10a8ede68}',
+                               'foo.js'),
+             ManifestContract('', '@mozilla.org/foo;1',
+                              '{b2bba4df-057d-41ea-b6b1-94a10a8ede68}'),
+             ManifestInterfaces('', 'foo.xpt'),
+-            ManifestBinaryComponent('', 'bar.so'),
+             ManifestCategory('', 'command-line-handler', 'm-browser',
+                              '@mozilla.org/browser/clh;1', 'application=' +
+                              '{ec8030f7-c20a-464f-9b0e-13a3a9e97384}'),
+             ManifestStyle('', 'chrome://global/content/customizeToolbar.xul',
+                           'chrome://browser/skin/'),
+             ManifestOverlay('', 'chrome://global/content/viewSource.xul',
+                             'chrome://browser/content/viewSourceOverlay.xul'),
+         ]
+diff --git a/python/mozbuild/mozpack/test/test_packager.py b/python/mozbuild/mozpack/test/test_packager.py
+--- a/python/mozbuild/mozpack/test/test_packager.py
++++ b/python/mozbuild/mozpack/test/test_packager.py
+@@ -12,17 +12,16 @@ from mozpack.packager import (
+     preprocess_manifest,
+     CallDeque,
+     Component,
+     SimplePackager,
+     SimpleManifestSink,
+ )
+ from mozpack.files import GeneratedFile
+ from mozpack.chrome.manifest import (
+-    ManifestBinaryComponent,
+     ManifestContent,
+     ManifestResource,
+ )
+ from mozunit import MockedOpen
+ from mozbuild.preprocessor import Preprocessor
+ from mozpack.errors import (
+     errors,
+     ErrorMessage,
+@@ -296,26 +295,20 @@ class TestSimplePackager(unittest.TestCa
+             ((os.path.join(curdir, 'foo', 'bar.manifest'), 2),
+              'add_manifest', ManifestContent('foo', 'bar', 'bar/')),
+             ((os.path.join(curdir, 'foo', 'bar.manifest'), 1),
+              'add_manifest', ManifestResource('foo', 'bar', 'bar/')),
+             (('bar/baz.manifest', 1),
+              'add_manifest', ManifestResource('bar', 'baz', 'baz/')),
+             (('qux/qux.manifest', 1),
+              'add_manifest', ManifestResource('qux', 'qux', 'qux/')),
+-            (('qux/qux.manifest', 2),
+-             'add_manifest', ManifestBinaryComponent('qux', 'qux.so')),
+             (('manifest', 4), 'add_interfaces', 'foo/bar.xpt', bar_xpt),
+             (('manifest', 7), 'add_interfaces', 'foo/qux.xpt', qux_xpt),
+             ((os.path.join(curdir, 'addon', 'chrome.manifest'), 1),
+              'add_manifest', ManifestResource('addon', 'hoge', 'hoge/')),
+-            (('addon2/chrome.manifest', 1), 'add_manifest',
+-             ManifestBinaryComponent('addon2', 'addon2.so')),
+-            (('addon3/components/components.manifest', 1), 'add_manifest',
+-             ManifestBinaryComponent('addon3/components', 'addon3.so')),
+             (('manifest', 5), 'add', 'foo/bar/foo.html', foo_html),
+             (('manifest', 5), 'add', 'foo/bar/bar.html', bar_html),
+             (('manifest', 9), 'add', 'addon/install.rdf', install_rdf),
+             (('manifest', 10), 'add', 'addon2/install.rdf', install_rdf),
+             (('manifest', 11), 'add', 'addon3/install.rdf', install_rdf),
+             (('manifest', 12), 'add', 'addon4/install.rdf',
+              install_rdf_addon4),
+             (('manifest', 13), 'add', 'addon5/install.rdf',
+diff --git a/python/mozbuild/mozpack/test/test_packager_formats.py b/python/mozbuild/mozpack/test/test_packager_formats.py
+--- a/python/mozbuild/mozpack/test/test_packager_formats.py
++++ b/python/mozbuild/mozpack/test/test_packager_formats.py
+@@ -15,17 +15,16 @@ from mozpack.copier import FileRegistry
+ from mozpack.files import (
+     GeneratedFile,
+     ManifestFile,
+ )
+ from mozpack.chrome.manifest import (
+     ManifestContent,
+     ManifestComponent,
+     ManifestResource,
+-    ManifestBinaryComponent,
+     ManifestSkin,
+     ManifestLocale,
+ )
+ from mozpack.errors import (
+     ErrorMessage,
+ )
+ from mozpack.test.test_files import (
+     MockDest,
+@@ -46,27 +45,25 @@ CONTENTS = {
+         'app': False,
+         'addon0': 'unpacked',
+         'addon1': True,
+     },
+     'manifests': [
+         ManifestContent('chrome/f', 'oo', 'oo/'),
+         ManifestContent('chrome/f', 'bar', 'oo/bar/'),
+         ManifestResource('chrome/f', 'foo', 'resource://bar/'),
+-        ManifestBinaryComponent('components', 'foo.so'),
+         ManifestContent('app/chrome', 'content', 'foo/'),
+         ManifestComponent('app/components', '{foo-id}', 'foo.js'),
+         ManifestContent('addon0/chrome', 'content', 'foo/bar/'),
+         ManifestContent('addon1/chrome', 'content', 'foo/bar/'),
+     ],
+     'files': {
+         'chrome/f/oo/bar/baz': GeneratedFile(b'foobarbaz'),
+         'chrome/f/oo/baz': GeneratedFile(b'foobaz'),
+         'chrome/f/oo/qux': GeneratedFile(b'fooqux'),
+-        'components/foo.so': GeneratedFile(b'foo.so'),
+         'components/foo.xpt': foo_xpt,
+         'components/bar.xpt': bar_xpt,
+         'foo': GeneratedFile(b'foo'),
+         'app/chrome/foo/foo': GeneratedFile(b'appfoo'),
+         'app/components/foo.js': GeneratedFile(b'foo.js'),
+         'addon0/chrome/foo/bar/baz': GeneratedFile(b'foobarbaz'),
+         'addon0/components/foo.xpt': foo2_xpt,
+         'addon0/components/bar.xpt': bar_xpt,
+@@ -90,20 +87,18 @@ RESULT_FLAT = {
+         'content oo oo/',
+         'content bar oo/bar/',
+         'resource foo resource://bar/',
+     ],
+     'chrome/f/oo/bar/baz': FILES['chrome/f/oo/bar/baz'],
+     'chrome/f/oo/baz': FILES['chrome/f/oo/baz'],
+     'chrome/f/oo/qux': FILES['chrome/f/oo/qux'],
+     'components/components.manifest': [
+-        'binary-component foo.so',
+         'interfaces interfaces.xpt',
+     ],
+-    'components/foo.so': FILES['components/foo.so'],
+     'components/interfaces.xpt': {
+         'foo': read_interfaces(foo_xpt.open())['foo'],
+         'bar': read_interfaces(bar_xpt.open())['bar'],
+     },
+     'foo': FILES['foo'],
+     'app/chrome.manifest': [
+         'manifest chrome/chrome.manifest',
+         'manifest components/components.manifest',
+@@ -141,17 +136,16 @@ for addon in ('addon0', 'addon1'):
+     })
+ 
+ RESULT_JAR = {
+     p: RESULT_FLAT[p]
+     for p in (
+         'chrome.manifest',
+         'chrome/chrome.manifest',
+         'components/components.manifest',
+-        'components/foo.so',
+         'components/interfaces.xpt',
+         'foo',
+         'app/chrome.manifest',
+         'app/components/components.manifest',
+         'app/components/foo.js',
+         'addon0/chrome.manifest',
+         'addon0/components/components.manifest',
+         'addon0/components/interfaces.xpt',
+@@ -186,17 +180,16 @@ RESULT_JAR.update({
+         for p, f in six.iteritems(RESULT_FLAT)
+         if p.startswith('addon1/')
+     },
+ })
+ 
+ RESULT_OMNIJAR = {
+     p: RESULT_FLAT[p]
+     for p in (
+-        'components/foo.so',
+         'foo',
+     )
+ }
+ 
+ RESULT_OMNIJAR.update({
+     p: RESULT_JAR[p]
+     for p in RESULT_JAR
+     if p.startswith('addon')
+@@ -206,19 +199,16 @@ RESULT_OMNIJAR.update({
+     'omni.foo': {
+         'components/components.manifest': [
+             'interfaces interfaces.xpt',
+         ],
+     },
+     'chrome.manifest': [
+         'manifest components/components.manifest',
+     ],
+-    'components/components.manifest': [
+-        'binary-component foo.so',
+-    ],
+     'app/omni.foo': {
+         p: RESULT_FLAT['app/' + p]
+         for p in (
+             'chrome.manifest',
+             'chrome/chrome.manifest',
+             'chrome/foo/foo',
+             'components/components.manifest',
+             'components/foo.js',
+@@ -415,17 +405,16 @@ class TestFormatters(TestErrors, unittes
+             return True
+ 
+         for base in ['', 'app/']:
+             self.assertTrue(is_resource(base, 'chrome'))
+             self.assertTrue(
+                 is_resource(base, 'chrome/foo/bar/baz.properties'))
+             self.assertFalse(is_resource(base, 'chrome/icons/foo.png'))
+             self.assertTrue(is_resource(base, 'components/foo.js'))
+-            self.assertFalse(is_resource(base, 'components/foo.so'))
+             self.assertTrue(is_resource(base, 'res/foo.css'))
+             self.assertFalse(is_resource(base, 'res/cursors/foo.png'))
+             self.assertFalse(is_resource(base, 'res/MainMenu.nib/foo'))
+             self.assertTrue(is_resource(base, 'defaults/pref/foo.js'))
+             self.assertFalse(
+                 is_resource(base, 'defaults/pref/channel-prefs.js'))
+             self.assertTrue(
+                 is_resource(base, 'defaults/preferences/foo.js'))

+ 8 - 4
frg/work-js/mozilla-release/patches/series

@@ -11509,9 +11509,8 @@ TOP-NOBUG-JSFIXUPS2-25320.patch
 TOP-NOBUG-revendor-25320.patch
 TOP-NOBUG-blockquad0-25319.patch
 TOP-NOBUG-fixnasmcheck-25320.patch
-1902935-seamonkey-credits-25320.patch
-1862395-incorrect-version-resistfingerprinting-v2-25320.patch
-1737436-use-mozilla-compat-version-define-25320.patch
+1479945-1no2-63a1.patch
+1479945-3no4-63a1.patch
 1553759-72a1.patch
 1564097-72a1.patch
 1563403-2-73a1.patch
@@ -11526,7 +11525,12 @@ TOP-NOBUG-fixnasmcheck-25320.patch
 1602259-2-VS2019-gyp-25320.patch
 1728988-2-VS2022-gyp-25320.patch
 1857492-120a1.patch
-
+1900355-129a1.patch
+1907053-131a1.patch
+1902935-seamonkey-credits-25320.patch
+1862395-incorrect-version-resistfingerprinting-v2-25320.patch
+1737436-use-mozilla-compat-version-define-25320.patch
+9999999-removebinary-25320.patch
 
 
 

+ 8 - 3
frg/work-js/mozilla-release/patches/series-test

@@ -11508,9 +11508,8 @@ TOP-NOBUG-JSFIXUPS2-25320.patch
 TOP-NOBUG-revendor-25320.patch
 TOP-NOBUG-blockquad0-25319.patch
 TOP-NOBUG-fixnasmcheck-25320.patch
-1902935-seamonkey-credits-25320.patch
-1862395-incorrect-version-resistfingerprinting-v2-25320.patch
-1737436-use-mozilla-compat-version-define-25320.patch
+1479945-1no2-63a1.patch
+1479945-3no4-63a1.patch
 1553759-72a1.patch
 1564097-72a1.patch
 1563403-2-73a1.patch
@@ -11525,3 +11524,9 @@ TOP-NOBUG-fixnasmcheck-25320.patch
 1602259-2-VS2019-gyp-25320.patch
 1728988-2-VS2022-gyp-25320.patch
 1857492-120a1.patch
+1900355-129a1.patch
+1907053-131a1.patch
+1902935-seamonkey-credits-25320.patch
+1862395-incorrect-version-resistfingerprinting-v2-25320.patch
+1737436-use-mozilla-compat-version-define-25320.patch
+9999999-removebinary-25320.patch