From 26b0e44d7dd2a53aad25c893e16c66e5901d1133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Tue, 1 Oct 2024 07:27:28 +0000 Subject: [PATCH] firefox: prepare v130.0.1 release --- ...emove_moreFromMozilla_Focus_and_Klar.patch | 18 +- helpers/DATA/firefox/process-json-files.py | 200 +++++++++++++----- .../settings/dumps/main/top-sites.json | 61 ++++++ .../search-custom/tippytop/top_sites.json | 52 +++++ .../searchplugins/trisquel-packages-v2.json | 30 +++ .../searchplugins/trisquel-packages.json | 15 -- .../firefox/searchplugins/trisquel-v2.json | 30 +++ .../DATA/firefox/searchplugins/trisquel.json | 15 -- helpers/DATA/firefox/settings.js | 7 + .../DATA/firefox/tmp_favicons/ddg-html.ico | Bin 2799 -> 0 bytes helpers/DATA/firefox/tmp_favicons/ddg.ico | Bin 2799 -> 0 bytes helpers/DATA/firefox/tmp_favicons/ecosia.ico | Bin 5430 -> 0 bytes helpers/DATA/firefox/tmp_favicons/qwant.ico | Bin 5430 -> 0 bytes .../DATA/firefox/tmp_favicons/wikipedia.ico | Bin 884 -> 0 bytes ...re_favicons_on_old_search-engine_bar.patch | 153 -------------- helpers/make-firefox | 181 +++------------- 16 files changed, 370 insertions(+), 392 deletions(-) create mode 100644 helpers/DATA/firefox/search-custom/services/settings/dumps/main/top-sites.json create mode 100644 helpers/DATA/firefox/search-custom/tippytop/top_sites.json create mode 100644 helpers/DATA/firefox/searchplugins/trisquel-packages-v2.json delete mode 100644 helpers/DATA/firefox/searchplugins/trisquel-packages.json create mode 100644 helpers/DATA/firefox/searchplugins/trisquel-v2.json delete mode 100644 helpers/DATA/firefox/searchplugins/trisquel.json delete mode 100644 helpers/DATA/firefox/tmp_favicons/ddg-html.ico delete mode 100644 helpers/DATA/firefox/tmp_favicons/ddg.ico delete mode 100644 helpers/DATA/firefox/tmp_favicons/ecosia.ico delete mode 100644 helpers/DATA/firefox/tmp_favicons/qwant.ico delete mode 100644 helpers/DATA/firefox/tmp_favicons/wikipedia.ico delete mode 100644 helpers/DATA/firefox/tmp_restore_favicons_on_old_search-engine_bar.patch diff --git a/helpers/DATA/firefox/patch_changes/Remove_moreFromMozilla_Focus_and_Klar.patch b/helpers/DATA/firefox/patch_changes/Remove_moreFromMozilla_Focus_and_Klar.patch index 4e47879..72ecd3b 100644 --- a/helpers/DATA/firefox/patch_changes/Remove_moreFromMozilla_Focus_and_Klar.patch +++ b/helpers/DATA/firefox/patch_changes/Remove_moreFromMozilla_Focus_and_Klar.patch @@ -6,20 +6,20 @@ Based on https://git.parabola.nu/abslibre.git/diff/libre/iceweasel/9004-FSDG-mis diff -Nru a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js --- a/browser/app/profile/firefox.js 2022-05-22 09:35:55.500675021 +0000 +++ b/browser/app/profile/firefox.js 2022-05-22 21:54:34.961904349 +0000 -@@ -1007,11 +1007,11 @@ - // Toggling Search bar on and off in about:preferences - pref("browser.preferences.search", true); - #if defined(NIGHTLY_BUILD) +@@ -1233,11 +1233,11 @@ pref("accessibility.typeaheadfind.linksonly", false); + pref("accessibility.typeaheadfind.flashBar", 1); + + // Whether we can show the "Firefox Labs" section. -pref("browser.preferences.experimental", true); +pref("browser.preferences.experimental", false); - #else - pref("browser.preferences.experimental", false); - #endif + // Whether we had to hide the "Firefox Labs" section because it would be empty. + pref("browser.preferences.experimental.hidden", false); + // Whether we show the "More from Mozilla" section. -pref("browser.preferences.moreFromMozilla", true); +pref("browser.preferences.moreFromMozilla", false); - pref("browser.preferences.experimental.hidden", false); - pref("browser.preferences.defaultPerformanceSettings.enabled", true); + // Used by settings to track whether the user customized advanced + // performance settings. Not used directly elsewhere. @@ -1907,7 +1907,7 @@ pref("browser.promo.focus.disallowed_regions", "cn"); diff --git a/helpers/DATA/firefox/process-json-files.py b/helpers/DATA/firefox/process-json-files.py index aa7e832..992cb45 100644 --- a/helpers/DATA/firefox/process-json-files.py +++ b/helpers/DATA/firefox/process-json-files.py @@ -1,6 +1,9 @@ #! /usr/bin/python3 - -# Copyright (C) 2020, 2021 grizzlyuser +# Copyright (C) 2024 Luis Guzmán +# Copyright (C) 2020, 2021, 2022, 2023, 2024 grizzlyuser +# 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 # # 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' @@ -132,7 +177,7 @@ class Changes(RemoteSettings): changes = [] for collection in unwrapped_jsons: - if collection.path not in (RemoteSettings.DUMPS_PATH_ABSOLUTE / 'main/example.json', RemoteSettings.DUMPS_PATH_ABSOLUTE / 'main/search-config-v2.json'): + if collection.path != RemoteSettings.DUMPS_PATH_ABSOLUTE / 'main/example.json': latest_change = {} latest_change[cls._LAST_MODIFIED_KEY_NAME] = cls.get_collection_timestamp( collection) @@ -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-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, search_engine): - [search_engine.pop(key, None) - for key in ['extraParams', 'telemetryId']] + 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 - 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) + @classmethod + def process_default_engines(cls, default_engines): + default_engines['globalDefault'] = cls._DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER + default_engines['specificDefaults'] = [] + return default_engines - 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 + @classmethod + def process_engine(cls, engine): + engine['base'].pop('partnerCode', None) + engine['base']['urls']['search'].pop('params', None) - 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' + if engine['identifier'] == cls._DUCKDUCKGO_SEARCH_ENGINE_IDENTIFIER: + engine['base']['name'] += ' HTML' + engine['base']['urls']['search']['base'] = 'https://html.duckduckgo.com/html' - return search_engine + 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_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 TippyTopSites: +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] + + +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] + + +class UrlClassifierSkipUrls(EmptyRemoteSettings): + JSON_PATHS = ( + RemoteSettings.DUMPS_PATH_ABSOLUTE / + 'main/url-classifier-skip-urls.json', + ) + OUTPUT_PATH = JSON_PATHS[0] + + +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() diff --git a/helpers/DATA/firefox/search-custom/services/settings/dumps/main/top-sites.json b/helpers/DATA/firefox/search-custom/services/settings/dumps/main/top-sites.json new file mode 100644 index 0000000..3f8d0ff --- /dev/null +++ b/helpers/DATA/firefox/search-custom/services/settings/dumps/main/top-sites.json @@ -0,0 +1,61 @@ +{ + "data": [ + { + "url": "https://trisquel.info/", + "order": 0, + "title": "Trisquel", + "id": "ec7f4843-6be5-5e86-870a-1c8383500a4b", + "last_modified": 1715345084783 + }, + { + "url": "https://packages.trisquel.org/", + "order": 1, + "title": "Trisquel Packages", + "id": "27a9b035-0b8b-4472-97cb-b1866aba0740", + "last_modified": 1715345084786 + }, + { + "url": "https://www.gnu.org/", + "order": 2, + "title": "GNU", + "id": "1baee931-751c-5993-b6fe-d86fbf78f9b0", + "last_modified": 1715345084789 + }, + { + "url": "https://www.fsf.org/", + "order": 3, + "title": "FSF", + "id": "fcc60dd8-4d97-5aca-8e5d-784652c75818", + "last_modified": 1715345084792 + }, + { + "url": "https://directory.fsf.org/", + "order": 4, + "title": "FSF Directory", + "id": "abe5bfb2-9487-5697-9f27-e0b782dfe006", + "last_modified": 1715345084796 + }, + { + "url": "https://libreplanet.org/", + "order": 5, + "title": "LibrePlanet", + "id": "e3d2cf88-a4dc-5d2e-9f9a-f3ea241d17d8", + "last_modified": 1715345084800 + }, + { + "url": "https://www.wikipedia.org/", + "order": 6, + "title": "Wikipedia", + "id": "02c295f5-54a8-5d29-8d1f-b619216b20c0", + "last_modified": 1715345084803 + }, + { + "url": "https://h-node.org/", + "order": 7, + "title": "h-node", + "id": "c426481f-8c3f-53b8-b23a-431a91a1c7b4", + "last_modified": 1715345084807 + } + ], + "timestamp": 1715345084810 +} diff --git a/helpers/DATA/firefox/search-custom/tippytop/top_sites.json b/helpers/DATA/firefox/search-custom/tippytop/top_sites.json new file mode 100644 index 0000000..68433f9 --- /dev/null +++ b/helpers/DATA/firefox/search-custom/tippytop/top_sites.json @@ -0,0 +1,52 @@ +[ + { + "domains": ["duckduckgo.com"], + "image_url": "images/duckduckgo-com@2x.svg", + "favicon_url": "favicons/duckduckgo-com.ico" + }, + { + "domains": ["trisquel.info"], + "image_url": "images/trisquel.png", + "favicon_url": "favicons/trisquel.ico" + }, + { + "domains": ["packages.trisquel.org"], + "image_url": "images/trisquel-packages.png", + "favicon_url": "favicons/trisquel-packages.ico" + }, + { + "domains": ["gnu.org"], + "image_url": "images/gnu.png", + "favicon_url": "favicons/gnu.ico" + }, + { + "domains": ["fsf.org"], + "image_url": "images/fsf.png", + "favicon_url": "favicons/fsf.ico" + }, + { + "domains": ["directory.fsf.org"], + "image_url": "images/directory.png", + "favicon_url": "favicons/fsf.ico" + }, + { + "domains": ["libreplanet.org"], + "image_url": "images/libreplanet.png", + "favicon_url": "favicons/libreplanet.ico" + }, + { + "domains": ["fsfe.org"], + "image_url": "images/fsfe.png", + "favicon_url": "favicons/fsfe.ico" + }, + { + "domains": ["wikipedia.org"], + "image_url": "images/wikipedia.png", + "favicon_url": "favicons/wikipedia.ico" + }, + { + "domains": ["h-node.org"], + "image_url": "images/hnode.png", + "favicon_url": "favicons/hnode.ico" + } +] diff --git a/helpers/DATA/firefox/searchplugins/trisquel-packages-v2.json b/helpers/DATA/firefox/searchplugins/trisquel-packages-v2.json new file mode 100644 index 0000000..bdfbe63 --- /dev/null +++ b/helpers/DATA/firefox/searchplugins/trisquel-packages-v2.json @@ -0,0 +1,30 @@ + { + "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 + } + ] + }, diff --git a/helpers/DATA/firefox/searchplugins/trisquel-packages.json b/helpers/DATA/firefox/searchplugins/trisquel-packages.json deleted file mode 100644 index c52066d..0000000 --- a/helpers/DATA/firefox/searchplugins/trisquel-packages.json +++ /dev/null @@ -1,15 +0,0 @@ - { - "schema": 1674147734592, - "appliesTo": [ - { - "included": { - "everywhere": true - } - } - ], - "webExtension": { - "id": "trisquel-packages@search.mozilla.org" - }, - "id": "b5fd21a8-e369-477f-a3f2-b47a370f9030", - "last_modified": 1678 - }, diff --git a/helpers/DATA/firefox/searchplugins/trisquel-v2.json b/helpers/DATA/firefox/searchplugins/trisquel-v2.json new file mode 100644 index 0000000..dffbbd5 --- /dev/null +++ b/helpers/DATA/firefox/searchplugins/trisquel-v2.json @@ -0,0 +1,30 @@ + { + "base": { + "aliases": [ + "trisquel", + "t" + ], + "classification": "unknown", + "name": "Trisquel", + "urls": { + "search": { + "base": "https://trisquel.info/search/node", + "params": [], + "searchTermParamName": "q" + } + } + }, + "id": "b99ed276-9557-4492-8bbb-d59826381893", + "identifier": "trisquel", + "last_modified": 1678, + "recordType": "engine", + "schema": "defaultEngines", + "variants": [ + { + "environment": { + "allRegionsAndLocales": true + }, + "optional": false + } + ] + }, diff --git a/helpers/DATA/firefox/searchplugins/trisquel.json b/helpers/DATA/firefox/searchplugins/trisquel.json deleted file mode 100644 index 5f093ba..0000000 --- a/helpers/DATA/firefox/searchplugins/trisquel.json +++ /dev/null @@ -1,15 +0,0 @@ - { - "schema": 1674147734535, - "appliesTo": [ - { - "included": { - "everywhere": true - } - } - ], - "webExtension": { - "id": "trisquel@search.mozilla.org" - }, - "id": "b99ed276-9557-4492-8bbb-d59826381893", - "last_modified": 1678 - }, diff --git a/helpers/DATA/firefox/settings.js b/helpers/DATA/firefox/settings.js index e621609..4514a4d 100644 --- a/helpers/DATA/firefox/settings.js +++ b/helpers/DATA/firefox/settings.js @@ -294,3 +294,10 @@ defaultPref("browser.search.serpEventTelemetry.enabled",false); // Disable Privacy-Preserving Attribution submition pref("dom.private-attribution.submission.enabled", false); + +// Disable Machine Learning +defaultPref("browser.ml.enabled", false); +defaultPref("browser.ml.chat.enabled", false); +// Hide from UI +defaultPref("browser.ml.chat.hideFromLabs", true); +defaultPref("browser.ml.chat.hideLabsShortcuts", true); diff --git a/helpers/DATA/firefox/tmp_favicons/ddg-html.ico b/helpers/DATA/firefox/tmp_favicons/ddg-html.ico deleted file mode 100644 index 3ad20825c107dd0f0b544f840f3755d44cba8719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2799 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 BObGx0 diff --git a/helpers/DATA/firefox/tmp_favicons/ddg.ico b/helpers/DATA/firefox/tmp_favicons/ddg.ico deleted file mode 100644 index 3ad20825c107dd0f0b544f840f3755d44cba8719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2799 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 BObGx0 diff --git a/helpers/DATA/firefox/tmp_favicons/ecosia.ico b/helpers/DATA/firefox/tmp_favicons/ecosia.ico deleted file mode 100644 index cc72d09d6d174c7054ab9590cf7fb8b28bbaf7fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmc&&F>6#o5MB?#1T2D$km{;nBlr)rNs-1%P=A1$pP}ilP;6om5squLQxL_%s94B@ zSXe|G3z5TsxzoItduak;oo{dFxp|r0cYD4U4~E@0yEEVH%)FU>r_>46Qgd^P#5D&O!Z7o^Tv$vH z&6CPQ#_?65H$vXnKziV3QU2Z6_j>F1pdi;yE5k7o*{fGl5@kvh<)Ym#at{35lqyXHqj*_)Fa=ojO%+Ij7FyiS$1`prVr_?3DGvu zz9q~PvqpQc*QY0zKg{!aiuu;Ok_V|jP@0^LETTgE=?%y%Xe)#-g z;_dPIQg>18Tje_FKEq~@4-+XLXm7`}U)PKeyE<+h2K1f~54kGZ+yMSQFxdwCev8>y7I58_Q5s@zqa@9Ki3~yfA>N$kj~FJ?;8XCmt$+{ zFM2>#44S~_{$qO3@%P`nd=H{taMu@u+Rsn-YVQ3!+C2Cq*-$gSc>i+ZaHJm9cK@V% zb=mKHeje@p`-lyaUm|&x_iwhr-Ur24L}K#0Hu3jIVZ-=)6FKR{oC|0vxa&e@%`=lU*Nd-e*mP{W@7*V diff --git a/helpers/DATA/firefox/tmp_favicons/qwant.ico b/helpers/DATA/firefox/tmp_favicons/qwant.ico deleted file mode 100644 index d43d1d5aa63d57734c88dca8a89c47091a354dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmc&&drXyO82{vc2L*vB;edds$wj#-f?T};g4|J|)GRQK%B(aMB`>)Y#nj9$Yqc)6 z)k^=UZ2psTwRKs!)s}PBGHg?8Ewu}vPru)L{5a>pcMgZ+l(RkizVn{S>!(WPjb*v=*796=6ZG*z#nQ8Xk-pFVS>XJ8 zV6jwBHHo{shj@5+h&IYyny1H0AJ*+-Hp%6#2H+IQhWW`7H#S%blcLo7)`~Pa_4r)K zWut?I7uJ8?won=};$*bHuiQC0K<*k7DB(f=(mHE`T-a47VynO9ENpVMt5FtZ#z{o5 zzjW1Q$PZg8Ea;=}qOfd+^)I$L1*B^o1NY&>wpaG-g3pKN*C9{U;tNQ8qcUBF~n$9t$}C z`4jV$t)84aMSAEXtTA@}ey&kg8^KovfQTMaIEz^kE1nc5IMrubislf-yNDc5Gu1zxN(oEZ?=4 z%X=;P@@P*)ZNG)&aaUtc^_3+#3c6NW;fV>Db~;50?fhwGs}BkVJhsV*}(0- zjo7+O-LM0(X>)z;c0Y-I@mAwsx33?uU5_=~zh8G$tNh!PJzko#;|I~=tnt!Wn<2fH z+GK5G*RiP+a=?-M^2FQIQ%1SD8xm_o^_BJM z(=~I9bGv=N7|X#t37vaU1O7lh{suijT6CDghz}2zq&r4SLPQ8CSP^SVC%XPll|98#MF;l7b<(R_gk5t zq+EnBjqRbTn=jFkaoDdw?V4XV*2&Yj15|I_aL`lgHa2>K=dqOqsy`vW=+MBS?-9YhvRu0Rf9em=A#=P!r6aE5s|-85FkALX_?R}9d1kYAxI=M~;N-lafa zAH;IzjegxA4uE|XHshSZdQ9EvKh^?Qb5I|02WK9}GG*WlwXxzp5Bwc6oPD}dYNnaQ+skZM%0eOzbBz9-PuAnM!b!M4n5l90rtv8c z_>kWo^l>TBlW|2X_C35GI_}JbNO>LkmvJx*Z0CAF;>U(i!9rq^Q@U5@#c^Y0ei zlVcASn&ZNmJ8H2pv4_`x)276*wr&3!Y-Qo?%sa71cK$HWKqEJQjr9CE!t?iL{yi{4 HA7cLx@5l?_ diff --git a/helpers/DATA/firefox/tmp_favicons/wikipedia.ico b/helpers/DATA/firefox/tmp_favicons/wikipedia.ico deleted file mode 100644 index 4314071e24c026048339d5b466f4929db1f9ffc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 884 zcmZQzU}RuoP*4y6(ku+`7#SGU7#J7?1R(qbAYX)ufuS?N&z+Y`iVG;k>*?VV1f&%} zn1c;S7FSh$VPIg~>gnPb64Cm0`q{!G3OuczYPu`fLLW%2ILLZ|S@i;w?+&5+D;w38 z$QTtJ>A&$NZqDI%JnE7!AAeM-wx2QcZtwo{*4_IV|FIspepYTzeB*6K8NrX+a^K96 zzP9hZkBg5>PlqoLgT?bRE=M#~*&5XJHqQCHA^dq+(1L5XR90?{JDS=muc5%rZHv}pBDBvV)-FNtoIs=1&%$cvOF0Hw@mvtuf z1Wy&1xcB>ITc&wIQb~EC2Z9_Gl6%g+{GEN#GJW}cri__ug}-VkBqiUdV?0ohs@7oE zQ=FHjv9`&^y4r7b^3mlCk6!E()fHWHS@7?c9ZQ#RI=H;q8^7(zD&>^9&v(A*QEl*8 ze%5Svw4~RyI~#VrRBSkrE_$J1vzTyeiqbxo1>Ij*1tvOkOy^`=(0RHd?rA;8h0`|0 z+sxLqu{6AVP${MG+-6V0lP`M{S%VnT_f<$ae78~Z`@L(w*89JkOy@HxWL4jr#rs$L zu9S^FlB{QXxSR7x(mcFOSB(v4o4^+o&Qcx3Q&^>bP0l+c7FwgrIF0^rz||NK7@7~ATg*tY0BI@z%6uz`SU zz0W&^=PX&xr#T!w)Tea+5YW8zgH3U*_QbgB2Jf1y9~-I9*gv&pYvT5khq&0jn7-(L z#(Qgmie1E2_38hQB>YZfUvaFkWvf_d=)=1G%nWX{gOUG(|M z9R?C@jSLn%&VE^IS8hFLB^veGrgd57gE@zv7M*PHTP_^8KK$Bai=_Scr;A+AGjwBm z@cHMNt5bq_6a!ptY|B090IgDh A!2kdN diff --git a/helpers/DATA/firefox/tmp_restore_favicons_on_old_search-engine_bar.patch b/helpers/DATA/firefox/tmp_restore_favicons_on_old_search-engine_bar.patch deleted file mode 100644 index cf5f9fe..0000000 --- a/helpers/DATA/firefox/tmp_restore_favicons_on_old_search-engine_bar.patch +++ /dev/null @@ -1,153 +0,0 @@ -diff --git a/browser/components/search/extensions/ddg/manifest.json b/browser/components/search/extensions/ddg/manifest.json -index 104eee64..62c546b4 100644 ---- a/browser/components/search/extensions/ddg/manifest.json -+++ b/browser/components/search/extensions/ddg/manifest.json -@@ -2,19 +2,24 @@ - "name": "DuckDuckGo", - "description": "Search DuckDuckGo", - "manifest_version": 2, -- "version": "1.5", -+ "version": "1.4", - "browser_specific_settings": { - "gecko": { - "id": "ddg@search.mozilla.org" - } - }, - "hidden": true, -+ "icons": { -+ "16": "favicon.ico" -+ }, -+ "web_accessible_resources": ["favicon.ico"], - "chrome_settings_overrides": { - "search_provider": { - "keyword": ["@duckduckgo", "@ddg"], - "name": "DuckDuckGo", - "search_url": "https://duckduckgo.com/", -- "search_url_get_params": "t=ffab&q={searchTerms}", -+ "search_form": "https://duckduckgo.com/", -+ "search_url_get_params": "q={searchTerms}", - "suggest_url": "https://ac.duckduckgo.com/ac/", - "suggest_url_get_params": "q={searchTerms}&type=list" - } -diff --git a/browser/components/search/extensions/ddg-html/manifest.json b/browser/components/search/extensions/ddg-html/manifest.json -index b2deff22..0639b068 100644 ---- a/browser/components/search/extensions/ddg-html/manifest.json -+++ b/browser/components/search/extensions/ddg-html/manifest.json -@@ -2,19 +2,24 @@ - "name": "DuckDuckGo (HTML)", - "description": "Search DuckDuckGo (HTML)", - "manifest_version": 2, -- "version": "1.5", -+ "version": "1.4", - "browser_specific_settings": { - "gecko": { - "id": "ddg-html@search.mozilla.org" - } - }, - "hidden": true, -+ "icons": { -+ "16": "favicon.ico" -+ }, -+ "web_accessible_resources": ["favicon.ico"], - "chrome_settings_overrides": { - "search_provider": { - "keyword": ["@duckduckgo", "@ddg"], - "name": "DuckDuckGo (HTML)", - "search_url": "https://html.duckduckgo.com/html/", -- "search_url_get_params": "t=ffab&q={searchTerms}", -+ "search_form": "https://html.duckduckgo.com/html/", -+ "search_url_get_params": "q={searchTerms}", - "suggest_url": "https://ac.duckduckgo.com/ac/", - "suggest_url_get_params": "q={searchTerms}&type=list" - } -diff --git a/browser/components/search/extensions/ecosia/manifest.json b/browser/components/search/extensions/ecosia/manifest.json -index b5312409..74fc9aff 100644 ---- a/browser/components/search/extensions/ecosia/manifest.json -+++ b/browser/components/search/extensions/ecosia/manifest.json -@@ -2,17 +2,22 @@ - "name": "Ecosia", - "description": "Search Ecosia", - "manifest_version": 2, -- "version": "1.3", -+ "version": "1.2", - "browser_specific_settings": { - "gecko": { - "id": "ecosia@search.mozilla.org" - } - }, - "hidden": true, -+ "icons": { -+ "16": "favicon.ico" -+ }, -+ "web_accessible_resources": ["favicon.ico"], - "chrome_settings_overrides": { - "search_provider": { - "name": "Ecosia", - "search_url": "https://www.ecosia.org/search", -+ "search_form": "https://www.ecosia.org/", - "search_url_get_params": "tt=mzl&q={searchTerms}", - "suggest_url": "https://ac.ecosia.org/autocomplete", - "suggest_url_get_params": "type=list&q={searchTerms}" -diff --git a/browser/components/search/extensions/qwant/manifest.json b/browser/components/search/extensions/qwant/manifest.json -index 66338257..cceb5994 100644 ---- a/browser/components/search/extensions/qwant/manifest.json -+++ b/browser/components/search/extensions/qwant/manifest.json -@@ -1,13 +1,17 @@ - { - "name": "Qwant", - "manifest_version": 2, -- "version": "1.5", -+ "version": "1.4", - "browser_specific_settings": { - "gecko": { - "id": "qwant@search.mozilla.org" - } - }, - "hidden": true, -+ "icons": { -+ "16": "favicon.ico" -+ }, -+ "web_accessible_resources": ["favicon.ico"], - "chrome_settings_overrides": { - "search_provider": { - "keyword": "@qwant", -@@ -15,7 +19,8 @@ - "search_url": "https://www.qwant.com/", - "search_url_get_params": "client=brz-moz&q={searchTerms}", - "suggest_url": "https://api.qwant.com/api/suggest/", -- "suggest_url_get_params": "client=opensearch&q={searchTerms}" -+ "suggest_url_get_params": "client=opensearch&q={searchTerms}", -+ "search_form": "https://www.qwant.com/" - } - } - } -diff --git a/browser/components/search/extensions/wikipedia/manifest.json b/browser/components/search/extensions/wikipedia/manifest.json -index 03e00b69..696d98fa 100644 ---- a/browser/components/search/extensions/wikipedia/manifest.json -+++ b/browser/components/search/extensions/wikipedia/manifest.json -@@ -2,7 +2,7 @@ - "name": "__MSG_extensionName__", - "description": "__MSG_extensionDescription__", - "manifest_version": 2, -- "version": "1.4", -+ "version": "1.3", - "browser_specific_settings": { - "gecko": { - "id": "wikipedia@search.mozilla.org" -@@ -10,11 +10,16 @@ - }, - "hidden": true, - "default_locale": "en", -+ "icons": { -+ "16": "favicon.ico" -+ }, -+ "web_accessible_resources": ["favicon.ico"], - "chrome_settings_overrides": { - "search_provider": { - "keyword": "@wikipedia", - "name": "__MSG_extensionName__", - "search_url": "__MSG_searchUrl__", -+ "search_form": "__MSG_searchForm__", - "suggest_url": "__MSG_suggestUrl__", - "search_url_get_params": "__MSG_searchUrlGetParams__" - } diff --git a/helpers/make-firefox b/helpers/make-firefox index 2b3d2cd..fdf11b8 100644 --- a/helpers/make-firefox +++ b/helpers/make-firefox @@ -19,14 +19,17 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=113 +VERSION=114 EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' REPOKEY=9BDB3D89CE49EC21 . ./config -#SHA HASHES UPDATES +# SHA256 HASHES UPDATES GLEAN_CONF_RS_INITIAL=$(sha256sum third_party/rust/glean/src/configuration.rs|awk '{print$1}') +# GNUZILLA ADDON REPLACEMENT +OLD_WEB_DEV_URL="https://addons.mozilla.org/firefox/collections/mozilla/webdeveloper/" +WEB_DEV_URL="https://gnuzilla.gnu.org/mozzarella/category.php?id=web-development" rm debian/control @@ -37,6 +40,7 @@ sed '/async download.*/areturn;' -i services/settings/RemoteSettingsClient.sys.m # Disable activity-stream antifeatures. # These are not condensed into a single sed script to make it fail on individual commands that didn't change the source ActivityStream=browser/components/newtab/lib/ActivityStream.sys.mjs +BAP_FirefoxJs=browser/app/profile/firefox.js sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/DefaultSites.sys.mjs sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $ActivityStream sed '/"telemetry"/,/value/s/value: true/value: false/' -i $ActivityStream @@ -51,29 +55,29 @@ sed 's/preffedRegions.includes.geo. .. ..locales .. locales.includes.locale./fal #echo "#header-asrouter-container{display: none!important;}" >> browser/components/newtab/css/activity-stream-linux.css #Disable «Sponsored tiles on the New Tab page» - firefox 92+94 sed '/"showSponsoredTopSites"/,/value/s/value: true/value: false/' -i $ActivityStream -sed -i '/activity-stream.showSponsored/s|true|false|g' browser/app/profile/firefox.js +sed -i '/activity-stream.showSponsored/s|true|false|g' $BAP_FirefoxJs #Disable «Mozilla VPN» - firefox 94 -sed '/"browser.privatebrowsing.vpnpromourl"/s/https.*"/"/' -i browser/app/profile/firefox.js +sed '/"browser.privatebrowsing.vpnpromourl"/s/https.*"/"/' -i $BAP_FirefoxJs grep -rl browser.vpn_promo.enabled | xargs -r sed -i '/browser.vpn_promo.enabled/s|true|false|' sed '/network.connectivity-service.IPv/s/http.*success.txt?ipv[46]//' -i modules/libpref/init/all.js sed 's/accounts-static.cdn.mozilla.net.*sync.services.mozilla.com//' -i modules/libpref/init/all.js # Disable 106 firefox-view and other firefox-branded popups -sed -i '/browser.urlbar.quicksuggest.shouldShowOnboardingDialog/s|true|false|' browser/app/profile/firefox.js -sed -i '/services.sync.prefs.sync.browser.firefox-view.feature-tour/s|true|false|' browser/app/profile/firefox.js +sed -i '/browser.urlbar.quicksuggest.shouldShowOnboardingDialog/s|true|false|' $BAP_FirefoxJs +sed -i '/services.sync.prefs.sync.browser.firefox-view.feature-tour/s|true|false|' $BAP_FirefoxJs ##disable firefox-view ##sed -i '/"browser.tabs.firefox-view"/s|true|false|' browser/app/profile/firefox.js #deprecated -v127 ##disable ui tour -sed -i '/browser.uitour.enabled/s|true|false|' browser/app/profile/firefox.js +sed -i '/browser.uitour.enabled/s|true|false|' $BAP_FirefoxJs ##disable colorways closet -sed -i '/browser.theme.colorway-closet/s|true|false|' browser/app/profile/firefox.js +sed -i '/browser.theme.colorway-closet/s|true|false|' $BAP_FirefoxJs ##disable newtab intro - check adjustment for versions greater than 106 #grep -rl browser.newtabpage.introShown |xargs -r sed -i '/browser.newtabpage.introShown/s|true|false|' ##Remove mailto handlers. 110 sed -i '/kHandlerList = {/,/^ };/{/^ /d}' uriloader/exthandler/HandlerList.sys.mjs # keep contectRelevancy disabled (first appearence is false thus using /bin/sed) -/bin/sed -i '/"toolkit.contentRelevancy.ingestEnabled"/s|,.*)|, false)|' browser/app/profile/firefox.js +/bin/sed -i '/"toolkit.contentRelevancy.ingestEnabled"/s|,.*)|, false)|' $BAP_FirefoxJs # Replace ubufox recommendation sed 's/xul-ext-ubufox/xul-ext-youtube-html5-video-player/' -i debian/control.in @@ -109,12 +113,14 @@ grep -rl toolkit.telemetry.bhrPing.enabled | xargs -r sed -i '/toolkit.telemetr grep -rl security.certerrors.recordEventTelemetry | xargs -r sed -i '/security.certerrors.recordEventTelemetry/s|true|false|' grep -rl services.sync.telemetry.maxPayloadCount modules/ | xargs -r sed -i '/services.sync.telemetry.maxPayloadCount/s|500|-1|' grep -rl services.sync.telemetry.submissionInterval modules/ | xargs -r sed -i '/services.sync.telemetry.submissionInterval/s|43200|-1|' -echo 'pref("dom.security.unexpected_system_load_telemetry_enabled", false);' | tee -a browser/app/profile/firefox.js -echo 'pref("toolkit.telemetry.hybridContent.enabled", false);' | tee -a browser/app/profile/firefox.js +echo 'pref("dom.security.unexpected_system_load_telemetry_enabled", false);' | tee -a $BAP_FirefoxJs +echo 'pref("toolkit.telemetry.hybridContent.enabled", false);' | tee -a $BAP_FirefoxJs # GPC opt-out entry added on 120 (not enabled yet). -echo '//pref("privacy.globalprivacycontrol.enabled", true);' | tee -a browser/app/profile/firefox.js +echo '//pref("privacy.globalprivacycontrol.enabled", true);' | tee -a $BAP_FirefoxJs # Disable translataion popup grep -rl browser.translations.automaticallyPopup modules/ | xargs -r sed -i '/browser.translations.automaticallyPopup/s|true|false|' +# Disable Firefox Relay +sed -i '/signon.firefoxRelay.feature/c pref("signon.firefoxRelay.feature", "disabled");' $BAP_FirefoxJs # Update third_party/rust/glean/src/configuration.rs sha256sum at third_party/rust/glean/.cargo-checksum.json GLEAN_CONF_RS_MODIFIED=$(sha256sum third_party/rust/glean/src/configuration.rs|awk '{print$1}') @@ -125,6 +131,9 @@ sed_csum $GLEAN_CONF_RS_INITIAL \ sed '/Google API/,/google-api-keyfile/ d' debian/config/mozconfig.in -i sed '/"geo.provider.network.url"/s|https.*"|"|' -i modules/libpref/init/all.js +# Disable save password in browser suggestion. +#grep -lr '^pref("signon.rememberSignons"'| xargs sed -i "/^pref(\"signon.rememberSignons\"/s|true|false|" modules/libpref/init/all.js + # Org branding sed 's/com.ubuntu/org.trisquel/' -i debian/config/mozconfig.in @@ -157,123 +166,7 @@ sed "s/iceweasel,/iceweasel, firefox,/" -i debian/control.in sed -i /ubuntu-bookmarks/d debian/patches/series rm debian/patches/ubuntu-bookmarks* -# Custom newtab images -sed '/^]$/d' -i browser/components/newtab/data/content/tippytop/top_sites.json -sed 's/}$/},/' -i browser/components/newtab/data/content/tippytop/top_sites.json - -cat << EOF >> browser/components/newtab/data/content/tippytop/top_sites.json - { - "domains": ["trisquel.info"], - "image_url": "images/trisquel.png", - "favicon_url": "favicons/trisquel.ico" - }, - { - "domains": ["packages.trisquel.org"], - "image_url": "images/trisquel-packages.png", - "favicon_url": "favicons/trisquel-packages.ico" - }, - { - "domains": ["gnu.org"], - "image_url": "images/gnu.png", - "favicon_url": "favicons/gnu.ico" - }, - { - "domains": ["fsf.org"], - "image_url": "images/fsf.png", - "favicon_url": "favicons/fsf.ico" - }, - { - "domains": ["directory.fsf.org"], - "image_url": "images/directory.png", - "favicon_url": "favicons/fsf.ico" - }, - { - "domains": ["libreplanet.org"], - "image_url": "images/libreplanet.png", - "favicon_url": "favicons/libreplanet.ico" - }, - { - "domains": ["fsfe.org"], - "image_url": "images/fsfe.png", - "favicon_url": "favicons/fsfe.ico" - }, - { - "domains": ["wikipedia.org"], - "image_url": "images/wikipedia.png", - "favicon_url": "favicons/wikipedia.ico" - }, - { - "domains": ["h-node.org"], - "image_url": "images/hnode.png", - "favicon_url": "favicons/hnode.ico" - } -] -EOF - -#uuidgen --sha1 --namespace @dns --name "trisquel.info" -cat << TOP_JSON > services/settings/dumps/main/top-sites.json -{ - "data": [ - { - "url": "https://trisquel.info/", - "order": 0, - "title": "Trisquel", - "id": "ec7f4843-6be5-5e86-870a-1c8383500a4b", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://packages.trisquel.org/", - "order": 1, - "title": "Trisquel Packages", - "id": "27a9b035-0b8b-4472-97cb-b1866aba0740", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://www.gnu.org/", - "order": 2, - "title": "GNU", - "id": "1baee931-751c-5993-b6fe-d86fbf78f9b0", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://www.fsf.org/", - "order": 3, - "title": "FSF", - "id": "fcc60dd8-4d97-5aca-8e5d-784652c75818", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://directory.fsf.org/", - "order": 4, - "title": "FSF Directory", - "id": "abe5bfb2-9487-5697-9f27-e0b782dfe006", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://libreplanet.org/", - "order": 5, - "title": "LibrePlanet", - "id": "e3d2cf88-a4dc-5d2e-9f9a-f3ea241d17d8", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://www.wikipedia.org/", - "order": 6, - "title": "Wikipedia", - "id": "02c295f5-54a8-5d29-8d1f-b619216b20c0", - "last_modified": $(date +%s%N | cut -b1-13) - }, - { - "url": "https://h-node.org/", - "order": 7, - "title": "h-node", - "id": "c426481f-8c3f-53b8-b23a-431a91a1c7b4", - "last_modified": $(date +%s%N | cut -b1-13) - } - ], - "timestamp": $(date +%s%N | cut -b1-13) -} -TOP_JSON +# Custom newtab images at DATA/firefox/search-custom/ cp $DATA/newtab/*.ico browser/components/newtab/data/content/tippytop/favicons/ cp $DATA/newtab/*.png browser/components/newtab/data/content/tippytop/images/ @@ -288,21 +181,12 @@ sed 's|ddg@|ddg-html@|' -i browser/components/search/extensions/ddg-html/manifes #Trisquel custom search engines cp -a $DATA/searchplugins/* browser/components/search/extensions/ -/bin/sed "/\"data\": \[/ r $DATA/searchplugins/trisquel.json" -i ./services/settings/dumps/main/search-config.json -/bin/sed "/\"data\": \[/ r $DATA/searchplugins/trisquel-packages.json" -i ./services/settings/dumps/main/search-config.json +/bin/sed "/\"data\": \[/ r $DATA/searchplugins/trisquel-v2.json" -i ./services/settings/dumps/main/search-config-v2.json +/bin/sed "/\"data\": \[/ r $DATA/searchplugins/trisquel-packages-v2.json" -i ./services/settings/dumps/main/search-config-v2.json echo "Customizing search engines..." # Reprocess search preconfiguration dump -python3 $DATA/process-json-files.py . browser/components/extensions/schemas/ -# Disable new search config 'til new one gets figured out (ref: https://hg.mozilla.org/mozilla-central/rev/bad743156b30) -patch_Rp1 $DATA/firefox_permanently_enable_new_search_engine_config.patch -# Restore favicons on old search config. -patch_p1 $DATA/tmp_restore_favicons_on_old_search-engine_bar.patch -for i in ddg-html ddg ecosia qwant wikipedia -do - echo "> tmp restore of $i favicon" - cp $DATA/tmp_favicons/$i.ico browser/components/search/extensions/$i/favicon.ico -done +python3 $DATA/process-json-files.py . $DATA/search-custom/ cat << EOF > debian/distribution.ini [Global] @@ -330,6 +214,13 @@ cp -a $DATA/branding/* browser/branding/unofficial cp -a $DATA/branding/* browser/branding/nightly cp -a $DATA/branding/* browser/branding/aurora +# Replace/remove brand name on used view(s) to avoid branding issues. +for i in $(find . -name brandings.ftl) +do + /bin/sed -i '/firefoxview-brand-name/s|Firefox View|Abrowser View|' $i + sed -i 's|= Firefox |= |' $i +done + sed '/about-wordmark.svg/d' -i browser/base/content/aboutDialog.css echo '#warningDesc, #communityExperimentalDesc, #communityDesc, #contributeDesc {display:none!important}' >> browser/base/content/aboutDialog.css # Disable preprocessor @@ -479,13 +370,7 @@ find browser/branding/ -name about-logo-private@2x.png | xargs -n1 cp $DATA/debu find browser/branding/ -name PrivateBrowsing_70.png | xargs -n1 cp $DATA/debug_brand/PrivateBrowsing_70.png find browser/branding/ -name PrivateBrowsing_150.png | xargs -n1 cp $DATA/debug_brand/PrivateBrowsing_150.png -# Replace/remove brand name on used view(s) to avoid branding issues. -sed -i '/firefoxview-brand-name/s|Firefox View|Abrowser View|' toolkit/locales/en-US/toolkit/branding/brandings.ftl -sed -i 's|= Firefox |= |' toolkit/locales/en-US/toolkit/branding/brandings.ftl - # Replace addons placeholder for the gnuzilla mozzarella. -OLD_WEB_DEV_URL="https://addons.mozilla.org/firefox/collections/mozilla/webdeveloper/" -WEB_DEV_URL="https://gnuzilla.gnu.org/mozzarella/category.php?id=web-development" find l10n/ -name aboutAddons.ftl | xargs -r sed -i '/.placeholder/s|addons.mozilla.org|gnuzilla.gnu.org|g' sed -i "s|$OLD_WEB_DEV_URL|$WEB_DEV_URL|" devtools/client/menus.js @@ -508,7 +393,7 @@ do [ -d $HOMEDIR/.mozilla/firefox ] || continue echo Linking $HOMEDIR/.mozilla/firefox into $HOMEDIR/.mozilla/abrowser ln -s $HOMEDIR/.mozilla/firefox $HOMEDIR/.mozilla/abrowser -done +done fi exit 0 ' >> debian/abrowser.postinst.in