summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorw2016-03-15 10:39:54 +0100
committerw2016-03-15 10:39:54 +0100
commit8ad9f2719abf04936135c55474e8c3b0277b1eb6 (patch)
treeacafb8da929fd004126a7c8c0652d75b32e74093
parent827bc9a8ade3a4161ad6b6fecb464b3706d7b670 (diff)
downloadaur-8ad9f2719abf04936135c55474e8c3b0277b1eb6.tar.gz
Update to FF 45 ESR
-rw-r--r--.SRCINFO29
-rw-r--r--PKGBUILD49
-rw-r--r--firefox-38-disable-location.services.mozilla.com.patch25
-rw-r--r--firefox-38-disable-loop.patch757
-rw-r--r--firefox-45-disable-location.services.mozilla.com.patch24
-rw-r--r--firefox-45-disable-loop-pocket.patch1075
-rw-r--r--firefox-45-disable-sponsored-tiles.patch (renamed from firefox-38-disable-sponsored-tiles.patch)65
-rw-r--r--firefox-45-disable-telemetry.patch24
-rw-r--r--firefox-45-prefs.patch (renamed from firefox-38-prefs.patch)122
-rw-r--r--mozconfig1
10 files changed, 1273 insertions, 898 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2c55165532f..49cb9917dfc 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,8 +1,8 @@
# Generated by makepkg 5.0.0
-# Wed Mar 9 09:01:22 UTC 2016
+# Tue Mar 15 09:38:13 UTC 2016
pkgbase = firefox-esr-privacy
pkgdesc = Standalone web browser from mozilla.org
- pkgver = 38.6.1
+ pkgver = 45.0
pkgrel = 1
url = https://www.mozilla.org/firefox/
install = firefox.install
@@ -33,26 +33,29 @@ pkgbase = firefox-esr-privacy
depends = nss
depends = hunspell
depends = sqlite
+ conflicts = firefox
options = !emptydirs
- source = https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/38.6.1esr/source/firefox-38.6.1esr.source.tar.bz2
+ source = https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/45.0esr/source/firefox-45.0esr.source.tar.xz
source = firefox-install-dir.patch
- source = firefox-38-disable-location.services.mozilla.com.patch
- source = firefox-38-disable-loop.patch
- source = firefox-38-disable-sponsored-tiles.patch
- source = firefox-38-prefs.patch
+ source = firefox-45-disable-location.services.mozilla.com.patch
+ source = firefox-45-disable-loop-pocket.patch
+ source = firefox-45-disable-sponsored-tiles.patch
+ source = firefox-45-prefs.patch
+ source = firefox-45-disable-telemetry.patch
source = firefox.desktop
source = firefox-fixed-loading-icon.png
source = mozconfig
validpgpkeys = 2B90598A745E992F315E22C58AB132963A06537A
- sha256sums = 91174d0118ac7178b5902bd6e82743b4eab5d567ec6431abebf4da093ffbd0ff
+ sha256sums = 0f46f6c2e6b4f7efea2cd688c27b154a2f000cf5a7e5cb676def8a6dbf3839a0
sha256sums = d86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd
- sha256sums = 67a3aa79643837965902118927a37cecd098a83696d7e1b58e2040ce82b823df
- sha256sums = 1579b3221638ab012782d898c26014024ccae02363b7be674c3192e1b8031608
- sha256sums = 6e0dcac677bf2e47df6a56b30c153e8bbd712fab7d4f7c05fc27c83bf60afbd9
- sha256sums = c618470c7cc8e42fd8b582980d94a132efad8a3533093703cbfc10169f036f70
+ sha256sums = 8d9afa1f940a9dac689ead40a57990d1491f34a1787b2222f8f5b5e485d54103
+ sha256sums = 4ffefee2f47e2de114df0d8a0c9a7b964d6e6959ce691e274e259ad8fd85682e
+ sha256sums = 1926a3d3b8996cdbdd8b970a12d9880e3272181fd4b07c2c9277ca7290b159c3
+ sha256sums = 23e76c382612ef694a4d62cc91996c063266ebb2620cab8149cd22a59ca11293
+ sha256sums = 5f97739f5962c98c94c0cf7a7361d9dac01be1366773cb2b45d2bd5938569fde
sha256sums = 0bcfe168964338ec9c6e781479f2f8d06aa44f2262d6405ff8fa42983be89630
sha256sums = 68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213
- sha256sums = 7b6729423fba99e45c022c1d5638554c0e6f19ff5ef79c466861a9418062ce4c
+ sha256sums = 28b56c316c2f3a4072f1f9bb773eb355b204f66805654cb96d5dcda6d2a9a73e
pkgname = firefox-esr-privacy
diff --git a/PKGBUILD b/PKGBUILD
index 69f77b417d8..8a327447a27 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,6 @@
pkgname=firefox-esr-privacy
-_basever=38
-_pkgdir=mozilla-esr${_basever}
-pkgver=38.7.0
+_basever=45
+pkgver=45.0
pkgrel=1
pkgdesc="Standalone web browser from mozilla.org"
arch=('i686' 'x86_64')
@@ -13,49 +12,67 @@ depends=('gtk3' 'gtk2' 'libxt' 'startup-notification'
makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'xorg-server' 'inetutils')
install=firefox.install
options=('!emptydirs')
-source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2
+conflicts=('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-location.services.mozilla.com.patch
- firefox-${_basever}-disable-loop.patch
+ firefox-${_basever}-disable-loop-pocket.patch
firefox-${_basever}-disable-sponsored-tiles.patch
firefox-${_basever}-prefs.patch
+ firefox-${_basever}-disable-telemetry.patch
firefox.desktop
firefox-fixed-loading-icon.png
mozconfig)
-sha256sums=('91174d0118ac7178b5902bd6e82743b4eab5d567ec6431abebf4da093ffbd0ff'
+sha256sums=('0f46f6c2e6b4f7efea2cd688c27b154a2f000cf5a7e5cb676def8a6dbf3839a0'
'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd'
- '67a3aa79643837965902118927a37cecd098a83696d7e1b58e2040ce82b823df'
- '1579b3221638ab012782d898c26014024ccae02363b7be674c3192e1b8031608'
- '6e0dcac677bf2e47df6a56b30c153e8bbd712fab7d4f7c05fc27c83bf60afbd9'
- 'c618470c7cc8e42fd8b582980d94a132efad8a3533093703cbfc10169f036f70'
+ '8d9afa1f940a9dac689ead40a57990d1491f34a1787b2222f8f5b5e485d54103'
+ '4ffefee2f47e2de114df0d8a0c9a7b964d6e6959ce691e274e259ad8fd85682e'
+ '1926a3d3b8996cdbdd8b970a12d9880e3272181fd4b07c2c9277ca7290b159c3'
+ '23e76c382612ef694a4d62cc91996c063266ebb2620cab8149cd22a59ca11293'
+ '5f97739f5962c98c94c0cf7a7361d9dac01be1366773cb2b45d2bd5938569fde'
'0bcfe168964338ec9c6e781479f2f8d06aa44f2262d6405ff8fa42983be89630'
'68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213'
- '7b6729423fba99e45c022c1d5638554c0e6f19ff5ef79c466861a9418062ce4c')
+ '28b56c316c2f3a4072f1f9bb773eb355b204f66805654cb96d5dcda6d2a9a73e')
validpgpkeys=('2B90598A745E992F315E22C58AB132963A06537A')
prepare() {
- cd ${_pkgdir}
+ cd firefox-${pkgver}esr
cp ${srcdir}/mozconfig mozconfig
# Disable sponsored tiles
patch -Np1 -i ${srcdir}/firefox-${_basever}-disable-sponsored-tiles.patch
- # Disable Loop (Firefox Hello)
- patch -Np1 -i ${srcdir}/firefox-${_basever}-disable-loop.patch
+
+ # Disable Loop (Firefox Hello) and Pocket integration
+ patch -Np1 -i ${srcdir}/firefox-${_basever}-disable-loop-pocket.patch
+ # Remove loop and pocket source directories
+ rm -fr browser/extensions/loop/ browser/components/pocket/
+
# 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
+
# 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
+
+ # Don't install files from the browser/features directory
+ # This directory only contains the loop program, which is not built
+ sed -i 's#@RESPATH@/browser/features/*#; @RESPATH@/browser/features/*#' browser/installer/package-manifest.in
}
build() {
- cd ${_pkgdir}
+ cd firefox-${pkgver}esr
# Fix configure: error: Your toolchain does not support C++0x/C++11 mode properly. Please upgrade your toolchain
unset CPPFLAGS
@@ -64,7 +81,7 @@ build() {
}
package() {
- cd ${_pkgdir}
+ cd firefox-${pkgver}esr
make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install
install -Dm644 ${srcdir}/firefox.desktop "$pkgdir/usr/share/applications/firefox.desktop"
diff --git a/firefox-38-disable-location.services.mozilla.com.patch b/firefox-38-disable-location.services.mozilla.com.patch
deleted file mode 100644
index 241df5b52b9..00000000000
--- a/firefox-38-disable-location.services.mozilla.com.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- mozilla-esr38.bak/toolkit/components/search/nsSearchService.js 2015-11-05
-+++ mozilla-esr38/toolkit/components/search/nsSearchService.js 2015-11-05
-@@ -442,6 +442,10 @@
- if (Services.prefs.prefHasUserValue("browser.search.region")) {
- return;
- }
-+
-+ // Prevent Firefox from contacting location.services.mozilla.com on a new profile
-+ Services.prefs.setCharPref("browser.search.region", "US");
-+ return;
-
- // 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
-@@ -528,6 +532,11 @@
- Services.prefs.getCharPref("browser.search.countryCode");
- return; // pref exists, so we've done this before.
- } catch(e) {}
-+
-+ // No countryCode set, use US as default, don't contact location.services.mozilla.com
-+ Services.prefs.setCharPref("browser.search.countryCode", "US");
-+ return;
-+
- // We don't have it cached, so fetch it. fetchCountryCode() will call
- // storeCountryCode if it gets a result (even if that happens after the
- // promise resolves)
diff --git a/firefox-38-disable-loop.patch b/firefox-38-disable-loop.patch
deleted file mode 100644
index 3ef2fbd3b92..00000000000
--- a/firefox-38-disable-loop.patch
+++ /dev/null
@@ -1,757 +0,0 @@
-diff -Naur mozilla-esr38.bak/browser/app/profile/firefox.js mozilla-esr38/browser/app/profile/firefox.js
---- mozilla-esr38.bak/browser/app/profile/firefox.js 2015-09-16 18:44:17.000000000 +0200
-+++ mozilla-esr38/browser/app/profile/firefox.js 2015-10-01 23:03:06.769052088 +0200
-@@ -1687,43 +1687,6 @@
- // (This is intentionally on the high side; see bug 746055.)
- pref("image.mem.max_decoded_image_kb", 256000);
-
--pref("loop.enabled", false);
--pref("loop.screenshare.enabled", false);
--pref("loop.server", "https://loop.services.mozilla.com/v0");
--pref("loop.seenToS", "unseen");
--pref("loop.showPartnerLogo", true);
--pref("loop.gettingStarted.seen", false);
--pref("loop.gettingStarted.url", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/hello/start/");
--pref("loop.gettingStarted.resumeOnFirstJoin", false);
--pref("loop.learnMoreUrl", "https://www.firefox.com/hello/");
--pref("loop.legal.ToS_url", "https://www.mozilla.org/about/legal/terms/firefox-hello/");
--pref("loop.legal.privacy_url", "https://www.mozilla.org/privacy/firefox-hello/");
--pref("loop.do_not_disturb", false);
--pref("loop.ringtone", "chrome://browser/content/loop/shared/sounds/ringtone.ogg");
--pref("loop.retry_delay.start", 60000);
--pref("loop.retry_delay.limit", 300000);
--pref("loop.ping.interval", 1800000);
--pref("loop.ping.timeout", 10000);
--pref("loop.feedback.baseUrl", "https://input.mozilla.org/api/v1/feedback");
--pref("loop.feedback.product", "Loop");
--pref("loop.debug.loglevel", "Error");
--pref("loop.debug.dispatcher", false);
--pref("loop.debug.websocket", false);
--pref("loop.debug.sdk", false);
--#ifdef DEBUG
--pref("loop.CSP", "default-src 'self' about: file: chrome: http://localhost:*; img-src 'self' data: https://www.gravatar.com/ about: file: chrome:; font-src 'none'; connect-src wss://*.tokbox.com https://*.opentok.com https://*.tokbox.com wss://*.mozilla.com https://*.mozilla.org wss://*.mozaws.net http://localhost:* ws://localhost:*; media-src blob:");
--#else
--pref("loop.CSP", "default-src 'self' about: file: chrome:; img-src 'self' data: https://www.gravatar.com/ about: file: chrome:; font-src 'none'; connect-src wss://*.tokbox.com https://*.opentok.com https://*.tokbox.com wss://*.mozilla.com https://*.mozilla.org wss://*.mozaws.net; media-src blob:");
--#endif
--pref("loop.oauth.google.redirect_uri", "urn:ietf:wg:oauth:2.0:oob:auto");
--pref("loop.oauth.google.scope", "https://www.google.com/m8/feeds");
--pref("loop.fxa_oauth.tokendata", "");
--pref("loop.fxa_oauth.profile", "");
--pref("loop.support_url", "https://support.mozilla.org/kb/group-conversations-firefox-hello-webrtc");
--pref("loop.contacts.gravatars.show", false);
--pref("loop.contacts.gravatars.promo", true);
--pref("loop.browserSharing.showInfoBar", true);
--
- // serverURL to be assigned by services team
- pref("services.push.serverURL", "wss://push.services.mozilla.com/");
-
-diff -Naur mozilla-esr38.bak/browser/base/content/browser.css mozilla-esr38/browser/base/content/browser.css
---- mozilla-esr38.bak/browser/base/content/browser.css 2015-09-16 18:44:17.000000000 +0200
-+++ mozilla-esr38/browser/base/content/browser.css 2015-10-01 23:04:52.384053457 +0200
-@@ -14,30 +14,6 @@
- %endif
- }
-
--/* These values are chosen to keep the Loop detached chat window from
-- * getting too small. When it's too small, three bad things happen:
-- *
-- * - It looks terrible
-- * - It's not really usable
-- * - It's possible for the user to be transmitting video that's cropped by the
-- * the edge of the window, so that they're not aware of it, which is a
-- * privacy problem
-- *
-- * Note that if the chat window grows more users than Loop who want this
-- * ability, we'll need to generalize. A partial patch for this is in
-- * bug 1112264.
-- */
--
--#chat-window {
-- /*
-- * In some ideal world, we'd have a simple way to express "block resizing
-- * along any dimension beyond the point at which an overflow event would
-- * occur". But none of -moz-{fit,max,min}-content do what we want here. So..
-- */
-- min-width: 320px;
-- min-height: 280px;
--}
--
- #main-window[customize-entered] {
- min-width: -moz-fit-content;
- }
-@@ -899,11 +875,6 @@
- -moz-binding: url("chrome://browser/content/translation-infobar.xml#translationbar");
- }
-
--/* Loop/ Hello */
--notification[value="loop-sharing-notification"] .close-icon {
-- display: none;
--}
--
- /* Social */
- /* Note the chatbox 'width' values are duplicated in socialchat.xml */
- chatbox {
---- mozilla-esr38.bak/browser/base/content/browser.js 2015-10-02 10:25:01.208060687 +0200
-+++ mozilla-esr38/browser/base/content/browser.js 2015-10-02 10:30:54.430065264 +0200
-@@ -232,7 +232,6 @@
- #include browser-fullScreen.js
- #include browser-fullZoom.js
- #include browser-gestureSupport.js
--#include browser-loop.js
- #include browser-places.js
- #include browser-plugins.js
- #include browser-readinglist.js
-@@ -1356,8 +1355,6 @@
- gDataNotificationInfoBar.init();
- #endif
-
-- LoopUI.init();
--
- gBrowserThumbnails.init();
-
- // Add Devtools menuitems and listeners
-@@ -1530,7 +1527,6 @@
- TabView.uninit();
- SocialUI.uninit();
- gBrowserThumbnails.uninit();
-- LoopUI.uninit();
- FullZoom.destroy();
-
- Services.obs.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
-diff -Naur mozilla-esr38.bak/browser/base/content/browser.xul mozilla-esr38/browser/base/content/browser.xul
---- mozilla-esr38.bak/browser/base/content/browser.xul 2015-09-16 18:44:17.000000000 +0200
-+++ mozilla-esr38/browser/base/content/browser.xul 2015-10-01 23:06:27.242054686 +0200
-@@ -292,18 +292,6 @@
- noautofocus="true"
- position="topcenter topright"/>
-
-- <panel id="loop-notification-panel"
-- class="loop-panel social-panel"
-- type="arrow"
-- hidden="true"
-- noautofocus="true"/>
--
-- <panel id="loop-panel"
-- class="loop-panel social-panel"
-- type="arrow"
-- orient="horizontal"
-- hidden="true"/>
--
- <menupopup id="processHangOptions"
- onpopupshowing="ProcessHangMonitor.refreshMenu(window);">
- <menuitem id="processHangTerminateScript"
-@@ -730,9 +718,9 @@
- fullscreentoolbar="true" mode="icons" customizable="true"
- iconsize="small"
- #ifdef MOZ_DEV_EDITION
-- defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button,loop-button"
-+ defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button"
- #else
-- defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button,loop-button"
-+ defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button"
- #endif
- customizationtarget="nav-bar-customization-target"
- overflowable="true"
-diff -Naur mozilla-esr38.bak/browser/components/customizableui/content/panelUI.inc.xul mozilla-esr38/browser/components/customizableui/content/panelUI.inc.xul
---- mozilla-esr38.bak/browser/components/customizableui/content/panelUI.inc.xul 2015-09-16 18:44:18.000000000 +0200
-+++ mozilla-esr38/browser/components/customizableui/content/panelUI.inc.xul 2015-10-01 23:07:14.215055294 +0200
-@@ -157,8 +157,6 @@
-
- <panelview id="PanelUI-socialapi" flex="1"/>
-
-- <panelview id="PanelUI-loopapi" flex="1"/>
--
- <panelview id="PanelUI-feeds" flex="1" oncommand="FeedHandler.subscribeToFeed(null, event);">
- <label value="&feedsMenu.label;" class="panel-subview-header"/>
- </panelview>
-diff -Naur mozilla-esr38.bak/browser/components/customizableui/CustomizableUI.jsm mozilla-esr38/browser/components/customizableui/CustomizableUI.jsm
---- mozilla-esr38.bak/browser/components/customizableui/CustomizableUI.jsm 2015-09-16 18:44:18.000000000 +0200
-+++ mozilla-esr38/browser/components/customizableui/CustomizableUI.jsm 2015-10-01 23:07:47.877055731 +0200
-@@ -210,7 +210,6 @@
- "bookmarks-menu-button",
- "downloads-button",
- "home-button",
-- "loop-button",
- ];
-
- if (Services.prefs.getBoolPref(kPrefWebIDEInNavbar)) {
-@@ -308,15 +307,6 @@
- }
- }
- }
--
-- if (currentVersion < 2) {
-- // Nuke the old 'loop-call-button' out of orbit.
-- CustomizableUI.removeWidgetFromArea("loop-call-button");
-- }
--
-- if (currentVersion < 4) {
-- CustomizableUI.removeWidgetFromArea("loop-button-throttled");
-- }
- },
-
- wrapWidget: function(aWidgetId) {
-diff -Naur mozilla-esr38.bak/browser/components/customizableui/CustomizableWidgets.jsm mozilla-esr38/browser/components/customizableui/CustomizableWidgets.jsm
---- mozilla-esr38.bak/browser/components/customizableui/CustomizableWidgets.jsm 2015-09-16 18:44:18.000000000 +0200
-+++ mozilla-esr38/browser/components/customizableui/CustomizableWidgets.jsm 2015-10-01 23:08:18.342056125 +0200
-@@ -925,35 +925,6 @@
- win.MailIntegration.sendLinkForBrowser(win.gBrowser.selectedBrowser)
- }
- }, {
-- id: "loop-button",
-- type: "custom",
-- label: "loop-call-button3.label",
-- tooltiptext: "loop-call-button3.tooltiptext",
-- defaultArea: CustomizableUI.AREA_NAVBAR,
-- // Not in private browsing, see bug 1108187.
-- showInPrivateBrowsing: false,
-- introducedInVersion: 4,
-- onBuild: function(aDocument) {
-- // If we're not supposed to see the button, return zip.
-- if (!Services.prefs.getBoolPref("loop.enabled")) {
-- return null;
-- }
--
-- let node = aDocument.createElementNS(kNSXUL, "toolbarbutton");
-- node.setAttribute("id", this.id);
-- node.classList.add("toolbarbutton-1");
-- node.classList.add("chromeclass-toolbar-additional");
-- node.classList.add("badged-button");
-- node.setAttribute("label", CustomizableUI.getLocalizedProperty(this, "label"));
-- node.setAttribute("tooltiptext", CustomizableUI.getLocalizedProperty(this, "tooltiptext"));
-- node.setAttribute("removable", "true");
-- node.addEventListener("command", function(event) {
-- aDocument.defaultView.LoopUI.togglePanel(event);
-- });
--
-- return node;
-- }
-- }, {
- id: "web-apps-button",
- label: "web-apps-button.label",
- tooltiptext: "web-apps-button.tooltiptext",
-diff -Naur mozilla-esr38.bak/browser/components/moz.build mozilla-esr38/browser/components/moz.build
---- mozilla-esr38.bak/browser/components/moz.build 2015-09-16 18:44:18.000000000 +0200
-+++ mozilla-esr38/browser/components/moz.build 2015-10-01 23:08:39.447056399 +0200
-@@ -10,7 +10,6 @@
- 'dirprovider',
- 'downloads',
- 'feeds',
-- 'loop',
- 'migration',
- 'places',
- 'preferences',
-diff -Naur mozilla-esr38.bak/browser/components/uitour/UITour.jsm mozilla-esr38/browser/components/uitour/UITour.jsm
---- mozilla-esr38.bak/browser/components/uitour/UITour.jsm 2015-09-16 18:44:19.000000000 +0200
-+++ mozilla-esr38/browser/components/uitour/UITour.jsm 2015-10-01 23:11:24.277058535 +0200
-@@ -134,60 +134,6 @@
- query: "#panic-button",
- widgetName: "panic-button",
- }],
-- ["loop", {
-- allowAdd: true,
-- query: "#loop-button",
-- widgetName: "loop-button",
-- }],
-- ["loop-newRoom", {
-- infoPanelPosition: "leftcenter topright",
-- query: (aDocument) => {
-- let loopUI = aDocument.defaultView.LoopUI;
-- if (loopUI.selectedTab != "rooms") {
-- return null;
-- }
-- // Use the parentElement full-width container of the button so our arrow
-- // doesn't overlap the panel contents much.
-- return loopUI.browser.contentDocument.querySelector(".new-room-button").parentElement;
-- },
-- }],
-- ["loop-roomList", {
-- infoPanelPosition: "leftcenter topright",
-- query: (aDocument) => {
-- let loopUI = aDocument.defaultView.LoopUI;
-- if (loopUI.selectedTab != "rooms") {
-- return null;
-- }
-- return loopUI.browser.contentDocument.querySelector(".room-list");
-- },
-- }],
-- ["loop-selectedRoomButtons", {
-- infoPanelOffsetY: -20,
-- infoPanelPosition: "start_after",
-- query: (aDocument) => {
-- let chatbox = aDocument.querySelector("chatbox[src^='about\:loopconversation'][selected]");
--
-- // Check that the real target actually exists
-- if (!chatbox || !chatbox.contentDocument ||
-- !chatbox.contentDocument.querySelector(".call-action-group")) {
-- return null;
-- }
--
-- // But anchor on the <browser> in the chatbox so the panel doesn't jump to undefined
-- // positions when the copy/email buttons disappear e.g. when the feedback form opens or
-- // somebody else joins the room.
-- return chatbox.content;
-- },
-- }],
-- ["loop-signInUpLink", {
-- query: (aDocument) => {
-- let loopBrowser = aDocument.defaultView.LoopUI.browser;
-- if (!loopBrowser) {
-- return null;
-- }
-- return loopBrowser.contentDocument.querySelector(".signin-link");
-- },
-- }],
- ["privateWindow", {query: "#privatebrowsing-button"}],
- ["quit", {query: "#PanelUI-quit"}],
- ["readerMode-urlBar", {query: "#reader-mode-button"}],
-@@ -830,15 +776,11 @@
- this.hideInfo(aWindow);
- // Ensure the menu panel is hidden before calling recreatePopup so popup events occur.
- this.hideMenu(aWindow, "appMenu");
-- this.hideMenu(aWindow, "loop");
-
- // Clean up panel listeners after calling hideMenu above.
- aWindow.PanelUI.panel.removeEventListener("popuphiding", this.hideAppMenuAnnotations);
- aWindow.PanelUI.panel.removeEventListener("ViewShowing", this.hideAppMenuAnnotations);
- aWindow.PanelUI.panel.removeEventListener("popuphidden", this.onPanelHidden);
-- let loopPanel = aWindow.document.getElementById("loop-notification-panel");
-- loopPanel.removeEventListener("popuphidden", this.onPanelHidden);
-- loopPanel.removeEventListener("popuphiding", this.hideLoopPanelAnnotations);
-
- this.endUrlbarCapture(aWindow);
- this.resetTheme();
-@@ -1506,31 +1448,6 @@
- } else if (aMenuName == "bookmarks") {
- let menuBtn = aWindow.document.getElementById("bookmarks-menu-button");
- openMenuButton(menuBtn);
-- } else if (aMenuName == "loop") {
-- let toolbarButton = aWindow.LoopUI.toolbarButton;
-- // It's possible to have a node that isn't placed anywhere
-- if (!toolbarButton || !toolbarButton.node ||
-- !CustomizableUI.getPlacementOfWidget(toolbarButton.node.id)) {
-- log.debug("Can't show the Loop menu since the toolbarButton isn't placed");
-- return;
-- }
--
-- let panel = aWindow.document.getElementById("loop-notification-panel");
-- panel.setAttribute("noautohide", true);
-- if (panel.state != "open") {
-- this.recreatePopup(panel);
-- this.availableTargetsCache.clear();
-- }
--
-- // An event object is expected but we don't want to toggle the panel with a click if the panel
-- // is already open.
-- aWindow.LoopUI.openCallPanel({ target: toolbarButton.node, }, "rooms").then(() => {
-- if (aOpenCallback) {
-- aOpenCallback();
-- }
-- });
-- panel.addEventListener("popuphidden", this.onPanelHidden);
-- panel.addEventListener("popuphiding", this.hideLoopPanelAnnotations);
- } else if (aMenuName == "searchEngines") {
- this.getTarget(aWindow, "searchProvider").then(target => {
- openMenuButton(target.node);
-@@ -1550,9 +1467,6 @@
- } else if (aMenuName == "bookmarks") {
- let menuBtn = aWindow.document.getElementById("bookmarks-menu-button");
- closeMenuButton(menuBtn);
-- } else if (aMenuName == "loop") {
-- let panel = aWindow.document.getElementById("loop-notification-panel");
-- panel.hidePopup();
- } else if (aMenuName == "searchEngines") {
- let menuBtn = this.targets.get("searchProvider").query(aWindow.document);
- closeMenuButton(menuBtn);
-@@ -1588,12 +1502,6 @@
- UITour.hideAnnotationsForPanel(aEvent, UITour.targetIsInAppMenu);
- },
-
-- hideLoopPanelAnnotations: function(aEvent) {
-- UITour.hideAnnotationsForPanel(aEvent, (aTarget) => {
-- return aTarget.targetName.startsWith("loop-") && aTarget.targetName != "loop-selectedRoomButtons";
-- });
-- },
--
- onPanelHidden: function(aEvent) {
- aEvent.target.removeAttribute("noautohide");
- UITour.recreatePopup(aEvent.target);
-@@ -1659,11 +1567,6 @@
- case "availableTargets":
- this.getAvailableTargets(aMessageManager, aWindow, aCallbackID);
- break;
-- case "loop":
-- this.sendPageCallback(aMessageManager, aCallbackID, {
-- gettingStartedSeen: Services.prefs.getBoolPref("loop.gettingStarted.seen"),
-- });
-- break;
- case "selectedSearchEngine":
- Services.search.init(rv => {
- let engine;
-@@ -1690,10 +1593,6 @@
-
- setConfiguration: function(aConfiguration, aValue) {
- switch (aConfiguration) {
-- case "Loop:ResumeTourOnFirstJoin":
-- // Ignore aValue in this case to avoid accidentally setting it to false.
-- Services.prefs.setBoolPref("loop.gettingStarted.resumeOnFirstJoin", true);
-- break;
- default:
- log.error("setConfiguration: Unknown configuration requested: " + aConfiguration);
- break;
-diff -Naur mozilla-esr38.bak/browser/locales/jar.mn mozilla-esr38/browser/locales/jar.mn
---- mozilla-esr38.bak/browser/locales/jar.mn 2015-09-16 18:44:21.000000000 +0200
-+++ mozilla-esr38/browser/locales/jar.mn 2015-10-01 23:11:56.637058954 +0200
-@@ -77,7 +77,6 @@
- locale/browser/devtools/webide.dtd (%chrome/browser/devtools/webide.dtd)
- locale/browser/devtools/webide.properties (%chrome/browser/devtools/webide.properties)
- locale/browser/lightweightThemes.properties (%chrome/browser/lightweightThemes.properties)
-- locale/browser/loop/loop.properties (%chrome/browser/loop/loop.properties)
- locale/browser/newTab.dtd (%chrome/browser/newTab.dtd)
- locale/browser/newTab.properties (%chrome/browser/newTab.properties)
- locale/browser/pageInfo.dtd (%chrome/browser/pageInfo.dtd)
-diff -Naur mozilla-esr38.bak/browser/themes/linux/browser.css mozilla-esr38/browser/themes/linux/browser.css
---- mozilla-esr38.bak/browser/themes/linux/browser.css 2015-09-16 18:44:21.000000000 +0200
-+++ mozilla-esr38/browser/themes/linux/browser.css 2015-10-01 23:12:11.744059150 +0200
-@@ -1485,16 +1485,6 @@
- -moz-image-region: rect(0px, 32px, 16px, 16px);
- }
-
--/* Loop/ Hello browser styles */
--
--notification[value="loop-sharing-notification"] .button-menubutton-button {
-- min-width: 0;
--}
--
--notification[value="loop-sharing-notification"] .messageImage {
-- list-style-image: url(chrome://browser/skin/webRTC-shareScreen-16.png);
--}
--
- #treecolAutoCompleteImage {
- max-width : 36px;
- }
-diff -Naur mozilla-esr38.bak/browser/themes/linux/jar.mn mozilla-esr38/browser/themes/linux/jar.mn
---- mozilla-esr38.bak/browser/themes/linux/jar.mn 2015-09-16 18:44:21.000000000 +0200
-+++ mozilla-esr38/browser/themes/linux/jar.mn 2015-10-01 23:12:39.757059513 +0200
-@@ -109,9 +109,6 @@
- skin/classic/browser/webRTC-camera-white-16.png (../shared/webrtc/camera-white-16.png)
- skin/classic/browser/webRTC-microphone-white-16.png (../shared/webrtc/microphone-white-16.png)
- skin/classic/browser/webRTC-screen-white-16.png (../shared/webrtc/screen-white-16.png)
-- skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
-- skin/classic/browser/loop/toolbar.png (loop/toolbar.png)
-- skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
- skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
- skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
- skin/classic/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
-diff -Naur mozilla-esr38.bak/browser/themes/osx/browser.css mozilla-esr38/browser/themes/osx/browser.css
---- mozilla-esr38.bak/browser/themes/osx/browser.css 2015-09-16 18:44:21.000000000 +0200
-+++ mozilla-esr38/browser/themes/osx/browser.css 2015-10-01 23:13:36.994060255 +0200
-@@ -1441,76 +1441,6 @@
- list-style-image: url(chrome://browser/skin/menuPanel-small@2x.png);
- -moz-image-region: rect(0px, 192px, 32px, 160px);
- }
--
-- #loop-button > .toolbarbutton-badge-container {
-- list-style-image: url("chrome://browser/skin/loop/toolbar@2x.png");
-- -moz-image-region: rect(0, 36px, 36px, 0);
-- }
--
-- toolbar[brighttext] #loop-button > .toolbarbutton-badge-container {
-- list-style-image: url("chrome://browser/skin/loop/toolbar-inverted@2x.png");
-- }
--
-- #loop-button[state="disabled"] > .toolbarbutton-badge-container,
-- #loop-button[disabled="true"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 72px, 36px, 36px);
-- }
--
-- #loop-button:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 108px, 36px, 72px);
-- }
--
-- #loop-button:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 144px, 36px, 108px);
-- }
--
-- #loop-button:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 180px, 36px, 144px);
-- }
--
-- #loop-button:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 216px, 36px, 180px);
-- }
--
-- #loop-button:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 252px, 36px, 216px);
-- }
--
-- #loop-button[cui-areatype="menu-panel"] > .toolbarbutton-badge-container,
-- toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
-- list-style-image: url(chrome://browser/skin/loop/menuPanel@2x.png);
-- -moz-image-region: rect(0, 64px, 64px, 0);
-- }
--
-- /* Make sure that the state icons are not shown in the customization palette. */
-- toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 64px, 64px, 0) !important;
-- }
--
-- #loop-button[cui-areatype="menu-panel"][state="disabled"] > .toolbarbutton-badge-container,
-- #loop-button[cui-areatype="menu-panel"][disabled="true"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 128px, 64px, 64px);
-- }
--
-- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 192px, 64px, 128px);
-- }
--
-- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 256px, 64px, 192px);
-- }
--
-- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 320px, 64px, 256px);
-- }
--
-- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 384px, 64px, 320px);
-- }
--
-- #loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 448px, 64px, 384px);
-- }
- }
-
- toolbar .toolbarbutton-1:not([type="menu-button"]),
-@@ -4098,28 +4028,6 @@
- }
- }
-
--/* Loop/ Hello browser styles */
--
--notification[value="loop-sharing-notification"] .notification-button {
-- padding: 1px 5px;
--}
--
--notification[value="loop-sharing-notification"] .button-menubutton-button {
-- -moz-appearance: none;
-- min-width: 0;
-- margin: 0;
--}
--
--notification[value="loop-sharing-notification"] .messageImage {
-- list-style-image: url(chrome://browser/skin/webRTC-sharingScreen-menubar.png);
--}
--@media (min-resolution: 2dppx) {
-- notification[value="loop-sharing-notification"] .messageImage {
-- list-style-image: url(chrome://browser/skin/webRTC-sharingScreen-menubar@2x.png);
-- }
--}
--
--
- .popup-notification-icon {
- width: 64px;
- height: 64px;
-diff -Naur mozilla-esr38.bak/browser/themes/osx/jar.mn mozilla-esr38/browser/themes/osx/jar.mn
---- mozilla-esr38.bak/browser/themes/osx/jar.mn 2015-09-16 18:44:21.000000000 +0200
-+++ mozilla-esr38/browser/themes/osx/jar.mn 2015-10-01 23:13:56.447060507 +0200
-@@ -171,16 +171,6 @@
- skin/classic/browser/webRTC-sharingScreen-menubar.png
- skin/classic/browser/webRTC-sharingScreen-menubar@2x.png
- skin/classic/browser/webRTC-indicator.css
-- skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
-- skin/classic/browser/loop/menuPanel@2x.png (loop/menuPanel@2x.png)
-- skin/classic/browser/loop/toolbar.png (loop/toolbar.png)
-- skin/classic/browser/loop/toolbar@2x.png (loop/toolbar@2x.png)
-- skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
-- skin/classic/browser/loop/toolbar-inverted@2x.png (loop/toolbar-inverted@2x.png)
-- skin/classic/browser/yosemite/loop/menuPanel.png (loop/menuPanel-yosemite.png)
-- skin/classic/browser/yosemite/loop/menuPanel@2x.png (loop/menuPanel-yosemite@2x.png)
-- skin/classic/browser/yosemite/loop/toolbar.png (loop/toolbar-yosemite.png)
-- skin/classic/browser/yosemite/loop/toolbar@2x.png (loop/toolbar-yosemite@2x.png)
- skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
- skin/classic/browser/customizableui/customize-titleBar-toggle.png (customizableui/customize-titleBar-toggle.png)
- skin/classic/browser/customizableui/customize-titleBar-toggle@2x.png (customizableui/customize-titleBar-toggle@2x.png)
-@@ -602,10 +592,6 @@
- % override chrome://browser/skin/Toolbar@2x.png chrome://browser/skin/yosemite/Toolbar@2x.png os=Darwin osversion>=10.10
- % override chrome://browser/skin/menuPanel.png chrome://browser/skin/yosemite/menuPanel.png os=Darwin osversion>=10.10
- % override chrome://browser/skin/menuPanel@2x.png chrome://browser/skin/yosemite/menuPanel@2x.png os=Darwin osversion>=10.10
--% override chrome://browser/skin/loop/menuPanel.png chrome://browser/skin/yosemite/loop/menuPanel.png os=Darwin osversion>=10.10
--% override chrome://browser/skin/loop/menuPanel@2x.png chrome://browser/skin/yosemite/loop/menuPanel@2x.png os=Darwin osversion>=10.10
--% override chrome://browser/skin/loop/toolbar.png chrome://browser/skin/yosemite/loop/toolbar.png os=Darwin osversion>=10.10
--% override chrome://browser/skin/loop/toolbar@2x.png chrome://browser/skin/yosemite/loop/toolbar@2x.png os=Darwin osversion>=10.10
- % override chrome://browser/skin/menuPanel-customize.png chrome://browser/skin/yosemite/menuPanel-customize.png os=Darwin osversion>=10.10
- % override chrome://browser/skin/menuPanel-customize@2x.png chrome://browser/skin/yosemite/menuPanel-customize@2x.png os=Darwin osversion>=10.10
- % override chrome://browser/skin/menuPanel-exit.png chrome://browser/skin/yosemite/menuPanel-exit.png os=Darwin osversion>=10.10
-diff -Naur mozilla-esr38.bak/browser/themes/shared/browser.inc mozilla-esr38/browser/themes/shared/browser.inc
---- mozilla-esr38.bak/browser/themes/shared/browser.inc 2015-09-16 18:44:21.000000000 +0200
-+++ mozilla-esr38/browser/themes/shared/browser.inc 2015-10-01 23:14:24.276060867 +0200
-@@ -2,7 +2,7 @@
-
- % Note that zoom-reset-button is a bit different since it doesn't use an image and thus has the image with display: none.
- %define nestedButtons #zoom-out-button, #zoom-reset-button, #zoom-in-button, #cut-button, #copy-button, #paste-button
--%define primaryToolbarButtons #back-button, #forward-button, #home-button, #print-button, #downloads-button, #bookmarks-menu-button, #new-tab-button, #new-window-button, #fullscreen-button, #sync-button, #feed-button, #tabview-button, #social-share-button, #open-file-button, #find-button, #developer-button, #preferences-button, #privatebrowsing-button, #save-page-button, #switch-to-metro-button, #add-ons-button, #history-panelmenu, #nav-bar-overflow-button, #PanelUI-menu-button, #characterencoding-button, #email-link-button, #sidebar-button, @nestedButtons@, #e10s-button, #panic-button, #web-apps-button, #webide-button, #loop-button
-+%define primaryToolbarButtons #back-button, #forward-button, #home-button, #print-button, #downloads-button, #bookmarks-menu-button, #new-tab-button, #new-window-button, #fullscreen-button, #sync-button, #feed-button, #tabview-button, #social-share-button, #open-file-button, #find-button, #developer-button, #preferences-button, #privatebrowsing-button, #save-page-button, #switch-to-metro-button, #add-ons-button, #history-panelmenu, #nav-bar-overflow-button, #PanelUI-menu-button, #characterencoding-button, #email-link-button, #sidebar-button, @nestedButtons@, #e10s-button, #panic-button, #web-apps-button, #webide-button
-
- %ifdef XP_MACOSX
- % Prior to 10.7 there wasn't a native fullscreen button so we use #restore-button to exit fullscreen
-diff -Naur mozilla-esr38.bak/browser/themes/shared/menupanel.inc.css mozilla-esr38/browser/themes/shared/menupanel.inc.css
---- mozilla-esr38.bak/browser/themes/shared/menupanel.inc.css 2015-09-16 18:44:22.000000000 +0200
-+++ mozilla-esr38/browser/themes/shared/menupanel.inc.css 2015-10-01 23:14:43.060061111 +0200
-@@ -175,42 +175,6 @@
- -moz-image-region: rect(0, 832px, 32px, 800px);
- }
-
--#loop-button[cui-areatype="menu-panel"] > .toolbarbutton-badge-container,
--toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
-- list-style-image: url(chrome://browser/skin/loop/menuPanel.png);
-- -moz-image-region: rect(0, 32px, 32px, 0);
--}
--
--/* Make sure that the state icons are not shown in the customization palette. */
--toolbarpaletteitem[place="palette"] > #loop-button > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 32px, 32px, 0) !important;
--}
--
--#loop-button[cui-areatype="menu-panel"][state="disabled"] > .toolbarbutton-badge-container,
--#loop-button[cui-areatype="menu-panel"][disabled="true"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 64px, 32px, 32px);
--}
--
--#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 96px, 32px, 64px);
--}
--
--#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 128px, 32px, 96px);
--}
--
--#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 160px, 32px, 128px);
--}
--
--#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 192px, 32px, 160px);
--}
--
--#loop-button[cui-areatype="menu-panel"]:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 224px, 32px, 192px);
--}
--
- /* Wide panel control icons */
-
- #edit-controls@inAnyPanel@ > toolbarbutton,
-diff -Naur mozilla-esr38.bak/browser/themes/shared/toolbarbuttons.inc.css mozilla-esr38/browser/themes/shared/toolbarbuttons.inc.css
---- mozilla-esr38.bak/browser/themes/shared/toolbarbuttons.inc.css 2015-09-16 18:44:22.000000000 +0200
-+++ mozilla-esr38/browser/themes/shared/toolbarbuttons.inc.css 2015-10-01 23:15:01.476061349 +0200
-@@ -200,40 +200,6 @@
- }
- %endif
-
--#loop-button > .toolbarbutton-badge-container {
-- list-style-image: url(chrome://browser/skin/loop/toolbar.png);
-- -moz-image-region: rect(0, 18px, 18px, 0);
--}
--
--toolbar[brighttext] #loop-button > .toolbarbutton-badge-container {
-- list-style-image: url(chrome://browser/skin/loop/toolbar-inverted.png);
--}
--
--#loop-button[state="disabled"] > .toolbarbutton-badge-container,
--#loop-button[disabled="true"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 36px, 18px, 18px);
--}
--
--#loop-button:not([disabled="true"])[state="error"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 54px, 18px, 36px);
--}
--
--#loop-button:not([disabled="true"])[state="action"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 72px, 18px, 54px);
--}
--
--#loop-button:not([disabled="true"])[state="action"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 90px, 18px, 72px);
--}
--
--#loop-button:not([disabled="true"])[state="active"] > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 108px, 18px, 90px);
--}
--
--#loop-button:not([disabled="true"])[state="active"]:-moz-any(:hover,:hover:active,[open]) > .toolbarbutton-badge-container {
-- -moz-image-region: rect(0, 126px, 18px, 108px);
--}
--
- #webide-button[cui-areatype="toolbar"] {
- -moz-image-region: rect(0, 738px, 18px, 720px);
- }
-diff -Naur mozilla-esr38.bak/browser/themes/windows/browser.css mozilla-esr38/browser/themes/windows/browser.css
---- mozilla-esr38.bak/browser/themes/windows/browser.css 2015-09-16 18:44:22.000000000 +0200
-+++ mozilla-esr38/browser/themes/windows/browser.css 2015-10-01 23:15:21.836061613 +0200
-@@ -595,10 +595,6 @@
- #bookmarks-menu-button.toolbarbutton-1 > .toolbarbutton-menubutton-dropmarker > .dropmarker-icon {
- list-style-image: url("chrome://browser/skin/Toolbar-lunaSilver.png");
- }
--
-- #loop-button > .toolbarbutton-badge-container {
-- list-style-image: url(chrome://browser/skin/loop/toolbar-lunaSilver.png)
-- }
- }
- %endif
-
-@@ -2503,19 +2499,6 @@
- -moz-appearance: none;
- }
-
--/* Loop/ Hello browser styles */
--
--notification[value="loop-sharing-notification"] .button-menubutton-button {
-- -moz-appearance: none;
-- min-width: 0;
-- border: 0;
-- margin: 0;
--}
--
--notification[value="loop-sharing-notification"] .messageImage {
-- list-style-image: url(chrome://browser/skin/webRTC-shareScreen-16.png);
--}
--
- /* Bookmarks roots menu-items */
- #subscribeToPageMenuitem:not([disabled]),
- #subscribeToPageMenupopup,
-diff -Naur mozilla-esr38.bak/browser/themes/windows/jar.mn mozilla-esr38/browser/themes/windows/jar.mn
---- mozilla-esr38.bak/browser/themes/windows/jar.mn 2015-09-16 18:44:22.000000000 +0200
-+++ mozilla-esr38/browser/themes/windows/jar.mn 2015-10-01 23:15:51.276061995 +0200
-@@ -131,10 +131,6 @@
- skin/classic/browser/webRTC-camera-white-16.png (../shared/webrtc/camera-white-16.png)
- skin/classic/browser/webRTC-microphone-white-16.png (../shared/webrtc/microphone-white-16.png)
- skin/classic/browser/webRTC-screen-white-16.png (../shared/webrtc/screen-white-16.png)
-- skin/classic/browser/loop/menuPanel.png (loop/menuPanel.png)
-- skin/classic/browser/loop/toolbar.png (loop/toolbar-XP.png)
-- skin/classic/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
-- skin/classic/browser/loop/toolbar-lunaSilver.png (loop/toolbar-lunaSilver.png)
- skin/classic/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
- skin/classic/browser/customizableui/customizeFavicon.ico (../shared/customizableui/customizeFavicon.ico)
- skin/classic/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
-@@ -600,11 +596,6 @@
- skin/classic/aero/browser/webRTC-camera-white-16.png (../shared/webrtc/camera-white-16.png)
- skin/classic/aero/browser/webRTC-microphone-white-16.png (../shared/webrtc/microphone-white-16.png)
- skin/classic/aero/browser/webRTC-screen-white-16.png (../shared/webrtc/screen-white-16.png)
-- skin/classic/aero/browser/loop/menuPanel.png (loop/menuPanel.png)
-- skin/classic/aero/browser/loop/menuPanel-aero.png (loop/menuPanel-aero.png)
-- skin/classic/aero/browser/loop/toolbar.png (loop/toolbar.png)
-- skin/classic/aero/browser/loop/toolbar-aero.png (loop/toolbar-aero.png)
-- skin/classic/aero/browser/loop/toolbar-inverted.png (loop/toolbar-inverted.png)
- skin/classic/aero/browser/customizableui/background-noise-toolbar.png (customizableui/background-noise-toolbar.png)
- skin/classic/aero/browser/customizableui/customize-illustration.png (../shared/customizableui/customize-illustration.png)
- skin/classic/aero/browser/customizableui/customize-illustration-rtl.png (../shared/customizableui/customize-illustration-rtl.png)
-@@ -968,9 +959,3 @@
-
- % override chrome://browser/skin/tabbrowser/tab-arrow-left.png chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png os=WINNT osversion=6
- % override chrome://browser/skin/tabbrowser/tab-arrow-left.png chrome://browser/skin/tabbrowser/tab-arrow-left-XPVista7.png os=WINNT osversion=6.1
--
--% override chrome://browser/skin/loop/toolbar.png chrome://browser/skin/loop/toolbar-aero.png os=WINNT osversion=6
--% override chrome://browser/skin/loop/toolbar.png chrome://browser/skin/loop/toolbar-aero.png os=WINNT osversion=6.1
--
--% override chrome://browser/skin/loop/menuPanel.png chrome://browser/skin/loop/menuPanel-aero.png os=WINNT osversion=6
--% override chrome://browser/skin/loop/menuPanel.png chrome://browser/skin/loop/menuPanel-aero.png os=WINNT osversion=6.1
diff --git a/firefox-45-disable-location.services.mozilla.com.patch b/firefox-45-disable-location.services.mozilla.com.patch
new file mode 100644
index 00000000000..42f25557ec7
--- /dev/null
+++ b/firefox-45-disable-location.services.mozilla.com.patch
@@ -0,0 +1,24 @@
+--- firefox-45.0esr.bak/toolkit/components/search/nsSearchService.js 2016-03-13
++++ firefox-45.0esr/toolkit/components/search/nsSearchService.js 2016-03-13
+@@ -436,6 +436,10 @@
+ return;
+ }
+
++ // Prevent Firefox from contacting location.services.mozilla.com on a new profile
++ Services.prefs.setCharPref("browser.search.region", "US");
++ return;
++
+ // 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.
+@@ -522,6 +526,10 @@
+ countryCode = Services.prefs.getCharPref("browser.search.countryCode");
+ } catch(e) {}
+
++ // No countryCode set, use US as default, don't contact location.services.mozilla.com
++ Services.prefs.setCharPref("browser.search.countryCode", "US");
++ return;
++
+ 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
diff --git a/firefox-45-disable-loop-pocket.patch b/firefox-45-disable-loop-pocket.patch
new file mode 100644
index 00000000000..0dfae178ba2
--- /dev/null
+++ b/firefox-45-disable-loop-pocket.patch
@@ -0,0 +1,1075 @@
+diff -Naur firefox-45.0esr.bak/browser/app/profile/firefox.js firefox-45.0esr/browser/app/profile/firefox.js
+--- firefox-45.0esr.bak/browser/app/profile/firefox.js 2016-03-13
++++ firefox-45.0esr/browser/app/profile/firefox.js 2016-03-13
+@@ -1617,13 +1617,6 @@
+ // and because (normally) these errors are not persisted anywhere.
+ pref("reader.errors.includeURLs", true);
+
+-pref("browser.pocket.enabled", true);
+-pref("browser.pocket.api", "api.getpocket.com");
+-pref("browser.pocket.site", "getpocket.com");
+-pref("browser.pocket.oAuthConsumerKey", "40249-e88c401e1b1f2242d9e441c4");
+-pref("browser.pocket.useLocaleList", true);
+-pref("browser.pocket.enabledLocales", "cs de en-GB en-US en-ZA es-ES es-MX fr hu it ja ja-JP-mac ko nl pl pt-BR pt-PT ru zh-CN zh-TW");
+-
+ pref("view_source.tab", true);
+
+ pref("dom.webnotifications.serviceworker.enabled", true);
+diff -Naur firefox-45.0esr.bak/browser/base/content/browser-context.inc firefox-45.0esr/browser/base/content/browser-context.inc
+--- firefox-45.0esr.bak/browser/base/content/browser-context.inc 2016-03-13
++++ firefox-45.0esr/browser/base/content/browser-context.inc 2016-03-13
+@@ -79,10 +79,6 @@
+ label="&saveLinkCmd.label;"
+ accesskey="&saveLinkCmd.accesskey;"
+ oncommand="gContextMenu.saveLink();"/>
+- <menuitem id="context-savelinktopocket"
+- label="&saveLinkToPocketCmd.label;"
+- accesskey="&saveLinkToPocketCmd.accesskey;"
+- oncommand="gContextMenu.saveLinkToPocket();"/>
+ <menu id="context-marklinkMenu" label="&social.marklinkMenu.label;"
+ accesskey="&social.marklinkMenu.accesskey;">
+ <menupopup/>
+@@ -270,10 +266,6 @@
+ label="&savePageCmd.label;"
+ accesskey="&savePageCmd.accesskey2;"
+ oncommand="gContextMenu.savePageAs();"/>
+- <menuitem id="context-pocket"
+- label="&saveToPocketCmd.label;"
+- accesskey="&saveToPocketCmd.accesskey;"
+- oncommand="gContextMenu.savePageToPocket();"/>
+ <menu id="context-markpageMenu" label="&social.markpageMenu.label;"
+ accesskey="&social.markpageMenu.accesskey;">
+ <menupopup/>
+diff -Naur firefox-45.0esr.bak/browser/base/content/browser.css firefox-45.0esr/browser/base/content/browser.css
+--- firefox-45.0esr.bak/browser/base/content/browser.css 2016-03-13
++++ firefox-45.0esr/browser/base/content/browser.css 2016-03-13
+@@ -18,30 +18,6 @@
+ %endif
+ }
+
+-/* These values are chosen to keep the Loop detached chat window from
+- * getting too small. When it's too small, three bad things happen:
+- *
+- * - It looks terrible
+- * - It's not really usable
+- * - It's possible for the user to be transmitting video that's cropped by the
+- * the edge of the window, so that they're not aware of it, which is a
+- * privacy problem
+- *
+- * Note that if the chat window grows more users than Loop who want this
+- * ability, we'll need to generalize. A partial patch for this is in
+- * bug 1112264.
+- */
+-
+-#chat-window {
+- /*
+- * In some ideal world, we'd have a simple way to express "block resizing
+- * along any dimension beyond the point at which an overflow event would
+- * occur". But none of -moz-{fit,max,min}-content do what we want here. So..
+- */
+- min-width: 260px;
+- min-height: 315px;
+-}
+-
+ #main-window[customize-entered] {
+ min-width: -moz-fit-content;
+ }
+@@ -897,68 +873,6 @@
+ -moz-binding: url("chrome://browser/content/translation-infobar.xml#translationbar");
+ }
+
+-/* Social */
+-/* Note the chatbox 'width' values are duplicated in socialchat.xml */
+-chatbox {
+- -moz-binding: url("chrome://browser/content/socialchat.xml#chatbox");
+- transition: height 150ms ease-out, width 150ms ease-out;
+- height: 290px;
+- width: 300px; /* CHAT_WIDTH_OPEN in socialchat.xml */
+-}
+-
+-chatbox[customSize] {
+- width: 350px; /* CHAT_WIDTH_OPEN_ALT in socialchat.xml */
+-}
+-
+-#chat-window[customSize] {
+- min-width: 350px;
+-}
+-
+-chatbox[customSize="loopChatEnabled"] {
+- /* 430px as defined per UX */
+- height: 430px;
+-}
+-
+-#chat-window[customSize="loopChatEnabled"] {
+- /* 325px + 30px top bar height. */
+- min-height: calc(325px + 30px);
+-}
+-
+-chatbox[customSize="loopChatMessageAppended"] {
+- /* 430px as defined per UX */
+- height: 430px;
+-}
+-
+-chatbox[customSize="loopChatDisabledMessageAppended"] {
+- /* 388px as defined per UX */
+- height: 388px;
+-}
+-
+-#chat-window[customSize="loopChatMessageAppended"] {
+- /* 445px + 30px top bar height. */
+- min-height: calc(400px + 30px);
+-}
+-
+-chatbox[minimized="true"] {
+- width: 160px;
+- height: 20px; /* CHAT_WIDTH_MINIMIZED in socialchat.xml */
+-}
+-
+-chatbar {
+- -moz-binding: url("chrome://browser/content/socialchat.xml#chatbar");
+- height: 0;
+- max-height: 0;
+-}
+-
+-.chatbar-innerbox {
+- margin: -285px 0 0;
+-}
+-
+-chatbar[customSize] > .chatbar-innerbox {
+- /* 450px to make room for the maximum custom-size chatbox; currently 'loopChatMessageAppended'. */
+- margin-top: -450px;
+-}
+-
+ /* Apply crisp rendering for favicons at exactly 2dppx resolution */
+ @media (resolution: 2dppx) {
+ #social-sidebar-favico,
+diff -Naur firefox-45.0esr.bak/browser/base/content/browser.js firefox-45.0esr/browser/base/content/browser.js
+--- firefox-45.0esr.bak/browser/base/content/browser.js 2016-03-13
++++ firefox-45.0esr/browser/base/content/browser.js 2016-03-13
+@@ -53,37 +53,6 @@
+ "@mozilla.org/windows-ui-utils;1", "nsIWindowsUIUtils");
+ XPCOMUtils.defineLazyModuleGetter(this, "LightweightThemeManager",
+ "resource://gre/modules/LightweightThemeManager.jsm");
+-XPCOMUtils.defineLazyModuleGetter(this, "Pocket",
+- "resource:///modules/Pocket.jsm");
+-
+-// Can't use XPCOMUtils for these because the scripts try to define the variables
+-// on window, and so the defineProperty inside defineLazyGetter fails.
+-Object.defineProperty(window, "pktApi", {
+- get: function() {
+- // Avoid this getter running again:
+- delete window.pktApi;
+- Services.scriptloader.loadSubScript("chrome://browser/content/pocket/pktApi.js", window);
+- return window.pktApi;
+- },
+- configurable: true,
+- enumerable: true
+-});
+-
+-function pktUIGetter(prop) {
+- return {
+- get: function() {
+- // Avoid either of these getters running again:
+- delete window.pktUI;
+- delete window.pktUIMessaging;
+- Services.scriptloader.loadSubScript("chrome://browser/content/pocket/main.js", window);
+- return window[prop];
+- },
+- configurable: true,
+- enumerable: true
+- };
+-}
+-Object.defineProperty(window, "pktUI", pktUIGetter("pktUI"));
+-Object.defineProperty(window, "pktUIMessaging", pktUIGetter("pktUIMessaging"));
+
+ XPCOMUtils.defineLazyGetter(this, "gBrowserBundle", function() {
+ return Services.strings.createBundle('chrome://browser/locale/browser.properties');
+diff -Naur firefox-45.0esr.bak/browser/base/content/browser-menubar.inc firefox-45.0esr/browser/base/content/browser-menubar.inc
+--- firefox-45.0esr.bak/browser/base/content/browser-menubar.inc 2016-03-13
++++ firefox-45.0esr/browser/base/content/browser-menubar.inc 2016-03-13
+@@ -413,7 +413,6 @@
+ oncommand="BookmarksEventHandler.onCommand(event, this.parentNode._placesView);"
+ onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);"
+ onpopupshowing="BookmarkingUI.onMainMenuPopupShowing(event);
+- BookmarkingUI.updatePocketItemVisibility('menu_');
+ if (!this.parentNode._placesView)
+ new PlacesMenu(event, 'place:folder=BOOKMARKS_MENU');"
+ tooltip="bhTooltip" popupsinherittooltip="true">
+@@ -422,12 +421,6 @@
+ command="Browser:ShowAllBookmarks"
+ key="manBookmarkKb"/>
+ <menuseparator id="organizeBookmarksSeparator"/>
+- <menuitem id="menu_pocket" label="&pocketMenuitem.label;"
+-#ifndef XP_MACOSX
+- class="menuitem-iconic"
+-#endif
+- oncommand="openUILink(Pocket.listURL, event);"/>
+- <menuseparator id="menu_pocketSeparator"/>
+ <menuitem id="menu_bookmarkThisPage"
+ command="Browser:AddBookmarkAs"
+ observes="bookmarkThisPageBroadcaster"
+@@ -500,11 +493,6 @@
+ key="key_openAddons"
+ command="Tools:Addons"/>
+
+- <menuitem id="menu_openLoop"
+- label="&loopMenuItem.label;"
+- accesskey = "&loopMenuItem.accesskey;"
+- oncommand="LoopUI.togglePanel();"/>
+-
+ <!-- only one of sync-setup, sync-syncnowitem or sync-reauthitem will be showing at once -->
+ <menuitem id="sync-setup"
+ label="&syncSignIn.label;"
+diff -Naur firefox-45.0esr.bak/browser/base/content/browser-places.js firefox-45.0esr/browser/base/content/browser-places.js
+--- firefox-45.0esr.bak/browser/base/content/browser-places.js 2016-03-13
++++ firefox-45.0esr/browser/base/content/browser-places.js 2016-03-13
+@@ -1552,12 +1552,6 @@
+ PlacesCommandHook.updateBookmarkAllTabsCommand();
+ },
+
+- updatePocketItemVisibility: function BUI_updatePocketItemVisibility(prefix) {
+- let hidden = !CustomizableUI.getPlacementOfWidget("pocket-button");
+- document.getElementById(prefix + "pocket").hidden = hidden;
+- document.getElementById(prefix + "pocketSeparator").hidden = hidden;
+- },
+-
+ _showBookmarkedNotification: function BUI_showBookmarkedNotification() {
+ function getCenteringTransformForRects(rectToPosition, referenceRect) {
+ let topDiff = referenceRect.top - rectToPosition.top;
+@@ -1679,7 +1673,6 @@
+
+ onPanelMenuViewShowing: function BUI_onViewShowing(aEvent) {
+ this._updateBookmarkPageMenuItem();
+- this.updatePocketItemVisibility("panelMenu_");
+ // Update checked status of the toolbar toggle.
+ let viewToolbar = document.getElementById("panelMenu_viewBookmarksToolbar");
+ let personalToolbar = document.getElementById("PersonalToolbar");
+diff -Naur firefox-45.0esr.bak/browser/base/content/browser.xul firefox-45.0esr/browser/base/content/browser.xul
+--- firefox-45.0esr.bak/browser/base/content/browser.xul 2016-03-13
++++ firefox-45.0esr/browser/base/content/browser.xul 2016-03-13
+@@ -290,18 +290,6 @@
+ noautofocus="true"
+ position="topcenter topright"/>
+
+- <panel id="loop-notification-panel"
+- class="loop-panel social-panel"
+- type="arrow"
+- hidden="true"
+- noautofocus="true"/>
+-
+- <panel id="loop-panel"
+- class="loop-panel social-panel"
+- type="arrow"
+- orient="horizontal"
+- hidden="true"/>
+-
+ <menupopup id="toolbar-context-menu"
+ onpopupshowing="onViewToolbarsPopupShowing(event, document.getElementById('viewToolbarsMenuSeparator'));">
+ <menuitem oncommand="gCustomizeMode.addToPanel(document.popupNode)"
+@@ -609,9 +597,9 @@
+ fullscreentoolbar="true" mode="icons" customizable="true"
+ iconsize="small"
+ #ifdef MOZ_DEV_EDITION
+- defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,pocket-button,downloads-button,home-button,loop-button"
++ defaultset="urlbar-container,search-container,developer-button,bookmarks-menu-button,downloads-button,home-button"
+ #else
+- defaultset="urlbar-container,search-container,bookmarks-menu-button,pocket-button,downloads-button,home-button,loop-button"
++ defaultset="urlbar-container,search-container,bookmarks-menu-button,downloads-button,home-button"
+ #endif
+ customizationtarget="nav-bar-customization-target"
+ overflowable="true"
+@@ -787,7 +775,6 @@
+ oncommand="BookmarksEventHandler.onCommand(event, this.parentNode._placesView);"
+ onclick="BookmarksEventHandler.onClick(event, this.parentNode._placesView);"
+ onpopupshowing="BookmarkingUI.onPopupShowing(event);
+- BookmarkingUI.updatePocketItemVisibility('BMB_');
+ BookmarkingUI.attachPlacesView(event, this);"
+ tooltip="bhTooltip" popupsinherittooltip="true">
+ <menuitem id="BMB_viewBookmarksSidebar"
+@@ -804,11 +791,6 @@
+ command="Browser:ShowAllBookmarks"
+ key="manBookmarkKb"/>
+ <menuseparator/>
+- <menuitem id="BMB_pocket"
+- class="menuitem-iconic bookmark-item subviewbutton"
+- label="&pocketMenuitem.label;"
+- oncommand="openUILink(Pocket.listURL, event);"/>
+- <menuseparator id="BMB_pocketSeparator"/>
+ <menuitem id="BMB_subscribeToPageMenuitem"
+ #ifndef XP_MACOSX
+ class="menuitem-iconic subviewbutton"
+diff -Naur firefox-45.0esr.bak/browser/base/content/nsContextMenu.js firefox-45.0esr/browser/base/content/nsContextMenu.js
+--- firefox-45.0esr.bak/browser/base/content/nsContextMenu.js 2016-03-13
++++ firefox-45.0esr/browser/base/content/nsContextMenu.js 2016-03-13
+@@ -13,8 +13,6 @@
+
+ XPCOMUtils.defineLazyModuleGetter(this, "CustomizableUI",
+ "resource:///modules/CustomizableUI.jsm");
+-XPCOMUtils.defineLazyModuleGetter(this, "Pocket",
+- "resource:///modules/Pocket.jsm");
+ XPCOMUtils.defineLazyModuleGetter(this, "LoginHelper",
+ "resource://gre/modules/LoginHelper.jsm");
+
+@@ -216,25 +214,6 @@
+ SimpleServiceDiscovery.services.length > 0 &&
+ CastingApps.getServicesForVideo(this.target).length > 0;
+ this.setItemAttr("context-castvideo", "disabled", !shouldShowCast);
+-
+- this.initPocketItems();
+- },
+-
+- initPocketItems: function CM_initPocketItems() {
+- var showSaveCurrentPageToPocket = !(this.onTextInput || this.onLink ||
+- this.isContentSelected || this.onImage ||
+- this.onCanvas || this.onVideo || this.onAudio);
+- let targetURI = (this.onSaveableLink || this.onPlainTextLink) ? this.linkURI : this.browser.currentURI;
+- let canPocket = CustomizableUI.getPlacementOfWidget("pocket-button") &&
+- window.pktApi && window.pktApi.isUserLoggedIn();
+- canPocket = canPocket && (targetURI.schemeIs("http") || targetURI.schemeIs("https") ||
+- (targetURI.schemeIs("about") && ReaderMode.getOriginalUrl(targetURI.spec)));
+- canPocket = canPocket && window.gBrowser && this.browser.getTabBrowser() == window.gBrowser;
+-
+- this.showItem("context-pocket", canPocket && showSaveCurrentPageToPocket);
+- let showSaveLinkToPocket = canPocket && !showSaveCurrentPageToPocket &&
+- (this.onSaveableLink || this.onPlainTextLink);
+- this.showItem("context-savelinktopocket", showSaveLinkToPocket);
+ },
+
+ initViewItems: function CM_initViewItems() {
+@@ -1723,14 +1702,6 @@
+ saveBrowser(this.browser);
+ },
+
+- saveLinkToPocket: function CM_saveLinkToPocket() {
+- Pocket.savePage(this.browser, this.linkURL);
+- },
+-
+- savePageToPocket: function CM_saveToPocket() {
+- Pocket.savePage(this.browser, this.browser.currentURI.spec, this.browser.contentTitle);
+- },
+-
+ printFrame: function CM_printFrame() {
+ PrintUtils.printWindow(this.frameOuterWindowID, this.browser);
+ },
+diff -Naur firefox-45.0esr.bak/browser/components/customizableui/content/panelUI.inc.xul firefox-45.0esr/browser/components/customizableui/content/panelUI.inc.xul
+--- firefox-45.0esr.bak/browser/components/customizableui/content/panelUI.inc.xul 2016-03-13
++++ firefox-45.0esr/browser/components/customizableui/content/panelUI.inc.xul 2016-03-13
+@@ -196,10 +196,6 @@
+ observes="bookmarkThisPageBroadcaster"
+ command="Browser:AddBookmarkAs"
+ onclick="PanelUI.hide();"/>
+- <toolbarseparator id="panelMenu_pocketSeparator"/>
+- <toolbarbutton id="panelMenu_pocket" label="&pocketMenuitem.label;"
+- class="subviewbutton cui-withicon"
+- oncommand="openUILink(Pocket.listURL, event);"/>
+ <toolbarseparator/>
+ <toolbarbutton id="panelMenu_viewBookmarksSidebar"
+ label="&viewBookmarksSidebar2.label;"
+@@ -243,8 +239,6 @@
+
+ <panelview id="PanelUI-socialapi" flex="1"/>
+
+- <panelview id="PanelUI-loopapi" flex="1"/>
+-
+ <panelview id="PanelUI-feeds" flex="1" oncommand="FeedHandler.subscribeToFeed(null, event);">
+ <label value="&feedsMenu.label;" class="panel-subview-header"/>
+ </panelview>
+@@ -315,11 +309,6 @@
+ </vbox>
+ </panelview>
+
+- <panelview id="PanelUI-pocketView" flex="1">
+- <vbox class="panel-subview-body">
+- </vbox>
+- </panelview>
+-
+
+ </panelmultiview>
+ <!-- These menupopups are located here to prevent flickering,
+diff -Naur firefox-45.0esr.bak/browser/components/customizableui/CustomizableUI.jsm firefox-45.0esr/browser/components/customizableui/CustomizableUI.jsm
+--- firefox-45.0esr.bak/browser/components/customizableui/CustomizableUI.jsm 2016-03-13
++++ firefox-45.0esr/browser/components/customizableui/CustomizableUI.jsm 2016-03-13
+@@ -64,7 +64,6 @@
+ * version the button is removed in as the value. e.g. "pocket-button": 5
+ */
+ var ObsoleteBuiltinButtons = {
+- "loop-button": 5
+ };
+
+ /**
+@@ -219,18 +218,8 @@
+ "bookmarks-menu-button",
+ "downloads-button",
+ "home-button",
+- "loop-button",
+ ];
+
+- // Insert the Pocket button after the bookmarks button if it's present.
+- for (let widgetDefinition of CustomizableWidgets) {
+- if (widgetDefinition.id == "pocket-button") {
+- let idx = navbarPlacements.indexOf("bookmarks-menu-button") + 1;
+- navbarPlacements.splice(idx, 0, widgetDefinition.id);
+- break;
+- }
+- }
+-
+ if (Services.prefs.getBoolPref(kPrefWebIDEInNavbar)) {
+ navbarPlacements.push("webide-button");
+ }
+@@ -355,15 +344,6 @@
+ }
+ }
+ }
+-
+- if (currentVersion < 2) {
+- // Nuke the old 'loop-call-button' out of orbit.
+- CustomizableUI.removeWidgetFromArea("loop-call-button");
+- }
+-
+- if (currentVersion < 4) {
+- CustomizableUI.removeWidgetFromArea("loop-button-throttled");
+- }
+ },
+
+ /**
+diff -Naur firefox-45.0esr.bak/browser/components/customizableui/CustomizableWidgets.jsm firefox-45.0esr/browser/components/customizableui/CustomizableWidgets.jsm
+--- firefox-45.0esr.bak/browser/components/customizableui/CustomizableWidgets.jsm 2016-03-13
++++ firefox-45.0esr/browser/components/customizableui/CustomizableWidgets.jsm 2016-03-13
+@@ -18,8 +18,6 @@
+ "resource:///modules/PlacesUIUtils.jsm");
+ XPCOMUtils.defineLazyModuleGetter(this, "RecentlyClosedTabsAndWindowsMenuUtils",
+ "resource:///modules/sessionstore/RecentlyClosedTabsAndWindowsMenuUtils.jsm");
+-XPCOMUtils.defineLazyModuleGetter(this, "Pocket",
+- "resource:///modules/Pocket.jsm");
+ XPCOMUtils.defineLazyModuleGetter(this, "ShortcutUtils",
+ "resource://gre/modules/ShortcutUtils.jsm");
+ XPCOMUtils.defineLazyModuleGetter(this, "CharsetMenu",
+@@ -1219,68 +1217,6 @@
+ });
+ }
+
+-if (Services.prefs.getBoolPref("browser.pocket.enabled")) {
+- let isEnabledForLocale = true;
+- if (Services.prefs.getBoolPref("browser.pocket.useLocaleList")) {
+- let chromeRegistry = Cc["@mozilla.org/chrome/chrome-registry;1"]
+- .getService(Ci.nsIXULChromeRegistry);
+- let browserLocale = chromeRegistry.getSelectedLocale("browser");
+- let enabledLocales = [];
+- try {
+- enabledLocales = Services.prefs.getCharPref("browser.pocket.enabledLocales").split(' ');
+- } catch (ex) {
+- Cu.reportError(ex);
+- }
+- isEnabledForLocale = enabledLocales.indexOf(browserLocale) != -1;
+- }
+-
+- if (isEnabledForLocale) {
+- let pocketButton = {
+- id: "pocket-button",
+- defaultArea: CustomizableUI.AREA_NAVBAR,
+- introducedInVersion: "pref",
+- type: "view",
+- viewId: "PanelUI-pocketView",
+- // Use forwarding functions here to avoid loading Pocket.jsm on startup:
+- onViewShowing: function() {
+- return Pocket.onPanelViewShowing.apply(this, arguments);
+- },
+- onViewHiding: function() {
+- return Pocket.onPanelViewHiding.apply(this, arguments);
+- },
+-
+- // If the user has the "classic" Pocket add-on installed, use that instead
+- // and destroy the widget.
+- conditionalDestroyPromise: new Promise(resolve => {
+- AddonManager.getAddonByID("isreaditlater@ideashower.com", addon => {
+- resolve(addon && addon.isActive);
+- });
+- }),
+- };
+-
+- CustomizableWidgets.push(pocketButton);
+- CustomizableUI.addListener(pocketButton);
+-
+- // Uninstall the Pocket social provider if it exists, but only if we haven't
+- // already uninstalled it in this manner. That way the user can reinstall
+- // it if they prefer it without its being uninstalled every time they start
+- // the browser.
+- let origin = "https://getpocket.com";
+- SocialService.getProvider(origin, provider => {
+- if (provider) {
+- let pref = "social.backup.getpocket-com";
+- if (!Services.prefs.prefHasUserValue(pref)) {
+- let str = Cc["@mozilla.org/supports-string;1"].
+- createInstance(Ci.nsISupportsString);
+- str.data = JSON.stringify(provider.manifest);
+- Services.prefs.setComplexValue(pref, Ci.nsISupportsString, str);
+- SocialService.uninstallProvider(origin, () => {});
+- }
+- }
+- });
+- }
+-}
+-
+ #ifdef E10S_TESTING_ONLY
+ var e10sDisabled = false;
+ #ifdef XP_MACOSX
+diff -Naur firefox-45.0esr.bak/browser/components/moz.build firefox-45.0esr/browser/components/moz.build
+--- firefox-45.0esr.bak/browser/components/moz.build 2016-03-13
++++ firefox-45.0esr/browser/components/moz.build 2016-03-13
+@@ -15,7 +15,6 @@
+ 'migration',
+ 'newtab',
+ 'places',
+- 'pocket',
+ 'preferences',
+ 'privatebrowsing',
+ 'search',
+diff -Naur firefox-45.0esr.bak/browser/components/pocket/moz.build firefox-45.0esr/browser/components/pocket/moz.build
+--- firefox-45.0esr.bak/browser/components/pocket/moz.build 2016-03-13
++++ firefox-45.0esr/browser/components/pocket/moz.build 2016-03-13
+@@ -3,5 +3,3 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ JAR_MANIFESTS += ['jar.mn']
+-
+-EXTRA_JS_MODULES += ['Pocket.jsm']
+diff -Naur firefox-45.0esr.bak/browser/components/uitour/UITour.jsm firefox-45.0esr/browser/components/uitour/UITour.jsm
+--- firefox-45.0esr.bak/browser/components/uitour/UITour.jsm 2016-03-13
++++ firefox-45.0esr/browser/components/uitour/UITour.jsm 2016-03-13
+@@ -152,59 +152,6 @@
+ query: "#panic-button",
+ widgetName: "panic-button",
+ }],
+- ["loop", {
+- allowAdd: true,
+- query: "#loop-button",
+- widgetName: "loop-button",
+- }],
+- ["loop-newRoom", {
+- infoPanelPosition: "leftcenter topright",
+- query: (aDocument) => {
+- let loopUI = aDocument.defaultView.LoopUI;
+- // Use the parentElement full-width container of the button so our arrow
+- // doesn't overlap the panel contents much.
+- return loopUI.browser.contentDocument.querySelector(".new-room-button").parentElement;
+- },
+- }],
+- ["loop-roomList", {
+- infoPanelPosition: "leftcenter topright",
+- query: (aDocument) => {
+- let loopUI = aDocument.defaultView.LoopUI;
+- return loopUI.browser.contentDocument.querySelector(".room-list");
+- },
+- }],
+- ["loop-selectedRoomButtons", {
+- infoPanelOffsetY: -20,
+- infoPanelPosition: "start_after",
+- query: (aDocument) => {
+- let chatbox = aDocument.querySelector("chatbox[src^='about\:loopconversation'][selected]");
+-
+- // Check that the real target actually exists
+- if (!chatbox || !chatbox.contentDocument ||
+- !chatbox.contentDocument.querySelector(".call-action-group")) {
+- return null;
+- }
+-
+- // But anchor on the <browser> in the chatbox so the panel doesn't jump to undefined
+- // positions when the copy/email buttons disappear e.g. when the feedback form opens or
+- // somebody else joins the room.
+- return chatbox.content;
+- },
+- }],
+- ["loop-signInUpLink", {
+- query: (aDocument) => {
+- let loopBrowser = aDocument.defaultView.LoopUI.browser;
+- if (!loopBrowser) {
+- return null;
+- }
+- return loopBrowser.contentDocument.querySelector(".signin-link");
+- },
+- }],
+- ["pocket", {
+- allowAdd: true,
+- query: "#pocket-button",
+- widgetName: "pocket-button",
+- }],
+ ["privateWindow", {query: "#privatebrowsing-button"}],
+ ["quit", {query: "#PanelUI-quit"}],
+ ["readerMode-urlBar", {query: "#reader-mode-button"}],
+@@ -869,16 +816,12 @@
+ this.hideInfo(aWindow);
+ // Ensure the menu panel is hidden before calling recreatePopup so popup events occur.
+ this.hideMenu(aWindow, "appMenu");
+- this.hideMenu(aWindow, "loop");
+ this.hideMenu(aWindow, "controlCenter");
+
+ // Clean up panel listeners after calling hideMenu above.
+ aWindow.PanelUI.panel.removeEventListener("popuphiding", this.hideAppMenuAnnotations);
+ aWindow.PanelUI.panel.removeEventListener("ViewShowing", this.hideAppMenuAnnotations);
+ aWindow.PanelUI.panel.removeEventListener("popuphidden", this.onPanelHidden);
+- let loopPanel = aWindow.document.getElementById("loop-notification-panel");
+- loopPanel.removeEventListener("popuphidden", this.onPanelHidden);
+- loopPanel.removeEventListener("popuphiding", this.hideLoopPanelAnnotations);
+ let controlCenterPanel = aWindow.gIdentityHandler._identityPopup;
+ controlCenterPanel.removeEventListener("popuphidden", this.onPanelHidden);
+ controlCenterPanel.removeEventListener("popuphiding", this.hideControlCenterAnnotations);
+@@ -1592,71 +1535,6 @@
+ popup.addEventListener("popupshown", onPopupShown);
+ }
+ aWindow.document.getElementById("identity-box").click();
+- } else if (aMenuName == "loop") {
+- let toolbarButton = aWindow.LoopUI.toolbarButton;
+- // It's possible to have a node that isn't placed anywhere
+- if (!toolbarButton || !toolbarButton.node ||
+- !CustomizableUI.getPlacementOfWidget(toolbarButton.node.id)) {
+- log.debug("Can't show the Loop menu since the toolbarButton isn't placed");
+- return;
+- }
+-
+- let panel = aWindow.document.getElementById("loop-notification-panel");
+- panel.setAttribute("noautohide", true);
+- if (panel.state != "open") {
+- this.recreatePopup(panel);
+- this.availableTargetsCache.clear();
+- }
+-
+- // An event object is expected but we don't want to toggle the panel with a click if the panel
+- // is already open.
+- aWindow.LoopUI.openCallPanel({ target: toolbarButton.node, }, "rooms").then(() => {
+- if (aOpenCallback) {
+- aOpenCallback();
+- }
+- });
+- panel.addEventListener("popuphidden", this.onPanelHidden);
+- panel.addEventListener("popuphiding", this.hideLoopPanelAnnotations);
+- } else if (aMenuName == "pocket") {
+- this.getTarget(aWindow, "pocket").then(Task.async(function* onPocketTarget(target) {
+- let widgetGroupWrapper = CustomizableUI.getWidget(target.widgetName);
+- if (widgetGroupWrapper.type != "view" || !widgetGroupWrapper.viewId) {
+- log.error("Can't open the pocket menu without a view");
+- return;
+- }
+- let placement = CustomizableUI.getPlacementOfWidget(target.widgetName);
+- if (!placement || !placement.area) {
+- log.error("Can't open the pocket menu without a placement");
+- return;
+- }
+-
+- if (placement.area == CustomizableUI.AREA_PANEL) {
+- // Open the appMenu and wait for it if it's not already opened or showing a subview.
+- yield new Promise((resolve, reject) => {
+- if (aWindow.PanelUI.panel.state != "closed") {
+- if (aWindow.PanelUI.multiView.showingSubView) {
+- reject("A subview is already showing");
+- return;
+- }
+-
+- resolve();
+- return;
+- }
+-
+- aWindow.PanelUI.panel.addEventListener("popupshown", function onShown() {
+- aWindow.PanelUI.panel.removeEventListener("popupshown", onShown);
+- resolve();
+- });
+-
+- aWindow.PanelUI.show();
+- });
+- }
+-
+- let widgetWrapper = widgetGroupWrapper.forWindow(aWindow);
+- aWindow.PanelUI.showSubView(widgetGroupWrapper.viewId,
+- widgetWrapper.anchor,
+- placement.area);
+- })).catch(log.error);
+ }
+ },
+
+@@ -1675,9 +1553,6 @@
+ } else if (aMenuName == "controlCenter") {
+ let panel = aWindow.gIdentityHandler._identityPopup;
+ panel.hidePopup();
+- } else if (aMenuName == "loop") {
+- let panel = aWindow.document.getElementById("loop-notification-panel");
+- panel.hidePopup();
+ }
+ },
+
+@@ -1710,12 +1585,6 @@
+ UITour.hideAnnotationsForPanel(aEvent, UITour.targetIsInAppMenu);
+ },
+
+- hideLoopPanelAnnotations: function(aEvent) {
+- UITour.hideAnnotationsForPanel(aEvent, (aTarget) => {
+- return aTarget.targetName.startsWith("loop-") && aTarget.targetName != "loop-selectedRoomButtons";
+- });
+- },
+-
+ hideControlCenterAnnotations(aEvent) {
+ UITour.hideAnnotationsForPanel(aEvent, (aTarget) => {
+ return aTarget.targetName.startsWith("controlCenter-");
+@@ -1813,11 +1682,6 @@
+ case "availableTargets":
+ this.getAvailableTargets(aMessageManager, aWindow, aCallbackID);
+ break;
+- case "loop":
+- this.sendPageCallback(aMessageManager, aCallbackID, {
+- gettingStartedSeen: Services.prefs.getBoolPref("loop.gettingStarted.seen"),
+- });
+- break;
+ case "search":
+ case "selectedSearchEngine":
+ Services.search.init(rv => {
+@@ -1859,10 +1723,6 @@
+ }
+ } catch (e) {}
+ break;
+- case "Loop:ResumeTourOnFirstJoin":
+- // Ignore aValue in this case to avoid accidentally setting it to false.
+- Services.prefs.setBoolPref("loop.gettingStarted.resumeOnFirstJoin", true);
+- break;
+ default:
+ log.error("setConfiguration: Unknown configuration requested: " + aConfiguration);
+ break;
+diff -Naur firefox-45.0esr.bak/browser/extensions/moz.build firefox-45.0esr/browser/extensions/moz.build
+--- firefox-45.0esr.bak/browser/extensions/moz.build 2016-03-13
++++ firefox-45.0esr/browser/extensions/moz.build 2016-03-13
+@@ -5,7 +5,6 @@
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+ DIRS += [
+- 'loop',
+ 'pdfjs',
+ 'shumway',
+ ]
+diff -Naur firefox-45.0esr.bak/browser/locales/en-US/chrome/browser/browser.dtd firefox-45.0esr/browser/locales/en-US/chrome/browser/browser.dtd
+--- firefox-45.0esr.bak/browser/locales/en-US/chrome/browser/browser.dtd 2016-03-13
++++ firefox-45.0esr/browser/locales/en-US/chrome/browser/browser.dtd 2016-03-13
+@@ -252,8 +252,6 @@
+ <!ENTITY addons.commandkey "A">
+ <!ENTITY webapps.label "Apps">
+ <!ENTITY webapps.accesskey "p">
+-<!ENTITY loopMenuItem.label "Start a conversation…">
+-<!ENTITY loopMenuItem.accesskey "t">
+
+ <!ENTITY webDeveloperMenu.label "Web Developer">
+ <!ENTITY webDeveloperMenu.accesskey "W">
+@@ -936,10 +934,3 @@
+ <!ENTITY emeNotificationsNotNow.accesskey "N">
+ <!ENTITY emeNotificationsDontAskAgain.label "Don't ask me again">
+ <!ENTITY emeNotificationsDontAskAgain.accesskey "D">
+-
+-<!-- LOCALIZATION NOTE (saveToPocketCmd.label, saveLinkToPocketCmd.label, pocketMenuitem.label): Pocket is a brand name -->
+-<!ENTITY saveToPocketCmd.label "Save Page to Pocket">
+-<!ENTITY saveToPocketCmd.accesskey "k">
+-<!ENTITY saveLinkToPocketCmd.label "Save Link to Pocket">
+-<!ENTITY saveLinkToPocketCmd.accesskey "o">
+-<!ENTITY pocketMenuitem.label "View Pocket List">
+diff -Naur firefox-45.0esr.bak/browser/locales/en-US/chrome/browser/customizableui/customizableWidgets.properties firefox-45.0esr/browser/locales/en-US/chrome/browser/customizableui/customizableWidgets.properties
+--- firefox-45.0esr.bak/browser/locales/en-US/chrome/browser/customizableui/customizableWidgets.properties 2016-03-13
++++ firefox-45.0esr/browser/locales/en-US/chrome/browser/customizableui/customizableWidgets.properties 2016-03-13
+@@ -96,19 +96,6 @@
+ # %2$S is the keyboard shortcut
+ quit-button.tooltiptext.mac = Quit %1$S (%2$S)
+
+-# LOCALIZATION NOTE(loop-call-button3.label): This is a brand name, request
+-# approval before you change it.
+-loop-call-button3.label = Hello
+-loop-call-button3.tooltiptext2 = Browse this page with a friend
+-loop-call-button3-error.tooltiptext = Error!
+-loop-call-button3-donotdisturb.tooltiptext = Do not disturb
+-loop-call-button3-screensharing.tooltiptext = You are sharing your screen
+-loop-call-button3-active.tooltiptext2 = You are sharing your tabs
+-loop-call-button3-participantswaiting.tooltiptext2 = Someone is waiting for you
+-# LOCALIZATION NOTE(loop-call-button3-pb.tooltiptext): Shown when the button is
+-# placed inside a Private Browsing window. %S is the value of loop-call-button3.label.
+-loop-call-button3-pb.tooltiptext = %S is not available in Private Browsing
+-
+ social-share-button.label = Share This Page
+ social-share-button.tooltiptext = Share this page
+
+@@ -124,10 +111,5 @@
+ devtools-webide-button2.label = WebIDE
+ devtools-webide-button2.tooltiptext = Open WebIDE (%S)
+
+-# LOCALIZATION NOTE(pocket-button.label, pocket-button.tooltiptext): "Pocket"
+-# is a brand name.
+-pocket-button.label = Pocket
+-pocket-button.tooltiptext = Save to Pocket
+-
+ e10s-button.label = New Non-e10s Window
+ e10s-button.tooltiptext = Open a new Non-e10s Window
+diff -Naur firefox-45.0esr.bak/browser/locales/jar.mn firefox-45.0esr/browser/locales/jar.mn
+--- firefox-45.0esr.bak/browser/locales/jar.mn 2016-03-13
++++ firefox-45.0esr/browser/locales/jar.mn 2016-03-13
+@@ -24,10 +24,8 @@
+ locale/browser/browser.dtd (%chrome/browser/browser.dtd)
+ locale/browser/baseMenuOverlay.dtd (%chrome/browser/baseMenuOverlay.dtd)
+ locale/browser/browser.properties (%chrome/browser/browser.properties)
+- locale/browser/browser-pocket.properties (%chrome/browser/browser-pocket.properties)
+ locale/browser/customizableui/customizableWidgets.properties (%chrome/browser/customizableui/customizableWidgets.properties)
+ locale/browser/lightweightThemes.properties (%chrome/browser/lightweightThemes.properties)
+- locale/browser/loop/loop.properties (%chrome/browser/loop/loop.properties)
+ locale/browser/newTab.dtd (%chrome/browser/newTab.dtd)
+ locale/browser/newTab.properties (%chrome/browser/newTab.properties)
+ locale/browser/pageInfo.dtd (%chrome/browser/pageInfo.dtd)
+diff -Naur firefox-45.0esr.bak/browser/modules/BrowserUITelemetry.jsm firefox-45.0esr/browser/modules/BrowserUITelemetry.jsm
+--- firefox-45.0esr.bak/browser/modules/BrowserUITelemetry.jsm 2016-03-13
++++ firefox-45.0esr/browser/modules/BrowserUITelemetry.jsm 2016-03-13
+@@ -49,7 +49,6 @@
+ "urlbar-container",
+ "search-container",
+ "bookmarks-menu-button",
+- "pocket-button",
+ "downloads-button",
+ "home-button",
+ "social-share-button",
+@@ -668,7 +667,7 @@
+ "copyvideourl", "copyaudiourl", "saveimage", "shareimage", "sendimage",
+ "setDesktopBackground", "viewimageinfo", "viewimagedesc", "savevideo",
+ "sharevideo", "saveaudio", "video-saveimage", "sendvideo", "sendaudio",
+- "ctp-play", "ctp-hide", "sharepage", "savepage", "pocket", "markpageMenu",
++ "ctp-play", "ctp-hide", "sharepage", "savepage", "markpageMenu",
+ "viewbgimage", "undo", "cut", "copy", "paste", "delete", "selectall",
+ "keywordfield", "searchselect", "shareselect", "frame", "showonlythisframe",
+ "openframeintab", "openframe", "reloadframe", "bookmarkframe", "saveframe",
+diff -Naur firefox-45.0esr.bak/browser/modules/ReaderParent.jsm firefox-45.0esr/browser/modules/ReaderParent.jsm
+--- firefox-45.0esr.bak/browser/modules/ReaderParent.jsm 2016-03-13
++++ firefox-45.0esr/browser/modules/ReaderParent.jsm 2016-03-13
+@@ -25,11 +25,9 @@
+
+ MESSAGES: [
+ "Reader:AddToList",
+- "Reader:AddToPocket",
+ "Reader:ArticleGet",
+ "Reader:FaviconRequest",
+ "Reader:ListStatusRequest",
+- "Reader:PocketEnabledGet",
+ "Reader:RemoveFromList",
+ "Reader:Share",
+ "Reader:SystemUIVisibility",
+@@ -47,24 +45,6 @@
+
+ receiveMessage: function(message) {
+ switch (message.name) {
+- case "Reader:AddToPocket": {
+- let doc = message.target.ownerDocument;
+- let pocketWidget = doc.getElementById("pocket-button");
+- let placement = CustomizableUI.getPlacementOfWidget("pocket-button");
+- if (placement) {
+- if (placement.area == CustomizableUI.AREA_PANEL) {
+- doc.defaultView.PanelUI.show().then(function() {
+- // The DOM node might not exist yet if the panel wasn't opened before.
+- pocketWidget = doc.getElementById("pocket-button");
+- pocketWidget.doCommand();
+- });
+- } else {
+- pocketWidget.doCommand();
+- }
+- }
+- break;
+- }
+-
+ case "Reader:ArticleGet":
+ this._getArticle(message.data.url, message.target).then((article) => {
+ // Make sure the target browser is still alive before trying to send data back.
+@@ -78,13 +58,6 @@
+ });
+ break;
+
+- case "Reader:PocketEnabledGet": {
+- let pocketPlacement = CustomizableUI.getPlacementOfWidget("pocket-button");
+- let isPocketEnabled = pocketPlacement && pocketPlacement.area;
+- message.target.messageManager.sendAsyncMessage("Reader:PocketEnabledData", { enabled: !!isPocketEnabled});
+- break;
+- }
+-
+ case "Reader:FaviconRequest": {
+ if (message.target.messageManager) {
+ let faviconUrl = PlacesUtils.promiseFaviconLinkUrl(message.data.url);
+diff -Naur firefox-45.0esr.bak/browser/themes/linux/browser.css firefox-45.0esr/browser/themes/linux/browser.css
+--- firefox-45.0esr.bak/browser/themes/linux/browser.css 2016-03-13
++++ firefox-45.0esr/browser/themes/linux/browser.css 2016-03-13
+@@ -525,12 +525,6 @@
+ list-style-image: url("chrome://browser/skin/places/unsortedBookmarks.png");
+ }
+
+-#panelMenu_pocket,
+-#menu_pocket,
+-#BMB_pocket {
+- list-style-image: url("chrome://browser/content/pocket/panels/img/pocketmenuitem16.png");
+-}
+-
+ #menu_openDownloads {
+ list-style-image: url("chrome://browser/skin/Toolbar-small.png");
+ -moz-image-region: rect(0px 16px 16px 0px);
+diff -Naur firefox-45.0esr.bak/browser/themes/osx/browser.css firefox-45.0esr/browser/themes/osx/browser.css
+--- firefox-45.0esr.bak/browser/themes/osx/browser.css 2016-03-13
++++ firefox-45.0esr/browser/themes/osx/browser.css 2016-03-13
+@@ -576,24 +576,6 @@
+ }
+ }
+
+-#panelMenu_pocket,
+-#menu_pocket,
+-#BMB_pocket {
+- list-style-image: url("chrome://browser/content/pocket/panels/img/pocketmenuitem16.png");
+-}
+-
+-@media (min-resolution: 2dppx) {
+- #panelMenu_pocket,
+- #menu_pocket,
+- #BMB_pocket {
+- list-style-image: url("chrome://browser/content/pocket/panels/img/pocketmenuitem16@2x.png");
+- }
+-
+- #panelMenu_pocket > .toolbarbutton-icon {
+- width: 16px;
+- }
+-}
+-
+ /* ----- PRIMARY TOOLBAR BUTTONS ----- */
+
+ :-moz-any(toolbar, .widget-overflow-list) .toolbarbutton-1 > .toolbarbutton-icon,
+@@ -822,10 +804,6 @@
+ -moz-image-region: rect(18px, 738px, 36px, 720px);
+ }
+
+- #pocket-button@toolbarButtonPressed@ {
+- -moz-image-region: rect(18px, 774px, 36px, 756px);
+- }
+-
+ #new-tab-button@toolbarButtonPressed@ {
+ -moz-image-region: rect(18px, 360px, 36px, 342px);
+ }
+@@ -985,10 +963,6 @@
+ -moz-image-region: rect(36px, 1476px, 72px, 1440px);
+ }
+
+- #pocket-button@toolbarButtonPressed@ {
+- -moz-image-region: rect(36px, 1548px, 72px, 1512px);
+- }
+-
+ #new-tab-button@toolbarButtonPressed@ {
+ -moz-image-region: rect(36px, 720px, 72px, 684px);
+ }
+diff -Naur firefox-45.0esr.bak/browser/themes/shared/browser.inc firefox-45.0esr/browser/themes/shared/browser.inc
+--- firefox-45.0esr.bak/browser/themes/shared/browser.inc 2016-03-13
++++ firefox-45.0esr/browser/themes/shared/browser.inc 2016-03-13
+@@ -2,7 +2,7 @@
+
+ % Note that zoom-reset-button is a bit different since it doesn't use an image and thus has the image with display: none.
+ %define nestedButtons #zoom-out-button, #zoom-reset-button, #zoom-in-button, #cut-button, #copy-button, #paste-button
+-%define primaryToolbarButtons #back-button, #forward-button, #home-button, #print-button, #downloads-button, #bookmarks-menu-button, #new-tab-button, #new-window-button, #fullscreen-button, #sync-button, #feed-button, #social-share-button, #open-file-button, #find-button, #developer-button, #preferences-button, #privatebrowsing-button, #save-page-button, #add-ons-button, #history-panelmenu, #nav-bar-overflow-button, #PanelUI-menu-button, #characterencoding-button, #email-link-button, #sidebar-button, @nestedButtons@, #e10s-button, #panic-button, #webide-button, #pocket-button
++%define primaryToolbarButtons #back-button, #forward-button, #home-button, #print-button, #downloads-button, #bookmarks-menu-button, #new-tab-button, #new-window-button, #fullscreen-button, #sync-button, #feed-button, #social-share-button, #open-file-button, #find-button, #developer-button, #preferences-button, #privatebrowsing-button, #save-page-button, #add-ons-button, #history-panelmenu, #nav-bar-overflow-button, #PanelUI-menu-button, #characterencoding-button, #email-link-button, #sidebar-button, @nestedButtons@, #e10s-button, #panic-button, #webide-button
+
+ %ifdef XP_MACOSX
+ % Prior to 10.7 there wasn't a native fullscreen button so we use #restore-button to exit fullscreen
+diff -Naur firefox-45.0esr.bak/browser/themes/shared/menupanel.inc.css firefox-45.0esr/browser/themes/shared/menupanel.inc.css
+--- firefox-45.0esr.bak/browser/themes/shared/menupanel.inc.css 2016-03-13
++++ firefox-45.0esr/browser/themes/shared/menupanel.inc.css 2016-03-13
+@@ -163,15 +163,6 @@
+ -moz-image-region: rect(0px, 960px, 32px, 928px);
+ }
+
+- #pocket-button[cui-areatype="menu-panel"],
+- toolbarpaletteitem[place="palette"] > #pocket-button {
+- -moz-image-region: rect(0px, 992px, 32px, 960px);
+- }
+-
+- #pocket-button[cui-areatype="menu-panel"][panel-multiview-anchor=true] {
+- -moz-image-region: rect(32px, 992px, 64px, 960px);
+- }
+-
+ toolbaritem[sdkstylewidget="true"] > toolbarbutton {
+ -moz-image-region: rect(0, 832px, 32px, 800px);
+ }
+@@ -310,15 +301,6 @@
+ -moz-image-region: rect(0px, 1920px, 64px, 1856px);
+ }
+
+- #pocket-button[cui-areatype="menu-panel"],
+- toolbarpaletteitem[place="palette"] > #pocket-button {
+- -moz-image-region: rect(0px, 1984px, 64px, 1920px);
+- }
+-
+- #pocket-button[cui-areatype="menu-panel"][panel-multiview-anchor=true] {
+- -moz-image-region: rect(64px, 1984px, 128px, 1920px);
+- }
+-
+ #new-tab-button[cui-areatype="menu-panel"],
+ toolbarpaletteitem[place="palette"] > #new-tab-button {
+ -moz-image-region: rect(0px, 1088px, 64px, 1024px);
+diff -Naur firefox-45.0esr.bak/browser/themes/shared/toolbarbuttons.inc.css firefox-45.0esr/browser/themes/shared/toolbarbuttons.inc.css
+--- firefox-45.0esr.bak/browser/themes/shared/toolbarbuttons.inc.css 2016-03-13
++++ firefox-45.0esr/browser/themes/shared/toolbarbuttons.inc.css 2016-03-13
+@@ -171,18 +171,6 @@
+ -moz-image-region: rect(0, 738px, 18px, 720px);
+ }
+
+-#pocket-button[cui-areatype="toolbar"] {
+- -moz-image-region: rect(0, 774px, 18px, 756px);
+-}
+-
+-#pocket-button[cui-areatype="toolbar"][open] {
+-%ifdef XP_MACOSX
+- -moz-image-region: rect(36px, 774px, 54px, 756px);
+-%else
+- -moz-image-region: rect(18px, 774px, 36px, 756px);
+-%endif
+-}
+-
+ %if defined(XP_WIN) || defined(XP_MACOSX)
+ @media (min-resolution: 1.1dppx) {
+ :-moz-any(@primaryToolbarButtons@),
+@@ -350,16 +338,4 @@
+ -moz-image-region: rect(0, 1476px, 36px, 1440px);
+ }
+
+- #pocket-button[cui-areatype="toolbar"] {
+- -moz-image-region: rect(0, 1548px, 36px, 1512px);
+- }
+-
+- #pocket-button[cui-areatype="toolbar"][open] {
+-%ifdef XP_MACOSX
+- -moz-image-region: rect(72px, 1548px, 108px, 1512px);
+-%else
+- -moz-image-region: rect(36px, 1548px, 72px, 1512px);
+-%endif
+- }
+-}
+ %endif
+diff -Naur firefox-45.0esr.bak/browser/themes/windows/browser.css firefox-45.0esr/browser/themes/windows/browser.css
+--- firefox-45.0esr.bak/browser/themes/windows/browser.css 2016-03-13
++++ firefox-45.0esr/browser/themes/windows/browser.css 2016-03-13
+@@ -2305,12 +2305,6 @@
+ -moz-image-region: auto;
+ }
+
+-#panelMenu_pocket,
+-#menu_pocket,
+-#BMB_pocket {
+- list-style-image: url("chrome://browser/content/pocket/panels/img/pocketmenuitem16.png");
+-}
+-
+ /* ::::: Keyboard UI Panel ::::: */
+
+ .KUI-panel {
+diff -Naur firefox-45.0esr.bak/toolkit/themes/shared/aboutReaderControls.css firefox-45.0esr/toolkit/themes/shared/aboutReaderControls.css
+--- firefox-45.0esr.bak/toolkit/themes/shared/aboutReaderControls.css 2016-03-13
++++ firefox-45.0esr/toolkit/themes/shared/aboutReaderControls.css 2016-03-13
+@@ -379,14 +379,6 @@
+ background-image: url("chrome://global/skin/reader/RM-Plus-24x24.svg");
+ }
+
+-#pocket-button {
+- background-image: url("chrome://global/skin/reader/pocket.svg#pocket-mark");
+-}
+-
+-#pocket-button:hover:active {
+- background-image: url("chrome://global/skin/reader/pocket.svg#pocket-mark-added");
+-}
+-
+ @media print {
+ .toolbar {
+ display: none !important;
diff --git a/firefox-38-disable-sponsored-tiles.patch b/firefox-45-disable-sponsored-tiles.patch
index d83365fc4ab..caf5aa1814e 100644
--- a/firefox-38-disable-sponsored-tiles.patch
+++ b/firefox-45-disable-sponsored-tiles.patch
@@ -1,6 +1,6 @@
---- mozilla-esr38.bak/browser/modules/DirectoryLinksProvider.jsm 2015-10-01 22:55:45.276046367 +0200
-+++ mozilla-esr38/browser/modules/DirectoryLinksProvider.jsm 2015-10-01 22:57:17.964047568 +0200
-@@ -33,16 +33,16 @@
+--- firefox-45.0esr.bak/browser/modules/DirectoryLinksProvider.jsm 2016-03-13
++++ firefox-45.0esr/browser/modules/DirectoryLinksProvider.jsm 2016-03-13
+@@ -58,16 +58,16 @@
const DIRECTORY_LINKS_TYPE = "application/json";
// The preference that tells whether to match the OS locale
@@ -21,7 +21,7 @@
// The preference that tells if newtab is enhanced
const PREF_NEWTAB_ENHANCED = "browser.newtabpage.enhanced";
-@@ -108,30 +108,6 @@
+@@ -200,30 +200,6 @@
* @return the selected locale or "en-US" if none is selected
*/
get locale() {
@@ -52,29 +52,33 @@
return "en-US";
},
-@@ -188,43 +164,6 @@
+@@ -294,13 +270,6 @@
},
_fetchAndCacheLinks: function DirectoryLinksProvider_fetchAndCacheLinks(uri) {
- // Replace with the same display locale used for selecting links data
- uri = uri.replace("%LOCALE%", this.locale);
+- uri = uri.replace("%CHANNEL%", UpdateUtils.UpdateChannel);
-
+- return this._downloadJsonData(uri).then(json => {
+- return OS.File.writeAtomic(this._directoryFilePath, json, {tmpPath: this._directoryFilePath + ".tmp"});
+- });
+ },
+
+ /**
+@@ -309,33 +278,6 @@
+ * @return promise resolved to json string, "{}" returned if status != 200
+ */
+ _downloadJsonData: function DirectoryLinksProvider__downloadJsonData(uri) {
- let deferred = Promise.defer();
-- let xmlHttp = new XMLHttpRequest();
+- let xmlHttp = this._newXHR();
-
-- let self = this;
- xmlHttp.onload = function(aResponse) {
- let json = this.responseText;
- if (this.status && this.status != 200) {
- json = "{}";
- }
-- OS.File.writeAtomic(self._directoryFilePath, json, {tmpPath: self._directoryFilePath + ".tmp"})
-- .then(() => {
-- deferred.resolve();
-- },
-- () => {
-- deferred.reject("Error writing uri data in profD.");
-- });
+- deferred.resolve(json);
- };
-
- xmlHttp.onerror = function(e) {
@@ -96,7 +100,7 @@
},
/**
-@@ -232,30 +171,6 @@
+@@ -343,30 +285,6 @@
* @return promise resolved immediately if no download needed, or upon completion
*/
_fetchAndCacheLinksIfNecessary: function DirectoryLinksProvider_fetchAndCacheLinksIfNecessary(forceDownload=false) {
@@ -127,7 +131,7 @@
},
/**
-@@ -309,51 +224,6 @@
+@@ -574,40 +492,6 @@
}
catch (ex) {}
@@ -156,6 +160,7 @@
- id: id || site.enhancedId,
- pin: site.isPinned() ? 1 : undefined,
- pos: pos != tilesIndex ? pos : undefined,
+- past_impressions: pos == triggeringSiteIndex ? pastImpressions : undefined,
- score: Math.round(link.frecency / PING_SCORE_DIVISOR) || undefined,
- url: site.enhancedId && "",
- });
@@ -164,18 +169,24 @@
- }, []),
- };
-
-- // Provide a direct index to the tile triggering the action
-- if (actionIndex !== undefined) {
-- data[action] = actionIndex;
-- }
--
-- // Package the data to be sent with the ping
-- let ping = new XMLHttpRequest();
-- ping.open("POST", pingEndPoint + (action == "view" ? "view" : "click"));
-- ping.send(JSON.stringify(data));
+ // Provide a direct index to the tile triggering the action
+ if (actionIndex !== undefined) {
+ data[action] = actionIndex;
+@@ -1021,17 +905,6 @@
+ * @return a promise resolved when lookup Set for sites is built
+ */
+ _loadInadjacentSites: function DirectoryLinksProvider_loadInadjacentSites() {
+- return this._downloadJsonData(this._inadjacentSitesUrl).then(jsonString => {
+- let jsonObject = {};
+- try {
+- jsonObject = JSON.parse(jsonString);
+- }
+- catch (e) {
+- Cu.reportError(e);
+- }
-
-- // Use this as an opportunity to potentially fetch new links
-- return this._fetchAndCacheLinksIfNecessary();
+- this._inadjacentSites = new Set(jsonObject.domains);
+- });
},
/**
diff --git a/firefox-45-disable-telemetry.patch b/firefox-45-disable-telemetry.patch
new file mode 100644
index 00000000000..b988fe00463
--- /dev/null
+++ b/firefox-45-disable-telemetry.patch
@@ -0,0 +1,24 @@
+--- firefox-45.0esr.bak/browser/confvars.sh 2016-03-13
++++ firefox-45.0esr/browser/confvars.sh 2016-03-13
+@@ -30,8 +30,8 @@
+ MOZ_SAFE_BROWSING=1
+ MOZ_SERVICES_COMMON=1
+ MOZ_SERVICES_CRYPTO=1
+-MOZ_SERVICES_HEALTHREPORT=1
+-MOZ_SERVICES_METRICS=1
++MOZ_SERVICES_HEALTHREPORT=0
++MOZ_SERVICES_METRICS=0
+ MOZ_SERVICES_SYNC=1
+ MOZ_SERVICES_CLOUDSYNC=1
+ MOZ_APP_VERSION=$FIREFOX_VERSION
+@@ -70,3 +70,10 @@
+
+ # Include the DevTools client, not just the server (which is the default)
+ MOZ_DEVTOOLS=all
++
++# Reduce data sharing with Mozilla
++MOZ_SOCIAL=0
++MOZ_DATA_REPORTING=0
++MOZ_TELEMETRY_REPORTING=0
++MOZ_CRASHREPORTER=0
++
diff --git a/firefox-38-prefs.patch b/firefox-45-prefs.patch
index 0d1dd3bed6e..4b123253b0d 100644
--- a/firefox-38-prefs.patch
+++ b/firefox-45-prefs.patch
@@ -1,37 +1,16 @@
---- mozilla-esr38.bak/browser/branding/official/pref/firefox-branding.js 2015-10-27 10:35:06.279469072 +0100
-+++ mozilla-esr38/browser/branding/official/pref/firefox-branding.js 2015-10-27 11:45:37.837884736 +0100
-@@ -3,7 +3,7 @@
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- pref("startup.homepage_override_url","");
--pref("startup.homepage_welcome_url","");
-+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
---- mozilla-esr38.bak/services/healthreport/healthreport-prefs.js 2015-10-27 10:35:06.443469088 +0100
-+++ mozilla-esr38/services/healthreport/healthreport-prefs.js 2015-10-27 11:57:35.057955188 +0100
-@@ -18,9 +18,9 @@
- pref("datareporting.healthreport.pendingDeleteRemoteData", false);
-
- // Health Report is enabled by default on all channels.
--pref("datareporting.healthreport.uploadEnabled", true);
-+pref("datareporting.healthreport.uploadEnabled", false);
-
--pref("datareporting.healthreport.service.enabled", true);
-+pref("datareporting.healthreport.service.enabled", false);
- pref("datareporting.healthreport.service.loadDelayMsec", 10000);
- pref("datareporting.healthreport.service.loadDelayFirstRunMsec", 60000);
-
---- mozilla-esr38.bak/browser/app/profile/firefox.js 2015-10-27 10:35:06.353469080 +0100
-+++ mozilla-esr38/browser/app/profile/firefox.js 2015-10-27 11:51:27.217919055 +0100
-@@ -267,12 +267,12 @@
+diff -Naur firefox-45.0esr.bak/browser/app/profile/firefox.js firefox-45.0esr/browser/app/profile/firefox.js
+--- firefox-45.0esr.bak/browser/app/profile/firefox.js 2016-03-13
++++ firefox-45.0esr/browser/app/profile/firefox.js 2016-03-13
+@@ -230,7 +230,7 @@
#endif
// 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.skipDefaultBrowserCheck", true);
+@@ -238,7 +238,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
@@ -40,7 +19,16 @@
pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties");
pref("browser.slowStartup.notificationDisabled", false);
-@@ -442,7 +442,7 @@
+@@ -312,7 +312,7 @@
+ pref("browser.urlbar.suggest.bookmark", true);
+ pref("browser.urlbar.suggest.openpage", true);
+ pref("browser.urlbar.suggest.searches", false);
+-pref("browser.urlbar.userMadeSearchSuggestionsChoice", false);
++pref("browser.urlbar.userMadeSearchSuggestionsChoice", true);
+
+ // Limit the number of characters sent to the current search engine to fetch
+ // suggestions.
+@@ -426,7 +426,7 @@
// Tabbed browser
pref("browser.tabs.closeWindowWithLastTab", true);
pref("browser.tabs.insertRelatedAfterCurrent", true);
@@ -49,7 +37,7 @@
pref("browser.tabs.warnOnCloseOtherTabs", true);
pref("browser.tabs.warnOnOpen", true);
pref("browser.tabs.maxOpenBeforeWarn", 15);
-@@ -1629,7 +1629,7 @@
+@@ -1335,7 +1335,7 @@
pref("browser.newtab.preload", true);
// Remembers if the about:newtab intro has been shown
@@ -58,8 +46,34 @@
// Toggles the content of 'about:newtab'. Shows the grid when enabled.
pref("browser.newtabpage.enabled", true);
---- mozilla-esr38.bak/modules/libpref/init/all.js 2015-10-27 10:35:06.654469109 +0100
-+++ mozilla-esr38/modules/libpref/init/all.js 2015-10-27 11:57:53.203956970 +0100
+diff -Naur firefox-45.0esr.bak/browser/branding/official/pref/firefox-branding.js firefox-45.0esr/browser/branding/official/pref/firefox-branding.js
+--- firefox-45.0esr.bak/browser/branding/official/pref/firefox-branding.js 2016-03-13
++++ firefox-45.0esr/browser/branding/official/pref/firefox-branding.js 2016-03-13
+@@ -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", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/firstrun/learnmore/");
++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-45.0esr.bak/build/application.ini firefox-45.0esr/build/application.ini
+--- firefox-45.0esr.bak/build/application.ini 2016-03-13
++++ firefox-45.0esr/build/application.ini 2016-03-13
+@@ -41,7 +41,7 @@
+
+ [XRE]
+ #ifdef MOZ_PROFILE_MIGRATOR
+-EnableProfileMigrator=1
++EnableProfileMigrator=0
+ #endif
+
+ #if MOZ_CRASHREPORTER
+diff -Naur firefox-45.0esr.bak/modules/libpref/init/all.js firefox-45.0esr/modules/libpref/init/all.js
+--- firefox-45.0esr.bak/modules/libpref/init/all.js 2016-03-13
++++ firefox-45.0esr/modules/libpref/init/all.js 2016-03-13
@@ -29,7 +29,7 @@
pref("general.config.obscure_value", 13); // for MCD .cfg files
@@ -69,34 +83,7 @@
// maximum number of dated backups to keep at any time
pref("browser.bookmarks.max_backups", 5);
-@@ -449,7 +449,7 @@
- #if defined(XP_WIN) || defined(XP_MACOSX)
- pref("media.mediasource.enabled", true);
- #else
--pref("media.mediasource.enabled", false);
-+pref("media.mediasource.enabled", true);
- #endif
-
- #ifdef RELEASE_BUILD
-@@ -2312,7 +2312,7 @@
- // Player ("Shockwave for Director"). To hide all plugins from enumeration, use
- // the empty string "" to match no plugin names. To allow all plugins to be
- // enumerated, use the string "*" to match all plugin names.
--pref("plugins.enumerable_names", "*");
-+pref("plugins.enumerable_names", "");
-
- // The default value for nsIPluginTag.enabledState (STATE_ENABLED = 2)
- pref("plugin.default.state", 2);
-@@ -3400,7 +3400,7 @@
-
- // Middle-mouse handling
- pref("middlemouse.paste", true);
--pref("middlemouse.contentLoadURL", true);
-+pref("middlemouse.contentLoadURL", false);
- pref("middlemouse.openNewWindow", true);
- pref("middlemouse.scrollbarPosition", true);
-
-@@ -3712,7 +3712,7 @@
+@@ -4096,7 +4096,7 @@
// Satchel (Form Manager) prefs
pref("browser.formfill.debug", false);
@@ -105,3 +92,18 @@
pref("browser.formfill.expire_days", 180);
pref("browser.formfill.saveHttpsForms", true);
pref("browser.formfill.agedWeight", 2);
+diff -Naur firefox-45.0esr.bak/services/healthreport/healthreport-prefs.js firefox-45.0esr/services/healthreport/healthreport-prefs.js
+--- firefox-45.0esr.bak/services/healthreport/healthreport-prefs.js 2016-03-13
++++ firefox-45.0esr/services/healthreport/healthreport-prefs.js 2016-03-13
+@@ -18,9 +18,9 @@
+ pref("datareporting.healthreport.pendingDeleteRemoteData", false);
+
+ // Health Report is enabled by default on all channels.
+-pref("datareporting.healthreport.uploadEnabled", true);
++pref("datareporting.healthreport.uploadEnabled", false);
+
+-pref("datareporting.healthreport.service.enabled", true);
++pref("datareporting.healthreport.service.enabled", false);
+ pref("datareporting.healthreport.service.loadDelayMsec", 10000);
+ pref("datareporting.healthreport.service.loadDelayFirstRunMsec", 60000);
+
diff --git a/mozconfig b/mozconfig
index 947067e1f57..198eb53a94a 100644
--- a/mozconfig
+++ b/mozconfig
@@ -39,5 +39,6 @@ ac_add_options --with-system-libvpx
ac_add_options --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-system-icu
+ac_add_options --disable-gconf
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir