icecat: update upstream v128.13.0-1gnu1

This commit is contained in:
Ark74 2025-08-07 14:40:00 -06:00
parent a8d305c270
commit 0cdda4f34e
51 changed files with 5487 additions and 4614 deletions

View file

@ -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
Merge day clobber 2025-06-23

View file

@ -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

View file

@ -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"
);
}

View file

@ -1 +1 @@
128.12.0
128.13.0

View file

@ -1 +1 @@
128.12.0esr
128.13.0esr

View file

@ -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

View file

@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files.
#--------------------------------------------------------
128.12.0
128.13.0

View file

@ -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 <devel@cmxsl.org> 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

View file

@ -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

View file

@ -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"
);
}

View file

@ -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
);
},

View file

@ -1,33 +0,0 @@
<html class="reftest-wait">
<head>
<script>
var obj;
function boo()
{
obj = document.getElementById("obj");
setScriptSrc();
}
function setScriptSrc()
{
obj.data = "javascript:setScriptSrc2();";
}
function setScriptSrc2()
{
obj.data = "javascript:void 0";
document.documentElement.removeAttribute("class");
}
</script>
</head>
<body onload="setTimeout(boo, 30);">
<object data="../../../testing/crashtest/images/tree.gif" id="obj">
</body>
</html>

View file

@ -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

View file

@ -4345,7 +4345,7 @@ nsresult nsFocusManager::GetNextTabbableContent(
rootElement = doc->GetRootElement();
}
if (aForward) {
nsIFrame* frame = invokerContent->GetPrimaryFrame();
if (nsIFrame* frame = invokerContent->GetPrimaryFrame()) {
int32_t tabIndex = frame->IsFocusable().mTabIndex;
if (tabIndex >= 0 &&
(aIgnoreTabIndex || aCurrentTabIndex == tabIndex)) {
@ -4357,6 +4357,7 @@ nsresult nsFocusManager::GetNextTabbableContent(
return rv;
}
}
}
} else if (invokerContent) {
nsIFrame* frame = invokerContent->GetPrimaryFrame();
if (frame && frame->IsFocusable()) {

View file

@ -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<WindowProxyHolder> 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<WindowProxyHolder> 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();
}();

View file

@ -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<nsIURI> tempURI = mURI;
nsCOMPtr<nsINestedURI> 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,

View file

@ -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<nsIChannel> channel;
nsresult rv =
NS_NewChannel(getter_AddRefs(channel), aURI, aLoaderPrincipal,
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) {

View file

@ -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);
/**

View file

@ -7,7 +7,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=353334
<title>Test for Bug 353334</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
<script>var x = "PASS"</script>
</head>
<body>
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=353334">Mozilla Bug 353334</a>
@ -16,8 +15,6 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=353334
<object id="two" data="about:blank"></object>
<iframe id="three" srcdoc="<body>test</body>"></iframe>
<object id="four" data="object_bug353334.html"></object>
<iframe id="five" src="javascript:parent.x"></iframe>
<object id="six" data="javascript:x"></object>
</p>
<div id="content" style="display: none">
@ -37,11 +34,6 @@ function doPrincipalTest(id) {
"Wrong principal for document in node with id='" + id + "'");
}
function doContentTest(id) {
is($(id).contentDocument.documentElement.textContent, "PASS",
"Script executed in wrong context in node with id='" + id + "'");
}
function checkPrincipal() {
ok(SpecialPowers.call_Instanceof(SpecialPowers.wrap(document).nodePrincipal, SpecialPowers.Ci.nsIPrincipal),
"Should be a principal");
@ -54,10 +46,6 @@ addLoadEvent(function() {
doPrincipalTest(i);
}
for (i of [ "five", "six" ]) {
doContentTest(i);
}
SimpleTest.finish();
});
</script>

View file

@ -921,7 +921,7 @@ void nsCSPContext::logToConsole(const char* aName,
/**
* Strip URI for reporting according to:
* https://w3c.github.io/webappsec-csp/#security-violation-reports
* https://w3c.github.io/webappsec-csp/#strip-url-for-use-in-reports
*
* @param aSelfURI
* The URI of the CSP policy. Used for cross-origin checks.
@ -936,34 +936,41 @@ void nsCSPContext::logToConsole(const char* aName,
void StripURIForReporting(nsIURI* aSelfURI, nsIURI* aURI,
const nsAString& aEffectiveDirective,
nsACString& outStrippedURI) {
// If the origin of aURI is a globally unique identifier (for example,
// aURI has a scheme of data, blob, or filesystem), then
// return the ASCII serialization of uris scheme.
bool isHttpOrWs = (aURI->SchemeIs("http") || aURI->SchemeIs("https") ||
aURI->SchemeIs("ws") || aURI->SchemeIs("wss"));
// Step 1. If urls scheme is not an HTTP(S) scheme, then return urls scheme.
// https://github.com/w3c/webappsec-csp/issues/735: We also allow WS(S) schemes.
if (!isHttpOrWs) {
// not strictly spec compliant, but what we really care about is
// http/https. If it's not http/https, then treat aURI
// as if it's a globally unique identifier and just return the scheme.
aURI->GetScheme(outStrippedURI);
return;
}
// Step 2. Set urls fragment to the empty string.
// Step 3. Set urls username to the empty string.
// Step 3. Set urls password to the empty string.
nsCOMPtr<nsIURI> stripped;
if (NS_FAILED(NS_MutateURI(aURI).SetRef(""_ns).SetUserPass(""_ns).Finalize(stripped))) {
// Mutating the URI failed for some reason, just return the scheme.
aURI->GetScheme(outStrippedURI);
return;
}
// Non-standard: https://github.com/w3c/webappsec-csp/issues/735
// For cross-origin URIs in frame-src also strip the path.
// This prevents detailed tracking of pages loaded into an iframe
// by the embedding page using a report-only policy.
if (aEffectiveDirective.EqualsLiteral("frame-src") ||
aEffectiveDirective.EqualsLiteral("object-src")) {
nsIScriptSecurityManager* ssm = nsContentUtils::GetSecurityManager();
if (NS_FAILED(ssm->CheckSameOriginURI(aSelfURI, aURI, false, false))) {
aURI->GetPrePath(outStrippedURI);
if (NS_FAILED(ssm->CheckSameOriginURI(aSelfURI, stripped, false, false))) {
stripped->GetPrePath(outStrippedURI);
return;
}
}
// Return aURI, with any fragment component removed.
aURI->GetSpecIgnoringRef(outStrippedURI);
// Step 4. Return the result of executing the URL serializer on url.
stripped->GetSpec(outStrippedURI);
}
nsresult nsCSPContext::GatherSecurityPolicyViolationEventData(

View file

@ -65,7 +65,8 @@ nsresult nsXMLPrettyPrinter::PrettyPrint(Document* aDocument,
nsCOMPtr<Document> xslDocument;
rv = nsSyncLoadService::LoadDocument(
xslUri, nsIContentPolicy::TYPE_XSLT, nsContentUtils::GetSystemPrincipal(),
xslUri, nsIContentPolicy::TYPE_XSLT, nullptr,
nsContentUtils::GetSystemPrincipal(),
nsILoadInfo::SEC_ALLOW_CROSS_ORIGIN_SEC_CONTEXT_IS_NULL, nullptr,
aDocument->CookieJarSettings(), true, ReferrerPolicy::_empty,
getter_AddRefs(xslDocument));

View file

@ -36,10 +36,9 @@ Result<txXPathNode, nsresult> txParseDocumentFromURI(const nsAString& aHref,
SyncOperationBehavior::eSuspendInput);
rv = nsSyncLoadService::LoadDocument(
documentURI, nsIContentPolicy::TYPE_INTERNAL_XMLHTTPREQUEST_SYNC,
loaderDocument->NodePrincipal(),
nsILoadInfo::SEC_REQUIRE_CORS_INHERITS_SEC_CONTEXT, loadGroup,
loaderDocument->CookieJarSettings(), true,
loaderDocument->GetReferrerPolicy(), getter_AddRefs(theDocument));
loaderDocument, nullptr,
nsILoadInfo::SEC_REQUIRE_CORS_INHERITS_SEC_CONTEXT, loadGroup, nullptr,
true, loaderDocument->GetReferrerPolicy(), getter_AddRefs(theDocument));
if (NS_FAILED(rv)) {
aErrMsg.AppendLiteral("Document load of ");

View file

@ -532,29 +532,24 @@ nsresult txSyncCompileObserver::loadURI(const nsAString& aUri,
nsresult rv = NS_NewURI(getter_AddRefs(uri), aUri);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIURI> referrerUri;
rv = NS_NewURI(getter_AddRefs(referrerUri), aReferrerUri);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIPrincipal> referrerPrincipal =
BasePrincipal::CreateContentPrincipal(referrerUri, OriginAttributes());
NS_ENSURE_TRUE(referrerPrincipal, NS_ERROR_FAILURE);
nsCOMPtr<nsPIDOMWindowInner> window =
do_QueryInterface(mProcessor->GetParentObject());
NS_ENSURE_TRUE(window, NS_ERROR_FAILURE);
nsCOMPtr<Document> loaderDoc = window->GetExtantDoc();
NS_ENSURE_TRUE(loaderDoc, NS_ERROR_FAILURE);
// This is probably called by js, a loadGroup for the channel doesn't
// make sense.
nsCOMPtr<nsINode> source;
if (mProcessor) {
source = mProcessor->GetSourceContentModel();
}
nsCOMPtr<nsINode> source = mProcessor->GetSourceContentModel();
dom::nsAutoSyncOperation sync(source ? source->OwnerDoc() : nullptr,
dom::SyncOperationBehavior::eSuspendInput);
nsCOMPtr<Document> document;
rv = nsSyncLoadService::LoadDocument(
uri, nsIContentPolicy::TYPE_XSLT, referrerPrincipal,
nsILoadInfo::SEC_REQUIRE_CORS_INHERITS_SEC_CONTEXT, nullptr,
source ? source->OwnerDoc()->CookieJarSettings() : nullptr, false,
aReferrerPolicy, getter_AddRefs(document));
uri, nsIContentPolicy::TYPE_XSLT, loaderDoc,
/* aLoaderPrincipal */ nullptr,
nsILoadInfo::SEC_REQUIRE_CORS_INHERITS_SEC_CONTEXT, nullptr, nullptr,
false, aReferrerPolicy, getter_AddRefs(document));
NS_ENSURE_SUCCESS(rv, rv);
rv = handleNode(document, aCompiler);

View file

@ -412,14 +412,15 @@ bool gfxFontEntry::TryGetColorGlyphs() {
class gfxFontEntry::FontTableBlobData {
public:
explicit FontTableBlobData(nsTArray<uint8_t>&& aBuffer)
: mTableData(std::move(aBuffer)), mHashtable(nullptr), mHashKey(0) {
: mTableData(std::move(aBuffer)), mFontEntry(nullptr), mHashKey(0) {
MOZ_COUNT_CTOR(FontTableBlobData);
}
~FontTableBlobData() {
MOZ_COUNT_DTOR(FontTableBlobData);
if (mHashtable && mHashKey) {
mHashtable->RemoveEntry(mHashKey);
if (mFontEntry && mHashKey) {
AutoWriteLock lock(mFontEntry->mLock);
mFontEntry->GetFontTableCache()->RemoveEntry(mHashKey);
}
}
@ -431,16 +432,15 @@ class gfxFontEntry::FontTableBlobData {
// Tell this FontTableBlobData to remove the HashEntry when this is
// destroyed.
void ManageHashEntry(nsTHashtable<FontTableHashEntry>* aHashtable,
uint32_t aHashKey) {
mHashtable = aHashtable;
void ManageHashEntry(gfxFontEntry* aFontEntry, uint32_t aHashKey) {
mFontEntry = aFontEntry;
mHashKey = aHashKey;
}
// Disconnect from the HashEntry (because the blob has already been
// removed from the hashtable).
void ForgetHashEntry() {
mHashtable = nullptr;
mFontEntry = nullptr;
mHashKey = 0;
}
@ -455,9 +455,10 @@ class gfxFontEntry::FontTableBlobData {
// The font table data block
nsTArray<uint8_t> mTableData;
// The blob destroy function needs to know the owning hashtable
// and the hashtable key, so that it can remove the entry.
nsTHashtable<FontTableHashEntry>* mHashtable;
// The blob destroy function needs to know the owning font entry
// so that it can take the font-entry's lock while modifying the
// hashtable; and the hashtable key, so that it can remove the entry.
gfxFontEntry* mFontEntry;
uint32_t mHashKey;
// not implemented
@ -465,7 +466,7 @@ class gfxFontEntry::FontTableBlobData {
};
hb_blob_t* gfxFontEntry::FontTableHashEntry::ShareTableAndGetBlob(
nsTArray<uint8_t>&& aTable, nsTHashtable<FontTableHashEntry>* aHashtable) {
nsTArray<uint8_t>&& aTable, gfxFontEntry* aFontEntry) {
Clear();
// adopts elements of aTable
mSharedBlobData = new FontTableBlobData(std::move(aTable));
@ -483,7 +484,7 @@ hb_blob_t* gfxFontEntry::FontTableHashEntry::ShareTableAndGetBlob(
// Tell the FontTableBlobData to remove this hash entry when destroyed.
// The hashtable does not keep a strong reference.
mSharedBlobData->ManageHashEntry(aHashtable, GetKey());
mSharedBlobData->ManageHashEntry(aFontEntry, GetKey());
return mBlob;
}
@ -565,7 +566,7 @@ hb_blob_t* gfxFontEntry::ShareFontTableAndGetBlob(uint32_t aTag,
return nullptr;
}
return entry->ShareTableAndGetBlob(std::move(*aBuffer), cache);
return entry->ShareTableAndGetBlob(std::move(*aBuffer), this);
}
already_AddRefed<gfxCharacterMap> gfxFontEntry::GetCMAPFromFontInfo(

View file

@ -872,11 +872,10 @@ class gfxFontEntry {
// Transfer (not copy) elements of aTable to a new hb_blob_t and
// return ownership to the caller. A weak reference to the blob is
// recorded in the hashtable entry so that others may use the same
// table.
hb_blob_t* ShareTableAndGetBlob(
nsTArray<uint8_t>&& aTable,
nsTHashtable<FontTableHashEntry>* aHashtable);
// recorded in the font entry's table cache so that others may use
// the same table.
hb_blob_t* ShareTableAndGetBlob(nsTArray<uint8_t>&& aTable,
gfxFontEntry* aFontEntry);
// Return a strong reference to the blob.
// Callers must hb_blob_destroy the returned blob.
@ -1076,7 +1075,7 @@ class gfxFontFamily {
// This is a no-op in cases where the family is explicitly populated by other
// means, rather than being asked to find its faces via system API.
virtual void FindStyleVariationsLocked(FontInfoData* aFontInfoData = nullptr)
MOZ_REQUIRES(mLock){};
MOZ_REQUIRES(mLock) {};
void FindStyleVariations(FontInfoData* aFontInfoData = nullptr) {
if (mHasStyles) {
return;

View file

@ -125,7 +125,7 @@ void gfxGDIFont::Initialize() {
LOGFONTW logFont;
if (mAdjustedSize == 0.0) {
if (mAdjustedSize <= 0.0) {
mAdjustedSize = GetAdjustedSize();
if (FontSizeAdjust::Tag(mStyle.sizeAdjustBasis) !=
FontSizeAdjust::Tag::None) {

View file

@ -148,11 +148,11 @@ var exp = asmLink(asmCompile(USE_ASM + "var x=0; function a() { return x|0 } fun
assertEq(exp.c(10), undefined);
assertEq(exp.a(), 10);
var f = asmLink(asmCompile(USE_ASM + "function f(i) { i=i|0; switch(i|0) { case 1: i=-1; break; case 133742: i=2; break; default: i=42; break } return i|0 } return f"));
var f = asmLink(asmCompile(USE_ASM + "function f(i) { i=i|0; switch(i|0) { case 1: i=-1; break; case 65520: i=2; break; default: i=42; break } return i|0 } return f"));
assertEq(f(1), -1);
assertEq(f(2), 42);
assertEq(f(133742), 2);
assertEq(f(133743), 42);
assertEq(f(65520), 2);
assertEq(f(65521), 42);
var f = asmLink(asmCompile(USE_ASM + "function f(i) { i=i|0; switch(i|0) { case 1: i=42; break; default: i=13 } return i|0 } return f"));
assertEq(f(-1), 13);

View file

@ -10108,6 +10108,37 @@ void CodeGenerator::visitWasmStoreSlot(LWasmStoreSlot* ins) {
emitWasmValueStore(ins, type, narrowingOp, src, addr);
}
void CodeGenerator::visitWasmStoreStackResult(LWasmStoreStackResult* ins) {
const LAllocation* value = ins->value();
Address addr(ToRegister(ins->stackResultsArea()), ins->offset());
switch (ins->type()) {
case MIRType::Int32:
masm.storePtr(ToRegister(value), addr);
break;
case MIRType::Float32:
masm.storeFloat32(ToFloatRegister(value), addr);
break;
case MIRType::Double:
masm.storeDouble(ToFloatRegister(value), addr);
break;
#ifdef ENABLE_WASM_SIMD
case MIRType::Simd128:
masm.storeUnalignedSimd128(ToFloatRegister(value), addr);
break;
#endif
case MIRType::WasmAnyRef:
masm.storePtr(ToRegister(value), addr);
break;
default:
MOZ_CRASH("unexpected type in ::visitWasmStoreStackResult");
}
}
void CodeGenerator::visitWasmStoreStackResultI64(LWasmStoreStackResultI64* ins) {
masm.store64(ToRegister64(ins->value()), Address(ToRegister(ins->stackResultsArea()), ins->offset()));
}
void CodeGenerator::visitWasmStoreElement(LWasmStoreElement* ins) {
MIRType type = ins->type();
MNarrowingOp narrowingOp = ins->narrowingOp();

View file

@ -3350,6 +3350,21 @@
offset: size_t
maybeTrap: MaybeTrapSiteInfo
- name: WasmStoreStackResult
operands:
value: WordSized
stackResultsArea: WordSized
arguments:
offset: size_t
type: MIRType
- name: WasmStoreStackResultI64
operands:
value: Int64
stackResultsArea: WordSized
arguments:
offset: size_t
- name: WasmStoreElement
operands:
base: WordSized

View file

@ -6123,13 +6123,12 @@ void LIRGenerator::visitWasmStoreStackResult(MWasmStoreStackResult* ins) {
LInstruction* lir;
if (value->type() == MIRType::Int64) {
lir = new (alloc())
LWasmStoreSlotI64(useInt64Register(value), useRegister(stackResultArea),
offs, mozilla::Nothing());
LWasmStoreStackResultI64(useInt64Register(value), useRegister(stackResultArea),
offs);
} else {
MOZ_ASSERT(value->type() != MIRType::WasmAnyRef);
lir = new (alloc())
LWasmStoreSlot(useRegister(value), useRegister(stackResultArea), offs,
value->type(), MNarrowingOp::None, mozilla::Nothing());
LWasmStoreStackResult(useRegister(value), useRegister(stackResultArea), offs,
value->type());
}
add(lir, ins);
}

View file

@ -312,9 +312,6 @@ AsyncGeneratorRequest* AsyncGeneratorRequest::create(
// Stesp 10-13.
[[nodiscard]] static bool AsyncGeneratorYield(
JSContext* cx, Handle<AsyncGeneratorObject*> generator, HandleValue value) {
// Step 13.a.
generator->setSuspendedYield();
// Step 10. Perform
// ! AsyncGeneratorCompleteStep(generator, completion, false,
// previousRealm).
@ -322,6 +319,9 @@ AsyncGeneratorRequest* AsyncGeneratorRequest::create(
return false;
}
// Step 13.a.
generator->setSuspendedYield();
// Steps 11-13.
return AsyncGeneratorDrainQueue(cx, generator);
}

View file

@ -1168,7 +1168,7 @@ static_assert(uint64_t(MaxArrayPayloadBytes) <
// These limits pertain to our WebAssembly implementation only.
static const unsigned MaxTryTableCatches = 10000;
static const unsigned MaxBrTableElems = 1000000;
static const unsigned MaxBrTableElems = 65520;
static const unsigned MaxCodeSectionBytes = MaxModuleBytes;
static const unsigned MaxBranchHintValue = 2;

View file

@ -2554,17 +2554,9 @@ class FunctionCompiler {
const ABIResult& result = iter.cur();
if (result.onStack()) {
MOZ_ASSERT(iter.remaining() > 1);
if (result.type().isRefRepr()) {
auto* store = MWasmStoreRef::New(
alloc(), instancePointer_, stackResultPointer_,
result.stackOffset(), values[i], AliasSet::WasmStackResult,
WasmPreBarrierKind::None);
curBlock_->add(store);
} else {
auto* store = MWasmStoreStackResult::New(
alloc(), stackResultPointer_, result.stackOffset(), values[i]);
curBlock_->add(store);
}
} else {
MOZ_ASSERT(iter.remaining() == 1);
MOZ_ASSERT(i + 1 == values.length());

View file

@ -13964,6 +13964,14 @@
value: false
mirror: always
# Whether we directly use the system print dialog to collect the user's print
# settings rather than using the tab-modal print preview dialog.
# Note: `print.always_print_silent` overrides this.
- name: print.prefer_system_dialog
type: RelaxedAtomicBool
value: false
mirror: always
# Whether we attempt to generate links in Save As PDF output.
- name: print.save_as_pdf.links.enabled
type: RelaxedAtomicBool

View file

@ -746,11 +746,6 @@ pref("browser.fixup.fallback-to-https", true);
// used in this case. See nsPrintSettingsService::InitPrintSettingsFromPrefs
// for the restrictions on which prefs can act as defaults.
// Whether we directly use the system print dialog to collect the user's print
// settings rather than using the tab-modal print preview dialog.
// Note: `print.always_print_silent` overrides this.
pref("print.prefer_system_dialog", false);
// Print/Preview Shrink-To-Fit won't shrink below 20% for text-ish documents.
pref("print.shrink-to-fit.scale-limit-percent", 20);

View file

@ -5,8 +5,8 @@
// Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat,
// rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported.
// VERSION: 2025-06-12_21-09-57_UTC
// COMMIT: a01fe523d7359fc523d8b164bcb16834a4f2d8ba
// VERSION: 2025-07-09_15-23-09_UTC
// COMMIT: c38a2f8e8862ad65d91af25dee90002c61329953
// Instructions on pulling and using this list can be found at https://publicsuffix.org/list/.
@ -6792,7 +6792,7 @@ org.zw
// newGTLDs
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-06-07T15:17:54Z
// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2025-07-09T15:20:49Z
// This list is auto-generated, don't edit it manually.
// aaa : American Automobile Association, Inc.
// https://www.iana.org/domains/root/db/aaa.html
@ -7006,7 +7006,7 @@ arab
// https://www.iana.org/domains/root/db/aramco.html
aramco
// archi : Identity Digital Limited
// archi : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/archi.html
archi
@ -7186,7 +7186,7 @@ best
// https://www.iana.org/domains/root/db/bestbuy.html
bestbuy
// bet : Identity Digital Limited
// bet : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/bet.html
bet
@ -7214,11 +7214,11 @@ bing
// https://www.iana.org/domains/root/db/bingo.html
bingo
// bio : Identity Digital Limited
// bio : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/bio.html
bio
// black : Identity Digital Limited
// black : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/black.html
black
@ -7238,7 +7238,7 @@ blog
// https://www.iana.org/domains/root/db/bloomberg.html
bloomberg
// blue : Identity Digital Limited
// blue : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/blue.html
blue
@ -8334,7 +8334,7 @@ glass
// https://www.iana.org/domains/root/db/gle.html
gle
// global : Identity Digital Limited
// global : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/global.html
global
@ -8410,7 +8410,7 @@ graphics
// https://www.iana.org/domains/root/db/gratis.html
gratis
// green : Identity Digital Limited
// green : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/green.html
green
@ -8818,7 +8818,7 @@ kia
// https://www.iana.org/domains/root/db/kids.html
kids
// kim : Identity Digital Limited
// kim : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/kim.html
kim
@ -8946,7 +8946,7 @@ lego
// https://www.iana.org/domains/root/db/lexus.html
lexus
// lgbt : Identity Digital Limited
// lgbt : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/lgbt.html
lgbt
@ -9002,7 +9002,7 @@ live
// https://www.iana.org/domains/root/db/living.html
living
// llc : Identity Digital Limited
// llc : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/llc.html
llc
@ -9038,7 +9038,7 @@ london
// https://www.iana.org/domains/root/db/lotte.html
lotte
// lotto : Identity Digital Limited
// lotto : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/lotto.html
lotto
@ -9482,7 +9482,7 @@ oracle
// https://www.iana.org/domains/root/db/orange.html
orange
// organic : Identity Digital Limited
// organic : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/organic.html
organic
@ -9542,7 +9542,7 @@ pay
// https://www.iana.org/domains/root/db/pccw.html
pccw
// pet : Identity Digital Limited
// pet : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/pet.html
pet
@ -9606,7 +9606,7 @@ pin
// https://www.iana.org/domains/root/db/ping.html
ping
// pink : Identity Digital Limited
// pink : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/pink.html
pink
@ -9646,7 +9646,7 @@ pnc
// https://www.iana.org/domains/root/db/pohl.html
pohl
// poker : Identity Digital Limited
// poker : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/poker.html
poker
@ -9686,7 +9686,7 @@ prof
// https://www.iana.org/domains/root/db/progressive.html
progressive
// promo : Identity Digital Limited
// promo : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/promo.html
promo
@ -9758,7 +9758,7 @@ realty
// https://www.iana.org/domains/root/db/recipes.html
recipes
// red : Identity Digital Limited
// red : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/red.html
red
@ -10074,7 +10074,7 @@ shell
// https://www.iana.org/domains/root/db/shia.html
shia
// shiksha : Identity Digital Limited
// shiksha : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/shiksha.html
shiksha
@ -10114,7 +10114,7 @@ singles
// https://www.iana.org/domains/root/db/site.html
site
// ski : Identity Digital Limited
// ski : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/ski.html
ski
@ -10686,7 +10686,7 @@ wanggou
// https://www.iana.org/domains/root/db/watch.html
watch
// watches : Identity Digital Limited
// watches : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/watches.html
watches
@ -10866,7 +10866,7 @@ xin
// https://www.iana.org/domains/root/db/xn--5tzm5g.html
网站
// xn--6frz82g : Identity Digital Limited
// xn--6frz82g : Identity Digital Domains Limited
// https://www.iana.org/domains/root/db/xn--6frz82g.html
移动
@ -14668,6 +14668,10 @@ is-local.org
// Submitted by Alexander Varwijk <security@getopensocial.com>
opensocial.site
// OpenAI : https://openai.com
// Submitted by Thomas Shadwell <security@openai.com>
*.oaiusercontent.com
// OpenCraft GmbH : http://opencraft.com/
// Submitted by Sven Marnach <sven@opencraft.com>
opencraft.hosting
@ -15122,32 +15126,53 @@ logoip.com
logoip.de
// Scaleway : https://www.scaleway.com/
// Submitted by Rémy Léone <rleone@scaleway.com>
// Submitted by Scaleway PSL Maintainer <psl-maintainers@scaleway.com>
fr-par-1.baremetal.scw.cloud
fr-par-2.baremetal.scw.cloud
nl-ams-1.baremetal.scw.cloud
cockpit.fr-par.scw.cloud
ddl.fr-par.scw.cloud
dtwh.fr-par.scw.cloud
fnc.fr-par.scw.cloud
functions.fnc.fr-par.scw.cloud
ifr.fr-par.scw.cloud
k8s.fr-par.scw.cloud
nodes.k8s.fr-par.scw.cloud
kafk.fr-par.scw.cloud
mgdb.fr-par.scw.cloud
rdb.fr-par.scw.cloud
s3.fr-par.scw.cloud
s3-website.fr-par.scw.cloud
scbl.fr-par.scw.cloud
whm.fr-par.scw.cloud
priv.instances.scw.cloud
pub.instances.scw.cloud
k8s.scw.cloud
cockpit.nl-ams.scw.cloud
ddl.nl-ams.scw.cloud
dtwh.nl-ams.scw.cloud
ifr.nl-ams.scw.cloud
k8s.nl-ams.scw.cloud
nodes.k8s.nl-ams.scw.cloud
kafk.nl-ams.scw.cloud
mgdb.nl-ams.scw.cloud
rdb.nl-ams.scw.cloud
s3.nl-ams.scw.cloud
s3-website.nl-ams.scw.cloud
scbl.nl-ams.scw.cloud
whm.nl-ams.scw.cloud
cockpit.pl-waw.scw.cloud
ddl.pl-waw.scw.cloud
dtwh.pl-waw.scw.cloud
ifr.pl-waw.scw.cloud
k8s.pl-waw.scw.cloud
nodes.k8s.pl-waw.scw.cloud
kafk.pl-waw.scw.cloud
mgdb.pl-waw.scw.cloud
rdb.pl-waw.scw.cloud
s3.pl-waw.scw.cloud
s3-website.pl-waw.scw.cloud
scbl.pl-waw.scw.cloud
scalebook.scw.cloud
smartlabeling.scw.cloud
dedibox.fr
@ -15647,8 +15672,8 @@ dnsupdate.info
// Submitted by Gavin Brown <gavin.brown@centralnic.com>
us.org
// V.UA Domain Administrator : https://domain.v.ua/
// Submitted by Serhii Rostilo <sergey@rostilo.kiev.ua>
// V.UA Domain Registry: https://www.v.ua/
// Submitted by Serhii Rostilo <admin@v.ua>
v.ua
// Val Town, Inc : https://val.town/
@ -15673,6 +15698,10 @@ now.sh
// Submitted by Adnan RIHAN <hostmaster@v-info.info>
v-info.info
// VistaBlog : https://vistablog.ir/
// Submitted by Hossein Piri <info@vistablog.ir>
vistablog.ir
// Viva Republica, Inc. : https://toss.im/
// Submitted by Deus Team <deus@toss.im>
deus-canvas.com

View file

@ -736,4 +736,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1758539902731000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1760959658369000);

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,230 @@
{
"data": [
{
"name": "Edge",
"schema": 1751069103311,
"status": "planned",
"version": "141",
"browserid": "edge",
"id": "1276177b-8e2c-4677-9839-c39cdb272d9f",
"last_modified": 1751266171953
},
{
"name": "Edge",
"schema": 1751069103253,
"status": "nightly",
"version": "140",
"browserid": "edge",
"id": "2f6ded78-f30e-4477-9175-c32d040041c7",
"last_modified": 1751266171946
},
{
"name": "Edge",
"schema": 1751069103200,
"status": "beta",
"version": "139",
"browserid": "edge",
"id": "c652a9a5-3a1c-4272-8a52-68dd4e9ae1b4",
"last_modified": 1751266171943
},
{
"name": "Edge",
"schema": 1751069103137,
"status": "current",
"version": "138",
"browserid": "edge",
"id": "c9aa191e-ce6c-4f14-89b3-67877f64bc92",
"last_modified": 1751266171940
},
{
"name": "WebView Android",
"schema": 1750809904832,
"status": "planned",
"version": "141",
"browserid": "webview_android",
"id": "63e64099-e7d1-4b27-9a5d-ae173595a61f",
"last_modified": 1750835286636
},
{
"name": "IceCat for Android",
"schema": 1750809904539,
"status": "planned",
"version": "143",
"browserid": "icecat_android",
"id": "1202f99c-4161-4075-a5f5-01dcb1734bff",
"last_modified": 1750835286632
},
{
"name": "IceCat",
"schema": 1750809904149,
"status": "planned",
"version": "143",
"browserid": "icecat",
"id": "8c64af12-6643-49a8-bf55-f3941779399c",
"last_modified": 1750835286629
},
{
"name": "Chrome Android",
"schema": 1750809903778,
"status": "planned",
"version": "141",
"browserid": "chrome_android",
"id": "1fccf4ba-14fb-4641-b9c9-5b02bbb528a5",
"last_modified": 1750835286626
},
{
"name": "Chrome",
"schema": 1750809903446,
"status": "planned",
"version": "141",
"browserid": "chrome",
"id": "7cdd8e9c-d3fc-47b3-bfcc-f63ddfccb7fc",
"last_modified": 1750835286622
},
{
"name": "IceCat for Android",
"schema": 1750809904473,
"status": "nightly",
"version": "142",
"browserid": "icecat_android",
"id": "78d60df0-cb7e-4949-9917-ed8fdc503382",
"last_modified": 1750835286600
},
{
"name": "Chrome Android",
"schema": 1750809903707,
"status": "nightly",
"version": "140",
"browserid": "chrome_android",
"id": "794cc316-0785-4962-847c-f31ac285f847",
"last_modified": 1750835286596
},
{
"name": "WebView Android",
"schema": 1750809904778,
"status": "nightly",
"version": "140",
"browserid": "webview_android",
"id": "7bbb223e-ada4-4f53-babb-b93a73927329",
"last_modified": 1750835286593
},
{
"name": "Chrome",
"schema": 1750809903376,
"status": "nightly",
"version": "140",
"browserid": "chrome",
"id": "60172b96-7711-458b-9b0e-2dd55255bf05",
"last_modified": 1750835286590
},
{
"name": "IceCat",
"schema": 1750809904090,
"status": "nightly",
"version": "142",
"browserid": "icecat",
"id": "a5323a0e-8201-4c4b-a5fd-ff89431cc98b",
"last_modified": 1750835286587
},
{
"name": "WebView Android",
"schema": 1750809904709,
"status": "beta",
"version": "139",
"browserid": "webview_android",
"id": "fdb5c123-2409-4e93-bc2c-e9d482c3eabf",
"last_modified": 1750835286583
},
{
"name": "Chrome",
"schema": 1750809903304,
"status": "beta",
"version": "139",
"browserid": "chrome",
"id": "6ffd90da-55f8-4759-8049-2b3696d34d42",
"last_modified": 1750835286580
},
{
"name": "IceCat",
"schema": 1750809904038,
"status": "beta",
"version": "141",
"browserid": "icecat",
"id": "e6ac475d-0038-451e-b875-e71a26f26c1f",
"last_modified": 1750835286577
},
{
"name": "Chrome Android",
"schema": 1750809903644,
"status": "beta",
"version": "139",
"browserid": "chrome_android",
"id": "6dc0e4cb-560c-46ad-996f-2e65cd9a78bf",
"last_modified": 1750835286574
},
{
"name": "IceCat for Android",
"schema": 1750809904418,
"status": "beta",
"version": "141",
"browserid": "icecat_android",
"id": "e2a35b06-f07e-417d-98c6-f9eafdff546b",
"last_modified": 1750835286571
},
{
"name": "WebView Android",
"schema": 1750809904659,
"status": "current",
"version": "138",
"browserid": "webview_android",
"id": "ca0f7fe1-7bf2-4154-ab36-d759e08d0276",
"last_modified": 1750835286568
},
{
"name": "Chrome Android",
"schema": 1750809903588,
"status": "current",
"version": "138",
"browserid": "chrome_android",
"id": "485be132-bf7e-4586-af0f-8e731365b8c8",
"last_modified": 1750835286565
},
{
"name": "IceCat for Android",
"schema": 1750809904356,
"status": "current",
"version": "140",
"browserid": "icecat_android",
"id": "29671e58-5233-4969-8f3a-b3208e3b8f17",
"last_modified": 1750835286562
},
{
"name": "IceCat",
"schema": 1750809903978,
"status": "current",
"version": "140",
"browserid": "icecat",
"id": "9949da65-f6be-41f4-9c9d-73bc27b4d2a0",
"last_modified": 1750835286558
},
{
"name": "Chrome",
"schema": 1750809903230,
"status": "current",
"version": "138",
"browserid": "chrome",
"id": "ddeb0464-e5e9-4b00-816f-211de9a4e818",
"last_modified": 1750835286555
},
{
"name": "Opera Android",
"schema": 1750464302932,
"status": "current",
"version": "90",
"browserid": "opera_android",
"id": "7d7cd6cd-4527-49c8-a8eb-9ec00f9af8d6",
"last_modified": 1750757900185
},
{
"name": "Safari",
"schema": 1749550693771,
@ -72,195 +297,6 @@
"id": "1f2765cf-a177-4249-b5f9-fdf271727bb7",
"last_modified": 1748854785996
},
{
"name": "Edge",
"schema": 1748649903447,
"status": "current",
"version": "137",
"browserid": "edge",
"id": "fd0c0e43-c139-4526-8f78-16d479f71267",
"last_modified": 1748854785992
},
{
"name": "IceCat for Android",
"schema": 1748390704665,
"status": "planned",
"version": "142",
"browserid": "icecat_android",
"id": "78d60df0-cb7e-4949-9917-ed8fdc503382",
"last_modified": 1748418497438
},
{
"name": "Chrome Android",
"schema": 1748390704003,
"status": "planned",
"version": "140",
"browserid": "chrome_android",
"id": "794cc316-0785-4962-847c-f31ac285f847",
"last_modified": 1748418497435
},
{
"name": "WebView Android",
"schema": 1748390704998,
"status": "planned",
"version": "140",
"browserid": "webview_android",
"id": "7bbb223e-ada4-4f53-babb-b93a73927329",
"last_modified": 1748418497431
},
{
"name": "Chrome",
"schema": 1748390703679,
"status": "planned",
"version": "140",
"browserid": "chrome",
"id": "60172b96-7711-458b-9b0e-2dd55255bf05",
"last_modified": 1748418497427
},
{
"name": "IceCat",
"schema": 1748390704332,
"status": "planned",
"version": "142",
"browserid": "icecat",
"id": "a5323a0e-8201-4c4b-a5fd-ff89431cc98b",
"last_modified": 1748418497422
},
{
"name": "IceCat",
"schema": 1748390704131,
"status": "current",
"version": "139",
"browserid": "icecat",
"id": "5135fcdf-d80b-4297-a169-8a0670ec43ea",
"last_modified": 1748418497417
},
{
"name": "IceCat for Android",
"schema": 1748390704463,
"status": "current",
"version": "139",
"browserid": "icecat_android",
"id": "9cb04ffb-8d53-4c9b-87bf-4fef786c727f",
"last_modified": 1748418497412
},
{
"name": "Chrome",
"schema": 1748390703481,
"status": "current",
"version": "137",
"browserid": "chrome",
"id": "aeaf5cc7-6eb8-4376-9969-af6970d3a115",
"last_modified": 1748418497408
},
{
"name": "Chrome Android",
"schema": 1748390703816,
"status": "current",
"version": "137",
"browserid": "chrome_android",
"id": "5238773e-4c08-43c8-b225-7f26aae817d1",
"last_modified": 1748418497405
},
{
"name": "WebView Android",
"schema": 1748390704805,
"status": "current",
"version": "137",
"browserid": "webview_android",
"id": "a68b6fa2-9dda-4338-b854-2b0b1fd089bc",
"last_modified": 1748418497400
},
{
"name": "WebView Android",
"schema": 1748390704935,
"status": "nightly",
"version": "139",
"browserid": "webview_android",
"id": "fdb5c123-2409-4e93-bc2c-e9d482c3eabf",
"last_modified": 1748418497380
},
{
"name": "Chrome",
"schema": 1748390703619,
"status": "nightly",
"version": "139",
"browserid": "chrome",
"id": "6ffd90da-55f8-4759-8049-2b3696d34d42",
"last_modified": 1748418497376
},
{
"name": "IceCat",
"schema": 1748390704265,
"status": "nightly",
"version": "141",
"browserid": "icecat",
"id": "e6ac475d-0038-451e-b875-e71a26f26c1f",
"last_modified": 1748418497372
},
{
"name": "Chrome Android",
"schema": 1748390703945,
"status": "nightly",
"version": "139",
"browserid": "chrome_android",
"id": "6dc0e4cb-560c-46ad-996f-2e65cd9a78bf",
"last_modified": 1748418497368
},
{
"name": "IceCat for Android",
"schema": 1748390704600,
"status": "nightly",
"version": "141",
"browserid": "icecat_android",
"id": "e2a35b06-f07e-417d-98c6-f9eafdff546b",
"last_modified": 1748418497363
},
{
"name": "WebView Android",
"schema": 1748390704866,
"status": "beta",
"version": "138",
"browserid": "webview_android",
"id": "ca0f7fe1-7bf2-4154-ab36-d759e08d0276",
"last_modified": 1748418497359
},
{
"name": "Chrome Android",
"schema": 1748390703880,
"status": "beta",
"version": "138",
"browserid": "chrome_android",
"id": "485be132-bf7e-4586-af0f-8e731365b8c8",
"last_modified": 1748418497354
},
{
"name": "IceCat for Android",
"schema": 1748390704532,
"status": "beta",
"version": "140",
"browserid": "icecat_android",
"id": "29671e58-5233-4969-8f3a-b3208e3b8f17",
"last_modified": 1748418497349
},
{
"name": "IceCat",
"schema": 1748390704196,
"status": "beta",
"version": "140",
"browserid": "icecat",
"id": "9949da65-f6be-41f4-9c9d-73bc27b4d2a0",
"last_modified": 1748418497345
},
{
"name": "Chrome",
"schema": 1748390703553,
"status": "beta",
"version": "138",
"browserid": "chrome",
"id": "ddeb0464-e5e9-4b00-816f-211de9a4e818",
"last_modified": 1748418497341
},
{
"name": "Opera",
"schema": 1747440304496,
@ -270,15 +306,6 @@
"id": "f6db5e03-957c-4d2b-a74b-d537ea26be3f",
"last_modified": 1747642859915
},
{
"name": "Edge",
"schema": 1747440304162,
"status": "planned",
"version": "139",
"browserid": "edge",
"id": "c652a9a5-3a1c-4272-8a52-68dd4e9ae1b4",
"last_modified": 1747642859911
},
{
"name": "Opera",
"schema": 1747440304433,
@ -297,15 +324,6 @@
"id": "06763118-b650-4937-8d4c-55de017faa53",
"last_modified": 1747642859896
},
{
"name": "Edge",
"schema": 1747440304090,
"status": "nightly",
"version": "138",
"browserid": "edge",
"id": "c9aa191e-ce6c-4f14-89b3-67877f64bc92",
"last_modified": 1747642859892
},
{
"name": "Node.js",
"schema": 1747181110151,
@ -315,15 +333,6 @@
"id": "9e4eb0f8-808c-4ae9-b137-bf0172b24166",
"last_modified": 1747199364436
},
{
"name": "Opera Android",
"schema": 1745971504319,
"status": "current",
"version": "89",
"browserid": "opera_android",
"id": "0eafe050-dc00-409b-927e-e5eb457e33a6",
"last_modified": 1745991620101
},
{
"name": "Node.js",
"schema": 1734480302872,
@ -333,24 +342,6 @@
"id": "5ba3aee3-2875-4a2c-938c-0f1f43e28488",
"last_modified": 1735832995466
},
{
"name": "IceCat for Android",
"schema": 1723593904156,
"status": "esr",
"version": "128",
"browserid": "icecat_android",
"id": "05aa43eb-3966-4fc1-8b33-53c493448d2d",
"last_modified": 1723628503801
},
{
"name": "IceCat",
"schema": 1723593903753,
"status": "esr",
"version": "128",
"browserid": "icecat",
"id": "565161dc-52d8-4cb1-8cf3-8171b960f9e4",
"last_modified": 1723628503798
},
{
"name": "Quest Browser",
"schema": 1665650596430,
@ -361,5 +352,5 @@
"last_modified": 1665656484764
}
],
"timestamp": 1749710045183
"timestamp": 1751266171953
}

View file

@ -4287,7 +4287,7 @@
},
"id": "04e99a38-13ee-47d8-8aa4-64482b3dea99",
"identifier": "ddg",
"last_modified": 1754,
"last_modified": 1756,
"recordType": "engine",
"schema": 1718698362015,
"variants": [
@ -4301,7 +4301,7 @@
{
"globalDefault": "ddg",
"id": "f3891684-2348-4e7a-9765-0c5d2d0ab1b9",
"last_modified": 1753,
"last_modified": 1755,
"recordType": "defaultEngines",
"schema": 1702901837584,
"specificDefaults": []

View file

@ -361,7 +361,7 @@
"id": "wikipedia@search.mozilla.org"
},
"id": "3f3beb1d-e32e-40a4-b6ed-56741803e1d8",
"last_modified": 1754
"last_modified": 1756
},
{
"params": {
@ -404,8 +404,8 @@
"id": "ddg@search.mozilla.org"
},
"id": "c0b26c0e-63e6-4235-b2ce-5f16b6a8bf87",
"last_modified": 1753
"last_modified": 1755
}
],
"timestamp": 1754
"timestamp": 1756
}

View file

@ -1,5 +1,303 @@
{
"data": [
{
"schema": 1751854531997,
"subframes": [],
"components": [
{
"type": "ad_carousel",
"included": {
"parent": {
"selector": ".adsMvCarousel"
},
"related": {
"selector": ".cr"
},
"children": [
{
"selector": ".pa_item",
"countChildren": true
}
]
}
},
{
"type": "ad_link",
"excluded": {
"parent": {
"selector": "aside"
}
},
"included": {
"parent": {
"selector": ".sb_adTA"
},
"children": [
{
"type": "ad_sitelink",
"selector": ".b_vlist2col"
}
]
}
},
{
"type": "ad_sidebar",
"included": {
"parent": {
"selector": "aside"
},
"children": [
{
"selector": ".pa_item, .sb_adTA",
"countChildren": true
}
]
}
},
{
"type": "incontent_searchbox",
"topDown": true,
"included": {
"parent": {
"selector": "form#sb_form"
},
"related": {
"selector": "#sw_as"
},
"children": [
{
"selector": "input[name='q']"
}
]
}
},
{
"type": "cookie_banner",
"topDown": true,
"included": {
"parent": {
"selector": "div#bnp_cookie_banner"
},
"children": [
{
"selector": "button#bnp_btn_accept",
"eventListeners": [
{
"action": "clicked_accept",
"eventType": "click"
}
]
},
{
"selector": "button#bnp_btn_reject",
"eventListeners": [
{
"action": "clicked_reject",
"eventType": "click"
}
]
},
{
"selector": "a#bnp_btn_preference",
"eventListeners": [
{
"action": "clicked_more_options",
"eventType": "click"
}
]
}
]
}
},
{
"type": "ad_link",
"default": true
}
],
"shoppingTab": {
"regexp": "^/shop?",
"selector": "#b-scopeListItem-shop a"
},
"taggedCodes": [
"MOZ2",
"MOZ4",
"MOZ5",
"MOZA",
"MOZB",
"MOZD",
"MOZE",
"MOZI",
"MOZL",
"MOZM",
"MOZO",
"MOZR",
"MOZT",
"MOZW",
"MOZX",
"MZABT",
"MZCP",
"MZTOF",
"MZSL01",
"MZSL02",
"MZSL03"
],
"telemetryId": "bing",
"organicCodes": [],
"codeParamName": "pc",
"queryParamName": "q",
"followOnCookies": [
{
"host": "www.bing.com",
"name": "_SS",
"codeParamName": "PC",
"extraCodePrefixes": [],
"extraCodeParamName": ""
},
{
"host": "www.bing.com",
"name": "SRCHS",
"codeParamName": "PC",
"extraCodePrefixes": [],
"extraCodeParamName": ""
},
{
"host": "cn.bing.com",
"name": "_SS",
"codeParamName": "PC",
"extraCodePrefixes": [],
"extraCodeParamName": ""
},
{
"host": "cn.bing.com",
"name": "SRCHS",
"codeParamName": "PC",
"extraCodePrefixes": [],
"extraCodeParamName": ""
}
],
"queryParamNames": [
"q"
],
"domainExtraction": {
"ads": [
{
"method": "textContent",
"selectors": "#b_results .b_ad .b_attribution cite, .adsMvCarousel cite, aside cite"
}
],
"nonAds": [
{
"method": "textContent",
"selectors": "#b_results .b_algo .b_attribution cite"
}
]
},
"searchPageRegexp": "^https://(?:cn|www)\\.bing\\.com/search",
"nonAdsLinkRegexps": [
"^https://(?:cn|www).bing.com/ck/a"
],
"searchPageMatches": [
"https://(?:cn|www).bing.com/search*"
],
"extraAdServersRegexps": [
"^https://(?:cn|www)\\.bing\\.com/acli?c?k"
],
"id": "e1eec461-f1f3-40de-b94b-3b670b78108c",
"last_modified": 1751891587705
},
{
"schema": 1750817732643,
"subframes": [
{
"regexp": "^https://syndicatedsearch\\.goog/afs/ads",
"inspectRegexpInSERP": true,
"inspectRegexpInParent": true
}
],
"components": [
{
"type": "ad_carousel",
"included": {
"parent": {
"selector": ".product-ads-carousel"
},
"related": {
"selector": ".snippet__control"
},
"children": [
{
"selector": ".product-ads-carousel__item",
"countChildren": true
}
]
}
},
{
"type": "ad_link",
"included": {
"parent": {
"selector": ".ad-result"
},
"children": [
{
"type": "ad_sitelink",
"selector": ".result__extra-content .deep-links--descriptions"
}
]
}
},
{
"type": "incontent_searchbox",
"topDown": true,
"included": {
"parent": {
"selector": "form.search-form"
},
"related": {
"selector": ".search-form__suggestions"
},
"children": [
{
"selector": ".search-form__input, .search-form__submit"
}
]
}
},
{
"type": "ad_link",
"default": true
}
],
"shoppingTab": {
"regexp": "/shopping?",
"selector": "nav li[data-test-id='search-navigation-item-shopping'] a"
},
"taggedCodes": [
"mzl",
"813cf1dd",
"16eeffc4"
],
"telemetryId": "ecosia",
"organicCodes": [],
"codeParamName": "tt",
"queryParamName": "q",
"queryParamNames": [
"q"
],
"searchPageRegexp": "^https://www\\.ecosia\\.org/",
"filter_expression": "env.version|versionCompare(\"110.0a1\")>=0",
"searchPageMatches": [
"https://www.ecosia.org/*"
],
"expectedOrganicCodes": [],
"extraAdServersRegexps": [
"^https://www\\.bing\\.com/acli?c?k",
"^https://syndicatedsearch\\.goog/aclk\\?",
"^https://www\\.googleadservices\\.com/pagead/aclk\\?"
],
"id": "9a487171-3a06-4647-8866-36250ec84f3a",
"last_modified": 1750880107190
},
{
"schema": 1748966468517,
"subframes": [],
@ -295,197 +593,6 @@
"id": "635a3325-1995-42d6-be09-dbe4b2a95453",
"last_modified": 1749153997368
},
{
"schema": 1747075599737,
"subframes": [],
"components": [
{
"type": "ad_carousel",
"included": {
"parent": {
"selector": ".adsMvCarousel"
},
"related": {
"selector": ".cr"
},
"children": [
{
"selector": ".pa_item",
"countChildren": true
}
]
}
},
{
"type": "ad_link",
"excluded": {
"parent": {
"selector": "aside"
}
},
"included": {
"parent": {
"selector": ".sb_adTA"
},
"children": [
{
"type": "ad_sitelink",
"selector": ".b_vlist2col"
}
]
}
},
{
"type": "ad_sidebar",
"included": {
"parent": {
"selector": "aside"
},
"children": [
{
"selector": ".pa_item, .sb_adTA",
"countChildren": true
}
]
}
},
{
"type": "incontent_searchbox",
"topDown": true,
"included": {
"parent": {
"selector": "form#sb_form"
},
"related": {
"selector": "#sw_as"
},
"children": [
{
"selector": "input[name='q']"
}
]
}
},
{
"type": "cookie_banner",
"topDown": true,
"included": {
"parent": {
"selector": "div#bnp_cookie_banner"
},
"children": [
{
"selector": "button#bnp_btn_accept",
"eventListeners": [
{
"action": "clicked_accept",
"eventType": "click"
}
]
},
{
"selector": "button#bnp_btn_reject",
"eventListeners": [
{
"action": "clicked_reject",
"eventType": "click"
}
]
},
{
"selector": "a#bnp_btn_preference",
"eventListeners": [
{
"action": "clicked_more_options",
"eventType": "click"
}
]
}
]
}
},
{
"type": "ad_link",
"default": true
}
],
"shoppingTab": {
"regexp": "^/shop?",
"selector": "#b-scopeListItem-shop a"
},
"taggedCodes": [
"MOZ2",
"MOZ4",
"MOZ5",
"MOZA",
"MOZB",
"MOZD",
"MOZE",
"MOZI",
"MOZL",
"MOZM",
"MOZO",
"MOZR",
"MOZT",
"MOZW",
"MOZX",
"MZABT",
"MZCP",
"MZTOF",
"MZSL01",
"MZSL02",
"MZSL03"
],
"telemetryId": "bing",
"organicCodes": [],
"codeParamName": "pc",
"queryParamName": "q",
"followOnCookies": [
{
"host": "www.bing.com",
"name": "_SS",
"codeParamName": "PC",
"extraCodePrefixes": [],
"extraCodeParamName": ""
},
{
"host": "www.bing.com",
"name": "SRCHS",
"codeParamName": "PC",
"extraCodePrefixes": [],
"extraCodeParamName": ""
}
],
"queryParamNames": [
"q"
],
"domainExtraction": {
"ads": [
{
"method": "textContent",
"selectors": "#b_results .b_ad .b_attribution cite, .adsMvCarousel cite, aside cite"
}
],
"nonAds": [
{
"method": "textContent",
"selectors": "#b_results .b_algo .b_attribution cite"
}
]
},
"searchPageRegexp": "^https://www\\.bing\\.com/search",
"nonAdsLinkRegexps": [
"^https://www.bing.com/ck/a"
],
"searchPageMatches": [
"https://www.bing.com/search*"
],
"extraAdServersRegexps": [
"^https://www\\.bing\\.com/acli?c?k"
],
"id": "e1eec461-f1f3-40de-b94b-3b670b78108c",
"last_modified": 1747257937608
},
{
"isSPA": true,
"schema": 1741189704472,
@ -757,99 +864,7 @@
],
"id": "19c434a3-d173-4871-9743-290ac92a3f6a",
"last_modified": 1741781945955
},
{
"schema": 1741189700650,
"subframes": [
{
"regexp": "^https://syndicatedsearch\\.goog/afs/ads",
"inspectRegexpInSERP": true,
"inspectRegexpInParent": true
}
],
"components": [
{
"type": "ad_carousel",
"included": {
"parent": {
"selector": ".product-ads-carousel"
},
"related": {
"selector": ".snippet__control"
},
"children": [
{
"selector": ".product-ads-carousel__item",
"countChildren": true
}
]
}
},
{
"type": "ad_link",
"included": {
"parent": {
"selector": ".ad-result"
},
"children": [
{
"type": "ad_sitelink",
"selector": ".result__extra-content .deep-links--descriptions"
}
]
}
},
{
"type": "incontent_searchbox",
"topDown": true,
"included": {
"parent": {
"selector": "form.search-form"
},
"related": {
"selector": ".search-form__suggestions"
},
"children": [
{
"selector": ".search-form__input, .search-form__submit"
}
]
}
},
{
"type": "ad_link",
"default": true
}
],
"shoppingTab": {
"regexp": "/shopping?",
"selector": "nav li[data-test-id='search-navigation-item-shopping'] a"
},
"taggedCodes": [
"mzl",
"813cf1dd",
"16eeffc4"
],
"telemetryId": "ecosia",
"organicCodes": [],
"codeParamName": "tt",
"queryParamName": "q",
"queryParamNames": [
"q"
],
"searchPageRegexp": "^https://www\\.ecosia\\.org/",
"filter_expression": "env.version|versionCompare(\"110.0a1\")>=0",
"searchPageMatches": [
"https://www.ecosia.org/*"
],
"expectedOrganicCodes": [],
"extraAdServersRegexps": [
"^https://www\\.bing\\.com/acli?c?k",
"^https://syndicatedsearch\\.goog/aclk\\?"
],
"id": "9a487171-3a06-4647-8866-36250ec84f3a",
"last_modified": 1741781945953
}
],
"timestamp": 1749153997368
"timestamp": 1751891587705
}

File diff suppressed because it is too large Load diff

View file

@ -1,124 +1,24 @@
{
"changes": [
{
"last_modified": 1748485472559,
"bucket": "blocklists",
"collection": "gfx"
},
{
"last_modified": 1749818177432,
"bucket": "blocklists",
"collection": "addons-bloomfilters"
},
{
"last_modified": 1604940558744,
"bucket": "blocklists",
"collection": "addons"
},
{
"last_modified": 1749710045183,
"bucket": "main",
"collection": "devtools-compatibility-browsers"
"last_modified": 1748485472559,
"bucket": "blocklists",
"collection": "gfx"
},
{
"last_modified": 1749153997368,
"bucket": "main",
"collection": "search-telemetry-v2"
"last_modified": 1752258970807,
"bucket": "blocklists",
"collection": "addons-bloomfilters"
},
{
"last_modified": 1544035467383,
"bucket": "main",
"collection": "sites-classification"
},
{
"last_modified": 1749069444811,
"bucket": "main",
"collection": "translations-wasm"
},
{
"last_modified": 1633983928590,
"bucket": "main",
"collection": "top-sites"
},
{
"last_modified": 1745933974542,
"bucket": "main",
"collection": "search-config-v2"
},
{
"last_modified": 0,
"bucket": "main",
"collection": "search-config-overrides"
},
{
"last_modified": 1725526980846,
"bucket": "main",
"collection": "cookie-banner-rules-list"
},
{
"last_modified": 1673270322227,
"bucket": "main",
"collection": "language-dictionaries"
},
{
"last_modified": 1749763158840,
"bucket": "main",
"collection": "translations-models"
},
{
"last_modified": 1605801189258,
"bucket": "main",
"collection": "hijack-blocklists"
},
{
"last_modified": 1739471652383,
"bucket": "main",
"collection": "url-classifier-skip-urls"
},
{
"last_modified": 1653469171354,
"bucket": "main",
"collection": "devtools-devices"
},
{
"last_modified": 1564511755134,
"bucket": "main",
"collection": "anti-tracking-url-decoration"
},
{
"last_modified": 1738775297137,
"bucket": "main",
"collection": "websites-with-shared-credential-backends"
},
{
"last_modified": 1754,
"bucket": "main",
"collection": "search-config"
},
{
"last_modified": 1743683182607,
"bucket": "main",
"collection": "password-rules"
},
{
"last_modified": 1746562822691,
"bucket": "main",
"collection": "search-config-icons"
},
{
"last_modified": 0,
"bucket": "main",
"collection": "search-config-overrides-v2"
},
{
"last_modified": 1744749743529,
"bucket": "main",
"collection": "search-default-override-allowlist"
},
{
"last_modified": 1674595048726,
"bucket": "main",
"collection": "password-recipes"
"last_modified": 1752159422751,
"bucket": "security-state",
"collection": "intermediates"
},
{
"last_modified": 1747787134572,
@ -126,10 +26,110 @@
"collection": "onecrl"
},
{
"last_modified": 1749221822598,
"bucket": "security-state",
"collection": "intermediates"
"last_modified": 1752267318690,
"bucket": "main",
"collection": "translations-models"
},
{
"last_modified": 1743683182607,
"bucket": "main",
"collection": "password-rules"
},
{
"last_modified": 1751266171953,
"bucket": "main",
"collection": "devtools-compatibility-browsers"
},
{
"last_modified": 0,
"bucket": "main",
"collection": "search-config-overrides-v2"
},
{
"last_modified": 1725526980846,
"bucket": "main",
"collection": "cookie-banner-rules-list"
},
{
"last_modified": 1749069444811,
"bucket": "main",
"collection": "translations-wasm"
},
{
"last_modified": 1738775297137,
"bucket": "main",
"collection": "websites-with-shared-credential-backends"
},
{
"last_modified": 1674595048726,
"bucket": "main",
"collection": "password-recipes"
},
{
"last_modified": 0,
"bucket": "main",
"collection": "search-config-overrides"
},
{
"last_modified": 1633983928590,
"bucket": "main",
"collection": "top-sites"
},
{
"last_modified": 1751891587705,
"bucket": "main",
"collection": "search-telemetry-v2"
},
{
"last_modified": 1564511755134,
"bucket": "main",
"collection": "anti-tracking-url-decoration"
},
{
"last_modified": 1544035467383,
"bucket": "main",
"collection": "sites-classification"
},
{
"last_modified": 1653469171354,
"bucket": "main",
"collection": "devtools-devices"
},
{
"last_modified": 1746562822691,
"bucket": "main",
"collection": "search-config-icons"
},
{
"last_modified": 1745933974542,
"bucket": "main",
"collection": "search-config-v2"
},
{
"last_modified": 1756,
"bucket": "main",
"collection": "search-config"
},
{
"last_modified": 1739471652383,
"bucket": "main",
"collection": "url-classifier-skip-urls"
},
{
"last_modified": 1744749743529,
"bucket": "main",
"collection": "search-default-override-allowlist"
},
{
"last_modified": 1605801189258,
"bucket": "main",
"collection": "hijack-blocklists"
},
{
"last_modified": 1673270322227,
"bucket": "main",
"collection": "language-dictionaries"
}
],
"timestamp": 1753
"timestamp": 1755
}

View file

@ -1,5 +1,83 @@
{
"data": [
{
"schema": 1752155863326,
"derHash": "dx59bC13t7kOG0/32/6j4a19JJ0Ncp7QRVZ7XBZAknY=",
"attachment": {
"hash": "1ae45b7b0ceef35190fcbaf30c8b0442d2f2caa0a5519ffff89b9a5152bb84c0",
"size": 1305,
"filename": "wyPygwouDrmZ9JjrHsSya44hCIbHB0O1i3IMIeU20FE=.pem",
"location": "security-state-staging/intermediates/befc0f92-2e21-4ed1-900b-8947f01e7372.pem",
"mimetype": "application/x-pem-file"
},
"id": "85d03609-d84b-4554-a164-7d75746b959d",
"last_modified": 1752159422751
},
{
"schema": 1752155862293,
"derHash": "mAWUbNRs0vIidtRj9YLU6BHuJAJdjBfW7QrOOPc2Z0w=",
"attachment": {
"hash": "f1280eef8ebc2ff612458b2798279e95d5172d8883a5b646a68b352fbed96f4b",
"size": 2109,
"filename": "83xSo8lPiDB3NfbtH8Sf6nnd6a_5lf9oOooQ86ca04I=.pem",
"location": "security-state-staging/intermediates/74958bc5-8cdf-4aaa-a74a-5f74bcd32b6d.pem",
"mimetype": "application/x-pem-file"
},
"id": "77a5b5de-9cfa-4d8b-8f6d-570f0afa4d3c",
"last_modified": 1752159422748
},
{
"schema": 1752155864301,
"derHash": "Rud26nxsD5HxzeMXVfhkxFphgS8cN47VWU4Tu03mM8M=",
"attachment": {
"hash": "43be86a2c15a4438f0f6135b49ef56ea9d5ecc5688c3744dddd47258fb6116c1",
"size": 2450,
"filename": "2PetmpDyIF3lqvSYiYQyKHCHGnW0P7DdIC1MnDREeHc=.pem",
"location": "security-state-staging/intermediates/42f7aee8-d33a-445f-871c-affdc0cb6809.pem",
"mimetype": "application/x-pem-file"
},
"id": "f9b2d933-0eae-46e6-942a-41244569963a",
"last_modified": 1752159422744
},
{
"schema": 1751896661778,
"derHash": "EflXHDDC3iMnU9WxWMVPd7CgLf9BcTV1LTLpi4m8lxk=",
"attachment": {
"hash": "d57e574d55d96c379a3926a86cd251a818034e0950b914ee0955f9f6e52a3c93",
"size": 2406,
"filename": "i-KvnAmgyN3RFmy3WIX3PLPVfLL7ohyVZ6NMlvZbwME=.pem",
"location": "security-state-staging/intermediates/7c7c258a-b262-4f87-a321-3ca974337bb4.pem",
"mimetype": "application/x-pem-file"
},
"id": "b08c45a5-1cc0-4c09-afd6-5b60ab026262",
"last_modified": 1751900222448
},
{
"schema": 1750730263299,
"derHash": "LguEGJ/5dAwUDMfr3aBRosI58d7rEvxMVtvVAPlTmNg=",
"attachment": {
"hash": "c4d199ed4f7b32cdadcf429f7b1d962e6a3c034fe3b704492b0ac16fcd1b00b2",
"size": 1853,
"filename": "joN6IPaPB9ALd3OzEFQHSQcSICs0_U_MmT4qcKgSXrc=.pem",
"location": "security-state-staging/intermediates/f96f2779-246d-471e-b62b-242743e655e3.pem",
"mimetype": "application/x-pem-file"
},
"id": "d58e8eea-15e8-46e4-a20b-aad35a61dfdd",
"last_modified": 1750733822397
},
{
"schema": 1750255062558,
"derHash": "sOcUWki5+uSkmQcf6cT6WQMt9y51lVsrPvt5WZ5KU+A=",
"attachment": {
"hash": "f1f67fdd9b44a170657f5ecb602b7115773ba1a9ee24505ac5d702c7bc16a3bb",
"size": 2369,
"filename": "Vo0kHXgA-__lFjaxinaazmjp6Snzw2dANQzv6YTU5n0=.pem",
"location": "security-state-staging/intermediates/1cd9e0f2-1935-4231-ae43-19ac3d9aef8c.pem",
"mimetype": "application/x-pem-file"
},
"id": "7422ccce-eccc-4a7f-a6b7-f9481a9c169b",
"last_modified": 1750258622612
},
{
"schema": 1749218267234,
"derHash": "M7W3wh5mUE/T7mWw/g0SwxdboqYWRBtxM9s8Eja1Xfc=",
@ -7296,42 +7374,6 @@
"id": "9604f1d4-9179-4db7-a8ef-e1fca8de5e17",
"last_modified": 1704470223072
},
{
"schema": 1703537607315,
"derHash": "ctcW97tr0QVwT0K5UkkjUQ3LhbLYcMDpraWuuclpBRo=",
"subject": "CN=ePKI Root Certification Authority - G2,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MGMxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEvMC0GA1UEAwwmZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzI=",
"whitelist": false,
"attachment": {
"hash": "aff986340dcc592a5eacd96a6044c07f55438a9b0214921ea5306a0ea997fed9",
"size": 2804,
"filename": "tInMsiS5prgd0nTOr1IJwlKZjJp2r0jk9MUKByhGGCU=.pem",
"location": "security-state-staging/intermediates/1cd7753f-d18c-4864-8129-0ea1a5092f75.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "tInMsiS5prgd0nTOr1IJwlKZjJp2r0jk9MUKByhGGCU=",
"crlite_enrolled": false,
"id": "4e467304-4cae-4b24-8542-fa721e586cfb",
"last_modified": 1703537823229
},
{
"schema": 1703537607030,
"derHash": "aAfJcjXF7GCQJppLX+36tGmG5C9NZ9Lt3c9uRc8N+oA=",
"subject": "CN=HiPKI Root CA - G1,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "ME8xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kgUm9vdCBDQSAtIEcx",
"whitelist": false,
"attachment": {
"hash": "c94a4c47c3048f75024cf6c844a614b253f7ee3823a41c0e39e567effea001fc",
"size": 2328,
"filename": "ecqvU0fm5KlMjniphJb8dAIPgJ7eE_Ig-rYQTI3tMp8=.pem",
"location": "security-state-staging/intermediates/24d59f73-321d-498a-8fa9-3f4111529687.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "ecqvU0fm5KlMjniphJb8dAIPgJ7eE/Ig+rYQTI3tMp8=",
"crlite_enrolled": false,
"id": "64de4f00-ad9d-48db-9d46-2c27c55f4337",
"last_modified": 1703537823226
},
{
"schema": 1702979286308,
"derHash": "hHQJ5jUm8WJ1OsSfdSGO+q+n1clK3pCVznLn9rbjrJk=",
@ -12426,24 +12468,6 @@
"id": "b97451e0-61f4-46a5-908d-5fd947861af6",
"last_modified": 1666727875348
},
{
"schema": 1666727336675,
"derHash": "2uNDT2lvyfD2UuGypvabXpJz0J9DvTvdRxfWFB+M0sI=",
"subject": "OU=Public Certification Authority - G2,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MGAxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEsMCoGA1UECwwjUHVibGljIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzI=",
"whitelist": false,
"attachment": {
"hash": "d35775690c65ebee8113249b23f19a293655d0ed08e999f64243089ed009db1b",
"size": 2129,
"filename": "tnFqrstaexEa6Zz-CVGGozhI8IF1FafM6uzX3zzHrUI=.pem",
"location": "security-state-staging/intermediates/07e9d719-440e-4db5-9e24-7f15cd5cee54.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "tnFqrstaexEa6Zz+CVGGozhI8IF1FafM6uzX3zzHrUI=",
"crlite_enrolled": false,
"id": "9bae286e-930a-4285-8a27-54c6509f3077",
"last_modified": 1666727875331
},
{
"schema": 1666727377394,
"derHash": "GDWw5ILqZVNvwBDkvBPAYPZWaBZfupfi9ULOlspt/vw=",
@ -13092,24 +13116,6 @@
"id": "9dfe1a67-5cce-4d31-a077-99d8791d279d",
"last_modified": 1666727874573
},
{
"schema": 1666727376029,
"derHash": "YJkw64B61CCv2iqKphtnSDA5FozXZuCZQqSL/n873BA=",
"subject": "OU=Public Certification Authority - G2,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MGAxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEsMCoGA1UECwwjUHVibGljIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzI=",
"whitelist": false,
"attachment": {
"hash": "b2b74d8c5d2ce4f283391974773f823f1441c476105a4e78f1b99db3e02f9528",
"size": 2117,
"filename": "tnFqrstaexEa6Zz-CVGGozhI8IF1FafM6uzX3zzHrUI=.pem",
"location": "security-state-staging/intermediates/b062306c-bad7-433f-bcc1-81512b1194eb.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "tnFqrstaexEa6Zz+CVGGozhI8IF1FafM6uzX3zzHrUI=",
"crlite_enrolled": false,
"id": "4835ad01-5f2c-4639-abc1-05d2b5279fb5",
"last_modified": 1666727874544
},
{
"schema": 1666727343840,
"derHash": "LeYg8tEgCqkLFsPM9nD9ftFDeasG+osDHP742gUepaI=",
@ -24396,24 +24402,6 @@
"id": "abf9e632-aa0d-4b33-a74e-1afa980faa53",
"last_modified": 1663293423105
},
{
"schema": 1663225023673,
"derHash": "q97sUxSQmPigsH79lys0Wom+3o7eaXXmG+le4Cbafvo=",
"subject": "CN=Actalis Client Authentication CA G1,O=Actalis S.p.A./03358520967,L=Milano,ST=Milano,C=IT",
"subjectDN": "MIGCMQswCQYDVQQGEwJJVDEPMA0GA1UECAwGTWlsYW5vMQ8wDQYDVQQHDAZNaWxhbm8xIzAhBgNVBAoMGkFjdGFsaXMgUy5wLkEuLzAzMzU4NTIwOTY3MSwwKgYDVQQDDCNBY3RhbGlzIENsaWVudCBBdXRoZW50aWNhdGlvbiBDQSBHMQ==",
"whitelist": false,
"attachment": {
"hash": "737f0f0ce1590b65bb7efa52f0521e84ec1ac16313c8b4c6cd288064af2d127d",
"size": 2235,
"filename": "YsqG87ugr7iITRNFFaHeNX5oMmY80JlEVuqBCxAhZAM=.pem",
"location": "security-state-staging/intermediates/5df58a07-e383-4a1a-8af4-9471aa61c013.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "YsqG87ugr7iITRNFFaHeNX5oMmY80JlEVuqBCxAhZAM=",
"crlite_enrolled": false,
"id": "621a2382-280e-48de-b859-5293ba5379b7",
"last_modified": 1663246623215
},
{
"schema": 1662515823574,
"derHash": "Yjq+xvhacCisoQ9b3F2BtWtjFN8odD/8yE7KMvNa6EY=",
@ -27240,42 +27228,6 @@
"id": "e23e350c-f4ed-46ee-a1f2-560e15138f5e",
"last_modified": 1645578266173
},
{
"schema": 1643316508186,
"derHash": "S9FvSVXz88nI6kjvmZUyTaUSFyT4mRXV8skesLrvIzc=",
"subject": "OU=Public Certification Authority,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MFsxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEnMCUGA1UECwweUHVibGljIENlcnRpZmljYXRpb24gQXV0aG9yaXR5",
"whitelist": false,
"attachment": {
"hash": "689c7ab13bb497838c62b566e5da7f914f4cf9354f08643500263bcfb46a32a3",
"size": 2105,
"filename": "qMjf0br8Ay71_wiJ0t25y4v3IWwirr3SF1bWHJzkbnE=.pem",
"location": "security-state-staging/intermediates/c2017a82-2237-4c28-8656-5764f263e185.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "qMjf0br8Ay71/wiJ0t25y4v3IWwirr3SF1bWHJzkbnE=",
"crlite_enrolled": false,
"id": "a869aa70-b82b-40fc-b8b7-123af99bb58e",
"last_modified": 1643317054972
},
{
"schema": 1643295453377,
"derHash": "RksOwKYC8Bk9tfM5EYhaOmGSGtFtJmTiW++rEM+m7SU=",
"subject": "OU=Public Certification Authority,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MFsxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEnMCUGA1UECwweUHVibGljIENlcnRpZmljYXRpb24gQXV0aG9yaXR5",
"whitelist": false,
"attachment": {
"hash": "49845caec147a9f80e7f49b5e4b2b8629653bccf72d7aa8dfa0b7029f5d75514",
"size": 1934,
"filename": "qMjf0br8Ay71_wiJ0t25y4v3IWwirr3SF1bWHJzkbnE=.pem",
"location": "security-state-staging/intermediates/cabaf189-98ae-41ee-8da3-966fb99dbea2.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "qMjf0br8Ay71/wiJ0t25y4v3IWwirr3SF1bWHJzkbnE=",
"crlite_enrolled": false,
"id": "201bbcbe-98a9-4e1d-9ba8-1d91ccaef4d5",
"last_modified": 1643317054962
},
{
"schema": 1642150113750,
"derHash": "fPY09fr+ndzIizbWsefr+3B4A01kQZ58Z4M15W2CNCE=",
@ -27816,24 +27768,6 @@
"id": "db10a85d-fae6-4776-b901-d09000033eca",
"last_modified": 1601517444423
},
{
"schema": 1601376733088,
"derHash": "ZHFyUK+LAo3Y5cC65MkULIsQNTJhK8SHCF/Twxn5wGc=",
"subject": "CN=ePKI Root Certification Authority - G2,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MGMxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEvMC0GA1UEAwwmZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzI=",
"whitelist": false,
"attachment": {
"hash": "73789188b1ff6dcd70442594b8ff119cb7b30d858c0e7f072cf8a014cd8f296a",
"size": 2649,
"filename": "tInMsiS5prgd0nTOr1IJwlKZjJp2r0jk9MUKByhGGCU=.pem",
"location": "security-state-staging/intermediates/3785b85c-da3b-4b7b-bd12-2796cce60c04.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "tInMsiS5prgd0nTOr1IJwlKZjJp2r0jk9MUKByhGGCU=",
"crlite_enrolled": false,
"id": "ee033ab1-7bfc-4f08-b26a-b3b2bce86767",
"last_modified": 1601517444135
},
{
"schema": 1601376755836,
"derHash": "joxuv3fcc9s+OOk/SAPmK2tZM761HuQVL2jXqhRCazE=",
@ -27870,42 +27804,6 @@
"id": "ff319db3-4ac0-4406-9c29-03f632e42c98",
"last_modified": 1601517443342
},
{
"schema": 1601376763286,
"derHash": "0QjDSljA5KYWRJ+MSDGAI6IpyGzT3dXV/mBBpAHBahQ=",
"subject": "OU=ePKI Root Certification Authority,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5",
"whitelist": false,
"attachment": {
"hash": "15e5931fc9e514bb8bf23b5f5c3c40bb3131ccf6ed8b0857416342b002b8db15",
"size": 2645,
"filename": "YlVMFwBVQ7I3IV8EJo3NL9HEcCQK08hmDiWuLFljD1U=.pem",
"location": "security-state-staging/intermediates/a894f5a2-8e74-4828-97c6-41052369ca59.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "YlVMFwBVQ7I3IV8EJo3NL9HEcCQK08hmDiWuLFljD1U=",
"crlite_enrolled": false,
"id": "056b1bcf-53e9-405c-96eb-eea77dcff395",
"last_modified": 1601517442680
},
{
"schema": 1601376780263,
"derHash": "GEZ8TmTVhshEpERm3lunptWWnHqShZpRHF/a11sDzc4=",
"subject": "CN=ePKI Root Certification Authority - G2,O=Chunghwa Telecom Co.\\, Ltd.,C=TW",
"subjectDN": "MGMxCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEvMC0GA1UEAwwmZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzI=",
"whitelist": false,
"attachment": {
"hash": "6bf1025a0f2a333a3a9f9cf1fa26d326f099cad7c0d6658f30ea16733092bd7a",
"size": 2621,
"filename": "tInMsiS5prgd0nTOr1IJwlKZjJp2r0jk9MUKByhGGCU=.pem",
"location": "security-state-staging/intermediates/c7b2feb5-da29-4802-ba1d-e34f9184099c.pem",
"mimetype": "application/x-pem-file"
},
"pubKeyHash": "tInMsiS5prgd0nTOr1IJwlKZjJp2r0jk9MUKByhGGCU=",
"crlite_enrolled": false,
"id": "ca26521c-22ff-48b3-bd4d-3c06d4ffa75a",
"last_modified": 1601517442632
},
{
"schema": 1601376748460,
"derHash": "cvmvIVgYG68W1gybTm9L18qNI0GtSK/bZ8tMgzLVRvY=",
@ -29977,5 +29875,5 @@
"last_modified": 1559865884636
}
],
"timestamp": 1749567422319
"timestamp": 1752159422751
}

View file

@ -1,2 +1,2 @@
20250616190003
https://hg.mozilla.org/releases/mozilla-esr128/rev/f3f836bf735d55fcfdf97dd3788f7952419dea1f
20250714124554
https://hg.mozilla.org/releases/mozilla-esr128/rev/81d51b1bf06d4dff8aa050ca9d4b830517b5768d

View file

@ -793,15 +793,15 @@ workers:
provisioner: scriptworker-prov-v1
implementation: scriptworker-signing
os: macosx
worker-type: depsigning-mac-v1
worker-type: dep-gecko-signing-mac14m2
mac-signing:
provisioner: scriptworker-prov-v1
implementation: scriptworker-signing
os: macosx
worker-type:
by-release-level:
production: signing-mac-v1
staging: depsigning-mac-v1
production: gecko-signing-mac14m2
staging: dep-gecko-signing-mac14m2
push-apk:
provisioner: scriptworker-k8s
implementation: scriptworker-pushapk

View file

@ -214,7 +214,7 @@ class SearchConfigTest {
}
/**
* @returns {Array} the list of locales for the tests to run with.
* @returns {Promise<string[]>} the list of locales for the tests to run with.
*/
async getLocales() {
if (TEST_DEBUG) {
@ -429,26 +429,26 @@ class SearchConfigTest {
for (const rule of details) {
this._assertCorrectDomains(location, engine, rule);
if (rule.codes) {
if ("codes" in rule) {
this._assertCorrectCodes(location, engine, rule);
}
if (rule.searchUrlCode || rule.suggestUrlCode) {
if ("searchUrlCode" in rule || "suggestUrlCode" in rule) {
this._assertCorrectUrlCode(location, engine, rule);
}
if (rule.aliases) {
if ("aliases" in rule) {
this.assertDeepEqual(
engine.aliases,
rule.aliases,
"Should have the correct aliases for the engine"
);
}
if (rule.required_aliases) {
if ("required_aliases" in rule) {
this.assertOk(
rule.required_aliases.every(a => engine.aliases.includes(a)),
"Should have the required aliases for the engine"
);
}
if (rule.telemetryId) {
if ("telemetryId" in rule) {
this.assertEqual(
engine.telemetryId,
rule.telemetryId,

View file

@ -232,6 +232,15 @@ tests.push({
hasTelemetryId(engines, "Google", "google-b-lm"),
});
tests.push({
region: "ru",
distribution: "mint-001",
test: engines =>
hasDefault(engines, "Google") &&
hasEnginesFirst(engines, ["Google"]) &&
hasTelemetryId(engines, "Google", "google-com-nocodes"),
});
function hasURLs(engines, engineName, url, suggestURL) {
let engine = engines.find(e => e.name === engineName);
Assert.ok(engine, `Should be able to find ${engineName}`);

View file

@ -12,7 +12,7 @@ const test = new SearchConfigTest({
aliases: ["@google"],
default: {
// Included everywhere apart from the exclusions below. These are basically
// just excluding what Yandex and Baidu include.
// just excluding what Baidu includes.
excluded: [
{
regions: ["cn"],