icecat: add release icecat-140.10.1-1gnu1 for ecne

This commit is contained in:
Ark74 2026-05-04 16:58:41 -06:00
parent a5f93cb214
commit ff85d7c623
1256 changed files with 63469 additions and 24141 deletions

View file

@ -524,22 +524,27 @@ StorageAccessAPIHelper::CompleteAllowAccessForOnParentProcess(
__func__);
}
RefPtr<dom::BrowsingContext> parentBC = aParentContext;
auto storePermission =
[aParentContext, aTopLevelWindowId, trackingOrigin, trackingPrincipal,
[parentBC, aTopLevelWindowId, trackingOrigin, trackingPrincipal,
aCookieBehavior,
aReason](int aAllowMode) -> RefPtr<StorageAccessPermissionGrantPromise> {
if (parentBC->IsDiscarded()) {
return StorageAccessPermissionGrantPromise::CreateAndReject(false,
__func__);
}
// We don't have the window, send an IPC to the content process that
// owns the parent window. But there is a special case, for window.open,
// we'll return to the content process we need to inform when this
// function is done. So we don't need to create an extra IPC for the case.
if (aReason != ContentBlockingNotifier::eOpener) {
dom::ContentParent* cp = aParentContext->Canonical()->GetContentParent();
dom::ContentParent* cp = parentBC->Canonical()->GetContentParent();
if (!cp) {
return StorageAccessPermissionGrantPromise::CreateAndReject(false,
__func__);
}
Unused << cp->SendOnAllowAccessFor(aParentContext, trackingOrigin,
Unused << cp->SendOnAllowAccessFor(parentBC, trackingOrigin,
aCookieBehavior, aReason);
}
@ -547,7 +552,7 @@ StorageAccessAPIHelper::CompleteAllowAccessForOnParentProcess(
reportReason;
// We can directly report here if we can know the origin of the top.
ContentBlockingNotifier::ReportUnblockingToConsole(
aParentContext, NS_ConvertUTF8toUTF16(trackingOrigin), aReason);
parentBC, NS_ConvertUTF8toUTF16(trackingOrigin), aReason);
// Set the report reason to nothing if we've already reported.
reportReason = Nothing();
@ -555,9 +560,9 @@ StorageAccessAPIHelper::CompleteAllowAccessForOnParentProcess(
bool frameOnly = StaticPrefs::dom_storage_access_frame_only() &&
aReason == ContentBlockingNotifier::eStorageAccessAPI;
uint64_t innerWindowId = aParentContext->GetCurrentInnerWindowId();
uint64_t innerWindowId = parentBC->GetCurrentInnerWindowId();
return SaveAccessForOriginOnParentProcess(aTopLevelWindowId, aParentContext,
return SaveAccessForOriginOnParentProcess(aTopLevelWindowId, parentBC,
trackingPrincipal, aAllowMode,
frameOnly)
->Then(GetCurrentSerialEventTarget(), __func__,
@ -746,21 +751,26 @@ StorageAccessAPIHelper::CompleteAllowAccessForOnChildProcess(
__func__);
}
RefPtr<dom::BrowsingContext> parentBC = aParentContext;
auto storePermission =
[aParentContext, aTopLevelWindowId, trackingOrigin, trackingPrincipal,
[parentBC, aTopLevelWindowId, trackingOrigin, trackingPrincipal,
aCookieBehavior,
aReason](int aAllowMode) -> RefPtr<StorageAccessPermissionGrantPromise> {
if (parentBC->IsDiscarded()) {
return StorageAccessPermissionGrantPromise::CreateAndReject(false,
__func__);
}
// Inform the window we granted permission for. This has to be done in the
// window's process. As a child this is always the case.
StorageAccessAPIHelper::OnAllowAccessFor(aParentContext, trackingOrigin,
StorageAccessAPIHelper::OnAllowAccessFor(parentBC, trackingOrigin,
aCookieBehavior, aReason);
Maybe<ContentBlockingNotifier::StorageAccessPermissionGrantedReason>
reportReason;
// We can directly report here if we can know the origin of the top.
if (aParentContext->Top()->IsInProcess()) {
if (parentBC->Top()->IsInProcess()) {
ContentBlockingNotifier::ReportUnblockingToConsole(
aParentContext, NS_ConvertUTF8toUTF16(trackingOrigin), aReason);
parentBC, NS_ConvertUTF8toUTF16(trackingOrigin), aReason);
// Set the report reason to nothing if we've already reported.
reportReason = Nothing();
@ -783,12 +793,12 @@ StorageAccessAPIHelper::CompleteAllowAccessForOnChildProcess(
bool frameOnly = StaticPrefs::dom_storage_access_frame_only() &&
aReason == ContentBlockingNotifier::eStorageAccessAPI;
uint64_t innerWindowId = aParentContext->GetCurrentInnerWindowId();
uint64_t innerWindowId = parentBC->GetCurrentInnerWindowId();
return cc
->SendStorageAccessPermissionGrantedForOrigin(
aTopLevelWindowId, aParentContext, trackingPrincipal,
trackingOrigin, aAllowMode, reportReason, frameOnly)
aTopLevelWindowId, parentBC, trackingPrincipal, trackingOrigin,
aAllowMode, reportReason, frameOnly)
->Then(
GetCurrentSerialEventTarget(), __func__,
[aReason, trackingPrincipal,

View file

@ -100,11 +100,12 @@ export var DownloadPaths = {
// .*? Matches the base name non-greedily.
// \.[A-Z0-9]{1,3} Up to three letters or numbers preceding a
// double extension.
// \.(?:gz|bz2|Z) The second part of common double extensions.
// \.(?:bz2|gz|lzma|xz|zst|Z) The second part of common double extensions.
// \.[^.]* Matches any extension or a single trailing dot.
let [, base, ext] = /(.*?)(\.[A-Z0-9]{1,3}\.(?:gz|bz2|Z)|\.[^.]*)?$/i.exec(
leafName
);
let [, base, ext] =
/(.*?)(\.[A-Z0-9]{1,3}\.(?:bz2|gz|lzma|xz|zst|Z)|\.[^.]*)?$/i.exec(
leafName
);
// Return an empty string instead of undefined if no extension is found.
return [base, ext || ""];
},

View file

@ -173,10 +173,12 @@ add_task(async function test_createNiceUniqueFile() {
testCreateNiceUniqueFile(tempFile, "test(2).txt");
// Double extension.
tempFile.leafName = "test.tar.gz";
testCreateNiceUniqueFile(tempFile, "test.tar.gz");
testCreateNiceUniqueFile(tempFile, "test(1).tar.gz");
testCreateNiceUniqueFile(tempFile, "test(2).tar.gz");
for (let suffix of ["gz", "lzma", "xz", "zst", "bz2"]) {
tempFile.leafName = "test.tar." + suffix;
testCreateNiceUniqueFile(tempFile, "test.tar." + suffix);
testCreateNiceUniqueFile(tempFile, "test(1).tar." + suffix);
testCreateNiceUniqueFile(tempFile, "test(2).tar." + suffix);
}
// Test automatic shortening of long file names. We don't know exactly how
// many characters are removed, because it depends on the name of the folder

View file

@ -91,7 +91,7 @@ DEFINE_STATIC_ATOM_SET(HostLocatorSchemes, nsGkAtoms::http, nsGkAtoms::https,
nsGkAtoms::ws, nsGkAtoms::wss, nsGkAtoms::file,
nsGkAtoms::ftp, nsGkAtoms::moz_extension,
nsGkAtoms::chrome, nsGkAtoms::resource, nsGkAtoms::moz,
nsGkAtoms::moz_icon, nsGkAtoms::moz_gio);
nsGkAtoms::moz_icon);
DEFINE_STATIC_ATOM_SET(WildcardSchemes, nsGkAtoms::http, nsGkAtoms::https,
nsGkAtoms::ws, nsGkAtoms::wss);

View file

@ -52,7 +52,6 @@ ChromeUtils.defineESModuleGetters(lazy, {
LoginHelper: "resource://gre/modules/LoginHelper.sys.mjs",
MLAutofill: "resource://autofill/MLAutofill.sys.mjs",
NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs",
OSKeyStore: "resource://gre/modules/OSKeyStore.sys.mjs",
});
ChromeUtils.defineLazyGetter(lazy, "log", () =>
@ -67,6 +66,16 @@ const { ADDRESSES_COLLECTION_NAME, CREDITCARDS_COLLECTION_NAME, FIELD_STATES } =
let gMessageObservers = new Set();
const FORM_AUTOFILL_MESSAGES = new Set([
"FormAutofill:InitStorage",
"FormAutofill:OnFormSubmit",
"FormAutofill:FieldsIdentified",
"FormAutofill:OnFieldsDetected",
"FormAutofill:OnFieldsUpdated",
"FormAutofill:FieldFilledModified",
"FormAutofill:FieldsUpdatedDuringAutofill",
]);
export let FormAutofillStatus = {
_initialized: false,
@ -306,6 +315,10 @@ export class FormAutofillParent extends JSWindowActorParent {
return undefined;
}
if (!FORM_AUTOFILL_MESSAGES.has(name) && !Cu.isInAutomation) {
return undefined;
}
switch (name) {
case "FormAutofill:InitStorage": {
await lazy.gFormAutofillStorage.initialize();
@ -364,12 +377,6 @@ export class FormAutofillParent extends JSWindowActorParent {
break;
}
case "FormAutofill:SaveCreditCard": {
// Setting the first parameter of OSKeyStore.ensurLoggedIn as false
// since this case only called in tests. Also the reason why we're not calling FormAutofill.verifyUserOSAuth.
if (!(await lazy.OSKeyStore.ensureLoggedIn(false)).authenticated) {
lazy.log.warn("User canceled encryption login");
return undefined;
}
await lazy.gFormAutofillStorage.creditCards.add(data.creditcard);
break;
}

View file

@ -718,12 +718,6 @@ export const SpecialMessageActions = {
throw new Error(
`Special message action with type ${action.type} is unsupported.`
);
case "CLICK_ELEMENT":
const clickElement = window.document.querySelector(
action.data.selector
);
clickElement?.click();
break;
case "RELOAD_BROWSER":
browser.reload();
break;

View file

@ -589,24 +589,6 @@
"additionalProperties": false,
"description": "Runs multiple actions"
},
{
"type": "object",
"properties": {
"data": {
"selector": {
"type": "string",
"description": "A CSS selector for the HTML element to be clicked"
}
},
"type": {
"type": "string",
"enum": ["CLICK_ELEMENT"]
}
},
"required": ["data", "type"],
"additionalProperties": false,
"description": "Selects an element in the current Window's document and triggers a click action"
},
{
"type": "object",
"properties": {

View file

@ -357,12 +357,6 @@ interface MultiAction {
}
```
### `CLICK_ELEMENT`
* args: `string` A CSS selector for the HTML element to be clicked
Selects an element in the current Window's document and triggers a click action
### `RELOAD_BROWSER`

View file

@ -1502,7 +1502,7 @@ export class LoginManagerParent extends JSWindowActorParent {
}
async searchAutoCompleteEntries(searchString, data) {
return this.doAutocompleteSearch(data.formOrigin, data);
return this.doAutocompleteSearch(this.origin, data);
}
onAutoCompleteEntryHovered(_message, _data) {

View file

@ -211,7 +211,7 @@ const char* const ApplicationReputationService::kBinaryFileExtensions[] = {
".class", // Java
//".cmd", exec // Windows executable
//".com", exec // Windows executable
".command", // Mac script
//".command", exec // Mac script
".configprofile", // Configuration file for Apple systems
".cpgz", // Mac archive
".cpi", // Control Panel Item. Executable used for adding icons
@ -434,7 +434,7 @@ const char* const ApplicationReputationService::kBinaryFileExtensions[] = {
".scptd", // AppleScript
//".scr", exec // Windows
//".sct", exec // Windows shell
".search-ms", // Windows
//".search-ms", exec // Windows Saved Search
".seplugin", // AppleScript
".service", // Systemd service unit file
//".settingcontent-ms", exec // Windows settings

View file

@ -27,9 +27,9 @@ class ApplicationReputationService final
public:
static const char* const kNonBinaryExecutables[6];
#ifdef XP_WIN
static const char* const kBinaryFileExtensions[184];
static const char* const kBinaryFileExtensions[182];
#else
static const char* const kBinaryFileExtensions[183];
static const char* const kBinaryFileExtensions[181];
#endif
static already_AddRefed<ApplicationReputationService> GetSingleton();

View file

@ -213,7 +213,7 @@ static const char* const kTestFileExtensions[] = {
".scptd", // AppleScript
".scr", // Windows
".sct", // Windows shell
".search-ms", // Windows
".search-ms", // Windows Saved Search
".seplugin", // AppleScript
".service", // Systemd service unit file
".settingcontent-ms", // Windows settings

View file

@ -146,7 +146,7 @@
"title": "Partner Code",
"description": "The partner code for the engine or variant. This will be inserted into parameters which include '{partnerCode}'",
"type": "string",
"pattern": "^[a-zA-Z0-9-_]*$"
"pattern": "^[a-zA-Z0-9-_.]*$"
},
"urls": {
"title": "URLs",

View file

@ -310,7 +310,7 @@ tests.push({
});
tests.push({
region: "CA", // Testing for "rest of world" (excluding US, RU, TR, BY, KZ)
region: "CA", // Testing for "rest of world" (excluding US, RU, BY)
distribution: "dt-002",
application: "icecat-android",
test: engines =>
@ -332,7 +332,7 @@ tests.push({
});
tests.push({
region: "CA", // Testing for "rest of world" (excluding US, RU, TR, BY, KZ)
region: "CA", // Testing for "rest of world" (excluding US, RU, BY)
distribution: "dt-003",
application: "icecat-android",
test: engines =>
@ -342,6 +342,28 @@ tests.push({
hasTelemetryId(engines, "Google", "google-b-dt"),
});
tests.push({
region: "US",
distribution: "xiaomi-001",
application: "icecat-android",
test: engines =>
hasParams(engines, "Google", "client=icecat-b-1-dt") &&
hasDefault(engines, "Google") &&
hasEnginesFirst(engines, ["Google"]) &&
hasTelemetryId(engines, "Google", "google-b-1-dt"),
});
tests.push({
region: "CA", // Testing for "rest of world" (excluding US, RU, BY)
distribution: "xiaomi-001",
application: "icecat-android",
test: engines =>
hasParams(engines, "Google", "client=icecat-b-dt") &&
hasDefault(engines, "Google") &&
hasEnginesFirst(engines, ["Google"]) &&
hasTelemetryId(engines, "Google", "google-b-dt"),
});
tests.push({
region: "US",
distribution: "aura-001",

View file

@ -47,7 +47,7 @@ const test = new SearchConfigTest({
: "icecat-b-1-d",
},
{
excluded: [{ regions: ["us", "by", "kz", "ru", "tr"] }],
excluded: [{ regions: ["us", "by", "ru"] }],
included: [{}],
domain: "google.com",
telemetryId:
@ -62,7 +62,7 @@ const test = new SearchConfigTest({
: "icecat-b-d",
},
{
included: [{ regions: ["by", "kz", "ru", "tr"] }],
included: [{ regions: ["by", "ru"] }],
domain: "google.com",
telemetryId: "google-com-nocodes",
partnerCode: "",

View file

@ -505,7 +505,7 @@ void LookupCache::GetLookupEntitylistFragments(
if (FindCharInReadable('.', iter, end)) {
iter++;
nsAutoCString thirdPartyURLToAdd;
thirdPartyURLToAdd.Assign(Substring(iter++, end));
thirdPartyURLToAdd.Assign(Substring(iter, end));
// don't bother checking toplevel domains
if (FindCharInReadable('.', iter, end)) {

View file

@ -143,8 +143,8 @@ HttpIndexViewer.prototype = {
aDocListenerResult
) {
// Bug 1824325: application/http-index-format is deprecated for almost all
// sites, we only allow it for urls with a inner scheme of "file" or
// "moz-gio" (specified in network.http_index_format.allowed_schemes).
// sites, we only allow it for urls with a inner scheme of "file"
// (specified in network.http_index_format.allowed_schemes).
// This also includes jar: and resource:// uris, as jar: uris has a inner
// scheme of "file", and resource:// uris have been turned into either a
// jar: or file:// uri by the point where we are checking them here.