From 0cdda4f34e09f1076b77e1a19b97cb5c96321c86 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Thu, 7 Aug 2025 14:40:00 -0600 Subject: [PATCH] icecat: update upstream v128.13.0-1gnu1 --- icecat/CLOBBER | 2 +- icecat/browser/app/permissions | 4 +- ...test_search_telemetry_config_validation.js | 7 +- icecat/browser/config/version.txt | 2 +- icecat/browser/config/version_display.txt | 2 +- icecat/browser/confvars.sh | 2 +- icecat/config/milestone.txt | 2 +- icecat/debian/changelog | 6 + icecat/debian/icecat.postinst.in | 13 +- .../netmonitor/test/browser_net_curl-utils.js | 4 +- icecat/devtools/client/shared/curl.js | 2 +- icecat/dom/base/crashtests/344882-1.html | 33 - icecat/dom/base/crashtests/crashtests.list | 1 - icecat/dom/base/nsFocusManager.cpp | 21 +- icecat/dom/base/nsGlobalWindowOuter.cpp | 15 +- icecat/dom/base/nsObjectLoadingContent.cpp | 37 +- icecat/dom/base/nsSyncLoadService.cpp | 23 +- icecat/dom/base/nsSyncLoadService.h | 7 +- icecat/dom/base/test/test_bug353334.html | 12 - icecat/dom/security/nsCSPContext.cpp | 29 +- icecat/dom/xml/nsXMLPrettyPrinter.cpp | 3 +- icecat/dom/xslt/xml/txXMLParser.cpp | 7 +- .../xslt/xslt/txMozillaStylesheetCompiler.cpp | 25 +- icecat/gfx/thebes/gfxFontEntry.cpp | 27 +- icecat/gfx/thebes/gfxFontEntry.h | 11 +- icecat/gfx/thebes/gfxGDIFont.cpp | 2 +- .../jit-test/tests/asm.js/testControlFlow.js | 6 +- icecat/js/src/jit/CodeGenerator.cpp | 31 + icecat/js/src/jit/LIROps.yaml | 15 + icecat/js/src/jit/Lowering.cpp | 9 +- icecat/js/src/vm/AsyncIteration.cpp | 6 +- icecat/js/src/wasm/WasmConstants.h | 2 +- icecat/js/src/wasm/WasmIonCompile.cpp | 14 +- .../modules/libpref/init/StaticPrefList.yaml | 8 + icecat/modules/libpref/init/all.js | 5 - icecat/netwerk/dns/effective_tld_names.dat | 83 +- icecat/security/manager/ssl/StaticHPKPins.h | 2 +- .../security/manager/ssl/nsSTSPreloadList.inc | 5398 +++++++---------- .../dumps/blocklists/addons-bloomfilters.json | 1028 +++- .../main/devtools-compatibility-browsers.json | 461 +- .../settings/dumps/main/search-config-v2.json | 4 +- .../settings/dumps/main/search-config.json | 6 +- .../dumps/main/search-telemetry-v2.json | 583 +- .../dumps/main/translations-models.json | 1622 +++-- .../services/settings/dumps/monitor/changes | 226 +- .../dumps/security-state/intermediates.json | 260 +- icecat/sourcestamp.txt | 4 +- icecat/taskcluster/config.yml | 6 +- .../searchconfigs/head_searchconfig.js | 12 +- .../searchconfigs/test_distributions.js | 9 + .../xpcshell/searchconfigs/test_google.js | 2 +- 51 files changed, 5487 insertions(+), 4614 deletions(-) delete mode 100644 icecat/dom/base/crashtests/344882-1.html diff --git a/icecat/CLOBBER b/icecat/CLOBBER index 35d272e691..248a8a5c14 100644 --- a/icecat/CLOBBER +++ b/icecat/CLOBBER @@ -22,4 +22,4 @@ # changes to stick? As of bug 928195, this shouldn't be necessary! Please # don't change CLOBBER for WebIDL changes any more. -Merge day clobber 2025-05-26 \ No newline at end of file +Merge day clobber 2025-06-23 \ No newline at end of file diff --git a/icecat/browser/app/permissions b/icecat/browser/app/permissions index 1c72a96de8..fe018a08c7 100644 --- a/icecat/browser/app/permissions +++ b/icecat/browser/app/permissions @@ -8,12 +8,12 @@ # See PermissionManager.cpp for more... # UITour -# Bug 1557153: www.mozilla.org gets a special workaround in UITourChild.sys.mjs -# Bug 1837407: support.mozilla.org gets a special workaround for similar reasons. origin uitour 1 https://www.mozilla.org origin uitour 1 https://support.mozilla.org origin uitour 1 about:home origin uitour 1 about:newtab +# Bug 1942328: firefox.com needs the same privileges as mozilla.org +origin uitour 1 https://www.firefox.com # XPInstall origin install 1 https://addons.mozilla.org diff --git a/icecat/browser/components/search/test/unit/test_search_telemetry_config_validation.js b/icecat/browser/components/search/test/unit/test_search_telemetry_config_validation.js index d14f7a3918..0af9dfc10d 100644 --- a/icecat/browser/components/search/test/unit/test_search_telemetry_config_validation.js +++ b/icecat/browser/components/search/test/unit/test_search_telemetry_config_validation.js @@ -116,10 +116,9 @@ add_task(async function test_search_config_codes_in_search_telemetry() { `Should have the base partner code ${engine.base.partnerCode} listed in the search telemetry 'taggedCodes'` ); } else { - Assert.equal( - telemetryEntry.telemetryId, - "baidu", - "Should only not have a base partner code for Baidu" + Assert.ok( + ["google", "baidu"].includes(telemetryEntry.telemetryId), + "Should only not have a base partner code for Google and Baidu" ); } diff --git a/icecat/browser/config/version.txt b/icecat/browser/config/version.txt index 4b14f3791f..052d7980eb 100644 --- a/icecat/browser/config/version.txt +++ b/icecat/browser/config/version.txt @@ -1 +1 @@ -128.12.0 +128.13.0 diff --git a/icecat/browser/config/version_display.txt b/icecat/browser/config/version_display.txt index cd2bdd50b4..d22345fe2b 100644 --- a/icecat/browser/config/version_display.txt +++ b/icecat/browser/config/version_display.txt @@ -1 +1 @@ -128.12.0esr +128.13.0esr diff --git a/icecat/browser/confvars.sh b/icecat/browser/confvars.sh index 8e730c2fea..1c1cd8f568 100755 --- a/icecat/browser/confvars.sh +++ b/icecat/browser/confvars.sh @@ -45,7 +45,7 @@ MOZ_DEVTOOLS=all MOZ_APP_BASENAME=IceCat MOZ_APP_UA_NAME=Firefox MOZ_APP_VENDOR=GNU -MOZ_APP_VERSION=128.12.0 +MOZ_APP_VERSION=128.13.0 MOZ_APP_PROFILE=mozilla/icecat MOZ_PAY=0 MOZ_SERVICES_HEALTHREPORT=0 diff --git a/icecat/config/milestone.txt b/icecat/config/milestone.txt index 9d02d717e6..d434c2c9f0 100644 --- a/icecat/config/milestone.txt +++ b/icecat/config/milestone.txt @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -128.12.0 +128.13.0 diff --git a/icecat/debian/changelog b/icecat/debian/changelog index 32bc894a71..5318db2a51 100644 --- a/icecat/debian/changelog +++ b/icecat/debian/changelog @@ -1,3 +1,9 @@ +icecat (128.13.0-1gnu1+build1-0.12.0) ecne; urgency=medium + + * New upstream stable release (icecat-128.13.0-1gnu1) + + -- Capitulo Mexicano de Software Libre Thu, 07 Aug 2025 14:18:35 -0600 + icecat (128.12.0-1gnu1+build1-0.12.0) ecne; urgency=medium * Initial packaging for Trisquel GNU/Linux and new upstream IceCat diff --git a/icecat/debian/icecat.postinst.in b/icecat/debian/icecat.postinst.in index 2a75c76e0b..7960cd2225 100644 --- a/icecat/debian/icecat.postinst.in +++ b/icecat/debian/icecat.postinst.in @@ -1,14 +1,13 @@ -if [ "" = "configure" ] || [ "" = "abort-upgrade" ] ; then +if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] ; then [ -f /usr/bin/firefox-esr ] || ln -s /usr/bin/icecat /usr/bin/firefox-esr -for HOMEDIR in /home/cups-pk-helper -/home/ark +for HOMEDIR in $(grep :/home/ /etc/passwd |grep -v usbmux |grep -v syslog|cut -d : -f 6) do - [ -d /.mozilla/icecat ] && continue || true - [ -d /.mozilla/firefox-esr ] || continue - echo Linking /.mozilla/firefox-esr into /.mozilla/icecat - ln -s /.mozilla/firefox-esr /.mozilla/icecat + [ -d $HOMEDIR/.mozilla/icecat ] && continue || true + [ -d $HOMEDIR/.mozilla/firefox-esr ] || continue + echo Linking $HOMEDIR/.mozilla/firefox-esr into $HOMEDIR/.mozilla/icecat + ln -s $HOMEDIR/.mozilla/firefox-esr $HOMEDIR/.mozilla/icecat done fi exit 0 diff --git a/icecat/devtools/client/netmonitor/test/browser_net_curl-utils.js b/icecat/devtools/client/netmonitor/test/browser_net_curl-utils.js index ef98d85b15..2cb188f478 100644 --- a/icecat/devtools/client/netmonitor/test/browser_net_curl-utils.js +++ b/icecat/devtools/client/netmonitor/test/browser_net_curl-utils.js @@ -344,7 +344,7 @@ function testEscapeStringWin() { const newLines = "line1\r\nline2\r\rline3\n\nline4"; is( CurlUtils.escapeStringWin(newLines), - '^"line1^\n\nline2\r\rline3^\n\n^\n\nline4^"', + '^"line1^\n\nline2^\n\n^\n\nline3^\n\n^\n\nline4^"', "Newlines should be escaped." ); @@ -365,7 +365,7 @@ function testEscapeStringWin() { const evilCommand = `query=evil\r\rcmd" /c timeout /t 3 & calc.exe\r\r`; is( CurlUtils.escapeStringWin(evilCommand), - '^"query=evil\r\rcmd\\" /c timeout /t 3 & calc.exe\r\r^"', + '^"query=evil^\n\n^\n\ncmd\\" /c timeout /t 3 & calc.exe^\n\n^\n\n^"', "The evil command is escaped properly" ); } diff --git a/icecat/devtools/client/shared/curl.js b/icecat/devtools/client/shared/curl.js index b5194571a9..948cc0824b 100644 --- a/icecat/devtools/client/shared/curl.js +++ b/icecat/devtools/client/shared/curl.js @@ -484,7 +484,7 @@ const CurlUtils = { // Lastly we replace new lines with ^ and TWO new lines because the first // new line is there to enact the escape command the second is the character // to escape (in this case new line). - .replace(/\r?\n/g, "^\n\n") + + .replace(/\r?\n|\r/g, "^\n\n") + encapsChars ); }, diff --git a/icecat/dom/base/crashtests/344882-1.html b/icecat/dom/base/crashtests/344882-1.html deleted file mode 100644 index 6a8dd69d5b..0000000000 --- a/icecat/dom/base/crashtests/344882-1.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - diff --git a/icecat/dom/base/crashtests/crashtests.list b/icecat/dom/base/crashtests/crashtests.list index 5d1342ddb7..01c0826d72 100644 --- a/icecat/dom/base/crashtests/crashtests.list +++ b/icecat/dom/base/crashtests/crashtests.list @@ -24,7 +24,6 @@ load 343730-1.xhtml load 343850-1.xhtml load 343889-1.html load 344434-1.xhtml -load 344882-1.html load 345837-1.xhtml load 346381-1.html load 349355-1.html diff --git a/icecat/dom/base/nsFocusManager.cpp b/icecat/dom/base/nsFocusManager.cpp index ada6e28c94..57975e4faf 100644 --- a/icecat/dom/base/nsFocusManager.cpp +++ b/icecat/dom/base/nsFocusManager.cpp @@ -4345,16 +4345,17 @@ nsresult nsFocusManager::GetNextTabbableContent( rootElement = doc->GetRootElement(); } if (aForward) { - nsIFrame* frame = invokerContent->GetPrimaryFrame(); - int32_t tabIndex = frame->IsFocusable().mTabIndex; - if (tabIndex >= 0 && - (aIgnoreTabIndex || aCurrentTabIndex == tabIndex)) { - nsresult rv = GetNextTabbableContent( - aPresShell, rootElement, nullptr, invokerContent, true, - tabIndex, false, false, aNavigateByKey, true, - aReachedToEndForDocumentNavigation, aResultContent); - if (NS_SUCCEEDED(rv) && *aResultContent) { - return rv; + if (nsIFrame* frame = invokerContent->GetPrimaryFrame()) { + int32_t tabIndex = frame->IsFocusable().mTabIndex; + if (tabIndex >= 0 && + (aIgnoreTabIndex || aCurrentTabIndex == tabIndex)) { + nsresult rv = GetNextTabbableContent( + aPresShell, rootElement, nullptr, invokerContent, true, + tabIndex, false, false, aNavigateByKey, true, + aReachedToEndForDocumentNavigation, aResultContent); + if (NS_SUCCEEDED(rv) && *aResultContent) { + return rv; + } } } } else if (invokerContent) { diff --git a/icecat/dom/base/nsGlobalWindowOuter.cpp b/icecat/dom/base/nsGlobalWindowOuter.cpp index 0c3522187d..e02af6f2f1 100644 --- a/icecat/dom/base/nsGlobalWindowOuter.cpp +++ b/icecat/dom/base/nsGlobalWindowOuter.cpp @@ -5005,9 +5005,8 @@ void nsGlobalWindowOuter::PrintOuter(ErrorResult& aError) { } }); - const bool forPreview = - !StaticPrefs::print_always_print_silent() && - !Preferences::GetBool("print.prefer_system_dialog", false); + const bool forPreview = !StaticPrefs::print_always_print_silent() && + !StaticPrefs::print_prefer_system_dialog(); Print(nullptr, nullptr, nullptr, nullptr, IsPreview(forPreview), IsForWindowDotPrint::Yes, nullptr, nullptr, aError); #endif @@ -5205,8 +5204,11 @@ Nullable nsGlobalWindowOuter::Print( // The exception is if we're using the passed-in aCachedBrowsingContext, in // which case this is the second print with this static document clone that // we created the first time through, and we are responsible for cleaning it - // up. - closeWindowAfterPrint = usingCachedBrowsingContext; + // up. There's also an exception if we're directly using the system print + // dialog rather than our preview panel, because in this case the preview + // will not take care of cleaning up the cloned doc. + closeWindowAfterPrint = + usingCachedBrowsingContext || StaticPrefs::print_prefer_system_dialog(); } else { // In this case the document was not a static clone, so we made a static // clone for printing purposes and must clean it up after the print is done. @@ -5248,6 +5250,9 @@ Nullable nsGlobalWindowOuter::Print( if (aIsPreview == IsPreview::Yes) { return !hasPrintCallbacks; } + if (StaticPrefs::print_prefer_system_dialog()) { + return true; + } return StaticPrefs::dom_window_print_fuzzing_block_while_printing(); }(); diff --git a/icecat/dom/base/nsObjectLoadingContent.cpp b/icecat/dom/base/nsObjectLoadingContent.cpp index 1fea511f7e..267ebe137f 100644 --- a/icecat/dom/base/nsObjectLoadingContent.cpp +++ b/icecat/dom/base/nsObjectLoadingContent.cpp @@ -1162,27 +1162,28 @@ nsresult nsObjectLoadingContent::LoadObject(bool aNotify, bool aForceLoad, } } - // Don't allow view-source scheme. - // view-source is the only scheme to which this applies at the moment due to - // potential timing attacks to read data from cross-origin documents. If this - // widens we should add a protocol flag for whether the scheme is only allowed - // in top and use something like nsNetUtil::NS_URIChainHasFlags. - if (mType != ObjectType::Fallback) { - nsCOMPtr tempURI = mURI; - nsCOMPtr nestedURI = do_QueryInterface(tempURI); - while (nestedURI) { - // view-source should always be an nsINestedURI, loop and check the - // scheme on this and all inner URIs that are also nested URIs. - if (tempURI->SchemeIs("view-source")) { - LOG(("OBJLC [%p]: Blocking as effective URI has view-source scheme", - this)); - mType = ObjectType::Fallback; + // https://html.spec.whatwg.org/multipage/iframe-embed-object.html#the-object-element + // requires that `embed` and `object` go through `Fetch` with mode=navigate, + // see 1.3.5. This will in https://fetch.spec.whatwg.org/#fetching plumb us + // through to https://fetch.spec.whatwg.org/#concept-main-fetch where in step + // 12 a switch is performed. Since `object` and `embed` have mode=navigate the + // result of https://fetch.spec.whatwg.org/#concept-scheme-fetch will decide + // if main fetch proceeds. We short-circuit that scheme-fetch here, inspecting + // if the scheme of `mURI` is one that would return a network error. The + // following schemes are allowed through in scheme fetch: + // "about", "blob", "data", "file", "http", "https". + // + // Some accessibility tests use our internal "chrome" scheme. + if (mType != ObjectType::Fallback && mURI) { + ObjectType type = ObjectType::Fallback; + for (const auto& candidate : + {"about", "blob", "chrome", "data", "file", "http", "https"}) { + if (mURI->SchemeIs(candidate)) { + type = mType; break; } - - nestedURI->GetInnerURI(getter_AddRefs(tempURI)); - nestedURI = do_QueryInterface(tempURI); } + mType = type; } // Items resolved as Image/Document are not candidates for content blocking, diff --git a/icecat/dom/base/nsSyncLoadService.cpp b/icecat/dom/base/nsSyncLoadService.cpp index e74f1855f1..6fdde66889 100644 --- a/icecat/dom/base/nsSyncLoadService.cpp +++ b/icecat/dom/base/nsSyncLoadService.cpp @@ -280,16 +280,27 @@ nsSyncLoader::GetInterface(const nsIID& aIID, void** aResult) { /* static */ nsresult nsSyncLoadService::LoadDocument( - nsIURI* aURI, nsContentPolicyType aContentPolicyType, + nsIURI* aURI, nsContentPolicyType aContentPolicyType, Document* aLoaderDoc, nsIPrincipal* aLoaderPrincipal, nsSecurityFlags aSecurityFlags, nsILoadGroup* aLoadGroup, nsICookieJarSettings* aCookieJarSettings, bool aForceToXML, ReferrerPolicy aReferrerPolicy, Document** aResult) { + MOZ_ASSERT(!!aLoaderPrincipal != !!aLoaderDoc); + nsCOMPtr channel; - nsresult rv = - NS_NewChannel(getter_AddRefs(channel), aURI, aLoaderPrincipal, - aSecurityFlags, aContentPolicyType, aCookieJarSettings, - nullptr, // PerformanceStorage - aLoadGroup); + nsresult rv; + if (aLoaderDoc) { + MOZ_ASSERT(!aCookieJarSettings); + rv = NS_NewChannel(getter_AddRefs(channel), aURI, aLoaderDoc, + aSecurityFlags, aContentPolicyType, + nullptr, // PerformanceStorage + aLoadGroup); + } else { + rv = NS_NewChannel(getter_AddRefs(channel), aURI, aLoaderPrincipal, + aSecurityFlags, aContentPolicyType, aCookieJarSettings, + nullptr, // PerformanceStorage + aLoadGroup); + } + NS_ENSURE_SUCCESS(rv, rv); if (!aForceToXML) { diff --git a/icecat/dom/base/nsSyncLoadService.h b/icecat/dom/base/nsSyncLoadService.h index 0f81f8ec80..c61f6693d9 100644 --- a/icecat/dom/base/nsSyncLoadService.h +++ b/icecat/dom/base/nsSyncLoadService.h @@ -48,9 +48,10 @@ class nsSyncLoadService { */ static nsresult LoadDocument( nsIURI* aURI, nsContentPolicyType aContentPolicyType, - nsIPrincipal* aLoaderPrincipal, nsSecurityFlags aSecurityFlags, - nsILoadGroup* aLoadGroup, nsICookieJarSettings* aCookieJarSettings, - bool aForceToXML, mozilla::dom::ReferrerPolicy aReferrerPolicy, + mozilla::dom::Document* aLoaderDoc, nsIPrincipal* aLoaderPrincipal, + nsSecurityFlags aSecurityFlags, nsILoadGroup* aLoadGroup, + nsICookieJarSettings* aCookieJarSettings, bool aForceToXML, + mozilla::dom::ReferrerPolicy aReferrerPolicy, mozilla::dom::Document** aResult); /** diff --git a/icecat/dom/base/test/test_bug353334.html b/icecat/dom/base/test/test_bug353334.html index 4fa30828a2..d857872835 100644 --- a/icecat/dom/base/test/test_bug353334.html +++ b/icecat/dom/base/test/test_bug353334.html @@ -7,7 +7,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=353334 Test for Bug 353334 - Mozilla Bug 353334 @@ -16,8 +15,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=353334 - -