diff options
author | w | 2016-03-09 10:02:39 +0100 |
---|---|---|
committer | w | 2016-03-09 10:02:39 +0100 |
commit | 8ecd837fbcedd559a5fd9afc566b9696f030bf86 (patch) | |
tree | c48349b4ce6e2e1b4c170f54f8b4b531bc8d0504 | |
download | aur-8ecd837fbcedd559a5fd9afc566b9696f030bf86.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 58 | ||||
-rw-r--r-- | PKGBUILD | 76 | ||||
-rw-r--r-- | firefox-38-disable-location.services.mozilla.com.patch | 25 | ||||
-rw-r--r-- | firefox-38-disable-loop.patch | 757 | ||||
-rw-r--r-- | firefox-38-disable-sponsored-tiles.patch | 181 | ||||
-rw-r--r-- | firefox-38-prefs.patch | 107 | ||||
-rw-r--r-- | firefox-fixed-loading-icon.png | bin | 0 -> 12184 bytes | |||
-rw-r--r-- | firefox-install-dir.patch | 12 | ||||
-rw-r--r-- | firefox.desktop | 12 | ||||
-rw-r--r-- | firefox.install | 13 | ||||
-rw-r--r-- | mozconfig | 43 |
11 files changed, 1284 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..2c55165532f4 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,58 @@ +# Generated by makepkg 5.0.0 +# Wed Mar 9 09:01:22 UTC 2016 +pkgbase = firefox-esr-privacy + pkgdesc = Standalone web browser from mozilla.org + pkgver = 38.6.1 + pkgrel = 1 + url = https://www.mozilla.org/firefox/ + install = firefox.install + arch = i686 + arch = x86_64 + license = MPL + license = GPL + license = LGPL + makedepends = unzip + makedepends = zip + makedepends = diffutils + makedepends = python2 + makedepends = yasm + makedepends = mesa + makedepends = xorg-server + makedepends = inetutils + depends = gtk3 + depends = gtk2 + depends = libxt + depends = startup-notification + depends = dbus-glib + depends = alsa-lib + depends = desktop-file-utils + depends = hicolor-icon-theme + depends = libvpx + depends = icu + depends = libevent + depends = nss + depends = hunspell + depends = sqlite + options = !emptydirs + source = https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/38.6.1esr/source/firefox-38.6.1esr.source.tar.bz2 + 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.desktop + source = firefox-fixed-loading-icon.png + source = mozconfig + validpgpkeys = 2B90598A745E992F315E22C58AB132963A06537A + sha256sums = 91174d0118ac7178b5902bd6e82743b4eab5d567ec6431abebf4da093ffbd0ff + sha256sums = d86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd + sha256sums = 67a3aa79643837965902118927a37cecd098a83696d7e1b58e2040ce82b823df + sha256sums = 1579b3221638ab012782d898c26014024ccae02363b7be674c3192e1b8031608 + sha256sums = 6e0dcac677bf2e47df6a56b30c153e8bbd712fab7d4f7c05fc27c83bf60afbd9 + sha256sums = c618470c7cc8e42fd8b582980d94a132efad8a3533093703cbfc10169f036f70 + sha256sums = 0bcfe168964338ec9c6e781479f2f8d06aa44f2262d6405ff8fa42983be89630 + sha256sums = 68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213 + sha256sums = 7b6729423fba99e45c022c1d5638554c0e6f19ff5ef79c466861a9418062ce4c + +pkgname = firefox-esr-privacy + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..c202243c9218 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,76 @@ +pkgname=firefox-esr-privacy +_basever=38 +_pkgdir=mozilla-esr${_basever} +pkgver=38.6.1 +pkgrel=1 +pkgdesc="Standalone web browser from mozilla.org" +arch=('i686' 'x86_64') +license=('MPL' 'GPL' 'LGPL') +url="https://www.mozilla.org/firefox/" +depends=('gtk3' 'gtk2' 'libxt' 'startup-notification' + 'dbus-glib' 'alsa-lib' 'desktop-file-utils' 'hicolor-icon-theme' + 'libvpx' 'icu' 'libevent' 'nss' 'hunspell' 'sqlite') +makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'xorg-server' 'inetutils') +install=firefox.install +options=('!emptydirs') +source=(https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2 + firefox-install-dir.patch + firefox-${_basever}-disable-location.services.mozilla.com.patch + firefox-${_basever}-disable-loop.patch + firefox-${_basever}-disable-sponsored-tiles.patch + firefox-${_basever}-prefs.patch + firefox.desktop + firefox-fixed-loading-icon.png + mozconfig) +sha256sums=('91174d0118ac7178b5902bd6e82743b4eab5d567ec6431abebf4da093ffbd0ff' + 'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd' + '67a3aa79643837965902118927a37cecd098a83696d7e1b58e2040ce82b823df' + '1579b3221638ab012782d898c26014024ccae02363b7be674c3192e1b8031608' + '6e0dcac677bf2e47df6a56b30c153e8bbd712fab7d4f7c05fc27c83bf60afbd9' + 'c618470c7cc8e42fd8b582980d94a132efad8a3533093703cbfc10169f036f70' + '0bcfe168964338ec9c6e781479f2f8d06aa44f2262d6405ff8fa42983be89630' + '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213' + '7b6729423fba99e45c022c1d5638554c0e6f19ff5ef79c466861a9418062ce4c') +validpgpkeys=('2B90598A745E992F315E22C58AB132963A06537A') + +prepare() { + cd ${_pkgdir} + + 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 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 + # 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 +} + +build() { + cd ${_pkgdir} + + # Fix configure: error: Your toolchain does not support C++0x/C++11 mode properly. Please upgrade your toolchain + unset CPPFLAGS + + make -f client.mk +} + +package() { + cd ${_pkgdir} + make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install + + install -Dm644 ${srcdir}/firefox.desktop "$pkgdir/usr/share/applications/firefox.desktop" + + # Use system-provided dictionaries + rm -rf "$pkgdir"/usr/lib/firefox/{dictionaries,hyphenation} + ln -s /usr/share/hunspell "$pkgdir/usr/lib/firefox/dictionaries" + ln -s /usr/share/hyphen "$pkgdir/usr/lib/firefox/hyphenation" +} diff --git a/firefox-38-disable-location.services.mozilla.com.patch b/firefox-38-disable-location.services.mozilla.com.patch new file mode 100644 index 000000000000..241df5b52b91 --- /dev/null +++ b/firefox-38-disable-location.services.mozilla.com.patch @@ -0,0 +1,25 @@ +--- 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 new file mode 100644 index 000000000000..3ef2fbd3b92e --- /dev/null +++ b/firefox-38-disable-loop.patch @@ -0,0 +1,757 @@ +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-38-disable-sponsored-tiles.patch b/firefox-38-disable-sponsored-tiles.patch new file mode 100644 index 000000000000..d83365fc4ab0 --- /dev/null +++ b/firefox-38-disable-sponsored-tiles.patch @@ -0,0 +1,181 @@ +--- 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 @@ + const DIRECTORY_LINKS_TYPE = "application/json"; + + // The preference that tells whether to match the OS locale +-const PREF_MATCH_OS_LOCALE = "intl.locale.matchOS"; ++const PREF_MATCH_OS_LOCALE = ""; + + // The preference that tells what locale the user selected +-const PREF_SELECTED_LOCALE = "general.useragent.locale"; ++const PREF_SELECTED_LOCALE = ""; + + // The preference that tells where to obtain directory links +-const PREF_DIRECTORY_SOURCE = "browser.newtabpage.directory.source"; ++const PREF_DIRECTORY_SOURCE = ""; + + // The preference that tells where to send click/view pings +-const PREF_DIRECTORY_PING = "browser.newtabpage.directory.ping"; ++const PREF_DIRECTORY_PING = ""; + + // The preference that tells if newtab is enhanced + const PREF_NEWTAB_ENHANCED = "browser.newtabpage.enhanced"; +@@ -108,30 +108,6 @@ + * @return the selected locale or "en-US" if none is selected + */ + get locale() { +- let matchOS; +- try { +- matchOS = Services.prefs.getBoolPref(PREF_MATCH_OS_LOCALE); +- } +- catch (e) {} +- +- if (matchOS) { +- return Services.locale.getLocaleComponentForUserAgent(); +- } +- +- try { +- let locale = Services.prefs.getComplexValue(PREF_SELECTED_LOCALE, +- Ci.nsIPrefLocalizedString); +- if (locale) { +- return locale.data; +- } +- } +- catch (e) {} +- +- try { +- return Services.prefs.getCharPref(PREF_SELECTED_LOCALE); +- } +- catch (e) {} +- + return "en-US"; + }, + +@@ -188,43 +164,6 @@ + }, + + _fetchAndCacheLinks: function DirectoryLinksProvider_fetchAndCacheLinks(uri) { +- // Replace with the same display locale used for selecting links data +- uri = uri.replace("%LOCALE%", this.locale); +- +- let deferred = Promise.defer(); +- let xmlHttp = new XMLHttpRequest(); +- +- 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."); +- }); +- }; +- +- xmlHttp.onerror = function(e) { +- deferred.reject("Fetching " + uri + " results in error code: " + e.target.status); +- }; +- +- try { +- xmlHttp.open("GET", uri); +- // Override the type so XHR doesn't complain about not well-formed XML +- xmlHttp.overrideMimeType(DIRECTORY_LINKS_TYPE); +- // Set the appropriate request type for servers that require correct types +- xmlHttp.setRequestHeader("Content-Type", DIRECTORY_LINKS_TYPE); +- xmlHttp.send(); +- } catch (e) { +- deferred.reject("Error fetching " + uri); +- Cu.reportError(e); +- } +- return deferred.promise; + }, + + /** +@@ -232,30 +171,6 @@ + * @return promise resolved immediately if no download needed, or upon completion + */ + _fetchAndCacheLinksIfNecessary: function DirectoryLinksProvider_fetchAndCacheLinksIfNecessary(forceDownload=false) { +- if (this._downloadDeferred) { +- // fetching links already - just return the promise +- return this._downloadDeferred.promise; +- } +- +- if (forceDownload || this._needsDownload) { +- this._downloadDeferred = Promise.defer(); +- this._fetchAndCacheLinks(this._linksURL).then(() => { +- // the new file was successfully downloaded and cached, so update a timestamp +- this._lastDownloadMS = Date.now(); +- this._downloadDeferred.resolve(); +- this._downloadDeferred = null; +- this._callObservers("onManyLinksChanged") +- }, +- error => { +- this._downloadDeferred.resolve(); +- this._downloadDeferred = null; +- this._callObservers("onDownloadFail"); +- }); +- return this._downloadDeferred.promise; +- } +- +- // download is not needed +- return Promise.resolve(); + }, + + /** +@@ -309,51 +224,6 @@ + } + catch (ex) {} + +- // Only send pings when enhancing tiles with an endpoint and valid action +- let invalidAction = PING_ACTIONS.indexOf(action) == -1; +- if (!newtabEnhanced || pingEndPoint == "" || invalidAction) { +- return Promise.resolve(); +- } +- +- let actionIndex; +- let data = { +- locale: this.locale, +- tiles: sites.reduce((tiles, site, pos) => { +- // Only add data for non-empty tiles +- if (site) { +- // Remember which tiles data triggered the action +- let {link} = site; +- let tilesIndex = tiles.length; +- if (triggeringSiteIndex == pos) { +- actionIndex = tilesIndex; +- } +- +- // Make the payload in a way so keys can be excluded when stringified +- let id = link.directoryId; +- tiles.push({ +- id: id || site.enhancedId, +- pin: site.isPinned() ? 1 : undefined, +- pos: pos != tilesIndex ? pos : undefined, +- score: Math.round(link.frecency / PING_SCORE_DIVISOR) || undefined, +- url: site.enhancedId && "", +- }); +- } +- return tiles; +- }, []), +- }; +- +- // 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)); +- +- // Use this as an opportunity to potentially fetch new links +- return this._fetchAndCacheLinksIfNecessary(); + }, + + /** diff --git a/firefox-38-prefs.patch b/firefox-38-prefs.patch new file mode 100644 index 000000000000..0d1dd3bed6ee --- /dev/null +++ b/firefox-38-prefs.patch @@ -0,0 +1,107 @@ +--- 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 @@ + #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); + + // 0 = blank, 1 = home (browser.startup.homepage), 2 = last visited page, 3 = resume previous browser session + // The behavior of option 3 is detailed at: http://wiki.mozilla.org/Session_Restore +-pref("browser.startup.page", 1); ++pref("browser.startup.page", 0); + pref("browser.startup.homepage", "chrome://branding/locale/browserconfig.properties"); + + pref("browser.slowStartup.notificationDisabled", false); +@@ -442,7 +442,7 @@ + // Tabbed browser + pref("browser.tabs.closeWindowWithLastTab", true); + pref("browser.tabs.insertRelatedAfterCurrent", true); +-pref("browser.tabs.warnOnClose", true); ++pref("browser.tabs.warnOnClose", false); + pref("browser.tabs.warnOnCloseOtherTabs", true); + pref("browser.tabs.warnOnOpen", true); + pref("browser.tabs.maxOpenBeforeWarn", 15); +@@ -1629,7 +1629,7 @@ + pref("browser.newtab.preload", true); + + // Remembers if the about:newtab intro has been shown +-pref("browser.newtabpage.introShown", false); ++pref("browser.newtabpage.introShown", true); + + // 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 +@@ -29,7 +29,7 @@ + + pref("general.config.obscure_value", 13); // for MCD .cfg files + +-pref("general.warnOnAboutConfig", true); ++pref("general.warnOnAboutConfig", false); + + // maximum number of dated backups to keep at any time + pref("browser.bookmarks.max_backups", 5); +@@ -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 @@ + + // Satchel (Form Manager) prefs + pref("browser.formfill.debug", false); +-pref("browser.formfill.enable", true); ++pref("browser.formfill.enable", false); + pref("browser.formfill.expire_days", 180); + pref("browser.formfill.saveHttpsForms", true); + pref("browser.formfill.agedWeight", 2); diff --git a/firefox-fixed-loading-icon.png b/firefox-fixed-loading-icon.png Binary files differnew file mode 100644 index 000000000000..55f25e591ff5 --- /dev/null +++ b/firefox-fixed-loading-icon.png diff --git a/firefox-install-dir.patch b/firefox-install-dir.patch new file mode 100644 index 000000000000..51fe4ba0a855 --- /dev/null +++ b/firefox-install-dir.patch @@ -0,0 +1,12 @@ +diff -up firefox-29.0/mozilla-release/config/baseconfig.mk.orig firefox-29.0/mozilla-release/config/baseconfig.mk +--- mozilla-release/config/baseconfig.mk.orig 2014-04-22 15:38:52.948165295 +0200 ++++ mozilla-release/config/baseconfig.mk 2014-04-22 15:42:20.387481673 +0200 +@@ -4,7 +4,7 @@ + # whether a normal build is happening or whether the check is running. + includedir := $(includedir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) + idldir = $(datadir)/idl/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) +-installdir = $(libdir)/$(MOZ_APP_NAME)-$(MOZ_APP_VERSION) ++installdir = $(libdir)/$(MOZ_APP_NAME) + sdkdir = $(libdir)/$(MOZ_APP_NAME)-devel-$(MOZ_APP_VERSION) + ifndef TOP_DIST + TOP_DIST = dist diff --git a/firefox.desktop b/firefox.desktop new file mode 100644 index 000000000000..22515aa72c79 --- /dev/null +++ b/firefox.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Name=Firefox Web Browser +Comment=Browse the World Wide Web +GenericName=Web Browser +Exec=firefox %u +Terminal=false +Type=Application +Icon=firefox +Categories=GNOME;GTK;Network;WebBrowser; +MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp; +StartupNotify=true diff --git a/firefox.install b/firefox.install new file mode 100644 index 000000000000..1a1f4b16b5d2 --- /dev/null +++ b/firefox.install @@ -0,0 +1,13 @@ +post_install() { + update-desktop-database -q + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} + diff --git a/mozconfig b/mozconfig new file mode 100644 index 000000000000..947067e1f571 --- /dev/null +++ b/mozconfig @@ -0,0 +1,43 @@ +# Disable geolocation web services +ac_add_options --disable-necko-wifi + +# Disable webrtc, dangerous, leaks internal IP address (and external on Win) +ac_add_options --disable-webrtc + +# Disable safe browsing, prevent sending visited URLs to other parties +ac_add_options --disable-safe-browsing + +# Disable contacting Mozilla +ac_add_options --disable-crashreporter +ac_add_options --disable-updater +ac_add_options --disable-tests + +# Various options, mostly unrelated to privacy settings, change as needed +ac_add_options --enable-url-classifier +ac_add_options --prefix=/usr +ac_add_options --libdir=/usr/lib +ac_add_options --enable-application=browser +ac_add_options --enable-optimize +ac_add_options --enable-strip +ac_add_options --enable-install-strip +ac_add_options --enable-gio +ac_add_options --enable-official-branding +ac_add_options --enable-system-ffi +ac_add_options --enable-system-pixman +ac_add_options --with-pthreads +ac_add_options --with-system-bz2 +ac_add_options --with-system-jpeg +ac_add_options --with-system-png +ac_add_options --with-system-zlib +ac_add_options --enable-gstreamer=1.0 +ac_add_options --enable-system-hunspell +ac_add_options --enable-startup-notification +ac_add_options --disable-pulseaudio +ac_add_options --enable-system-sqlite +ac_add_options --with-system-libevent +ac_add_options --with-system-libvpx +ac_add_options --with-system-nspr +ac_add_options --with-system-nss +ac_add_options --with-system-icu + +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/firefox-build-dir |