Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • trisquel/package-helpers
  • aklis/package-helpers
  • leny2010/package-helpers
  • fr33domlover/package-helpers
  • Legimet/package-helpers
  • ralphtheninja/package-helpers
  • damo22/package-helpers
  • wherrfrye/package-helpers
  • habs/package-helpers
  • pehjota/package-helpers
  • kpengboy/package-helpers
  • alvaro/package-helpers
  • salman/package-helpers
  • pabloyoyoista/package-helpers
  • mixalis/package-helpers
  • jorgesumle/package-helpers
  • a_slacker_here/package-helpers
  • chaosmonk/package-helpers
  • Beformed/package-helpers
  • dknight/package-helpers
  • proninyaroslav/package-helpers
  • adfeno/package-helpers
  • snd/package-helpers
  • davidpgil/package-helpers
  • diopon/package-helpers
  • ruben/package-helpers
  • bandali/package-helpers
  • joshaspinall/package-helpers
  • GNUtoo/package-helpers
  • Ark74/package-helpers
  • dragestil/package-helpers
  • bill-auger/package-helpers
  • andi89gi/package-helpers
  • Fikar/package-helpers
  • davidl/package-helpers
  • jas/package-helpers
  • parodper/package-helpers
  • David_Hedlund/package-helpers
  • dinomug/package-helpers
  • bf/package-helpers
  • hartkemd/package-helpers
  • del111/package-helpers
  • jxself/package-helpers
  • JacobK/package-helpers
44 results
Show changes
Showing
with 1125 additions and 182 deletions
diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml
index 7d37d26..4ebbc06 100644
index 492491a3..0c8c462a 100644
--- a/browser/components/preferences/sync.inc.xhtml
+++ b/browser/components/preferences/sync.inc.xhtml
@@ -35,22 +35,6 @@
@@ -35,24 +35,6 @@
</hbox>
</vbox>
</hbox>
- <label class="fxaMobilePromo" data-l10n-id="sync-mobile-promo">
- <html:img
- role="none"
- src="chrome://browser/skin/logo-android.svg"
- data-l10n-name="android-icon"
- class="androidIcon"/>
......@@ -15,6 +16,7 @@ index 7d37d26..4ebbc06 100644
- data-l10n-name="android-link"
- class="fxaMobilePromo-android text-link" target="_blank"/>
- <html:img
- role="none"
- src="chrome://browser/skin/logo-ios.svg"
- data-l10n-name="ios-icon"
- class="iOSIcon"/>
......@@ -29,8 +31,8 @@ diff --git a/browser/locales/en-US/browser/preferences/preferences.ftl b/browser
index 1b29e8d..6f7566c 100644
--- a/browser/locales/en-US/browser/preferences/preferences.ftl
+++ b/browser/locales/en-US/browser/preferences/preferences.ftl
@@ -714,16 +714,6 @@ sync-signedout-account-signin2 =
.label = Sign in to { -sync-brand-short-name }
@@ -838,17 +838,7 @@ sync-signedout-account-signin3 =
.label = Sign in to sync…
.accesskey = i
-# This message contains two links and two icon images.
......@@ -43,16 +45,18 @@ index 1b29e8d..6f7566c 100644
-# to your language, but should not be changed or translated.
-sync-mobile-promo = Download Firefox for <img data-l10n-name="android-icon"/> <a data-l10n-name="android-link">Android</a> or <img data-l10n-name="ios-icon"/> <a data-l10n-name="ios-link">iOS</a> to sync with your mobile device.
-
## Sync Account - Signed in
-## Firefox account - Signed in
+## Sync Account - Signed in
sync-profile-picture =
.tooltiptext = Change profile picture
diff --git a/browser/components/protections/content/vpn-card.mjs b/browser/components/protections/content/vpn-card.mjs
index 2417f1a641..698c48ccc3 100644
index d9fe35c0..1b166048 100644
--- a/browser/components/protections/content/vpn-card.mjs
+++ b/browser/components/protections/content/vpn-card.mjs
@@ -23,22 +23,6 @@ export default class VPNCard {
@@ -24,22 +24,6 @@ export default class VPNCard {
vpnLink.addEventListener("click", () => {
this.doc.sendTelemetryEvent("click", "vpn_card_link");
this.doc.sendTelemetryEvent("clickVpnCardLink");
});
- let androidVPNAppLink = document.getElementById(
- "vpn-google-playstore-link"
......@@ -61,15 +65,64 @@ index 2417f1a641..698c48ccc3 100644
- "browser.contentblocking.report.vpn-android.url"
- );
- androidVPNAppLink.addEventListener("click", () => {
- document.sendTelemetryEvent("click", "vpn_app_link_android");
- document.sendTelemetryEvent("clickVpnAppLinkAndroid");
- });
- let iosVPNAppLink = document.getElementById("vpn-app-store-link");
- iosVPNAppLink.href = RPMGetStringPref(
- "browser.contentblocking.report.vpn-ios.url"
- );
- iosVPNAppLink.addEventListener("click", () => {
- document.sendTelemetryEvent("click", "vpn_app_link_ios");
- document.sendTelemetryEvent("clickVpnAppLinkIos");
- });
const vpnBanner = this.doc.querySelector(".vpn-banner");
const exitIcon = vpnBanner.querySelector(".exit-icon");
diff --git a/browser/components/protections/content/protections.html b/browser/components/protections/content/protections.html
index 1374c30f..51796498 100644
--- a/browser/components/protections/content/protections.html
+++ b/browser/components/protections/content/protections.html
@@ -291,44 +291,6 @@
<div id="graph-total-summary"></div>
</div>
</div>
- <div id="mobile-hanger" class="card-body hidden">
- <div class="body-wrapper">
- <button
- class="exit-icon"
- data-l10n-id="protections-close-button2"
- ></button>
- <div id="etp-mobile-content">
- <img
- class="mobile-app-icon"
- src="chrome://browser/content/logos/etp-mobile.svg"
- />
- <span>
- <h2 class="card-title" data-l10n-id="mobile-app-title"></h2>
- <p class="content">
- <span data-l10n-id="mobile-app-card-content"></span>
- <span
- target="_blank"
- id="mobile-app-links"
- data-l10n-id="mobile-app-links"
- >
- <a
- target="_blank"
- id="android-mobile-inline-link"
- data-l10n-name="android-mobile-inline-link"
- href=""
- ></a>
- <a
- target="_blank"
- id="ios-mobile-inline-link"
- data-l10n-name="ios-mobile-inline-link"
- href=""
- ></a>
- </span>
- </p>
- </span>
- </div>
- </div>
- </div>
</div>
<!-- Markup for Monitor card. -->
<section class="card card-no-hover monitor-card hidden">
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 391bc93e..df6b3f84 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1718,19 +1718,19 @@ pref("browser.topsites.component.enabled", false);
pref("browser.topsites.useRemoteSetting", true);
// Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
-pref("browser.topsites.contile.enabled", true);
-pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles");
+pref("browser.topsites.contile.enabled", false);
+pref("browser.topsites.contile.endpoint", "");
// Whether to enable the Share-of-Voice feature for Sponsored Topsites via Contile.
-pref("browser.topsites.contile.sov.enabled", true);
+pref("browser.topsites.contile.sov.enabled", false);
// The base URL for the Quick Suggest anonymizing proxy. To make a request to
// the proxy, include a campaign ID in the path.
-pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/");
-pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1");
+pref("browser.partnerlink.attributionURL", "");
+pref("browser.partnerlink.campaign.topsites", "");
// Activates preloading of the new tab url.
-pref("browser.newtab.preload", true);
+pref("browser.newtab.preload", false);
// Mozilla Ad Routing Service (MARS) unified ads service
pref("browser.newtabpage.activity-stream.unifiedAds.tiles.enabled", false);
@@ -1738,12 +1738,12 @@ pref("browser.newtabpage.activity-stream.unifiedAds.spocs.enabled", false);
pref("browser.newtabpage.activity-stream.unifiedAds.endpoint", "https://ads.mozilla.org/");
// Weather widget for newtab
-pref("browser.newtabpage.activity-stream.showWeather", true);
+pref("browser.newtabpage.activity-stream.showWeather", false);
pref("browser.newtabpage.activity-stream.weather.query", "");
pref("browser.newtabpage.activity-stream.weather.display", "simple");
// enable location search for newtab weather widget
-pref("browser.newtabpage.activity-stream.weather.locationSearchEnabled", true);
+pref("browser.newtabpage.activity-stream.weather.locationSearchEnabled", false);
// List of regions that get weather by default.
pref("browser.newtabpage.activity-stream.discoverystream.region-weather-config", "US,CA");
Patch-Source: https://github.com/chimera-linux/cports/blob/0b7b1b1/contrib/firefox/patches/sqlite-ppc.patch
From 67157b1aa7da0a146b7d2d5abb9237eea1f434ec Mon Sep 17 00:00:00 2001
From: Daniel Kolesa <daniel@octaforge.org>
Date: Fri, 23 Sep 2022 02:38:29 +0200
Subject: [PATCH] fix sqlite3 on ppc with clang
The __ppc__ macro is always defined on clang but not gcc, which
results in sqlite mistakenly thinking that ppc64le with clang
is big endian.
Also disable some inline assembly stuff on ppc that is never used
with gcc and probably was never tested with modern machines.
---
third_party/sqlite3/src/sqlite3.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/third_party/sqlite3/src/sqlite3.c b/third_party/sqlite3/src/sqlite3.c
index dd3b5c5..7339893 100644
--- a/third_party/sqlite3/src/sqlite3.c
+++ b/third_party/sqlite3/src/sqlite3.c
@@ -14875,9 +14875,9 @@ typedef INT16_TYPE LogEst;
# elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \
defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \
defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \
- defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
+ defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) || defined(__LITTLE_ENDIAN__)
# define SQLITE_BYTEORDER 1234
-# elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__)
+# elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__) || defined(__BIG_ENDIAN__)
# define SQLITE_BYTEORDER 4321
# else
# define SQLITE_BYTEORDER 0
@@ -35670,7 +35670,7 @@ SQLITE_PRIVATE int sqlite3VListNameToNum(VList *pIn, const char *zName, int nNam
return (sqlite_uint64)hi << 32 | lo;
}
-#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__ppc__))
+#elif 0
__inline__ sqlite_uint64 sqlite3Hwtime(void){
unsigned long long retval;
@@ -207003,9 +207003,9 @@ struct RtreeMatchArg {
# elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \
defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \
defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \
- defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
+ defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) || defined(__LITTLE_ENDIAN__)
# define SQLITE_BYTEORDER 1234
-# elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__)
+# elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__) || defined(__BIG_ENDIAN__)
# define SQLITE_BYTEORDER 4321
# else
# define SQLITE_BYTEORDER 0
# WIP - Help needed
URL customizations requires to comprehend the scope to handle the documentation for this
and other projects heavily customizing and rebranding Firefox like Abrowser does.
This patch documents how to handle custom URLs to point to a desired page (initially).
It replaces,
* is="moz-support-link"
* support-page="..."
to customize the default URL, making sure there is an id for l10n field,
* data-l10n-id="..."
so the corresponding message is displayed as it seems to be linked on some cases
with is="" and support-page="..."
Cheers!
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml_
index 77ea8f5d..62c3ce8e 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -372,10 +372,7 @@
support-page="global-privacy-control" />
</hbox>
<hbox id="doNotTrackBox" flex="1" align="center" hidden="true">
- <html:a is="moz-support-link"
- id="doNotTrackRemoval"
- support-page="how-do-i-turn-do-not-track-feature"
- data-l10n-id="do-not-track-removal" />
+ <html:a class="learnMore" href="https://trisquel.info/en/wiki/abrowser-help" target="_blank"/>
</hbox>
</vbox>
</groupbox>
@@ -388,11 +385,10 @@
<vbox flex="1">
<description class="description-with-side-element description-deemphasized" flex="1">
<html:span id="totalSiteDataSize"></html:span>
- <html:a is="moz-support-link"
- id="siteDataLearnMoreLink"
- data-l10n-id="sitedata-learn-more"
- support-page="storage-permissions"
- />
+ <html:a id="doNotTrackLearnMoreLink"
+ href="https://trisquel.info/en/wiki/abrowser-help"
+ data-l10n-id="do-not-track-learn-more"
+ target="_blank"/>
</description>
<hbox flex="1" id="deleteOnCloseNote" class="info-box-container smaller-font-size">
<hbox class="info-icon-container">
diff --git a/uriloader/exthandler/HandlerList.sys.mjs b/uriloader/exthandler/HandlerList.sys.mjs
index e95d627..beef04d 100644
--- a/uriloader/exthandler/HandlerList.sys.mjs
+++ b/uriloader/exthandler/HandlerList.sys.mjs
@@ -8,198 +8,7 @@ export const kHandlerList = {
default: {
schemes: {
mailto: {
- handlers: [
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- cs: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Seznam",
- uriTemplate: "https://email.seznam.cz/newMessageScreen?mailto=%s",
- },
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- "es-CL": {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- {
- name: "Outlook",
- uriTemplate:
- "https://outlook.live.com/default.aspx?rru=compose&to=%s",
- },
- ],
- },
- },
- },
- "ja-JP-mac": {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Yahoo!メール",
- uriTemplate: "https://mail.yahoo.co.jp/compose/?To=%s",
- },
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- ja: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Yahoo!メール",
- uriTemplate: "https://mail.yahoo.co.jp/compose/?To=%s",
- },
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- kk: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Яндекс.Почта",
- uriTemplate: "https://mail.yandex.ru/compose?mailto=%s",
- },
- {
- name: "Mail.Ru",
- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s",
- },
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- ltg: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- {
- name: "inbox.lv mail",
- uriTemplate: "https://mail.inbox.lv/compose?to=%s",
- },
- ],
- },
- },
- },
- lv: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- {
- name: "inbox.lv mail",
- uriTemplate: "https://mail.inbox.lv/compose?to=%s",
- },
- ],
- },
- },
- },
- pl: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Poczta Interia.pl",
- uriTemplate: "https://poczta.interia.pl/mh/?mailto=%s",
- },
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- ru: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Яндекс.Почту",
- uriTemplate: "https://mail.yandex.ru/compose?mailto=%s",
- },
- {
- name: "Mail.Ru",
- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s",
- },
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- ],
- },
- },
- },
- uk: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- {
- name: "Outlook",
- uriTemplate:
- "https://outlook.live.com/default.aspx?rru=compose&to=%s",
- },
- ],
- },
- },
- },
- uz: {
- schemes: {
- mailto: {
- handlers: [
- {
- name: "Gmail",
- uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s",
- },
- {
- name: "Mail.Ru",
- uriTemplate: "https://e.mail.ru/cgi-bin/sentmsg?mailto=%s",
- },
- ],
+ handlers: [],
},
},
},
diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs
index 7e98e6d..7716e41 100644
--- a/services/settings/RemoteSettingsClient.sys.mjs
+++ b/services/settings/RemoteSettingsClient.sys.mjs
@@ -227,6 +227,8 @@ class AttachmentDownloader extends Downloader {
* @see Downloader.download
*/
async download(record, options) {
+ console.warn("Function 'download' disabled in Abrowser due privacy concerns.");
+ return null;
try {
// Explicitly await here to ensure we catch a network error.
return await super.download(record, options);
diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs
index 12fef6c..c52b65e 100644
--- a/services/settings/Utils.sys.mjs
+++ b/services/settings/Utils.sys.mjs
@@ -409,6 +409,8 @@ export var Utils = {
* @param {Object} filters
*/
async fetchLatestChanges(serverUrl, options = {}) {
+ console.warn("Function 'fetchLatestChanges' disabled in Abrowser due privacy concerns.");
+ return null;
const { expectedTimestamp, lastEtag = "", filters = {} } = options;
let url = serverUrl + Utils.CHANGES_PATH;
diff --git a/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs b/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs
index 803d52a1..1a3ef5ba 100644
--- a/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs
+++ b/toolkit/components/telemetry/app/TelemetryUtils.sys.mjs
@@ -124,6 +124,11 @@ export var TelemetryUtils = {
* Takes a date and returns it truncated to a date with daily precision.
*/
truncateToDays(date) {
+ console.warn("Function 'truncateToDays' called with:", date);
+ if (!date || !(date instanceof Date)) {
+ console.warn("Function 'truncateToDays' disabled in Abrowser due to privacy concerns. Received invalid or undefined date.");
+ return null; // Retorna null para evitar errores posteriores
+ }
return new Date(
date.getFullYear(),
date.getMonth(),
@@ -172,6 +172,10 @@ export var TelemetryUtils = {
* @return {Object} The Date object representing the next midnight.
*/
getNextMidnight(date) {
+ if (!date || !(date instanceof Date)) {
+ console.warn("Function 'getNextMidnight' disabled in Abrowser due to privacy concerns.");
+ return null;
+ }
let nextMidnight = new Date(this.truncateToDays(date));
nextMidnight.setDate(nextMidnight.getDate() + 1);
return nextMidnight;
@@ -185,6 +189,10 @@ export var TelemetryUtils = {
* is not within the midnight tolerance.
*/
getNearestMidnight(date, tolerance) {
+ if (!date || !(date instanceof Date)) {
+ console.warn("Function 'getNearestMidnight' disabled in Abrowser due to privacy concerns.");
+ return null;
+ }
let lastMidnight = this.truncateToDays(date);
if (this.areTimesClose(date.getTime(), lastMidnight.getTime(), tolerance)) {
return lastMidnight;
diff --git a/toolkit/components/telemetry/app/TelemetryScheduler.sys.mjs b/toolkit/components/telemetry/app/TelemetryScheduler.sys.mjs
index 539447a..43d846b 100644
--- a/toolkit/components/telemetry/app/TelemetryScheduler.sys.mjs
+++ b/toolkit/components/telemetry/app/TelemetryScheduler.sys.mjs
@@ -183,8 +183,20 @@ export var TelemetryScheduler = {
},
_sentPingToday(pingTime, nowDate) {
+ // Validar 'nowDate' antes de usarlo
+ if (!nowDate || !(nowDate instanceof Date)) {
+ console.warn("Invalid 'nowDate' passed to _sentPingToday. Function disabled in Abrowser due to privacy concerns.");
+ return false; // Devolvemos 'false' para evitar errores
+ }
+
// This is today's date and also the previous midnight (0:00).
const todayDate = TelemetryUtils.truncateToDays(nowDate);
+
+ if (!todayDate) {
+ console.warn("TelemetryUtils.truncateToDays returned null. Skipping _sentPingToday.");
+ return false;
+ }
+
// We consider a ping sent for today if it occured after or at 00:00 today.
return pingTime >= todayDate.getTime();
},
diff --git a/toolkit/content/aboutRights.xhtml b/toolkit/content/aboutRights.xhtml
index 324b97f4..2416a16e 100644
--- a/toolkit/content/aboutRights.xhtml
+++ b/toolkit/content/aboutRights.xhtml
@@ -61,14 +61,6 @@
data-l10n-name="mozilla-privacy-policy-link"
></a>
</li>
- <li data-l10n-id="rights-intro-point-5">
- <a
- href="about:rights#webservices"
- id="showWebServices"
- data-l10n-name="mozilla-service-terms-link"
- ></a>
- </li>
- <li data-l10n-id="rights-intro-point-6"></li>
</ul>
<div id="webservices-container">
diff --git a/toolkit/content/aboutRights-unbranded.xhtml b/toolkit/content/aboutRights-unbranded.xhtml_
index 240b1195..50469282 100644
--- a/toolkit/content/aboutRights-unbranded.xhtml
+++ b/toolkit/content/aboutRights-unbranded.xhtml
@@ -39,14 +39,6 @@
<!-- Point 2 discusses Mozilla trademarks, and isn't needed when the build is unbranded.
- Point 4 discusses privacy policy, unbranded builds get a placeholder (for the vendor to replace)
- Point 5 discusses web service terms, unbranded builds gets a placeholder (for the vendor to replace) -->
- <li data-l10n-id="rights-intro-point-4-unbranded"></li>
- <li data-l10n-id="rights-intro-point-5-unbranded">
- <a
- href="about:rights#webservices"
- id="showWebServices"
- data-l10n-name="mozilla-website-services-link"
- ></a>
- </li>
</ul>
<div id="webservices-container">
diff --git a/toolkit/locales/en-US/toolkit/about/aboutRights.ftl b/toolkit/locales/en-US/toolkit/about/aboutRights.ftl
index 517e4232..93dea417 100644
--- a/toolkit/locales/en-US/toolkit/about/aboutRights.ftl
+++ b/toolkit/locales/en-US/toolkit/about/aboutRights.ftl
@@ -30,103 +30,3 @@ rights-intro-point-4 =
{ -vendor-short-name } through { -brand-short-name } is described in the
<a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name }
Privacy Policy</a>.
-rights-intro-point-4-unbranded =
- Any applicable privacy policies for this product should be listed here.
-rights-intro-point-5 =
- Some { -brand-short-name } features make use of web-based information
- services, however, we cannot guarantee they are 100% accurate or
- error-free. More details, including information on how to disable the
- features that use these services, can be found in the
- <a data-l10n-name="mozilla-service-terms-link">service terms</a>.
-rights-intro-point-5-unbranded =
- If this product incorporates web services, any applicable service terms for
- the service(s) should be linked to the
- <a data-l10n-name="mozilla-website-services-link"> Website Services</a>
- section.
-rights-intro-point-6 =
- In order to play back certain types of video content, { -brand-short-name }
- downloads certain content decryption modules from third parties.
-rights-webservices-header = { -brand-full-name } Web-Based Information Services
-rights-webservices =
- { -brand-full-name } uses web-based information services (“Services”) to
- provide some of the features provided for your use with this binary version
- of { -brand-short-name } under the terms described below. If you do not
- want to use one or more of the Services or the terms below are
- unacceptable, you may disable the feature or Service(s). Instructions on
- how to disable a particular feature or Service may be found
- <a data-l10n-name="mozilla-disable-service-link">here</a>. Other features
- and Services can be disabled in the application preferences.
-rights-safebrowsing =
- <strong>SafeBrowsing: </strong>Disabling the Safe Browsing feature is not
- recommended as it may result in you going to unsafe sites. If you wish to
- disable the feature completely, follow these steps:
-rights-safebrowsing-term-1 = Open the application preferences
-rights-safebrowsing-term-2 = Select the Security selection
-rights-safebrowsing-term-3 =
- Uncheck the option to “{ enableSafeBrowsing-label }”
-enableSafeBrowsing-label = Block dangerous and deceptive content
-rights-safebrowsing-term-4 = Safe Browsing is now disabled
-rights-locationawarebrowsing =
- <strong>Location Aware Browsing: </strong>is always opt-in. No location
- information is ever sent without your permission. If you wish to disable
- the feature completely, follow these steps:
-rights-locationawarebrowsing-term-1 =
- In the URL bar, type <code>about:config</code>
-rights-locationawarebrowsing-term-2 = Type geo.enabled
-rights-locationawarebrowsing-term-3 =
- Double click on the geo.enabled preference
-rights-locationawarebrowsing-term-4 = Location-Aware Browsing is now disabled
-rights-webservices-unbranded =
- An overview of the website services the product incorporates, along with
- instructions on how to disable them, if applicable, should be included
- here.
-rights-webservices-term-unbranded =
- Any applicable service terms for this product should be listed here.
-rights-webservices-term-1 =
- { -vendor-short-name } and its contributors, licensors and partners work to
- provide the most accurate and up-to-date Services. However, we cannot
- guarantee that this information is comprehensive and error-free. For
- example, the Safe Browsing Service may not identify some risky sites and
- may identify some safe sites in error and the Location Aware Service all
- locations returned by our service providers are estimates only and neither
- we nor our service providers guarantee the accuracy of the locations
- provided.
-rights-webservices-term-2 =
- { -vendor-short-name } may discontinue or change the Services at its
- discretion.
-rights-webservices-term-3 =
- You are welcome to use these Services with the accompanying version of
- { -brand-short-name }, and { -vendor-short-name } grants you its rights to
- do so. { -vendor-short-name } and its licensors reserve all other rights in
- the Services. These terms are not intended to limit any rights granted
- under open source licenses applicable to { -brand-short-name } and to
- corresponding source code versions of { -brand-short-name }.
-rights-webservices-term-4 =
- <strong>The Services are provided “as-is.” { -vendor-short-name }, its
- contributors, licensors, and distributors, disclaim all warranties, whether
- express or implied, including without limitation, warranties that the
- Services are merchantable and fit for your particular purposes. You bear
- the entire risk as to selecting the Services for your purposes and as to
- the quality and performance of the Services. Some jurisdictions do not
- allow the exclusion or limitation of implied warranties, so this disclaimer
- may not apply to you.</strong>
-rights-webservices-term-5 =
- <strong>Except as required by law, { -vendor-short-name }, its
- contributors, licensors, and distributors will not be liable for any
- indirect, special, incidental, consequential, punitive, or exemplary
- damages arising out of or in any way relating to the use of
- { -brand-short-name } and the Services. The collective liability under
- these terms will not exceed $500 (five hundred dollars). Some jurisdictions
- do not allow the exclusion or limitation of certain damages, so this
- exclusion and limitation may not apply to you.</strong>
-rights-webservices-term-6 =
- { -vendor-short-name } may update these terms as necessary from time to
- time. These terms may not be modified or canceled without
- { -vendor-short-name }’s written agreement.
-rights-webservices-term-7 =
- These terms are governed by the laws of the state of California, U.S.A.,
- excluding its conflict of law provisions. If any portion of these terms is
- held to be invalid or unenforceable, the remaining portions will remain in
- full force and effect. In the event of a conflict between a translated
- version of these terms and the English language version, the English
- language version shall control.
#! /usr/bin/python3
# Copyright (C) 2020, 2021 grizzlyuser <grizzlyuser@protonmail.com>
# Copyright (C) 2024 Luis Guzmán <ark@switnet.org>
# Copyright (C) 2020, 2021, 2022, 2023, 2024 grizzlyuser <grizzlyuser@protonmail.com>
# Based on: https://gitlab.trisquel.org/trisquel/wrapage-helpers/-/blob/81881d89b2bf7d502dd14fcccdb471fec6f6b206/helpers/DATA/firefox/reprocess-search-config.py
# Below is the notice from the original author:
#
# Copyright (C) 2020, 2021 Ruben Rodriguez <ruben@trisquel.info>
#
# This program is free software; you can redistribute it and/or modify
......@@ -23,6 +26,7 @@ import time
import copy
import argparse
import pathlib
import logging
from collections import namedtuple
from jsonschema import validate
......@@ -41,12 +45,42 @@ parser.add_argument(
type=int,
default=2,
help='indent for pretty printing of output files')
parser.add_argument(
'-l',
'--loglevel',
choices=logging._nameToLevel.keys(),
default=logging.INFO,
help='logging level')
arguments = parser.parse_args()
logging.basicConfig(level=arguments.loglevel)
logger = logging.getLogger(str(pathlib.Path(__file__).name))
File = namedtuple('File', ['path', 'content'])
class RemoteSettings:
class JsonProcessor:
@classmethod
def process(cls):
parsed_jsons = []
for json_path in cls.JSON_PATHS:
logger.info('Reading input: ' + str(json_path) + '...')
with json_path.open(encoding='utf-8') as file:
parsed_jsons.append(File(json_path, json.load(file)))
parsed_schema = None
if hasattr(cls, "SCHEMA_PATH"):
logger.info('Reading schema: ' + str(json_path) + '...')
with cls.SCHEMA_PATH.open() as file:
parsed_schema = json.load(file)
processed = cls.process_parsed(parsed_jsons, parsed_schema)
with processed.path.open('w') as file:
json.dump(processed.content, file, indent=arguments.indent)
logger.info('Wrote: ' + str(processed.path))
class RemoteSettings(JsonProcessor):
DUMPS_PATH_RELATIVE = 'services/settings/dumps'
DUMPS_PATH_ABSOLUTE = arguments.MAIN_PATH / DUMPS_PATH_RELATIVE
......@@ -75,11 +109,12 @@ class RemoteSettings:
@classmethod
def now(cls):
return int(round(time.time() / 10 ** 6))
return int(round(time.time() * 1000))
@classmethod
def process_raw(cls, unwrapped_jsons, parsed_schema):
timestamps, result = [], []
for collection in unwrapped_jsons:
should_modify_collection = cls.should_modify_collection(collection)
for record in collection.content:
......@@ -110,13 +145,23 @@ class RemoteSettings:
return File(cls.OUTPUT_PATH, result)
@classmethod
def process(cls, parsed_jsons, parsed_schema):
def process_parsed(cls, parsed_jsons, parsed_schema):
return cls.wrap(
cls.process_raw(
cls.unwrap(parsed_jsons),
parsed_schema))
class EmptyRemoteSettings(RemoteSettings):
@classmethod
def should_drop_record(cls, search_engine):
return True
@classmethod
def process_record(cls, record):
return record
class Changes(RemoteSettings):
JSON_PATHS = tuple(RemoteSettings.DUMPS_PATH_ABSOLUTE.glob('*/*.json'))
OUTPUT_PATH = RemoteSettings.DUMPS_PATH_ABSOLUTE / 'monitor/changes'
......@@ -145,53 +190,108 @@ class Changes(RemoteSettings):
return File(cls.OUTPUT_PATH, changes)
class SearchConfig(RemoteSettings):
class SearchConfigV2(RemoteSettings):
JSON_PATHS = (
RemoteSettings.DUMPS_PATH_ABSOLUTE /
'main/search-config.json',
'main/search-config-v2.json',
)
SCHEMA_PATH = arguments.MAIN_PATH / \
'toolkit/components/search/schema/search-engine-config-schema.json'
'toolkit/components/search/schema/search-config-v2-schema.json'
OUTPUT_PATH = JSON_PATHS[0]
_DUCKDUCKGO_SEARCH_ENGINE_ID = 'ddg@search.mozilla.org'
_DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER = 'ddg'
@classmethod
def should_drop_record(cls, search_engine):
return search_engine['webExtension']['id'] not in (
cls._DUCKDUCKGO_SEARCH_ENGINE_ID, 'wikipedia@search.mozilla.org',
'trisquel@search.mozilla.org', 'trisquel-packages@@search.mozilla.org',
'qwant@search.mozilla.org', 'ecosia@search.mozilla.org')
def should_drop_record(cls, record):
if record['recordType'] != 'engine':
return False
identifier = record['identifier']
excluded_identifiers = ['ecosia', 'qwant', 'trisquel', 'trisquel-packages']
return (
identifier != cls._DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER and
not (identifier.startswith('wikipedia') or identifier in excluded_identifiers)
)
@classmethod
def process_record(cls, record):
if record['recordType'] == 'defaultEngines':
return cls.process_default_engines(record)
elif record['recordType'] == 'engine':
return cls.process_engine(record)
elif record['recordType'] == 'engineOrders':
return cls.process_engine_orders(record)
else:
return record
@classmethod
def process_default_engines(cls, default_engines):
default_engines['globalDefault'] = cls._DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER
default_engines['specificDefaults'] = []
return default_engines
@classmethod
def process_engine(cls, engine):
engine['base'].pop('partnerCode', None)
engine['base']['urls']['search'].pop('params', None)
if engine['identifier'] == cls._DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER:
engine['base']['name'] += ' HTML'
engine['base']['urls']['search']['base'] = 'https://html.duckduckgo.com/html'
allRegions_prefixes = ['ecosia', 'qwant', 'trisquel']
if any(engine['identifier'].startswith(prefix) for prefix in allRegions_prefixes) or \
engine['identifier'] == cls._DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER:
engine['variants'] = [{'environment': {'allRegionsAndLocales': True}}]
return engine
@classmethod
def process_record(cls, search_engine):
[search_engine.pop(key, None)
for key in ['extraParams', 'telemetryId']]
def process_engine_orders(cls, engine_orders):
engine_orders['orders'] = []
return engine_orders
class SearchConfigOverridesV2(EmptyRemoteSettings):
JSON_PATHS = (
RemoteSettings.DUMPS_PATH_ABSOLUTE /
'main/search-config-overrides-v2.json',
)
SCHEMA_PATH = arguments.MAIN_PATH / \
'toolkit/components/search/schema/search-config-overrides-v2-schema.json'
OUTPUT_PATH = JSON_PATHS[0]
class SearchDefaultOverrideAllowlist(EmptyRemoteSettings):
JSON_PATHS = (
RemoteSettings.DUMPS_PATH_ABSOLUTE /
'main/search-default-override-allowlist.json',
)
SCHEMA_PATH = arguments.MAIN_PATH / \
'toolkit/components/search/schema/search-default-override-allowlist-schema.json'
OUTPUT_PATH = JSON_PATHS[0]
general_specifier = {}
for specifier in search_engine['appliesTo'].copy():
if 'application' in specifier:
if 'distributions' in specifier['application']:
search_engine['appliesTo'].remove(specifier)
continue
specifier['application'].pop('extraParams', None)
if 'included' in specifier and 'everywhere' in specifier[
'included'] and specifier['included']['everywhere']:
if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
specifier['default'] = 'yes'
general_specifier = specifier
class SearchTelemetryV2(EmptyRemoteSettings):
JSON_PATHS = (
RemoteSettings.DUMPS_PATH_ABSOLUTE /
'main/search-telemetry-v2.json',
)
SCHEMA_PATH = arguments.MAIN_PATH / \
'browser/components/search/schema/search-telemetry-v2-schema.json'
OUTPUT_PATH = JSON_PATHS[0]
if not general_specifier:
general_specifier = {'included': {'everywhere': True}}
search_engine['appliesTo'].insert(0, general_specifier)
if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
general_specifier['default'] = 'yes'
return search_engine
class UrlClassifierSkipUrls(EmptyRemoteSettings):
JSON_PATHS = (
RemoteSettings.DUMPS_PATH_ABSOLUTE /
'main/url-classifier-skip-urls.json',
)
OUTPUT_PATH = JSON_PATHS[0]
class TippyTopSites:
class TippyTopSites(JsonProcessor):
JSON_PATHS = (
arguments.MAIN_PATH /
'browser/components/newtab/data/content/tippytop/top_sites.json',
......@@ -199,7 +299,7 @@ class TippyTopSites:
'tippytop/top_sites.json')
@classmethod
def process(cls, parsed_jsons, parsed_schema):
def process_parsed(cls, parsed_jsons, parsed_schema):
tippy_top_sites_main = parsed_jsons[0]
tippy_top_sites_branding = parsed_jsons[1]
result = tippy_top_sites_branding.content + \
......@@ -234,19 +334,15 @@ class TopSites(RemoteSettings):
# To reflect the latest timestamps, Changes class should always come after
# all other RemoteSettings subclasses
processors = (SearchConfig, Changes)
processors = (
SearchConfigV2,
SearchConfigOverridesV2,
SearchDefaultOverrideAllowlist,
SearchTelemetryV2,
UrlClassifierSkipUrls,
TopSites,
Changes,
TippyTopSites)
for processor in processors:
parsed_jsons = []
for json_path in processor.JSON_PATHS:
with json_path.open(encoding='utf-8') as file:
parsed_jsons.append(File(json_path, json.load(file)))
parsed_schema = None
if hasattr(processor, "SCHEMA_PATH"):
with processor.SCHEMA_PATH.open() as file:
parsed_schema = json.load(file)
processed = processor.process(parsed_jsons, parsed_schema)
with processed.path.open('w') as file:
json.dump(processed.content, file, indent=arguments.indent)
processor.process()
This diff is collapsed.
{
"base": {
"aliases": [
"packages",
"p"
],
"classification": "unknown",
"name": "Trisquel Packages",
"urls": {
"search": {
"base": "https://packages.trisquel.org/search",
"params": [],
"searchTermParamName": "keywords"
}
}
},
"id": "b5fd21a8-e369-477f-a3f2-b47a370f9030",
"identifier": "trisquel-packages",
"last_modified": 1678,
"recordType": "engine",
"schema": "defaultEngines",
"variants": [
{
"environment": {
"allRegionsAndLocales": true
},
"optional": false
}
]
},
{
"schema": 1674147734592,
"appliesTo": [
{
"included": {
"everywhere": true
}
}
],
"webExtension": {
"id": "trisquel-packages@search.mozilla.org"
},
"id": "b5fd21a8-e369-477f-a3f2-b47a370f9030",
"last_modified": 1678
},
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.