diff --git a/application/basilisk/app/Makefile.in b/application/basilisk/app/Makefile.in index edb52e46c5..19bc329bfe 100644 --- a/application/basilisk/app/Makefile.in +++ b/application/basilisk/app/Makefile.in @@ -50,50 +50,3 @@ endif libs:: $(srcdir)/profile/channel-prefs.js $(NSINSTALL) -D $(DIST)/bin/defaults/pref $(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js) - -ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) - -MAC_APP_NAME = $(MOZ_APP_DISPLAYNAME) - -ifdef MOZ_DEBUG -MAC_APP_NAME := $(MAC_APP_NAME)Debug -endif - -AB_CD = $(MOZ_UI_LOCALE) - -ifeq (zh-TW,$(AB_CD)) -LPROJ_ROOT := $(subst -,_,$(AB_CD)) -else -LPROJ_ROOT := $(firstword $(subst -, ,$(AB_CD))) -endif -LPROJ := Contents/Resources/$(LPROJ_ROOT).lproj - -clean clobber repackage:: - $(RM) -r $(dist_dest) - -MAC_BUNDLE_VERSION = $(shell $(PYTHON) $(srcdir)/macversion.py --version=$(MOZ_APP_VERSION) --buildid=$(DEPTH)/buildid.h) - -.PHONY: repackage -tools repackage:: $(DIST)/bin/$(MOZ_APP_NAME) - $(MKDIR) -p '$(dist_dest)/Contents/MacOS' - $(MKDIR) -p '$(dist_dest)/$(LPROJ)' - rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents '$(dist_dest)' --exclude English.lproj - rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ '$(dist_dest)/$(LPROJ)' - sed -e 's/%APP_VERSION%/$(MOZ_APP_VERSION)/' -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' -e 's/%MOZ_MACBUNDLE_ID%/$(MOZ_MACBUNDLE_ID)/' -e 's/%MAC_BUNDLE_VERSION%/$(MAC_BUNDLE_VERSION)/' $(srcdir)/macbuild/Contents/Info.plist.in > '$(dist_dest)/Contents/Info.plist' - sed -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > '$(dist_dest)/$(LPROJ)/InfoPlist.strings' - rsync -a --exclude-from='$(srcdir)/macbuild/Contents/MacOS-files.in' $(DIST)/bin/ '$(dist_dest)/Contents/Resources' - rsync -a --include-from='$(srcdir)/macbuild/Contents/MacOS-files.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS' - # MacOS-files-copy.in is a list of files that should be copies rather - # than symlinks and placed in .app/Contents/MacOS. - rsync -aL --include-from='$(srcdir)/macbuild/Contents/MacOS-files-copy.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS' - $(RM) '$(dist_dest)/Contents/MacOS/$(MOZ_APP_NAME)' - rsync -aL $(DIST)/bin/$(MOZ_APP_NAME) '$(dist_dest)/Contents/MacOS' - cp -RL $(DIST)/branding/firefox.icns '$(dist_dest)/Contents/Resources/firefox.icns' - cp -RL $(DIST)/branding/document.icns '$(dist_dest)/Contents/Resources/document.icns' -ifdef MOZ_UPDATER - $(MKDIR) -p '$(dist_dest)/Contents/Library/LaunchServices' - mv -f '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' '$(dist_dest)/Contents/Library/LaunchServices' - ln -s ../../../../Library/LaunchServices/org.mozilla.updater '$(dist_dest)/Contents/MacOS/updater.app/Contents/MacOS/org.mozilla.updater' -endif - printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo' -endif diff --git a/application/palemoon/app/Makefile.in b/application/palemoon/app/Makefile.in index 34efe931e2..7d1d092d71 100644 --- a/application/palemoon/app/Makefile.in +++ b/application/palemoon/app/Makefile.in @@ -61,51 +61,10 @@ libs:: $(srcdir)/profile/channel-prefs.js $(call py_action,preprocessor,-Fsubstitution $(PREF_PPFLAGS) $(ACDEFINES) $^ -o $(DIST)/bin/defaults/pref/channel-prefs.js) endif -ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) - -MAC_APP_NAME = $(MOZ_APP_DISPLAYNAME) - -ifdef MOZ_DEBUG -MAC_APP_NAME := $(MAC_APP_NAME)Debug -endif - -AB_CD = $(MOZ_UI_LOCALE) - -AB := $(firstword $(subst -, ,$(AB_CD))) - -clean clobber repackage:: - $(RM) -r $(dist_dest) - -MAC_BUNDLE_VERSION = $(shell $(PYTHON) $(srcdir)/macversion.py --version=$(MOZ_APP_VERSION) --buildid=$(DEPTH)/buildid.h) - -.PHONY: repackage -tools repackage:: $(PROGRAM) - $(MKDIR) -p '$(dist_dest)/Contents/MacOS' - $(MKDIR) -p '$(dist_dest)/Contents/Resources/$(AB).lproj' - rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents '$(dist_dest)' --exclude English.lproj - rsync -a --exclude '*.in' $(srcdir)/macbuild/Contents/Resources/English.lproj/ '$(dist_dest)/Contents/Resources/$(AB).lproj' - sed -e 's/%APP_VERSION%/$(MOZ_APP_VERSION)/' -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' -e 's/%MOZ_MACBUNDLE_ID%/$(MOZ_MACBUNDLE_ID)/' -e 's/%MAC_BUNDLE_VERSION%/$(MAC_BUNDLE_VERSION)/' $(srcdir)/macbuild/Contents/Info.plist.in > '$(dist_dest)/Contents/Info.plist' - sed -e 's/%MAC_APP_NAME%/$(MAC_APP_NAME)/' $(srcdir)/macbuild/Contents/Resources/English.lproj/InfoPlist.strings.in | iconv -f UTF-8 -t UTF-16 > '$(dist_dest)/Contents/Resources/$(AB).lproj/InfoPlist.strings' - rsync -a --exclude-from='$(srcdir)/macbuild/Contents/MacOS-files.in' $(DIST)/bin/ '$(dist_dest)/Contents/Resources' - rsync -a --include-from='$(srcdir)/macbuild/Contents/MacOS-files.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS' - # MacOS-files-copy.in is a list of files that should be copies rather - # than symlinks and placed in .app/Contents/MacOS. - rsync -aL --include-from='$(srcdir)/macbuild/Contents/MacOS-files-copy.in' --exclude '*' $(DIST)/bin/ '$(dist_dest)/Contents/MacOS' - $(RM) '$(dist_dest)/Contents/MacOS/$(PROGRAM)' - rsync -aL $(PROGRAM) '$(dist_dest)/Contents/MacOS' - cp -RL $(DIST)/branding/firefox.icns '$(dist_dest)/Contents/Resources/firefox.icns' - cp -RL $(DIST)/branding/document.icns '$(dist_dest)/Contents/Resources/document.icns' - printf APPLMOZB > '$(dist_dest)/Contents/PkgInfo' -endif - ifdef LIBXUL_SDK #{ ifndef SKIP_COPY_XULRUNNER #{ libs:: -ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT)) #{ - rsync -a --copy-unsafe-links $(LIBXUL_DIST)/XUL.framework '$(dist_dest)/Contents/Frameworks' -else $(NSINSTALL) -D $(DIST)/bin/xulrunner (cd $(LIBXUL_SDK)/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DIST)/bin/xulrunner && tar -xf -) -endif #} cocoa endif #} SKIP_COPY_XULRUNNER endif #} LIBXUL_SDK diff --git a/application/palemoon/base/content/browser-addons.js b/application/palemoon/base/content/browser-addons.js index b303b5d0d2..83cefe51e1 100644 --- a/application/palemoon/base/content/browser-addons.js +++ b/application/palemoon/base/content/browser-addons.js @@ -202,7 +202,7 @@ const gXPInstallObserver = { label: gNavigatorBundle.getString("addonInstallRestartButton"), accessKey: gNavigatorBundle.getString("addonInstallRestartButton.accesskey"), callback: function() { - Application.restart(); + Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart); } }; } else { @@ -368,7 +368,7 @@ var LightWeightThemeWebInstaller = { label: gNavigatorBundle.getString("lwthemeNeedsRestart.button"), accessKey: gNavigatorBundle.getString("lwthemeNeedsRestart.accesskey"), callback: function () { - Application.restart(); + Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart); } }; diff --git a/application/palemoon/base/content/tabbrowser.xml b/application/palemoon/base/content/tabbrowser.xml index d5a06fa619..cb105440ad 100644 --- a/application/palemoon/base/content/tabbrowser.xml +++ b/application/palemoon/base/content/tabbrowser.xml @@ -3353,8 +3353,8 @@ - Application.console.log("enterTabbedMode is an obsolete method and " + - "will be removed in a future release."); + console.log("enterTabbedMode is an obsolete method and " + + "will be removed in a future release."); true diff --git a/application/palemoon/modules/FormValidationHandler.jsm b/application/palemoon/modules/FormValidationHandler.jsm index 387c221d74..5a2b07c004 100644 --- a/application/palemoon/modules/FormValidationHandler.jsm +++ b/application/palemoon/modules/FormValidationHandler.jsm @@ -124,7 +124,7 @@ var FormValidationHandler = let tabBrowser = aWindow.gBrowser; this._anchor = tabBrowser.popupAnchor; this._anchor.left = aPanelData.contentRect.left; - this._anchor.top = aPanelData.contentRect.top; + this._anchor.top = Math.max(0, aPanelData.contentRect.top); this._anchor.width = aPanelData.contentRect.width; this._anchor.height = aPanelData.contentRect.height; this._anchor.hidden = false; diff --git a/dom/xslt/base/txURIUtils.cpp b/dom/xslt/base/txURIUtils.cpp index bce2f8d0f3..885706fa39 100644 --- a/dom/xslt/base/txURIUtils.cpp +++ b/dom/xslt/base/txURIUtils.cpp @@ -74,6 +74,7 @@ URIUtils::ResetWithSource(nsIDocument *aNewDoc, nsINode *aSourceNode) aNewDoc->Reset(channel, loadGroup); aNewDoc->SetPrincipal(sourcePrincipal); aNewDoc->SetBaseURI(sourceDoc->GetDocBaseURI()); + aNewDoc->SetSandboxFlags(sourceDoc->GetSandboxFlags()); // Copy charset aNewDoc->SetDocumentCharacterSetSource( diff --git a/memory/mozjemalloc/jemalloc.c b/memory/mozjemalloc/jemalloc.c index 01c559a2bb..5e50d65f81 100644 --- a/memory/mozjemalloc/jemalloc.c +++ b/memory/mozjemalloc/jemalloc.c @@ -297,22 +297,9 @@ typedef long ssize_t; #include #include #include -#ifndef MOZ_MEMORY_DARWIN #include -#endif #include -#ifdef MOZ_MEMORY_DARWIN -#include -#include -#include -#include -#include -#ifndef _pthread_self -#define _pthread_self() pthread_self() -#endif -#endif - #endif #include "jemalloc_types.h" diff --git a/netwerk/base/nsSocketTransport2.cpp b/netwerk/base/nsSocketTransport2.cpp index 98e128e89a..6ccf2f1077 100644 --- a/netwerk/base/nsSocketTransport2.cpp +++ b/netwerk/base/nsSocketTransport2.cpp @@ -1,5 +1,4 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* vim:set ts=4 sw=4 et cindent: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @@ -2153,7 +2152,9 @@ nsSocketTransport::OpenInputStream(uint32_t flags, mInputClosed = false; rv = PostEvent(MSG_ENSURE_CONNECT); - if (NS_FAILED(rv)) return rv; + if (NS_FAILED(rv)) { + return rv; + } result.forget(aResult); return NS_OK; @@ -2173,6 +2174,7 @@ nsSocketTransport::OpenOutputStream(uint32_t flags, nsresult rv; nsCOMPtr pipeOut; nsCOMPtr result; + if (!(flags & OPEN_UNBUFFERED) || (flags & OPEN_BLOCKING)) { // XXX if the caller wants blocking, then the caller also gets buffered! //bool openBuffered = !(flags & OPEN_UNBUFFERED); diff --git a/netwerk/base/nsSocketTransport2.h b/netwerk/base/nsSocketTransport2.h index 310cc58d3b..cb107e6e79 100644 --- a/netwerk/base/nsSocketTransport2.h +++ b/netwerk/base/nsSocketTransport2.h @@ -306,6 +306,9 @@ private: uint16_t SocketPort() { return (!mProxyHost.IsEmpty() && !mProxyTransparent) ? mProxyPort : mPort; } const nsCString &SocketHost() { return (!mProxyHost.IsEmpty() && !mProxyTransparent) ? mProxyHost : mHost; } + Atomic mInputClosed{true}; + Atomic mOutputClosed{true}; + //------------------------------------------------------------------------- // members accessible only on the socket transport thread: // (the exception being initialization/shutdown time) @@ -314,8 +317,6 @@ private: // socket state vars: uint32_t mState; // STATE_??? flags bool mAttached; - bool mInputClosed; - bool mOutputClosed; // The platform-specific network interface id that this socket // associated with. @@ -455,7 +456,7 @@ private: int32_t mKeepaliveRetryIntervalS; int32_t mKeepaliveProbeCount; - bool mDoNotRetryToConnect; + Atomic mDoNotRetryToConnect{false}; }; } // namespace net diff --git a/netwerk/base/nsStandardURL.cpp b/netwerk/base/nsStandardURL.cpp index 3d77093004..57337e480d 100644 --- a/netwerk/base/nsStandardURL.cpp +++ b/netwerk/base/nsStandardURL.cpp @@ -554,37 +554,76 @@ nsStandardURL::NormalizeIPv4(const nsCSubstring &host, nsCString &result) return NS_OK; } +/** + * Returns |true| if |aString| contains only ASCII characters according + * to our CRT. + * + * @param aString an 8-bit wide string to scan + */ +inline bool IsAsciiString(mozilla::Span aString) { + for (char c : aString) { + if (!nsCRT::IsAscii(c)) { + return false; + } + } + return true; +} + nsresult nsStandardURL::NormalizeIDN(const nsCSubstring &host, nsCString &result) { - // If host is ACE, then convert to UTF-8. Else, if host is already UTF-8, - // then make sure it is normalized per IDN. - - // this function returns true if normalization succeeds. - - // NOTE: As a side-effect this function sets mHostEncoding. While it would - // be nice to avoid side-effects in this function, the implementation of - // this function is already somewhat bound to the behavior of the - // callsites. Anyways, this function exists to avoid code duplication, so - // side-effects abound :-/ - - NS_ASSERTION(mHostEncoding == eEncoding_ASCII, "unexpected default encoding"); - - bool isASCII; + nsresult rv = NS_ERROR_UNEXPECTED; + // Clear result even if we bail. + result.Truncate(); + if (!gIDN) { nsCOMPtr serv(do_GetService(NS_IDNSERVICE_CONTRACTID)); if (serv) { NS_ADDREF(gIDN = serv.get()); } } + if (!gIDN) { + return NS_ERROR_UNEXPECTED; + } - result.Truncate(); - nsresult rv = NS_ERROR_UNEXPECTED; - if (gIDN) { - rv = gIDN->ConvertToDisplayIDN(host, &isASCII, result); - if (NS_SUCCEEDED(rv) && !isASCII) { - mHostEncoding = eEncoding_UTF8; - } + NS_ASSERTION(mHostEncoding == eEncoding_ASCII, "unexpected default encoding"); + + bool isASCII; + nsAutoCString normalized; + + // If the input is ASCII, and not ACE encoded, then there's no processing + // needed. This is needed because we want to allow ascii labels longer than + // 64 characters for some schemes. + bool isACE = false; + if (IsAsciiString(host) && NS_SUCCEEDED(gIDN->IsACE(host, &isACE)) && !isACE) { + result = host; + return NS_OK; + } + + // If the input is an ACE encoded string it MUST be ASCII or it's malformed + // according to the spec. + if (!IsAsciiString(host) && isACE) { + return NS_ERROR_MALFORMED_URI; + } + + // Even if it's already ACE, we must still call ConvertUTF8toACE in order + // for the input normalization to take place. + rv = gIDN->ConvertUTF8toACE(host, normalized); + if (NS_FAILED(rv)) { + return rv; + } + + // If the ASCII representation doesn't contain the xn-- token then we don't + // need to call ConvertToDisplayIDN as that would not change anything. + if (!StringBeginsWith(normalized, NS_LITERAL_CSTRING("xn--")) && + normalized.Find(NS_LITERAL_CSTRING(".xn--")) == kNotFound) { + return NS_OK; + } + + // Finally, convert to IDN + rv = gIDN->ConvertToDisplayIDN(normalized, &isASCII, result); + if (NS_SUCCEEDED(rv) && !isASCII) { + mHostEncoding = eEncoding_UTF8; } return rv; diff --git a/netwerk/dns/nsIDNService.cpp b/netwerk/dns/nsIDNService.cpp index 31ba12b4c4..3424596f6d 100644 --- a/netwerk/dns/nsIDNService.cpp +++ b/netwerk/dns/nsIDNService.cpp @@ -202,7 +202,13 @@ nsIDNService::IDNA2008StringPrep(const nsAString& input, return NS_OK; } - if (info.errors != 0) { + uint32_t ignoredErrors = 0; + if (flag == eStringPrepForDNS) { + ignoredErrors = UIDNA_ERROR_LEADING_HYPHEN | UIDNA_ERROR_TRAILING_HYPHEN | + UIDNA_ERROR_HYPHEN_3_4; + } + + if ((info.errors & ~ignoredErrors) != 0) { if (flag == eStringPrepForDNS) { output.Truncate(); } @@ -309,18 +315,40 @@ nsresult nsIDNService::ACEtoUTF8(const nsACString & input, nsACString & _retval, return NS_OK; } +/** + * Returns |true| if |aString| contains only ASCII characters according + * to our CRT. + * + * @param aString an 8-bit wide string to scan + */ +inline bool IsAsciiString(mozilla::Span aString) { + for (char c : aString) { + if (!nsCRT::IsAscii(c)) { + return false; + } + } + return true; +} + NS_IMETHODIMP nsIDNService::IsACE(const nsACString & input, bool *_retval) { - const char *data = input.BeginReading(); - uint32_t dataLen = input.Length(); - // look for the ACE prefix in the input string. it may occur // at the beginning of any segment in the domain name. for // example: "www.xn--ENCODED.com" + if (!IsAsciiString(input)) { + *_retval = false; + return NS_OK; + } + auto stringContains = [](const nsACString& haystack, + const nsACString& needle) { + return std::search(haystack.BeginReading(), haystack.EndReading(), + needle.BeginReading(), + needle.EndReading()) != haystack.EndReading(); + }; - const char *p = PL_strncasestr(data, kACEPrefix, dataLen); - - *_retval = p && (p == data || *(p - 1) == '.'); + *_retval = StringBeginsWith(input, NS_LITERAL_CSTRING("xn--")) || + (!input.IsEmpty() && input[0] != '.' && + stringContains(input, NS_LITERAL_CSTRING(".xn--"))); return NS_OK; } diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp index b103ac66ad..de023beafa 100644 --- a/netwerk/protocol/http/nsHttpHandler.cpp +++ b/netwerk/protocol/http/nsHttpHandler.cpp @@ -826,15 +826,6 @@ nsHttpHandler::InitUserAgentComponents() PR_smprintf_free(buf); } } -#elif defined (XP_MACOSX) -#if defined(__ppc__) - mOscpu.AssignLiteral("PPC Mac OS X"); -#elif defined(__i386__) || defined(__x86_64__) - mOscpu.AssignLiteral("Intel Mac OS X"); -#endif - SInt32 majorVersion = nsCocoaFeatures::macOSVersionMajor(); - SInt32 minorVersion = nsCocoaFeatures::macOSVersionMinor(); - mOscpu += nsPrintfCString(" %d.%d", majorVersion, minorVersion); #elif defined (XP_UNIX) struct utsname name; diff --git a/toolkit/components/search/nsSearchService.js b/toolkit/components/search/nsSearchService.js index f3e8b94a75..7b45e30644 100644 --- a/toolkit/components/search/nsSearchService.js +++ b/toolkit/components/search/nsSearchService.js @@ -111,7 +111,7 @@ const NEW_LINES = /(\r\n|\r|\n)/; // Set an arbitrary cap on the maximum icon size. Without this, large icons can // cause big delays when loading them at startup. -const MAX_ICON_SIZE = 10000; +const MAX_ICON_SIZE = 32768; // Default charset to use for sending search parameters. ISO-8859-1 is used to // match previous nsInternetSearchService behavior. diff --git a/widget/GfxDriverInfo.h b/widget/GfxDriverInfo.h index 17baf136d7..ad4337b0fb 100644 --- a/widget/GfxDriverInfo.h +++ b/widget/GfxDriverInfo.h @@ -49,21 +49,6 @@ enum class OperatingSystem { Windows8_1, Windows10, Linux, - OSX, - OSX10_5, - OSX10_6, - OSX10_7, - OSX10_8, - OSX10_9, - OSX10_10, - OSX10_11, - OSX10_12, - OSX10_13, - OSX10_14, - OSX10_15, - OSX10_16, - OSX11_0, - Ios }; enum VersionComparisonOp { diff --git a/widget/GfxInfoBase.cpp b/widget/GfxInfoBase.cpp index 321ee87547..feafc37bde 100644 --- a/widget/GfxInfoBase.cpp +++ b/widget/GfxInfoBase.cpp @@ -263,30 +263,6 @@ BlacklistOSToOperatingSystem(const nsAString& os) return OperatingSystem::Windows10; else if (os.EqualsLiteral("Linux")) return OperatingSystem::Linux; - else if (os.EqualsLiteral("Darwin 9")) - return OperatingSystem::OSX10_5; - else if (os.EqualsLiteral("Darwin 10")) - return OperatingSystem::OSX10_6; - else if (os.EqualsLiteral("Darwin 11")) - return OperatingSystem::OSX10_7; - else if (os.EqualsLiteral("Darwin 12")) - return OperatingSystem::OSX10_8; - else if (os.EqualsLiteral("Darwin 13")) - return OperatingSystem::OSX10_9; - else if (os.EqualsLiteral("Darwin 14")) - return OperatingSystem::OSX10_10; - else if (os.EqualsLiteral("Darwin 15")) - return OperatingSystem::OSX10_11; - else if (os.EqualsLiteral("Darwin 16")) - return OperatingSystem::OSX10_12; - else if (os.EqualsLiteral("Darwin 17")) - return OperatingSystem::OSX10_13; - else if (os.EqualsLiteral("Darwin 18")) - return OperatingSystem::OSX10_14; - else if (os.EqualsLiteral("Darwin 19")) - return OperatingSystem::OSX10_15; - else if (os.EqualsLiteral("Darwin 20")) - return OperatingSystem::OSX11_0; // For historical reasons, "All" in blocklist means "All Windows" else if (os.EqualsLiteral("All")) return OperatingSystem::Windows; diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestParser.cpp index f256354288..e3b0b0f3cc 100644 --- a/xpcom/components/ManifestParser.cpp +++ b/xpcom/components/ManifestParser.cpp @@ -539,12 +539,6 @@ ParseManifest(NSLocationType aType, FileLocation& aFile, char* aBuf, info.dwMinorVersion); } #pragma warning(pop) -#elif defined(MOZ_WIDGET_COCOA) - SInt32 majorVersion = nsCocoaFeatures::macOSVersionMajor(); - SInt32 minorVersion = nsCocoaFeatures::macOSVersionMinor(); - nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", - majorVersion, - minorVersion); #elif defined(MOZ_WIDGET_GTK) nsTextFormatter::ssprintf(osVersion, u"%ld.%ld", gtk_major_version,