diff options
author | w | 2018-07-26 10:42:23 +0200 |
---|---|---|
committer | w | 2018-07-26 10:42:23 +0200 |
commit | 4c4b4645c78488abd6692f782081f1a35fc46489 (patch) | |
tree | 6552e7ee2c4a628388c25539449a11d142d0991d | |
parent | b62a0791338d117c8d0de52b418bc6f348c43e10 (diff) | |
download | aur-4c4b4645c78488abd6692f782081f1a35fc46489.tar.gz |
Update to version 60.1.0
-rw-r--r-- | .SRCINFO | 48 | ||||
-rw-r--r-- | PKGBUILD | 90 | ||||
-rw-r--r-- | firefox-60-disable-data-sharing-infobar.patch | 12 | ||||
-rw-r--r-- | firefox-60-disable-first-run-privacy-policy.patch | 16 | ||||
-rw-r--r-- | firefox-60-disable-location.services.mozilla.com.patch | 44 | ||||
-rw-r--r-- | firefox-60-disable-newtab-page-remote.patch | 249 | ||||
-rw-r--r-- | firefox-60-disable-pocket-leftovers.patch | 68 | ||||
-rw-r--r-- | firefox-60-disable-reader.patch | 141 | ||||
-rw-r--r-- | firefox-60-disable-telemetry.patch | 13 | ||||
-rw-r--r-- | firefox-60-prefs.patch | 417 |
10 files changed, 1027 insertions, 71 deletions
@@ -1,8 +1,8 @@ # Generated by makepkg 5.0.0 -# Wed Nov 22 08:50:44 UTC 2017 +# Thu Jul 26 08:42:01 UTC 2018 pkgbase = firefox-esr-privacy pkgdesc = Standalone web browser from mozilla.org - pkgver = 52.5.0 + pkgver = 60.1.0 pkgrel = 1 url = https://www.mozilla.org/firefox/ install = firefox.install @@ -19,6 +19,9 @@ pkgbase = firefox-esr-privacy makedepends = mesa makedepends = xorg-server makedepends = inetutils + makedepends = rust + makedepends = patchelf + makedepends = pulseaudio depends = autoconf2.13 depends = gtk2 depends = libxt @@ -33,34 +36,33 @@ pkgbase = firefox-esr-privacy depends = nss depends = hunspell depends = sqlite + depends = apulse provides = firefox conflicts = firefox options = !emptydirs - source = https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/52.5.0esr/source/firefox-52.5.0esr.source.tar.xz - source = firefox-install-dir.patch - source = firefox-52-disable-location.services.mozilla.com.patch - source = firefox-52-disable-pocket-leftovers.patch - source = firefox-52-disable-sponsored-tiles.patch - source = firefox-52-prefs.patch - source = firefox-52-disable-telemetry.patch - source = firefox-52-disable-data-sharing-infobar.patch - source = firefox-52-disable-reader.patch + source = https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/60.1.0esr/source/firefox-60.1.0esr.source.tar.xz + source = firefox-60-disable-data-sharing-infobar.patch + source = firefox-60-disable-location.services.mozilla.com.patch + source = firefox-60-disable-pocket-leftovers.patch + source = firefox-60-disable-newtab-page-remote.patch + source = firefox-60-disable-reader.patch + source = firefox-60-disable-telemetry.patch + source = firefox-60-prefs.patch + source = firefox-60-disable-first-run-privacy-policy.patch source = firefox.desktop - source = firefox-fixed-loading-icon.png source = mozconfig validpgpkeys = 2B90598A745E992F315E22C58AB132963A06537A - sha256sums = 0e583576f6bbdc9d863656c43b8c97a60f276725bca20459b7511e2afacac85f - sha256sums = b7a9eb7f4c9f5c297978459338d389e5bc790e5c5d89805668f7d24ea1d485b2 - sha256sums = 8d9afa1f940a9dac689ead40a57990d1491f34a1787b2222f8f5b5e485d54103 - sha256sums = d6760634e4926ce5ad0df501d06139a5e693d7058e671a195c9e0b54197c1d96 - sha256sums = a72c657784dc5804509456d9ba39ccc8d5e5998c847f49abbcfeb2a547290815 - sha256sums = 80d6181d11c200aca2781f69ffeafb59ea23952304d161c2812a2f5a98b273b0 - sha256sums = b661dcaa00323119e58a3b9d5b6e732291a107fbd29d242fb1ddcd36ea50106e - sha256sums = 52a94f48e562f98ba0b22b43b1684f6a813872b9c310d6f7567fe91aaab4944b - sha256sums = 7f171b7d69866ac6d8945ab0867b2646964362c791875c6428b4c2c8e3f3fb5b + sha256sums = a4e7bb80e7ebab19769b2b8940966349136a99aabd497034662cffa54ea30e40 + sha256sums = d8377a0f225df1e334bf82845ba082f499af561311c7033b61084b24c720924f + sha256sums = 05da47c8e2b5271f1979b7f5c15941b50645e68d31b556fcc8ab381699c979f5 + sha256sums = 22f8a6e42617bc733e0627513dd58dbaa4a924a725db00ad7b2b666425d7edd2 + sha256sums = f5f58edd11e004cbbd3504bcc531b6259ecd4a67b45e0656dda70f08ef290d7f + sha256sums = ce583b1e164f62d4869e97e46c724ea946f605733f0f2b1919162ca58b97883d + sha256sums = adc25bf1a8712ce1a3aa91afa7ddbb8df805671f462089f67ae16adc5c3390a5 + sha256sums = 57ea308737c2d82fff6b8ad55ceeed445018c6fd482efd14b2026312e8485b6c + sha256sums = 3c8008f7d0d0a2fcafcdc24f9a838bc72306d452f1dce233a65fcf0eba3d4e0f sha256sums = 0bcfe168964338ec9c6e781479f2f8d06aa44f2262d6405ff8fa42983be89630 - sha256sums = 68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213 - sha256sums = c4329549076a3cce493a5053e4bd84d088b04713021c6ebbae0ab68a02de3d8c + sha256sums = c3d0a8c25d1122b20151fe085a8d5bc79234ae3dc05a606855eb68cfb7817d2c pkgname = firefox-esr-privacy @@ -1,96 +1,86 @@ # firefox-esr-privacy pkgname=firefox-esr-privacy -_basever=52 -pkgver=52.5.0 +_basever=60 +pkgver=60.1.0 pkgrel=1 pkgdesc="Standalone web browser from mozilla.org" arch=('i686' 'x86_64') license=('MPL' 'GPL' 'LGPL') url="https://www.mozilla.org/firefox/" depends=('autoconf2.13' 'gtk2' 'libxt' 'startup-notification' 'dbus-glib' 'alsa-lib' 'desktop-file-utils' - 'hicolor-icon-theme' 'libvpx' 'icu' 'libevent' 'nss' 'hunspell' 'sqlite') -makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'xorg-server' 'inetutils') + 'hicolor-icon-theme' 'libvpx' 'icu' 'libevent' 'nss' 'hunspell' 'sqlite' 'apulse') +makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'xorg-server' 'inetutils' 'rust' 'patchelf' 'pulseaudio') install=firefox.install options=('!emptydirs') conflicts=('firefox') provides=('firefox') source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz - firefox-install-dir.patch + firefox-${_basever}-disable-data-sharing-infobar.patch firefox-${_basever}-disable-location.services.mozilla.com.patch firefox-${_basever}-disable-pocket-leftovers.patch - firefox-${_basever}-disable-sponsored-tiles.patch - firefox-${_basever}-prefs.patch - firefox-${_basever}-disable-telemetry.patch - firefox-${_basever}-disable-data-sharing-infobar.patch + firefox-${_basever}-disable-newtab-page-remote.patch firefox-${_basever}-disable-reader.patch + firefox-${_basever}-disable-telemetry.patch + firefox-${_basever}-prefs.patch + firefox-${_basever}-disable-first-run-privacy-policy.patch firefox.desktop - firefox-fixed-loading-icon.png mozconfig) -sha256sums=('0e583576f6bbdc9d863656c43b8c97a60f276725bca20459b7511e2afacac85f' - 'b7a9eb7f4c9f5c297978459338d389e5bc790e5c5d89805668f7d24ea1d485b2' - '8d9afa1f940a9dac689ead40a57990d1491f34a1787b2222f8f5b5e485d54103' - 'd6760634e4926ce5ad0df501d06139a5e693d7058e671a195c9e0b54197c1d96' - 'a72c657784dc5804509456d9ba39ccc8d5e5998c847f49abbcfeb2a547290815' - '80d6181d11c200aca2781f69ffeafb59ea23952304d161c2812a2f5a98b273b0' - 'b661dcaa00323119e58a3b9d5b6e732291a107fbd29d242fb1ddcd36ea50106e' - '52a94f48e562f98ba0b22b43b1684f6a813872b9c310d6f7567fe91aaab4944b' - '7f171b7d69866ac6d8945ab0867b2646964362c791875c6428b4c2c8e3f3fb5b' +sha256sums=('a4e7bb80e7ebab19769b2b8940966349136a99aabd497034662cffa54ea30e40' + 'd8377a0f225df1e334bf82845ba082f499af561311c7033b61084b24c720924f' + '05da47c8e2b5271f1979b7f5c15941b50645e68d31b556fcc8ab381699c979f5' + '22f8a6e42617bc733e0627513dd58dbaa4a924a725db00ad7b2b666425d7edd2' + 'f5f58edd11e004cbbd3504bcc531b6259ecd4a67b45e0656dda70f08ef290d7f' + 'ce583b1e164f62d4869e97e46c724ea946f605733f0f2b1919162ca58b97883d' + 'adc25bf1a8712ce1a3aa91afa7ddbb8df805671f462089f67ae16adc5c3390a5' + '57ea308737c2d82fff6b8ad55ceeed445018c6fd482efd14b2026312e8485b6c' + '3c8008f7d0d0a2fcafcdc24f9a838bc72306d452f1dce233a65fcf0eba3d4e0f' '0bcfe168964338ec9c6e781479f2f8d06aa44f2262d6405ff8fa42983be89630' - '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213' - 'c4329549076a3cce493a5053e4bd84d088b04713021c6ebbae0ab68a02de3d8c') + 'c3d0a8c25d1122b20151fe085a8d5bc79234ae3dc05a606855eb68cfb7817d2c') validpgpkeys=('2B90598A745E992F315E22C58AB132963A06537A') prepare() { - cd firefox-${pkgver}esr + #cd firefox-${pkgver}esr + cd firefox-${pkgver} cp "$srcdir"/mozconfig mozconfig - - # Disable sponsored tiles - # This patch is not needed anymore, it also breaks the newtab page (nothing on it) and restore closed tabs does not work anymore - # patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-sponsored-tiles.patch - + # Disable Pocket integration leftovers patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-pocket-leftovers.patch # Remove pocket source directory rm -fr browser/extensions/pocket + # Disable pocket on the new tab page and disable remote fetching of top sites + patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-newtab-page-remote.patch # Disable geo IP lookup on first run patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-location.services.mozilla.com.patch - + # Set some sensible defaults patch -Np1 -i "$srcdir"/firefox-${_basever}-prefs.patch - + # Disable telemetry options patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-telemetry.patch - + # Disable infobar "Firefox automatically sends some data to Mozilla..." patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-data-sharing-infobar.patch - + # Disable reader view patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-reader.patch - - # Fix build with Fontconfig 2.6 - sed -i '/^ftcache.h/a ftfntfmt.h' config/system-headers - - # Fix tab loading icon not working with libpng 1.6 - cp "$srcdir"/firefox-fixed-loading-icon.png browser/themes/linux/tabbrowser/loading.png - - # Install in /usr/lib/firefox without version number - patch -Np1 -i "$srcdir"/firefox-install-dir.patch + + # Disable privacy policy new tab on first run + patch -Np1 -i "$srcdir"/firefox-${_basever}-disable-first-run-privacy-policy.patch } build() { - cd firefox-${pkgver}esr - - # Fix configure: error: Your toolchain does not support C++0x/C++11 mode properly. Please upgrade your toolchain - unset CPPFLAGS - - make -f client.mk + #cd firefox-${pkgver}esr + cd firefox-${pkgver} + + ./mach build } package() { - cd firefox-${pkgver}esr - make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install + #cd firefox-${pkgver}esr + cd firefox-${pkgver} + DESTDIR="$pkgdir" ./mach install install -Dm644 "$srcdir"/firefox.desktop "$pkgdir/usr/share/applications/firefox.desktop" @@ -98,4 +88,8 @@ package() { rm -rf "$pkgdir"/usr/lib/firefox/{dictionaries,hyphenation} ln -s /usr/share/hunspell "$pkgdir/usr/lib/firefox/dictionaries" ln -s /usr/share/hyphen "$pkgdir/usr/lib/firefox/hyphenation" + + # Firefox no longer support Alsa, it crashes frequently with Alsa on FF>=60 + # Use apulse (PulseAudio emulation for Alsa) but don't require a user to run "apulse firefox" everytime by changing the rpath + patchelf --set-rpath /usr/lib/apulse "$pkgdir/usr/lib/firefox/libxul.so" } diff --git a/firefox-60-disable-data-sharing-infobar.patch b/firefox-60-disable-data-sharing-infobar.patch new file mode 100644 index 000000000000..0954db070fa7 --- /dev/null +++ b/firefox-60-disable-data-sharing-infobar.patch @@ -0,0 +1,12 @@ +--- firefox-60.0.bak/browser/base/content/browser.js ++++ firefox-60.0/browser/base/content/browser.js +@@ -1530,9 +1530,6 @@ + MenuTouchModeObserver.init(); + } + +- if (AppConstants.MOZ_DATA_REPORTING) +- gDataNotificationInfoBar.init(); +- + if (!AppConstants.MOZILLA_OFFICIAL) + DevelopmentHelpers.init(); + diff --git a/firefox-60-disable-first-run-privacy-policy.patch b/firefox-60-disable-first-run-privacy-policy.patch new file mode 100644 index 000000000000..5fdd49a94efe --- /dev/null +++ b/firefox-60-disable-first-run-privacy-policy.patch @@ -0,0 +1,16 @@ +--- firefox-60.0.bak/toolkit/components/telemetry/datareporting-prefs.js 2018-05-16 09:31:04.390035410 +0200 ++++ firefox-60.0/toolkit/components/telemetry/datareporting-prefs.js 2018-05-16 14:26:08.568343718 +0200 +@@ -4,11 +4,11 @@ + + /* global pref */ + +-pref("datareporting.policy.dataSubmissionEnabled", true); ++pref("datareporting.policy.dataSubmissionEnabled", false); + pref("datareporting.policy.dataSubmissionPolicyNotifiedTime", "0"); + pref("datareporting.policy.dataSubmissionPolicyAcceptedVersion", 0); + pref("datareporting.policy.dataSubmissionPolicyBypassNotification", false); + pref("datareporting.policy.currentPolicyVersion", 2); + pref("datareporting.policy.minimumPolicyVersion", 1); + pref("datareporting.policy.minimumPolicyVersion.channel-beta", 2); +-pref("datareporting.policy.firstRunURL", "https://www.mozilla.org/privacy/firefox/"); ++pref("datareporting.policy.firstRunURL", ""); diff --git a/firefox-60-disable-location.services.mozilla.com.patch b/firefox-60-disable-location.services.mozilla.com.patch new file mode 100644 index 000000000000..ed19a9fcc06e --- /dev/null +++ b/firefox-60-disable-location.services.mozilla.com.patch @@ -0,0 +1,44 @@ +--- firefox-60.0.bak/toolkit/components/search/nsSearchService.js 2018-05-16 09:31:04.377035410 +0200 ++++ firefox-60.0/toolkit/components/search/nsSearchService.js 2018-05-16 15:42:56.194423958 +0200 +@@ -399,6 +399,12 @@ + return; + } + ++ // Prevent Firefox from contacting location.services.mozilla.com on a new profile ++ Services.prefs.setCharPref("browser.search.region", "US"); ++ return; ++ /* ++ Comment from here to prevent console warning: JavaScript warning: jar:file:///usr/lib/firefox/omni.ja!/components/nsSearchService.js, line 411: unreachable code after return statement ++ + // If we have 'isUS' but no 'countryCode' then we are almost certainly + // a profile from Fx 34/35 that set 'isUS' based purely on a timezone + // check. If this said they were US, we force region to be US. +@@ -422,6 +428,7 @@ + } catch (ex) { + // no countryCode pref, nothing to do. + } ++ */ + } + + // A method to determine if we are in the United States (US) for the search +@@ -482,6 +489,12 @@ + // If we have a country-code already stored in our prefs we trust it. + let countryCode = Services.prefs.getCharPref("browser.search.countryCode", ""); + ++ // No countryCode set, use US as default, don't contact location.services.mozilla.com ++ Services.prefs.setCharPref("browser.search.countryCode", "US"); ++ return; ++ /* ++ Comment from here to prevent console warning: JavaScript warning: jar:file:///usr/lib/firefox/omni.ja!/components/nsSearchService.js, line 493: unreachable code after return statement ++ + if (!countryCode) { + // We don't have it cached, so fetch it. fetchCountryCode() will call + // storeCountryCode if it gets a result (even if that happens after the +@@ -528,6 +541,7 @@ + // If gInitialized is true then the search service was forced to perform + // a sync initialization during our XHRs - capture this via telemetry. + Services.telemetry.getHistogramById("SEARCH_SERVICE_COUNTRY_FETCH_CAUSED_SYNC_INIT").add(gInitialized); ++ */ + }; + + // Store the result of the geoip request as well as any other values and diff --git a/firefox-60-disable-newtab-page-remote.patch b/firefox-60-disable-newtab-page-remote.patch new file mode 100644 index 000000000000..8cf9c3084316 --- /dev/null +++ b/firefox-60-disable-newtab-page-remote.patch @@ -0,0 +1,249 @@ +diff -Naur firefox-60.0.bak/browser/extensions/activity-stream/common/PrerenderData.jsm firefox-60.0/browser/extensions/activity-stream/common/PrerenderData.jsm +--- firefox-60.0.bak/browser/extensions/activity-stream/common/PrerenderData.jsm ++++ firefox-60.0/browser/extensions/activity-stream/common/PrerenderData.jsm +@@ -54,11 +54,9 @@ + "topSitesRows": 1, + "collapseTopSites": false, + "section.highlights.collapsed": false, +- "section.topstories.collapsed": false, +- "feeds.section.topstories": true, + "feeds.section.highlights": true, + "enableWideLayout": true, +- "sectionOrder": "topsites,topstories,highlights" ++ "sectionOrder": "topsites,highlights" + }, + // Prefs listed as invalidating will prevent the prerendered version + // of AS from being used if their value is something other than what is listed +@@ -72,26 +70,14 @@ + "topSitesRows", + "collapseTopSites", + "section.highlights.collapsed", +- "section.topstories.collapsed", +- "enableWideLayout", +- "sectionOrder", +- // This means if either of these are set to their default values, +- // prerendering can be used. +- {oneOf: ["feeds.section.topstories", "feeds.section.highlights"]} ++ "enableWideLayout" + ], + initialSections: [ + { + enabled: true, +- icon: "pocket", +- id: "topstories", +- order: 1, +- title: {id: "header_recommended_by", values: {provider: "Pocket"}} +- }, +- { +- enabled: true, + id: "highlights", + icon: "highlights", +- order: 2, ++ order: 1, + title: {id: "header_highlights"} + } + ] +diff -Naur firefox-60.0.bak/browser/extensions/activity-stream/lib/SectionsManager.jsm firefox-60.0/browser/extensions/activity-stream/lib/SectionsManager.jsm +--- firefox-60.0.bak/browser/extensions/activity-stream/lib/SectionsManager.jsm ++++ firefox-60.0/browser/extensions/activity-stream/lib/SectionsManager.jsm +@@ -16,40 +16,6 @@ + * `${feed_pref_name}.options`. + */ + const BUILT_IN_SECTIONS = { +- "feeds.section.topstories": options => ({ +- id: "topstories", +- pref: { +- titleString: {id: "header_recommended_by", values: {provider: options.provider_name}}, +- descString: {id: options.provider_description || "pocket_description"}, +- nestedPrefs: options.show_spocs ? [{ +- name: "showSponsored", +- titleString: {id: "settings_pane_topstories_options_sponsored"}, +- icon: "icon-info" +- }] : [] +- }, +- shouldHidePref: options.hidden, +- eventSource: "TOP_STORIES", +- icon: options.provider_icon, +- title: {id: "header_recommended_by", values: {provider: options.provider_name}}, +- disclaimer: { +- text: {id: options.disclaimer_text || "section_disclaimer_topstories"}, +- link: { +- // The href fallback is temporary so users in existing Shield studies get this configuration as well +- href: options.disclaimer_link || "https://getpocket.cdn.mozilla.net/firefox/new_tab_learn_more", +- id: options.disclaimer_linktext || "section_disclaimer_topstories_linktext" +- }, +- button: {id: options.disclaimer_buttontext || "section_disclaimer_topstories_buttontext"} +- }, +- privacyNoticeURL: options.privacy_notice_link || "https://www.mozilla.org/privacy/firefox/#suggest-relevant-content", +- maxRows: 1, +- availableLinkMenuOptions: ["CheckBookmarkOrArchive", "CheckSavedToPocket", "Separator", "OpenInNewWindow", "OpenInPrivateWindow", "Separator", "BlockUrl"], +- emptyState: { +- message: {id: "topstories_empty_state", values: {provider: options.provider_name}}, +- icon: "check" +- }, +- shouldSendImpressionStats: true, +- dedupeFrom: ["highlights"] +- }), + "feeds.section.highlights": options => ({ + id: "highlights", + pref: { +diff -Naur firefox-60.0.bak/browser/extensions/activity-stream/prerendered/static/activity-stream-initial-state.js firefox-60.0/browser/extensions/activity-stream/prerendered/static/activity-stream-initial-state.js +--- firefox-60.0.bak/browser/extensions/activity-stream/prerendered/static/activity-stream-initial-state.js ++++ firefox-60.0/browser/extensions/activity-stream/prerendered/static/activity-stream-initial-state.js +@@ -21,11 +21,9 @@ + "topSitesRows": 1, + "collapseTopSites": false, + "section.highlights.collapsed": false, +- "section.topstories.collapsed": false, +- "feeds.section.topstories": true, + "feeds.section.highlights": true, + "enableWideLayout": true, +- "sectionOrder": "topsites,topstories,highlights" ++ "sectionOrder": "topsites,highlights" + } + }, + "Dialog": { +@@ -35,27 +33,13 @@ + "Sections": [ + { + "title": { +- "id": "header_recommended_by", +- "values": { +- "provider": "Pocket" +- } +- }, +- "rows": [], +- "enabled": true, +- "icon": "pocket", +- "id": "topstories", +- "order": 1, +- "initialized": false +- }, +- { +- "title": { + "id": "header_highlights" + }, + "rows": [], + "enabled": true, + "id": "highlights", + "icon": "highlights", +- "order": 2, ++ "order": 1, + "initialized": false + } + ], +--- firefox-60.0.bak/browser/extensions/activity-stream/lib/ActivityStream.jsm ++++ firefox-60.0/browser/extensions/activity-stream/lib/ActivityStream.jsm +@@ -23,19 +23,12 @@ + const {TelemetryFeed} = ChromeUtils.import("resource://activity-stream/lib/TelemetryFeed.jsm", {}); + const {FaviconFeed} = ChromeUtils.import("resource://activity-stream/lib/FaviconFeed.jsm", {}); + const {TopSitesFeed} = ChromeUtils.import("resource://activity-stream/lib/TopSitesFeed.jsm", {}); +-const {TopStoriesFeed} = ChromeUtils.import("resource://activity-stream/lib/TopStoriesFeed.jsm", {}); + const {HighlightsFeed} = ChromeUtils.import("resource://activity-stream/lib/HighlightsFeed.jsm", {}); + + const DEFAULT_SITES = new Map([ + // This first item is the global list fallback for any unexpected geos +- ["", "https://www.youtube.com/,https://www.facebook.com/,https://www.wikipedia.org/,https://www.reddit.com/,https://www.amazon.com/,https://twitter.com/"], +- ["US", "https://www.youtube.com/,https://www.facebook.com/,https://www.amazon.com/,https://www.reddit.com/,https://www.wikipedia.org/,https://twitter.com/"], +- ["CA", "https://www.youtube.com/,https://www.facebook.com/,https://www.reddit.com/,https://www.wikipedia.org/,https://www.amazon.ca/,https://twitter.com/"], +- ["DE", "https://www.youtube.com/,https://www.facebook.com/,https://www.amazon.de/,https://www.ebay.de/,https://www.wikipedia.org/,https://www.reddit.com/"], +- ["PL", "https://www.youtube.com/,https://www.facebook.com/,https://allegro.pl/,https://www.wikipedia.org/,https://www.olx.pl/,https://www.wykop.pl/"], +- ["RU", "https://vk.com/,https://www.youtube.com/,https://ok.ru/,https://www.avito.ru/,https://www.aliexpress.com/,https://www.wikipedia.org/"], +- ["GB", "https://www.youtube.com/,https://www.facebook.com/,https://www.reddit.com/,https://www.amazon.co.uk/,https://www.bbc.co.uk/,https://www.ebay.co.uk/"], +- ["FR", "https://www.youtube.com/,https://www.facebook.com/,https://www.wikipedia.org/,https://www.amazon.fr/,https://www.leboncoin.fr/,https://twitter.com/"] ++ ["", ""], ++ ["US", ""], + ]); + const GEO_PREF = "browser.search.region"; + const REASON_ADDON_UNINSTALL = 6; +@@ -53,30 +46,6 @@ + title: "Comma-separated list of default top sites to fill in behind visited sites", + getValue: ({geo}) => DEFAULT_SITES.get(DEFAULT_SITES.has(geo) ? geo : "") + }], +- ["feeds.section.topstories.options", { +- title: "Configuration options for top stories feed", +- // This is a dynamic pref as it depends on the feed being shown or not +- getValue: args => JSON.stringify({ +- api_key_pref: "extensions.pocket.oAuthConsumerKey", +- // Use the opposite value as what default value the feed would have used +- hidden: !PREFS_CONFIG.get("feeds.section.topstories").getValue(args), +- provider_description: "pocket_description", +- provider_icon: "pocket", +- provider_name: "Pocket", +- read_more_endpoint: "https://getpocket.com/explore/trending?src=fx_new_tab", +- stories_endpoint: `https://getpocket.cdn.mozilla.net/v3/firefox/global-recs?version=3&consumer_key=$apiKey&locale_lang=${args.locale}&feed_variant=${showSpocs(args) ? "default_spocs_on" : "default_spocs_off"}`, +- stories_referrer: "https://getpocket.com/recommendations", +- privacy_notice_link: "https://www.mozilla.org/privacy/firefox/#suggest-relevant-content", +- disclaimer_link: "https://getpocket.com/firefox/new_tab_learn_more", +- topics_endpoint: `https://getpocket.cdn.mozilla.net/v3/firefox/trending-topics?version=2&consumer_key=$apiKey&locale_lang=${args.locale}`, +- show_spocs: showSpocs(args), +- personalized: true +- }) +- }], +- ["showSponsored", { +- title: "Show sponsored cards in spoc experiment (show_spocs in topstories.options has to be set to true as well)", +- value: true +- }], + ["filterAdult", { + title: "Remove adult pages from sites, highlights, etc.", + value: true +@@ -135,18 +104,6 @@ + title: "Collapse the Highlights section", + value: false + }], +- ["section.highlights.includePocket", { +- title: "Boolean flag that decides whether or not to show saved Pocket stories in highlights.", +- value: true +- }], +- ["section.topstories.collapsed", { +- title: "Collapse the Top Stories section", +- value: false +- }], +- ["section.topstories.showDisclaimer", { +- title: "Boolean flag that decides whether or not to show the topstories disclaimer.", +- value: true +- }], + ["tippyTop.service.endpoint", { + title: "Tippy Top service manifest url", + value: "https://activity-stream-icons.services.mozilla.com/v1/icons.json.br" +@@ -157,7 +114,7 @@ + }], + ["sectionOrder", { + title: "The rendering order for the sections", +- value: "topsites,topstories,highlights" ++ value: "topsites,highlights" + }] + ]); + +@@ -200,20 +157,6 @@ + value: true + }, + { +- name: "section.topstories", +- factory: () => new TopStoriesFeed(), +- title: "Fetches content recommendations from a configurable content provider", +- // Dynamically determine if Pocket should be shown for a geo / locale +- getValue: ({geo, locale}) => { +- const locales = ({ +- "US": ["en-US", "en-GB", "en-ZA"], +- "CA": ["en-US", "en-GB", "en-ZA"], +- "DE": ["de", "de-DE", "de-AT", "de-CH"] +- })[geo]; +- return !!locales && locales.includes(locale); +- } +- }, +- { + name: "snippets", + factory: () => new SnippetsFeed(), + title: "Gets snippets data", +--- firefox-60.0.bak/browser/app/profile/firefox.js ++++ firefox-60.0/browser/app/profile/firefox.js +@@ -269,7 +269,7 @@ + // This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into + // this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream + // repackager of this code using an alternate snippet url, please keep your users safe +-pref("browser.aboutHomeSnippets.updateUrl", "https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/"); ++pref("browser.aboutHomeSnippets.updateUrl", ""); + + pref("browser.enable_automatic_image_resizing", true); + pref("browser.chrome.site_icons", true); diff --git a/firefox-60-disable-pocket-leftovers.patch b/firefox-60-disable-pocket-leftovers.patch new file mode 100644 index 000000000000..764f58715e93 --- /dev/null +++ b/firefox-60-disable-pocket-leftovers.patch @@ -0,0 +1,68 @@ +diff -Naur firefox-60.0.bak/browser/app/profile/firefox.js firefox-60.0/browser/app/profile/firefox.js +--- firefox-60.0.bak/browser/app/profile/firefox.js ++++ firefox-60.0/browser/app/profile/firefox.js +@@ -198,7 +198,7 @@ + pref("extensions.{972ce4c6-7e08-4474-a285-3208198ce6fd}.description", "chrome://browser/locale/browser.properties"); + + pref("extensions.webextensions.themes.enabled", true); +-pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop,bookmark_star,bookmark_menu,downloads,home,app_menu,cut,copy,paste,new_window,new_private_window,save_page,print,history,full_screen,find,options,addons,developer,synced_tabs,open_file,sidebars,share_page,subscribe,text_encoding,email_link,forget,pocket"); ++pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop,bookmark_star,bookmark_menu,downloads,home,app_menu,cut,copy,paste,new_window,new_private_window,save_page,print,history,full_screen,find,options,addons,developer,synced_tabs,open_file,sidebars,share_page,subscribe,text_encoding,email_link,forget"); + + pref("lightweightThemes.update.enabled", true); + pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes"); +@@ -1626,8 +1626,6 @@ + // Enable browser frames for use on desktop. Only exposed to chrome callers. + pref("dom.mozBrowserFramesEnabled", true); + +-pref("extensions.pocket.enabled", true); +- + pref("signon.schemeUpgrades", true); + + // Enable the "Simplify Page" feature in Print Preview. This feature +diff -Naur firefox-60.0.bak/browser/components/uitour/UITour.jsm firefox-60.0/browser/components/uitour/UITour.jsm +--- firefox-60.0.bak/browser/components/uitour/UITour.jsm ++++ firefox-60.0/browser/components/uitour/UITour.jsm +@@ -149,18 +149,6 @@ + ["help", {query: "#appMenu-help-button"}], + ["home", {query: "#home-button"}], + ["library", {query: "#appMenu-library-button"}], +- ["pocket", { +- allowAdd: true, +- query: (aDocument) => { +- // The pocket's urlbar page action button is pre-defined in the DOM. +- // It would be hidden if toggled off from the urlbar. +- let node = aDocument.getElementById("pocket-button-box"); +- if (node && !node.hidden) { +- return node; +- } +- return aDocument.getElementById("pageAction-panel-pocket"); +- }, +- }], + ["privateWindow", {query: "#appMenu-private-window-button"}], + ["quit", {query: "#appMenu-quit-button"}], + ["readerMode-urlBar", {query: "#reader-mode-button"}], +@@ -1444,13 +1432,6 @@ + popup.addEventListener("popupshown", aOpenCallback, { once: true }); + } + aWindow.document.getElementById("identity-box").click(); +- } else if (aMenuName == "pocket") { +- let pageAction = PageActions.actionForID("pocket"); +- if (!pageAction) { +- log.error("Can't open the pocket menu without a page action"); +- return; +- } +- pageAction.doCommand(aWindow); + } else if (aMenuName == "urlbar") { + this.getTarget(aWindow, "urlbar").then(target => { + let urlbar = target.node; +diff -Naur firefox-60.0.bak/browser/extensions/moz.build firefox-60.0/browser/extensions/moz.build +--- firefox-60.0.bak/browser/extensions/moz.build ++++ firefox-60.0/browser/extensions/moz.build +@@ -11,7 +11,6 @@ + 'formautofill', + 'onboarding', + 'pdfjs', +- 'pocket', + 'screenshots', + 'webcompat', + ] diff --git a/firefox-60-disable-reader.patch b/firefox-60-disable-reader.patch new file mode 100644 index 000000000000..0e7b25172dea --- /dev/null +++ b/firefox-60-disable-reader.patch @@ -0,0 +1,141 @@ +--- firefox-60.0.bak/browser/base/content/browser.js ++++ firefox-60.0/browser/base/content/browser.js +@@ -46,7 +46,6 @@ + ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm", + PromiseUtils: "resource://gre/modules/PromiseUtils.jsm", + ReaderMode: "resource://gre/modules/ReaderMode.jsm", +- ReaderParent: "resource:///modules/ReaderParent.jsm", + RecentWindow: "resource:///modules/RecentWindow.jsm", + SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm", + Sanitizer: "resource:///modules/Sanitizer.jsm", +@@ -4852,7 +4848,6 @@ + } + } + UpdateBackForwardCommands(gBrowser.webNavigation); +- ReaderParent.updateReaderButton(gBrowser.selectedBrowser); + + if (!gMultiProcessBrowser) // Bug 1108553 - Cannot rotate images with e10s + gGestureSupport.restoreRotationState(); +--- firefox-60.0.bak/browser/base/content/browser-sets.inc ++++ firefox-60.0/browser/base/content/browser-sets.inc +@@ -42,7 +42,6 @@ + <command id="View:PageSource" oncommand="BrowserViewSource(window.gBrowser.selectedBrowser);" observes="canViewSource"/> + <command id="View:PageInfo" oncommand="BrowserPageInfo();"/> + <command id="View:FullScreen" oncommand="BrowserFullScreen();"/> +- <command id="View:ReaderView" oncommand="ReaderParent.toggleReaderMode(event);"/> + <command id="cmd_find" + oncommand="gFindBar.onFindCommand();" + observes="isImage"/> +@@ -290,11 +289,6 @@ + <key id="key_fullScreen_old" key="&fullScreenCmd.macCommandKey;" command="View:FullScreen" modifiers="accel,shift"/> + <key keycode="VK_F11" command="View:FullScreen"/> + #endif +-#ifndef XP_WIN +- <key id="key_toggleReaderMode" key="&toggleReaderMode.key;" command="View:ReaderView" modifiers="accel,alt" disabled="true"/> +-#else +- <key id="key_toggleReaderMode" keycode="&toggleReaderMode.win.keycode;" command="View:ReaderView" disabled="true"/> +-#endif + <key key="&reloadCmd.commandkey;" command="Browser:Reload" modifiers="accel" id="key_reload"/> + <key key="&reloadCmd.commandkey;" command="Browser:ReloadSkipCache" modifiers="accel,shift"/> + <key id="key_viewSource" key="&pageSourceCmd.commandkey;" command="View:PageSource" modifiers="accel"/> +--- firefox-60.0.bak/browser/base/content/browser.xul ++++ firefox-60.0/browser/base/content/browser.xul +@@ -888,12 +888,6 @@ + <label id="userContext-label"/> + <image id="userContext-indicator"/> + </hbox> +- <image id="reader-mode-button" +- class="urlbar-icon urlbar-page-action" +- tooltip="dynamic-shortcut-tooltip" +- role="button" +- hidden="true" +- onclick="ReaderParent.buttonClick(event);"/> + <toolbarbutton id="urlbar-zoom-button" + onclick="FullZoom.reset();" + tooltip="dynamic-shortcut-tooltip" +--- firefox-60.0.bak/browser/components/nsBrowserGlue.js ++++ firefox-60.0/browser/components/nsBrowserGlue.js +@@ -123,7 +123,6 @@ + PluralForm: "resource://gre/modules/PluralForm.jsm", + PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", + ProcessHangMonitor: "resource:///modules/ProcessHangMonitor.jsm", +- ReaderParent: "resource:///modules/ReaderParent.jsm", + RecentWindow: "resource:///modules/RecentWindow.jsm", + RemotePrompt: "resource:///modules/RemotePrompt.jsm", + SafeBrowsing: "resource://gre/modules/SafeBrowsing.jsm", +@@ -214,8 +213,6 @@ + "FormValidation:ShowPopup": ["FormValidationHandler"], + "FormValidation:HidePopup": ["FormValidationHandler"], + "Prompt:Open": ["RemotePrompt"], +- "Reader:FaviconRequest": ["ReaderParent"], +- "Reader:UpdateReaderButton": ["ReaderParent"], + // PLEASE KEEP THIS LIST IN SYNC WITH THE MOBILE LISTENERS IN BrowserCLH.js + "RemoteLogins:findLogins": ["LoginManagerParent"], + "RemoteLogins:findRecipes": ["LoginManagerParent"], +--- firefox-60.0.bak/browser/components/uitour/UITour.jsm ++++ firefox-60.0/browser/components/uitour/UITour.jsm +@@ -28,8 +28,6 @@ + "resource://gre/modules/PrivateBrowsingUtils.jsm"); + ChromeUtils.defineModuleGetter(this, "ProfileAge", + "resource://gre/modules/ProfileAge.jsm"); +-ChromeUtils.defineModuleGetter(this, "ReaderParent", +- "resource:///modules/ReaderParent.jsm"); + ChromeUtils.defineModuleGetter(this, "ResetProfile", + "resource://gre/modules/ResetProfile.jsm"); + ChromeUtils.defineModuleGetter(this, "UITelemetry", +@@ -42,7 +40,6 @@ + const PREF_SEENPAGEIDS = "browser.uitour.seenPageIDs"; + + const BACKGROUND_PAGE_ACTIONS_ALLOWED = new Set([ +- "forceShowReaderIcon", + "getConfiguration", + "getTreatmentTag", + "hideHighlight", +@@ -163,7 +160,6 @@ + }], + ["privateWindow", {query: "#appMenu-private-window-button"}], + ["quit", {query: "#appMenu-quit-button"}], +- ["readerMode-urlBar", {query: "#reader-mode-button"}], + ["search", { + infoPanelOffsetX: 18, + infoPanelPosition: "after_start", +@@ -661,19 +657,6 @@ + break; + } + +- case "forceShowReaderIcon": { +- ReaderParent.forceShowReaderIcon(browser); +- break; +- } +- +- case "toggleReaderMode": { +- let targetPromise = this.getTarget(window, "readerMode-urlBar"); +- targetPromise.then(target => { +- ReaderParent.toggleReaderMode({target: target.node}); +- }); +- break; +- } +- + case "closeTab": { + // Find the <tabbrowser> element of the <browser> for which the event + // was generated originally. If the browser where the UI tour is loaded +--- firefox-60.0.bak/browser/modules/moz.build ++++ firefox-60.0/browser/modules/moz.build +@@ -76,9 +76,6 @@ + with Files("ProcessHangMonitor.jsm"): + BUG_COMPONENT = ("Core", "DOM: Content Processes") + +-with Files("ReaderParent.jsm"): +- BUG_COMPONENT = ("Toolkit", "Reader Mode") +- + with Files("Sanitizer.jsm"): + BUG_COMPONENT = ("Firefox", "Preferences") + +@@ -150,7 +147,6 @@ + 'PingCentre.jsm', + 'PluginContent.jsm', + 'ProcessHangMonitor.jsm', +- 'ReaderParent.jsm', + 'RecentWindow.jsm', + 'RemotePrompt.jsm', + 'Sanitizer.jsm', diff --git a/firefox-60-disable-telemetry.patch b/firefox-60-disable-telemetry.patch new file mode 100644 index 000000000000..d565376ddcec --- /dev/null +++ b/firefox-60-disable-telemetry.patch @@ -0,0 +1,13 @@ +--- firefox-60.0.bak/browser/confvars.sh ++++ firefox-60.0/browser/confvars.sh +@@ -62,3 +62,10 @@ + + # Include the DevTools client, not just the server (which is the default) + MOZ_DEVTOOLS=all ++ ++# Reduce data sharing with Mozilla ++MOZ_DATA_REPORTING=0 ++MOZ_TELEMETRY_REPORTING=0 ++MOZ_CRASHREPORTER=0 ++MOZ_SERVICES_HEALTHREPORT=0 ++ diff --git a/firefox-60-prefs.patch b/firefox-60-prefs.patch new file mode 100644 index 000000000000..5654d9121e63 --- /dev/null +++ b/firefox-60-prefs.patch @@ -0,0 +1,417 @@ +--- firefox-60.0.bak/browser/app/profile/firefox.js ++++ firefox-60.0/browser/app/profile/firefox.js +@@ -129,7 +129,7 @@ + + // Whether or not app updates are enabled + #ifdef MOZ_UPDATER +-pref("app.update.enabled", true); ++pref("app.update.enabled", false); + #else + pref("app.update.enabled", false); + #endif +@@ -152,7 +152,7 @@ + // If set to true, the Update Service will automatically download updates when + // app updates are enabled per the app.update.enabled preference and if the user + // can apply updates. +-pref("app.update.auto", true); ++pref("app.update.auto", false); + + // If set to true, the Update Service will present no UI for any event. + pref("app.update.silent", false); +@@ -185,7 +185,7 @@ + // extensions.{GUID}.update.url + // .. etc .. + // +-pref("extensions.update.enabled", true); ++pref("extensions.update.enabled", false); + pref("extensions.update.url", "https://versioncheck.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); + pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla.org/update/VersionCheck.php?reqVersion=%REQ_VERSION%&id=%ITEM_ID%&version=%ITEM_VERSION%&maxAppVersion=%ITEM_MAXAPPVERSION%&status=%ITEM_STATUS%&appID=%APP_ID%&appVersion=%APP_VERSION%&appOS=%APP_OS%&appABI=%APP_ABI%&locale=%APP_LOCALE%¤tAppVersion=%CURRENT_APP_VERSION%&updateType=%UPDATE_TYPE%&compatMode=%COMPATIBILITY_MODE%"); + pref("extensions.update.interval", 86400); // Check for updates to Extensions and +@@ -200,7 +200,7 @@ + pref("extensions.webextensions.themes.enabled", true); + pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop,bookmark_star,bookmark_menu,downloads,home,app_menu,cut,copy,paste,new_window,new_private_window,save_page,print,history,full_screen,find,options,addons,developer,synced_tabs,open_file,sidebars,share_page,subscribe,text_encoding,email_link,forget,pocket"); + +-pref("lightweightThemes.update.enabled", true); ++pref("lightweightThemes.update.enabled", false); + pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes"); + pref("lightweightThemes.recommendedThemes", "[{\"id\":\"recommended-1\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/a-web-browser-renaissance/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.header.jpg\",\"textcolor\":\"#000000\",\"accentcolor\":\"#834d29\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.preview.jpg\",\"author\":\"Sean.Martell\",\"version\":\"0\"},{\"id\":\"recommended-2\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/space-fantasy/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.header.jpg\",\"textcolor\":\"#ffffff\",\"accentcolor\":\"#d9d9d9\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.preview.jpg\",\"author\":\"fx5800p\",\"version\":\"1.0\"},{\"id\":\"recommended-4\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/pastel-gradient/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.header.png\",\"textcolor\":\"#000000\",\"accentcolor\":\"#000000\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.icon.png\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.preview.png\",\"author\":\"darrinhenein\",\"version\":\"1.0\"}]"); + +@@ -244,7 +244,7 @@ + pref("browser.touchmode.auto", true); + + // At startup, check if we're the default browser and prompt user if not. +-pref("browser.shell.checkDefaultBrowser", true); ++pref("browser.shell.checkDefaultBrowser", false); + pref("browser.shell.shortcutFavicons",true); + pref("browser.shell.mostRecentDateSetAsDefault", ""); + pref("browser.shell.skipDefaultBrowserCheckOnFirstRun", true); +@@ -254,7 +254,7 @@ + + // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session + // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore +-pref("browser.startup.page", 1); ++pref("browser.startup.page", 0); + pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties"); + // Whether we should skip the homepage when opening the first-run page + pref("browser.startup.firstrunSkipsHomepage", true); +@@ -323,7 +323,7 @@ + pref("browser.urlbar.suggest.searches", true); + + // Whether the user made a choice in the old search suggestions opt-in bar. +-pref("browser.urlbar.userMadeSearchSuggestionsChoice", false); ++pref("browser.urlbar.userMadeSearchSuggestionsChoice", true); + // The suggestion opt-out hint will be hidden after being shown 4 times. + pref("browser.urlbar.timesBeforeHidingSuggestionsHint", 4); + +@@ -373,7 +373,7 @@ + pref("browser.download.animateNotifications", true); + + // This records whether or not the panel has been shown at least once. +-pref("browser.download.panel.shown", false); ++pref("browser.download.panel.shown", true); + + // This controls whether the button is automatically shown/hidden depending + // on whether there are downloads to show. +@@ -399,9 +399,9 @@ + pref("browser.search.geoSpecificDefaults.url", "https://search.services.mozilla.com/1/%APP%/%VERSION%/%CHANNEL%/%LOCALE%/%REGION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%"); + + // US specific default (used as a fallback if the geoSpecificDefaults request fails). +-pref("browser.search.defaultenginename.US", "data:text/plain,browser.search.defaultenginename.US=Google"); +-pref("browser.search.order.US.1", "data:text/plain,browser.search.order.US.1=Google"); +-pref("browser.search.order.US.2", "data:text/plain,browser.search.order.US.2=Bing"); ++pref("browser.search.defaultenginename.US", "data:text/plain,browser.search.defaultenginename.US=DuckDuckGo"); ++pref("browser.search.order.US.1", "data:text/plain,browser.search.order.US.1=DuckDuckGo"); ++pref("browser.search.order.US.2", "data:text/plain,browser.search.order.US.2=Google"); + + // search bar results always open in a new tab + pref("browser.search.openintab", false); +@@ -460,7 +460,7 @@ + // Tabbed browser + pref("browser.tabs.closeWindowWithLastTab", true); + pref("browser.tabs.insertRelatedAfterCurrent", true); +-pref("browser.tabs.warnOnClose", true); ++pref("browser.tabs.warnOnClose", false); + pref("browser.tabs.warnOnCloseOtherTabs", true); + pref("browser.tabs.warnOnOpen", true); + pref("browser.tabs.maxOpenBeforeWarn", 15); +@@ -663,7 +663,7 @@ + pref("browser.xul.error_pages.show_safe_browsing_details_on_load", false); + + // Enable captive portal detection. +-pref("network.captive-portal-service.enabled", true); ++pref("network.captive-portal-service.enabled", false); + + // If true, network link events will change the value of navigator.onLine + pref("network.manage-offline-status", true); +@@ -1174,7 +1174,7 @@ + pref("services.sync.prefs.sync.browser.safebrowsing.malware.enabled", true); + pref("services.sync.prefs.sync.browser.safebrowsing.downloads.enabled", true); + pref("services.sync.prefs.sync.browser.safebrowsing.passwords.enabled", true); +-pref("services.sync.prefs.sync.browser.search.update", true); ++pref("services.sync.prefs.sync.browser.search.update", false); + pref("services.sync.prefs.sync.browser.sessionstore.restore_on_demand", true); + pref("services.sync.prefs.sync.browser.startup.homepage", true); + pref("services.sync.prefs.sync.browser.startup.page", true); +@@ -1262,7 +1262,7 @@ + pref("browser.newtabpage.enabled", true); + + // Activity Stream prefs that control to which page to redirect +-pref("browser.newtabpage.activity-stream.prerender", true); ++pref("browser.newtabpage.activity-stream.prerender", false); + #ifndef RELEASE_OR_BETA + #ifdef MOZILLA_OFFICIAL + pref("browser.newtabpage.activity-stream.debug", false); +@@ -1271,7 +1271,7 @@ + #endif + #endif + +-pref("browser.library.activity-stream.enabled", true); ++pref("browser.library.activity-stream.enabled", false); + + // Enable the DOM fullscreen API. + pref("full-screen-api.enabled", true); +@@ -1481,31 +1481,31 @@ + + // Telemetry settings. + // Determines if Telemetry pings can be archived locally. +-pref("toolkit.telemetry.archive.enabled", true); ++pref("toolkit.telemetry.archive.enabled", false); + // Enables sending the shutdown ping when Firefox shuts down. +-pref("toolkit.telemetry.shutdownPingSender.enabled", true); ++pref("toolkit.telemetry.shutdownPingSender.enabled", false); + // Enables sending the shutdown ping using the pingsender from the first session. + pref("toolkit.telemetry.shutdownPingSender.enabledFirstSession", false); + // Enables sending a duplicate of the first shutdown ping from the first session. +-pref("toolkit.telemetry.firstShutdownPing.enabled", true); ++pref("toolkit.telemetry.firstShutdownPing.enabled", false); + // Enables sending the 'new-profile' ping on new profiles. +-pref("toolkit.telemetry.newProfilePing.enabled", true); ++pref("toolkit.telemetry.newProfilePing.enabled", false); + // Enables sending 'update' pings on Firefox updates. +-pref("toolkit.telemetry.updatePing.enabled", true); ++pref("toolkit.telemetry.updatePing.enabled", false); + // Enables sending 'bhr' pings when the browser hangs. +-pref("toolkit.telemetry.bhrPing.enabled", true); ++pref("toolkit.telemetry.bhrPing.enabled", false); + // Enables using Hybrid Content Telemetry from Mozilla privileged pages. +-pref("toolkit.telemetry.hybridContent.enabled", true); ++pref("toolkit.telemetry.hybridContent.enabled", false); + + // Telemetry experiments settings. +-pref("experiments.enabled", true); ++pref("experiments.enabled", false); + pref("experiments.manifest.fetchIntervalSeconds", 86400); + pref("experiments.manifest.uri", "https://telemetry-experiment.cdn.mozilla.net/manifest/v1/firefox/%VERSION%/%CHANNEL%"); + // Whether experiments are supported by the current application profile. +-pref("experiments.supported", true); ++pref("experiments.supported", false); + + // Ping Centre Telemetry settings. +-pref("browser.ping-centre.telemetry", true); ++pref("browser.ping-centre.telemetry", false); + pref("browser.ping-centre.log", false); + pref("browser.ping-centre.staging.endpoint", "https://onyx_tiles.stage.mozaws.net/v3/links/ping-centre"); + pref("browser.ping-centre.production.endpoint", "https://tiles.services.mozilla.com/v3/links/ping-centre"); +@@ -1696,7 +1696,7 @@ + pref("browser.suppress_first_window_animation", true); + + // Preferences for Photon onboarding system extension +-pref("browser.onboarding.enabled", true); ++pref("browser.onboarding.enabled", false); + // Mark this as an upgraded profile so we don't offer the initial new user onboarding tour. + pref("browser.onboarding.tourset-version", 2); + pref("browser.onboarding.state", "default"); +@@ -1737,13 +1737,13 @@ + // Normandy client preferences + pref("app.normandy.api_url", "https://normandy.cdn.mozilla.net/api/v1"); + pref("app.normandy.dev_mode", false); +-pref("app.normandy.enabled", true); +-pref("app.normandy.first_run", true); ++pref("app.normandy.enabled", false); ++pref("app.normandy.first_run", false); + pref("app.normandy.logging.level", 50); // Warn + pref("app.normandy.run_interval_seconds", 86400); // 24 hours + pref("app.normandy.shieldLearnMoreUrl", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/shield"); + #ifdef MOZ_DATA_REPORTING +-pref("app.shield.optoutstudies.enabled", true); ++pref("app.shield.optoutstudies.enabled", false); + #else + pref("app.shield.optoutstudies.enabled", false); + #endif +diff -Naur firefox-60.0.bak/browser/branding/official/pref/firefox-branding.js firefox-60.0/browser/branding/official/pref/firefox-branding.js +--- firefox-60.0.bak/browser/branding/official/pref/firefox-branding.js ++++ firefox-60.0/browser/branding/official/pref/firefox-branding.js +@@ -3,8 +3,7 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + pref("startup.homepage_override_url", ""); +-pref("startup.homepage_welcome_url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/firstrun/"); +-pref("startup.homepage_welcome_url.additional", ""); ++pref("startup.homepage_welcome_url", "about:blank"); + // Interval: Time between checks for a new version (in seconds) + pref("app.update.interval", 43200); // 12 hours + // The time interval between the downloading of mar file chunks in the +diff -Naur firefox-60.0.bak/build/application.ini.in firefox-60.0/build/application.ini.in +--- firefox-60.0.bak/build/application.ini.in ++++ firefox-60.0/build/application.ini.in +@@ -41,7 +41,7 @@ + + [XRE] + #ifdef MOZ_PROFILE_MIGRATOR +-EnableProfileMigrator=1 ++EnableProfileMigrator=0 + #endif + + #if MOZ_CRASHREPORTER +diff -Naur firefox-60.0.bak/modules/libpref/init/all.js firefox-60.0/modules/libpref/init/all.js +--- firefox-60.0.bak/modules/libpref/init/all.js ++++ firefox-60.0/modules/libpref/init/all.js +@@ -30,7 +30,7 @@ + + pref("general.config.obscure_value", 13); // for MCD .cfg files + +-pref("general.warnOnAboutConfig", true); ++pref("general.warnOnAboutConfig", false); + + // maximum number of dated backups to keep at any time + pref("browser.bookmarks.max_backups", 5); +@@ -1804,7 +1804,7 @@ + + // The maximum number of current global half open sockets allowable + // when starting a new speculative connection. +-pref("network.http.speculative-parallel-limit", 6); ++pref("network.http.speculative-parallel-limit", 0); + + // Whether or not to block requests for non head js/css items (e.g. media) + // while those elements load. +@@ -2153,7 +2153,7 @@ + + // enables the prefetch service (i.e., prefetching of <link rel="next"> and + // <link rel="prefetch"> URLs). +-pref("network.prefetch-next", true); ++pref("network.prefetch-next", false); + // enables the preloading (i.e., preloading of <link rel="preload"> URLs). + pref("network.preload", false); + +@@ -2681,7 +2681,7 @@ + pref("services.settings.server", "https://firefox.settings.services.mozilla.com/v1"); + + // Blocklist preferences +-pref("extensions.blocklist.enabled", true); ++pref("extensions.blocklist.enabled", false); + // OneCRL freshness checking depends on this value, so if you change it, + // please also update security.onecrl.maximum_staleness_in_seconds. + pref("extensions.blocklist.interval", 86400); +@@ -4676,7 +4676,7 @@ + + // Satchel (Form Manager) prefs + pref("browser.formfill.debug", false); +-pref("browser.formfill.enable", true); ++pref("browser.formfill.enable", false); + pref("browser.formfill.expire_days", 180); + pref("browser.formfill.agedWeight", 2); + pref("browser.formfill.bucketSize", 1); +@@ -5507,18 +5507,18 @@ + pref("dom.mapped_arraybuffer.enabled", true); + + // The tables used for Safebrowsing phishing and malware checks +-pref("urlclassifier.malwareTable", "goog-malware-proto,goog-unwanted-proto,test-harmful-simple,test-malware-simple,test-unwanted-simple"); ++pref("urlclassifier.malwareTable", ""); + #ifdef MOZILLA_OFFICIAL + // In official builds, we are allowed to use Google's private phishing + // list (see bug 1288840). +-pref("urlclassifier.phishTable", "goog-phish-proto,test-phish-simple"); ++pref("urlclassifier.phishTable", ""); + #else +-pref("urlclassifier.phishTable", "googpub-phish-proto,test-phish-simple"); ++pref("urlclassifier.phishTable", ""); + #endif + + // Tables for application reputation +-pref("urlclassifier.downloadAllowTable", "goog-downloadwhite-proto"); +-pref("urlclassifier.downloadBlockTable", "goog-badbinurl-proto"); ++pref("urlclassifier.downloadAllowTable", ""); ++pref("urlclassifier.downloadBlockTable", ""); + + // Tables for login reputation + pref("urlclassifier.passwordAllowTable", "goog-passwordwhite-proto"); +@@ -5544,8 +5544,8 @@ + pref("urlclassifier.alternate_error_page", "blocked"); + + // Enable phishing & malware protection. +-pref("browser.safebrowsing.phishing.enabled", true); +-pref("browser.safebrowsing.malware.enabled", true); ++pref("browser.safebrowsing.phishing.enabled", false); ++pref("browser.safebrowsing.malware.enabled", false); + pref("browser.safebrowsing.debug", false); + + // Allow users to ignore Safe Browsing warnings. +@@ -5560,49 +5560,49 @@ + #endif + + // Download protection +-pref("browser.safebrowsing.downloads.enabled", true); +-pref("browser.safebrowsing.downloads.remote.enabled", true); ++pref("browser.safebrowsing.downloads.enabled", false); ++pref("browser.safebrowsing.downloads.remote.enabled", false); + pref("browser.safebrowsing.downloads.remote.timeout_ms", 10000); +-pref("browser.safebrowsing.downloads.remote.url", "https://sb-ssl.google.com/safebrowsing/clientreport/download?key=%GOOGLE_API_KEY%"); +-pref("browser.safebrowsing.downloads.remote.block_dangerous", true); +-pref("browser.safebrowsing.downloads.remote.block_dangerous_host", true); +-pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", true); +-pref("browser.safebrowsing.downloads.remote.block_uncommon", true); ++pref("browser.safebrowsing.downloads.remote.url", ""); ++pref("browser.safebrowsing.downloads.remote.block_dangerous", false); ++pref("browser.safebrowsing.downloads.remote.block_dangerous_host", false); ++pref("browser.safebrowsing.downloads.remote.block_potentially_unwanted", false); ++pref("browser.safebrowsing.downloads.remote.block_uncommon", false); + + // Password protection + pref("browser.safebrowsing.passwords.enabled", false); + + // Google Safe Browsing provider (legacy) + pref("browser.safebrowsing.provider.google.pver", "2.2"); +-pref("browser.safebrowsing.provider.google.lists", "goog-badbinurl-shavar,goog-downloadwhite-digest256,goog-phish-shavar,googpub-phish-shavar,goog-malware-shavar,goog-unwanted-shavar"); +-pref("browser.safebrowsing.provider.google.updateURL", "https://safebrowsing.google.com/safebrowsing/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2&key=%GOOGLE_API_KEY%"); +-pref("browser.safebrowsing.provider.google.gethashURL", "https://safebrowsing.google.com/safebrowsing/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2"); +-pref("browser.safebrowsing.provider.google.reportURL", "https://safebrowsing.google.com/safebrowsing/diagnostic?client=%NAME%&hl=%LOCALE%&site="); +-pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", "https://%LOCALE%.phish-error.mozilla.com/?hl=%LOCALE%&url="); +-pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", "https://%LOCALE%.malware-error.mozilla.com/?hl=%LOCALE%&url="); +-pref("browser.safebrowsing.provider.google.advisoryURL", "https://developers.google.com/safe-browsing/v4/advisory"); +-pref("browser.safebrowsing.provider.google.advisoryName", "Google Safe Browsing"); ++pref("browser.safebrowsing.provider.google.lists", ""); ++pref("browser.safebrowsing.provider.google.updateURL", ""); ++pref("browser.safebrowsing.provider.google.gethashURL", ""); ++pref("browser.safebrowsing.provider.google.reportURL", ""); ++pref("browser.safebrowsing.provider.google.reportPhishMistakeURL", ""); ++pref("browser.safebrowsing.provider.google.reportMalwareMistakeURL", ""); ++pref("browser.safebrowsing.provider.google.advisoryURL", ""); ++pref("browser.safebrowsing.provider.google.advisoryName", ""); + + // Google Safe Browsing provider + pref("browser.safebrowsing.provider.google4.pver", "4"); +-pref("browser.safebrowsing.provider.google4.lists", "goog-badbinurl-proto,goog-downloadwhite-proto,goog-phish-proto,googpub-phish-proto,goog-malware-proto,goog-unwanted-proto,goog-harmful-proto,goog-passwordwhite-proto"); +-pref("browser.safebrowsing.provider.google4.updateURL", "https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?$ct=application/x-protobuf&key=%GOOGLE_API_KEY%&$httpMethod=POST"); +-pref("browser.safebrowsing.provider.google4.gethashURL", "https://safebrowsing.googleapis.com/v4/fullHashes:find?$ct=application/x-protobuf&key=%GOOGLE_API_KEY%&$httpMethod=POST"); +-pref("browser.safebrowsing.provider.google4.reportURL", "https://safebrowsing.google.com/safebrowsing/diagnostic?client=%NAME%&hl=%LOCALE%&site="); +-pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", "https://%LOCALE%.phish-error.mozilla.com/?hl=%LOCALE%&url="); +-pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", "https://%LOCALE%.malware-error.mozilla.com/?hl=%LOCALE%&url="); +-pref("browser.safebrowsing.provider.google4.advisoryURL", "https://developers.google.com/safe-browsing/v4/advisory"); +-pref("browser.safebrowsing.provider.google4.advisoryName", "Google Safe Browsing"); +-pref("browser.safebrowsing.provider.google4.dataSharingURL", "https://safebrowsing.googleapis.com/v4/threatHits?$ct=application/x-protobuf&key=%GOOGLE_API_KEY%&$httpMethod=POST"); ++pref("browser.safebrowsing.provider.google4.lists", ""); ++pref("browser.safebrowsing.provider.google4.updateURL", ""); ++pref("browser.safebrowsing.provider.google4.gethashURL", ""); ++pref("browser.safebrowsing.provider.google4.reportURL", ""); ++pref("browser.safebrowsing.provider.google4.reportPhishMistakeURL", ""); ++pref("browser.safebrowsing.provider.google4.reportMalwareMistakeURL", ""); ++pref("browser.safebrowsing.provider.google4.advisoryURL", ""); ++pref("browser.safebrowsing.provider.google4.advisoryName", ""); ++pref("browser.safebrowsing.provider.google4.dataSharingURL", ""); + pref("browser.safebrowsing.provider.google4.dataSharing.enabled", false); + +-pref("browser.safebrowsing.reportPhishURL", "https://%LOCALE%.phish-report.mozilla.com/?hl=%LOCALE%&url="); ++pref("browser.safebrowsing.reportPhishURL", ""); + + // Mozilla Safe Browsing provider (for tracking protection and plugin blocking) + pref("browser.safebrowsing.provider.mozilla.pver", "2.2"); + pref("browser.safebrowsing.provider.mozilla.lists", "base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,except-flashinfobar-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256"); +-pref("browser.safebrowsing.provider.mozilla.updateURL", "https://shavar.services.mozilla.com/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2"); +-pref("browser.safebrowsing.provider.mozilla.gethashURL", "https://shavar.services.mozilla.com/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2"); ++pref("browser.safebrowsing.provider.mozilla.updateURL", ""); ++pref("browser.safebrowsing.provider.mozilla.gethashURL", ""); + // Set to a date in the past to force immediate download in new profiles. + pref("browser.safebrowsing.provider.mozilla.nextupdatetime", "1"); + // Block lists for tracking protection. The name values will be used as the keys +@@ -5727,7 +5727,7 @@ + pref("browser.search.update", true); + pref("browser.search.update.log", false); + pref("browser.search.update.interval", 21600); +-pref("browser.search.suggest.enabled", true); ++pref("browser.search.suggest.enabled", false); + pref("browser.search.reset.enabled", false); + pref("browser.search.reset.whitelist", ""); + pref("browser.search.geoSpecificDefaults", false); +diff -Naur firefox-60.0.bak/toolkit/components/telemetry/healthreport-prefs.js firefox-60.0/toolkit/components/telemetry/healthreport-prefs.js +--- firefox-60.0.bak/toolkit/components/telemetry/healthreport-prefs.js ++++ firefox-60.0/toolkit/components/telemetry/healthreport-prefs.js +@@ -7,4 +7,4 @@ + pref("datareporting.healthreport.infoURL", "https://www.mozilla.org/legal/privacy/firefox.html#health-report"); + + // Health Report is enabled by default on all channels. +-pref("datareporting.healthreport.uploadEnabled", true); ++pref("datareporting.healthreport.uploadEnabled", false); +diff -Naur firefox-60.0.bak/browser/locales/en-US/chrome/browser-region/region.properties firefox-60.0/browser/locales/en-US/chrome/browser-region/region.properties +--- firefox-60.0.bak/browser/locales/en-US/chrome/browser-region/region.properties ++++ firefox-60.0/browser/locales/en-US/chrome/browser-region/region.properties +@@ -6,8 +6,8 @@ + browser.search.defaultenginename=Google + + # Search engine order (order displayed in the search bar dropdown)s +-browser.search.order.1=Google +-browser.search.order.2=Bing ++browser.search.order.1=DuckDuckGo ++browser.search.order.2=Google + + # This is the default set of web based feed handlers shown in the reader + # selection UI |