diff options
Diffstat (limited to 'libre/iceweasel')
-rw-r--r-- | libre/iceweasel/PKGBUILD | 52 | ||||
-rw-r--r-- | libre/iceweasel/libre.patch | 830 |
2 files changed, 113 insertions, 769 deletions
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD index d8e223aef..15a9e60f5 100644 --- a/libre/iceweasel/PKGBUILD +++ b/libre/iceweasel/PKGBUILD @@ -16,20 +16,21 @@ _pgo=true # We're getting this from Debian Experimental _debname=iceweasel -_debver=41.0.2 +_debver=42.0 _debrel=deb1 _debrepo=http://ftp.debian.org/debian/pool/main/ debfile() { echo $@|sed -r 's@(.).*@\1/&/&@'; } +_pkgname=firefox pkgname=iceweasel epoch=1 pkgver=$_debver.$_debrel -pkgrel=3 +pkgrel=1 pkgdesc="A libre version of Debian Iceweasel, the standalone web browser based on Mozilla Firefox." arch=(i686 x86_64) license=(MPL GPL LGPL) -depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell icu=55.1 libevent libvpx=1.4.0 libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) +depends=(alsa-lib dbus-glib desktop-file-utils gtk2 hicolor-icon-theme hunspell icu=56.1 libevent libvpx=1.4.0 libxt mime-types mozilla-common nss sqlite startup-notification ttf-font) makedepends=(autoconf2.13 diffutils gconf gst-plugins-base-libs imagemagick imake inetutils libidl2 libpulse librsvg libxslt mesa mozilla-searchplugins pkg-config python2 quilt unzip yasm zip) options=(!emptydirs !makeflags debug) if $_pgo; then @@ -39,10 +40,10 @@ fi optdepends=('networkmanager: Location detection via available WiFi networks' 'gst-plugins-good: h.264 video' 'gst-libav: h.264 video') -url="http://packages.debian.org/experimental/${pkgname}" +url="http://packages.debian.org/experimental/$pkgname" install=$pkgname.install -replaces=("${pkgname}-libre" 'firefox') -conflicts=("${pkgname}-libre") +replaces=("$pkgname-libre" "$_pkgname") +conflicts=("$pkgname-libre") source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.xz" "$_debrepo/`debfile $_debname`_$_debver-${_debrel#deb}.debian.tar.xz" mozconfig @@ -53,10 +54,10 @@ source=("$_debrepo/`debfile $_debname`_$_debver.orig.tar.xz" $pkgname-install-dir.patch vendor.js $pkgname-fixed-loading-icon.png) -sha256sums=('707d44ac9a73868c5f2fe1832945ae66b297a8b7eaee3d45a43ab767fe9447cc' - '5d451c032fab037b86b628c34c8efaac69016ee793c1b33a4884ab8c56f53378' +sha256sums=('355e688b16330d8a86f01a2abaaa483971ba1eab9c7aca37fc064a7601645cc2' + 'd25335678825e23a5dd0c669d3f8fcfc666bf21944139b16e4fc46d203a8cfd8' '8e0b2aa899f9c71dfabf61e8e3427bda9a6ef76330bda4428d1badddcfc331a5' - '49566ee824f0b40d4eb90c20bc23dc2a4caca47ceee4554936d020575dda0598' + 'a28bd21522f0c7d93e9669f1fcc35309c9841d9b2332aa16b0b746ad18fc878c' '93e3001ce152e1d142619e215a9ef07dd429943b99d21726c25da9ceb31e31cd' '56eba484179c7f498076f8dc603d8795e99dce8c6ea1da9736318c59d666bff6' '2257dc69886bd0b72c48675a27c3a88b9cf6b598252c9e9f1c99763180684fc3' @@ -65,15 +66,13 @@ sha256sums=('707d44ac9a73868c5f2fe1832945ae66b297a8b7eaee3d45a43ab767fe9447cc' '68e3a5b47c6d175cc95b98b069a15205f027cab83af9e075818d38610feb6213') prepare() { - export DEBIAN_BUILD="mozilla-release" + cd "$srcdir/$_pkgname-$_debver" + mv "$srcdir/debian" . export QUILT_PATCHES=debian/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' - mv debian "$srcdir/$DEBIAN_BUILD" - cd "$srcdir/$DEBIAN_BUILD" - quilt push -av # Put gnu_headshadow.png and drm-free.png in the source code @@ -93,9 +92,6 @@ prepare() { \|["]displayName["][:] ["]QuickTime["]| s|QuickTime|MOV Player| \|installLinux| s|true|false| ' browser/base/content/browser-plugins.js - rm -v browser/base/content/abouthome/snippet*.png || true - sed -i '\|abouthome/snippet|d - ' browser/base/jar.mn # Load our build config, disable SafeSearch cp "$srcdir/mozconfig" .mozconfig @@ -120,9 +116,7 @@ prepare() { } build() { - export DEBIAN_BUILD="mozilla-release" - - cd "$srcdir/$DEBIAN_BUILD" + cd "$srcdir/$_pkgname-$_debver" export PATH="$srcdir/path:$PATH" export PYTHON="/usr/bin/python2" @@ -137,9 +131,7 @@ build() { } package() { - export DEBIAN_BUILD="mozilla-release" - - cd "$srcdir/$DEBIAN_BUILD" + cd "$srcdir/$_pkgname-$_debver" make -f client.mk DESTDIR="$pkgdir" INSTALL_SDK= install install -Dm644 ../vendor.js "$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js" @@ -147,23 +139,17 @@ package() { _brandingdir=debian/branding brandingdir=moz-objdir/$_brandingdir icondir="$pkgdir/usr/share/icons/hicolor" - for i in 16 32 48 64; do + for i in 16 22 24 32 48 64 128 192 256 384; do + convert -background none "$_brandingdir/${pkgname}_icon.svg" \ + -resize ${i}x${i}^ -gravity center -extent ${i}x${i} \ + "$brandingdir/default$i.png" install -Dm644 "$brandingdir/default$i.png" \ "$icondir/${i}x${i}/apps/$pkgname.png" done - install -Dm644 "$brandingdir/mozicon128.png" \ - "$icondir/128x128/apps/$pkgname.png" + install -Dm644 "$_brandingdir/${pkgname}_icon.svg" \ "$icondir/scalable/apps/$pkgname.svg" - # Add missing icons - for i in 22 24 192 256 384; do - rsvg-convert -w $i -h $i -o "$brandingdir/default$i.png" \ - "$_brandingdir/${pkgname}_icon.svg" - install -Dm644 "$brandingdir/default$i.png" \ - "$icondir/${i}x${i}/apps/$pkgname.png" - done - install -d "$pkgdir/usr/share/applications" install -m644 "$srcdir/$pkgname.desktop" \ "$pkgdir/usr/share/applications" diff --git a/libre/iceweasel/libre.patch b/libre/iceweasel/libre.patch index 96e62e380..a31729ad2 100644 --- a/libre/iceweasel/libre.patch +++ b/libre/iceweasel/libre.patch @@ -1,93 +1,7 @@ -diff -Nur mozilla-release.orig/browser/app/profile/firefox.js mozilla-release/browser/app/profile/firefox.js ---- mozilla-release.orig/browser/app/profile/firefox.js 2015-09-25 00:51:23.690788053 -0300 -+++ mozilla-release/browser/app/profile/firefox.js 2015-09-25 00:53:28.874699117 -0300 -@@ -281,11 +281,6 @@ - pref("browser.slowStartup.timeThreshold", 40000); - pref("browser.slowStartup.maxSamples", 5); - --// This url, if changed, MUST continue to point to an https url. Pulling arbitrary content to inject into --// this page over http opens us up to a man-in-the-middle attack that we'd rather not face. If you are a downstream --// repackager of this code using an alternate snippet url, please keep your users safe --pref("browser.aboutHomeSnippets.updateUrl", "https://snippets.cdn.mozilla.net/%STARTPAGE_VERSION%/%NAME%/%VERSION%/%APPBUILDID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/"); -- - pref("browser.enable_automatic_image_resizing", true); - pref("browser.casting.enabled", false); - pref("browser.chrome.site_icons", true); -diff -Nur mozilla-release.orig/browser/base/content/abouthome/aboutHome.css mozilla-release/browser/base/content/abouthome/aboutHome.css ---- mozilla-release.orig/browser/base/content/abouthome/aboutHome.css 2015-08-07 12:54:06.000000000 -0300 -+++ mozilla-release/browser/base/content/abouthome/aboutHome.css 2015-08-14 02:46:44.222645356 -0300 -@@ -49,11 +49,6 @@ - background-repeat: no-repeat; - } - --#searchForm, --#snippets { -- width: 470px; --} -- - #searchForm { - display: -moz-box; - } -@@ -72,8 +67,7 @@ - #searchEngineLogo { - display: inline-block; - height: 28px; -- width: 70px; -- min-width: 70px; -+ width: 28px; - } - - #searchIcon { -@@ -175,48 +169,6 @@ - transition-duration: 0ms; - } - --#defaultSnippet1, --#defaultSnippet2, --#rightsSnippet { -- display: block; -- min-height: 38px; -- background: 30px center no-repeat; -- padding: 6px 0; -- -moz-padding-start: 79px; --} -- --#rightsSnippet[hidden] { -- display: none; --} -- --#defaultSnippet1:-moz-dir(rtl), --#defaultSnippet2:-moz-dir(rtl), --#rightsSnippet:-moz-dir(rtl) { -- background-position: right 30px center; --} -- --#defaultSnippet1 { -- background-image: url("chrome://browser/content/abouthome/snippet1.png"); --} -- --#defaultSnippet2 { -- background-image: url("chrome://browser/content/abouthome/snippet2.png"); --} -- --#snippets { -- display: inline-block; -- text-align: start; -- margin: 12px 0; -- color: #3c3c3c; -- font-size: 75%; -- /* 12px is the computed font size, 15px the computed line height of the snippets -- with Segoe UI on a default Windows 7 setup. The 15/12 multiplier approximately -- converts em from units of font-size to units of line-height. The goal is to -- preset the height of a three-line snippet to avoid visual moving/flickering as -- the snippets load. */ -- min-height: calc(15/12 * 3em); --} -- - #launcher { - display: -moz-box; - -moz-box-align: center; -@@ -365,26 +317,46 @@ +diff -Nur a/browser/base/content/abouthome/aboutHome.css b/browser/base/content/abouthome/aboutHome.css +--- a/browser/base/content/abouthome/aboutHome.css 2015-10-29 19:17:46.000000000 -0300 ++++ b/browser/base/content/abouthome/aboutHome.css 2015-11-05 02:05:34.656054627 -0300 +@@ -347,26 +347,46 @@ width: 32px; } @@ -141,34 +55,7 @@ diff -Nur mozilla-release.orig/browser/base/content/abouthome/aboutHome.css mozi } /* [HiDPI] -@@ -400,26 +372,6 @@ - background-image: url("chrome://browser/skin/magnifier@2x.png"); - } - -- #defaultSnippet1, -- #defaultSnippet2, -- #rightsSnippet { -- background-size: 40px; -- } -- -- #defaultSnippet1 { -- background-image: url("chrome://browser/content/abouthome/snippet1@2x.png"); -- } -- -- #defaultSnippet2 { -- background-image: url("chrome://browser/content/abouthome/snippet2@2x.png"); -- } -- -- .launchButton::before, -- #aboutMozilla::before { -- transform: scale(.5); -- transform-origin: 0 0; -- } -- - .launchButton:-moz-dir(rtl)::before, - #aboutMozilla:-moz-dir(rtl)::before { - transform: scale(.5) translateX(32px); -@@ -465,9 +417,5 @@ +@@ -443,9 +463,5 @@ transform: scale(-0.5, 0.5) translateX(24px); transform-origin: top center; } @@ -178,501 +65,44 @@ diff -Nur mozilla-release.orig/browser/base/content/abouthome/aboutHome.css mozi - } } -diff -Nur mozilla-release.orig/browser/base/content/abouthome/aboutHome.js mozilla-release/browser/base/content/abouthome/aboutHome.js ---- mozilla-release.orig/browser/base/content/abouthome/aboutHome.js 2015-09-17 19:13:23.000000000 -0300 -+++ mozilla-release/browser/base/content/abouthome/aboutHome.js 2015-09-25 00:53:28.894698145 -0300 -@@ -5,155 +5,54 @@ - "use strict"; - - const SEARCH_ENGINES = { -- "Google": { -- // This is the "2x" image designed for OS X retina resolution, Windows at 192dpi, etc.; -- // it will be scaled down as necessary on lower-dpi displays. -- // This needs to be defined in a single line to keep the JS parser from creating many -- // intermediate strings in memory. See bug 986672. -+ "searx": { - image: "data:image/png;base64,\ --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" - } - }; - --// The process of adding a new default snippet involves: --// * add a new entity to aboutHome.dtd --// * add a <span/> for it in aboutHome.xhtml --// * add an entry here in the proper ordering (based on spans) --// The <a/> part of the snippet will be linked to the corresponding url. +diff -Nur a/browser/base/content/abouthome/aboutHome.js b/browser/base/content/abouthome/aboutHome.js +--- a/browser/base/content/abouthome/aboutHome.js 2015-10-29 19:17:46.000000000 -0300 ++++ b/browser/base/content/abouthome/aboutHome.js 2015-11-05 02:08:05.691711824 -0300 +@@ -9,17 +9,13 @@ + // * add a <span/> for it in aboutHome.xhtml + // * add an entry here in the proper ordering (based on spans) + // The <a/> part of the snippet will be linked to the corresponding url. -const DEFAULT_SNIPPETS_URLS = [ - "https://www.mozilla.org/firefox/features/?utm_source=snippet&utm_medium=snippet&utm_campaign=default+feature+snippet" -, "https://addons.mozilla.org/firefox/?utm_source=snippet&utm_medium=snippet&utm_campaign=addons" -]; -- ++const DEFAULT_SNIPPETS_URLS = [ "" ]; + -const SNIPPETS_UPDATE_INTERVAL_MS = 14400000; // 4 hours. -- --// IndexedDB storage constants. --const DATABASE_NAME = "abouthome"; --const DATABASE_VERSION = 1; ++const SNIPPETS_UPDATE_INTERVAL_MS = 86400000; // 1 Day. + + // IndexedDB storage constants. + const DATABASE_NAME = "abouthome"; + const DATABASE_VERSION = 1; -const DATABASE_STORAGE = "persistent"; --const SNIPPETS_OBJECTSTORE_NAME = "snippets"; -- - // This global tracks if the page has been set up before, to prevent double inits - let gInitialized = false; - let gObserver = new MutationObserver(function (mutations) { -@@ -161,7 +60,6 @@ - if (mutation.attributeName == "searchEngineName") { - setupSearchEngine(); - if (!gInitialized) { -- ensureSnippetsMapThen(loadSnippets); - gInitialized = true; - } - return; -@@ -186,118 +84,6 @@ - window.removeEventListener("resize", fitToWidth); - }); - --// This object has the same interface as Map and is used to store and retrieve --// the snippets data. It is lazily initialized by ensureSnippetsMapThen(), so --// be sure its callback returned before trying to use it. --let gSnippetsMap; --let gSnippetsMapCallbacks = []; -- --/** -- * Ensure the snippets map is properly initialized. -- * -- * @param aCallback -- * Invoked once the map has been initialized, gets the map as argument. -- * @note Snippets should never directly manage the underlying storage, since -- * it may change inadvertently. -- */ --function ensureSnippetsMapThen(aCallback) --{ -- if (gSnippetsMap) { -- aCallback(gSnippetsMap); -- return; -- } -- -- // Handle multiple requests during the async initialization. -- gSnippetsMapCallbacks.push(aCallback); -- if (gSnippetsMapCallbacks.length > 1) { -- // We are already updating, the callbacks will be invoked when done. -- return; -- } -- -- let invokeCallbacks = function () { -- if (!gSnippetsMap) { -- gSnippetsMap = Object.freeze(new Map()); -- } -- -- for (let callback of gSnippetsMapCallbacks) { -- callback(gSnippetsMap); -- } -- gSnippetsMapCallbacks.length = 0; -- } -- -- let openRequest = indexedDB.open(DATABASE_NAME, {version: DATABASE_VERSION, -- storage: DATABASE_STORAGE}); -- -- openRequest.onerror = function (event) { -- // Try to delete the old database so that we can start this process over -- // next time. -- indexedDB.deleteDatabase(DATABASE_NAME); -- invokeCallbacks(); -- }; -- -- openRequest.onupgradeneeded = function (event) { -- let db = event.target.result; -- if (!db.objectStoreNames.contains(SNIPPETS_OBJECTSTORE_NAME)) { -- db.createObjectStore(SNIPPETS_OBJECTSTORE_NAME); -- } -- } -- -- openRequest.onsuccess = function (event) { -- let db = event.target.result; -- -- db.onerror = function (event) { -- invokeCallbacks(); -- } -- -- db.onversionchange = function (event) { -- event.target.close(); -- invokeCallbacks(); -- } -- -- let cache = new Map(); -- let cursorRequest = db.transaction(SNIPPETS_OBJECTSTORE_NAME) -- .objectStore(SNIPPETS_OBJECTSTORE_NAME).openCursor(); -- cursorRequest.onerror = function (event) { -- invokeCallbacks(); -- } -- -- cursorRequest.onsuccess = function(event) { -- let cursor = event.target.result; -- -- // Populate the cache from the persistent storage. -- if (cursor) { -- cache.set(cursor.key, cursor.value); -- cursor.continue(); -- return; -- } -- -- // The cache has been filled up, create the snippets map. -- gSnippetsMap = Object.freeze({ -- get: (aKey) => cache.get(aKey), -- set: function (aKey, aValue) { -- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") -- .objectStore(SNIPPETS_OBJECTSTORE_NAME).put(aValue, aKey); -- return cache.set(aKey, aValue); -- }, -- has: (aKey) => cache.has(aKey), -- delete: function (aKey) { -- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") -- .objectStore(SNIPPETS_OBJECTSTORE_NAME).delete(aKey); -- return cache.delete(aKey); -- }, -- clear: function () { -- db.transaction(SNIPPETS_OBJECTSTORE_NAME, "readwrite") -- .objectStore(SNIPPETS_OBJECTSTORE_NAME).clear(); -- return cache.clear(); -- }, -- get size() { return cache.size; }, -- }); -- -- setTimeout(invokeCallbacks, 0); -- } -- } --} -- - function onSearchSubmit(aEvent) - { - let searchText = document.getElementById("searchText"); -@@ -389,144 +175,6 @@ - document.dispatchEvent(event); - } + const SNIPPETS_OBJECTSTORE_NAME = "snippets"; --/** -- * Update the local snippets from the remote storage, then show them through -- * showSnippets. -- */ --function loadSnippets() --{ -- if (!gSnippetsMap) -- throw new Error("Snippets map has not properly been initialized"); -- -- // Allow tests to modify the snippets map before using it. -- var event = new CustomEvent("AboutHomeLoadSnippets", {bubbles:true}); -- document.dispatchEvent(event); -- -- // Check cached snippets version. -- let cachedVersion = gSnippetsMap.get("snippets-cached-version") || 0; -- let currentVersion = document.documentElement.getAttribute("snippetsVersion"); -- if (cachedVersion < currentVersion) { -- // The cached snippets are old and unsupported, restart from scratch. -- gSnippetsMap.clear(); -- } -- -- // Check last snippets update. -- let lastUpdate = gSnippetsMap.get("snippets-last-update"); -- let updateURL = document.documentElement.getAttribute("snippetsURL"); -- let shouldUpdate = !lastUpdate || -- Date.now() - lastUpdate > SNIPPETS_UPDATE_INTERVAL_MS; -- if (updateURL && shouldUpdate) { -- // Try to update from network. -- let xhr = new XMLHttpRequest(); -- xhr.timeout = 5000; -- try { -- xhr.open("GET", updateURL, true); -- } catch (ex) { -- showSnippets(); -- loadCompleted(); -- return; -- } -- // Even if fetching should fail we don't want to spam the server, thus -- // set the last update time regardless its results. Will retry tomorrow. -- gSnippetsMap.set("snippets-last-update", Date.now()); -- xhr.onloadend = function (event) { -- if (xhr.status == 200) { -- gSnippetsMap.set("snippets", xhr.responseText); -- gSnippetsMap.set("snippets-cached-version", currentVersion); -- } -- showSnippets(); -- loadCompleted(); -- }; -- xhr.send(null); -- } else { -- showSnippets(); -- loadCompleted(); -- } --} -- --/** -- * Shows locally cached remote snippets, or default ones when not available. -- * -- * @note: snippets should never invoke showSnippets(), or they may cause -- * a "too much recursion" exception. -- */ --let _snippetsShown = false; --function showSnippets() --{ -- let snippetsElt = document.getElementById("snippets"); -- -- // Show about:rights notification, if needed. -- let showRights = document.documentElement.getAttribute("showKnowYourRights"); -- if (showRights) { -- let rightsElt = document.getElementById("rightsSnippet"); -- let anchor = rightsElt.getElementsByTagName("a")[0]; -- anchor.href = "about:rights"; -- snippetsElt.appendChild(rightsElt); -- rightsElt.removeAttribute("hidden"); -- return; -- } -- -- if (!gSnippetsMap) -- throw new Error("Snippets map has not properly been initialized"); -- if (_snippetsShown) { -- // There's something wrong with the remote snippets, just in case fall back -- // to the default snippets. -- showDefaultSnippets(); -- throw new Error("showSnippets should never be invoked multiple times"); -- } -- _snippetsShown = true; -- -- let snippets = gSnippetsMap.get("snippets"); -- // If there are remotely fetched snippets, try to to show them. -- if (snippets) { -- // Injecting snippets can throw if they're invalid XML. -- try { -- snippetsElt.innerHTML = snippets; -- // Scripts injected by innerHTML are inactive, so we have to relocate them -- // through DOM manipulation to activate their contents. -- Array.forEach(snippetsElt.getElementsByTagName("script"), function(elt) { -- let relocatedScript = document.createElement("script"); -- relocatedScript.type = "text/javascript;version=1.8"; -- relocatedScript.text = elt.text; -- elt.parentNode.replaceChild(relocatedScript, elt); -- }); -- return; -- } catch (ex) { -- // Bad content, continue to show default snippets. -- } -- } -- -- showDefaultSnippets(); --} -- --/** -- * Clear snippets element contents and show default snippets. -- */ --function showDefaultSnippets() --{ -- // Clear eventual contents... -- let snippetsElt = document.getElementById("snippets"); -- snippetsElt.innerHTML = ""; -- -- // ...then show default snippets. -- let defaultSnippetsElt = document.getElementById("defaultSnippets"); -- let entries = defaultSnippetsElt.querySelectorAll("span"); -- // Choose a random snippet. Assume there is always at least one. -- let randIndex = Math.floor(Math.random() * entries.length); -- let entry = entries[randIndex]; -- // Inject url in the eventual link. -- if (DEFAULT_SNIPPETS_URLS[randIndex]) { -- let links = entry.getElementsByTagName("a"); -- // Default snippets can have only one link, otherwise something is messed -- // up in the translation. -- if (links.length == 1) { -- links[0].href = DEFAULT_SNIPPETS_URLS[randIndex]; -- } -- } -- // Move the default snippet to the snippets element. -- snippetsElt.appendChild(entry); --} -- - function fitToWidth() { - if (window.scrollMaxX) { - document.body.setAttribute("narrow", "true"); -diff -Nur mozilla-release.orig/browser/base/content/abouthome/aboutHome.xhtml mozilla-release/browser/base/content/abouthome/aboutHome.xhtml ---- mozilla-release.orig/browser/base/content/abouthome/aboutHome.xhtml 2015-01-09 02:38:12.000000000 -0200 -+++ mozilla-release/browser/base/content/abouthome/aboutHome.xhtml 2015-06-26 18:04:38.166559250 -0300 -@@ -48,15 +48,6 @@ - <input id="searchSubmit" type="submit" value="&abouthome.searchEngineButton.label;"/> - </form> + // This global tracks if the page has been set up before, to prevent double inits +diff -Nur a/browser/base/content/abouthome/aboutHome.xhtml b/browser/base/content/abouthome/aboutHome.xhtml +--- a/browser/base/content/abouthome/aboutHome.xhtml 2015-10-29 19:17:46.000000000 -0300 ++++ b/browser/base/content/abouthome/aboutHome.xhtml 2015-11-05 02:21:42.590232015 -0300 +@@ -48,10 +48,6 @@ </div> -- -- <div id="snippetContainer"> + + <div id="snippetContainer"> - <div id="defaultSnippets" hidden="true"> - <span id="defaultSnippet1">&abouthome.defaultSnippet1.v1;</span> - <span id="defaultSnippet2">&abouthome.defaultSnippet2.v1;</span> - </div> -- <span id="rightsSnippet" hidden="true">&abouthome.rightsSnippet;</span> -- <div id="snippets"/> -- </div> - </div> - <div class="spacer"/> - -@@ -76,6 +67,7 @@ + <span id="rightsSnippet" hidden="true">&abouthome.rightsSnippet;</span> + <div id="snippets"/> + </div> +@@ -74,6 +70,7 @@ <button class="launchButton" id="restorePreviousSession">&historyRestoreLastSession.label;</button> </div> @@ -681,9 +111,9 @@ diff -Nur mozilla-release.orig/browser/base/content/abouthome/aboutHome.xhtml mo + <a id="aboutDRMfree" href="https://defectivebydesign.org/drm-free"></a> </body> </html> -diff -Nur mozilla-release.orig/browser/base/jar.mn mozilla-release/browser/base/jar.mn ---- mozilla-release.orig/browser/base/jar.mn 2015-01-09 02:38:12.000000000 -0200 -+++ mozilla-release/browser/base/jar.mn 2015-06-27 05:45:29.662372681 -0300 +diff -Nur a/browser/base/jar.mn b/browser/base/jar.mn +--- a/browser/base/jar.mn 2015-10-29 19:17:46.000000000 -0300 ++++ b/browser/base/jar.mn 2015-11-05 02:04:47.155135935 -0300 @@ -32,7 +32,8 @@ content/browser/abouthome/settings.png (content/abouthome/settings.png) content/browser/abouthome/restore.png (content/abouthome/restore.png) @@ -702,12 +132,12 @@ diff -Nur mozilla-release.orig/browser/base/jar.mn mozilla-release/browser/base/ content/browser/aboutNetError.xhtml (content/aboutNetError.xhtml) -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/aboutHome.dtd mozilla-release/browser/locales/en-US/chrome/browser/aboutHome.dtd ---- mozilla-release.orig/browser/locales/en-US/chrome/browser/aboutHome.dtd 2015-01-09 02:38:16.000000000 -0200 -+++ mozilla-release/browser/locales/en-US/chrome/browser/aboutHome.dtd 2015-01-16 15:03:01.408257268 -0200 -@@ -13,17 +13,6 @@ +diff -Nur a/browser/locales/en-US/chrome/browser/aboutHome.dtd b/browser/locales/en-US/chrome/browser/aboutHome.dtd +--- a/browser/locales/en-US/chrome/browser/aboutHome.dtd 2015-10-29 19:17:49.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser/aboutHome.dtd 2015-11-05 02:42:55.632130642 -0300 +@@ -11,14 +11,6 @@ - <!ENTITY abouthome.searchEngineButton.label "Search"> + <!ENTITY abouthome.pageTitle "&brandFullName; Start Page"> -<!-- LOCALIZATION NOTE (abouthome.defaultSnippet1.v1): - text in <a/> will be linked to the Firefox features page on mozilla.com @@ -717,15 +147,12 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/aboutHome.dt - text in <a/> will be linked to the featured add-ons on addons.mozilla.org ---> -<!ENTITY abouthome.defaultSnippet2.v1 "It's easy to customize your Firefox exactly the way you want it. <a>Choose from thousands of add-ons</a>."> --<!-- LOCALIZATION NOTE (abouthome.rightsSnippet): text in <a/> will be linked to about:rights --> --<!ENTITY abouthome.rightsSnippet "&brandFullName; is free and open source software from the non-profit Mozilla Foundation. <a>Know your rights…</a>"> -- - <!ENTITY abouthome.bookmarksButton.label "Bookmarks"> - <!ENTITY abouthome.historyButton.label "History"> - <!-- LOCALIZATION NOTE (abouthome.preferencesButtonWin.label): The label for the -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd mozilla-release/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd ---- mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd 2015-01-09 02:38:16.000000000 -0200 -+++ mozilla-release/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd 2015-01-31 12:32:11.570408623 -0200 + <!-- LOCALIZATION NOTE (abouthome.rightsSnippet): text in <a/> will be linked to about:rights --> + <!ENTITY abouthome.rightsSnippet "&brandFullName; is free and open source software from the non-profit Mozilla Foundation. <a>Know your rights…</a>"> + +diff -Nur a/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd b/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd +--- a/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd 2015-10-29 19:17:49.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser/devtools/connection-screen.dtd 2015-11-05 02:04:47.171801755 -0300 @@ -24,7 +24,7 @@ <!-- LOCALIZATION NOTE (remoteHelp, remoteDocumentation, remoteHelpSuffix): these strings will be concatenated in a single label, remoteDocumentation will @@ -735,9 +162,9 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/con <!ENTITY remoteDocumentation "documentation"> <!ENTITY remoteHelpSuffix "."> -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties mozilla-release/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties ---- mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties 2015-01-09 02:38:16.000000000 -0200 -+++ mozilla-release/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties 2015-01-31 12:33:10.797565416 -0200 +diff -Nur a/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties b/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties +--- a/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties 2015-10-29 19:17:50.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser/devtools/sourceeditor.properties 2015-11-05 02:04:47.171801755 -0300 @@ -4,7 +4,7 @@ # LOCALIZATION NOTE These strings are used inside the Source Editor component. @@ -747,9 +174,9 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/sou # Scratchpad and the Style Editor tools. # LOCALIZATION NOTE The correct localization of this file might be to keep it -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd mozilla-release/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd ---- mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd 2015-09-17 19:13:28.000000000 -0300 -+++ mozilla-release/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd 2015-09-25 00:53:28.894698145 -0300 +diff -Nur a/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd b/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd +--- a/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd 2015-10-29 19:17:50.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd 2015-11-05 02:04:47.171801755 -0300 @@ -90,7 +90,7 @@ - checkbox that toggles remote debugging, i.e. devtools.debugger.remote-enabled - boolean preference in about:config, in the options panel. --> @@ -768,9 +195,9 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/too <!-- LOCALIZATION NOTE (options.selectAdditionalTools.label): This is the label for - the heading of group of checkboxes corresponding to the developer tools -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/webide.dtd mozilla-release/browser/locales/en-US/chrome/browser/devtools/webide.dtd ---- mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/webide.dtd 2015-05-08 13:55:16.000000000 -0300 -+++ mozilla-release/browser/locales/en-US/chrome/browser/devtools/webide.dtd 2015-05-15 06:52:57.473522026 -0300 +diff -Nur a/browser/locales/en-US/chrome/browser/devtools/webide.dtd b/browser/locales/en-US/chrome/browser/devtools/webide.dtd +--- a/browser/locales/en-US/chrome/browser/devtools/webide.dtd 2015-10-29 19:17:50.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser/devtools/webide.dtd 2015-11-05 02:04:47.171801755 -0300 @@ -2,7 +2,7 @@ - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> @@ -789,9 +216,9 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/web <!-- quit app --> <!ENTITY key_quit "W"> <!-- open menu --> -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/webide.properties mozilla-release/browser/locales/en-US/chrome/browser/devtools/webide.properties ---- mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/webide.properties 2015-09-17 19:13:28.000000000 -0300 -+++ mozilla-release/browser/locales/en-US/chrome/browser/devtools/webide.properties 2015-09-25 00:53:28.894698145 -0300 +diff -Nur a/browser/locales/en-US/chrome/browser/devtools/webide.properties b/browser/locales/en-US/chrome/browser/devtools/webide.properties +--- a/browser/locales/en-US/chrome/browser/devtools/webide.properties 2015-10-29 19:17:50.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser/devtools/webide.properties 2015-11-05 02:04:47.171801755 -0300 @@ -2,8 +2,8 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -816,9 +243,9 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser/devtools/web addons_install_button=install addons_uninstall_button=uninstall addons_adb_label=ADB Helper Add-on -diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser-region/region.properties mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties ---- mozilla-release.orig/browser/locales/en-US/chrome/browser-region/region.properties 2015-08-07 12:54:09.000000000 -0300 -+++ mozilla-release/browser/locales/en-US/chrome/browser-region/region.properties 2015-08-14 02:25:49.750538381 -0300 +diff -Nur a/browser/locales/en-US/chrome/browser-region/region.properties b/browser/locales/en-US/chrome/browser-region/region.properties +--- a/browser/locales/en-US/chrome/browser-region/region.properties 2015-10-29 19:17:49.000000000 -0300 ++++ b/browser/locales/en-US/chrome/browser-region/region.properties 2015-11-05 02:04:47.171801755 -0300 @@ -3,17 +3,12 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -866,9 +293,9 @@ diff -Nur mozilla-release.orig/browser/locales/en-US/chrome/browser-region/regio -gecko.handlerService.schemes.ircs.0.uriTemplate=https://www.mibbit.com/?url=%s +gecko.handlerService.schemes.ircs.0.name=Freenode Web IRC +gecko.handlerService.schemes.ircs.0.uriTemplate=https://webchat.freenode.net -diff -Nur mozilla-release.orig/browser/locales/generic/profile/bookmarks.html.in mozilla-release/browser/locales/generic/profile/bookmarks.html.in ---- mozilla-release.orig/browser/locales/generic/profile/bookmarks.html.in 2015-09-17 19:13:28.000000000 -0300 -+++ mozilla-release/browser/locales/generic/profile/bookmarks.html.in 2015-09-25 00:59:56.402632811 -0300 +diff -Nur a/browser/locales/generic/profile/bookmarks.html.in b/browser/locales/generic/profile/bookmarks.html.in +--- a/browser/locales/generic/profile/bookmarks.html.in 2015-10-29 19:17:50.000000000 -0300 ++++ b/browser/locales/generic/profile/bookmarks.html.in 2015-11-05 02:04:47.171801755 -0300 @@ -15,13 +15,20 @@ <DT><H3 PERSONAL_TOOLBAR_FOLDER="true" ID="rdf:#$FvPhC3">@bookmarks_toolbarfolder@</H3> <DD>@bookmarks_toolbarfolder_description@ @@ -896,103 +323,34 @@ diff -Nur mozilla-release.orig/browser/locales/generic/profile/bookmarks.html.in + <DT><A HREF="https://www.h-node.org/" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABgElEQVQ4jaXRz2uSARzHcb0vlRGEzTVWISU1BVkFYTIyjNK1pKcxHA+yhWMWIamHYikFgpoLIi9jwegi3QbL9SzdLmMbM9J+DkJBgm5RDvEPeHeQHOyQz0OH9+V7ePGBr0pqpPmfVPsP8a0AR4MnMEwf48x9K0s/E8oAY9iEMOvD+8yP2qVjrhhRBnSN61n5sIpULqC+pGHh8wNlgEY8jPQXcGh4VXukDND5evYAl46odIuXtYdKAANSudAChO52/XeMZMohecCbcoGdH99Y+7LO72adT9+/4nh8nYOjBl7/SsoB8gBkpHk8T0S2K++pN3fRin3cfnFDHvCuWkI9rEMvHGEo5gbAHnXhnLF1BpZLeRaLOVT2A8Q3A5wMngXgWtKLxX9KPqC+rCWQvYkpeK4NWKcGOgO50ts2MJJ0cPreeQDciTHMchZYIhcwh2wcuqjn+ccwGm9v6wsTxxn0dVgQXZ7Ek3Agpq6QrcaQGmmebtxFSDkRU1fJVmL/BpT2ByV/3eDMhinRAAAAAElFTkSuQmCC">h-node</A> </DL><p> </DL><p> -diff -Nur mozilla-release.orig/browser/modules/AboutHome.jsm mozilla-release/browser/modules/AboutHome.jsm ---- mozilla-release.orig/browser/modules/AboutHome.jsm 2015-09-17 19:13:28.000000000 -0300 -+++ mozilla-release/browser/modules/AboutHome.jsm 2015-09-25 00:53:28.918030343 -0300 -@@ -8,7 +8,7 @@ - let Ci = Components.interfaces; - let Cu = Components.utils; - --this.EXPORTED_SYMBOLS = [ "AboutHomeUtils", "AboutHome" ]; -+this.EXPORTED_SYMBOLS = [ "AboutHome" ]; - - Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); - Components.utils.import("resource://gre/modules/Services.jsm"); -@@ -22,68 +22,6 @@ - XPCOMUtils.defineLazyModuleGetter(this, "Promise", - "resource://gre/modules/Promise.jsm"); - --// Url to fetch snippets, in the urlFormatter service format. --const SNIPPETS_URL_PREF = "browser.aboutHomeSnippets.updateUrl"; -- --// Should be bumped up if the snippets content format changes. --const STARTPAGE_VERSION = 4; -- --this.AboutHomeUtils = { -- get snippetsVersion() { -- return STARTPAGE_VERSION; -- }, -- -- /* -- * showKnowYourRights - Determines if the user should be shown the -- * about:rights notification. The notification should *not* be shown if -- * we've already shown the current version, or if the override pref says to -- * never show it. The notification *should* be shown if it's never been seen -- * before, if a newer version is available, or if the override pref says to -- * always show it. -- */ -- get showKnowYourRights() { -- // Look for an unconditional override pref. If set, do what it says. -- // (true --> never show, false --> always show) -- try { -- return !Services.prefs.getBoolPref("browser.rights.override"); -- } catch (e) { } -- // Ditto, for the legacy EULA pref. -- try { -- return !Services.prefs.getBoolPref("browser.EULA.override"); -- } catch (e) { } -- -- if (!AppConstants.MOZILLA_OFFICIAL) { -- // Non-official builds shouldn't show the notification. -- return false; -- } -- -- // Look to see if the user has seen the current version or not. -- var currentVersion = Services.prefs.getIntPref("browser.rights.version"); -- try { -- return !Services.prefs.getBoolPref("browser.rights." + currentVersion + ".shown"); -- } catch (e) { } -- -- // Legacy: If the user accepted a EULA, we won't annoy them with the -- // equivalent about:rights page until the version changes. -- try { -- return !Services.prefs.getBoolPref("browser.EULA." + currentVersion + ".accepted"); -- } catch (e) { } -- -- // We haven't shown the notification before, so do so now. -- return true; -- } --}; -- --/** -- * Returns the URL to fetch snippets from, in the urlFormatter service format. -- */ --XPCOMUtils.defineLazyGetter(AboutHomeUtils, "snippetsURL", function() { -- let updateURL = Services.prefs -- .getCharPref(SNIPPETS_URL_PREF) -- .replace("%STARTPAGE_VERSION%", STARTPAGE_VERSION); -- return Services.urlFormatter.formatURL(updateURL); --}); -- - /** - * This code provides services to the about:home page. Whenever - * about:home needs to do something chrome-privileged, it sends a -@@ -264,18 +202,9 @@ - }).then(function(engineName) { - let data = { - showRestoreLastSession: ss.canRestoreLastSession, -- snippetsURL: AboutHomeUtils.snippetsURL, -- showKnowYourRights: AboutHomeUtils.showKnowYourRights, -- snippetsVersion: AboutHomeUtils.snippetsVersion, - defaultEngineName: engineName - }; - -- if (AboutHomeUtils.showKnowYourRights) { -- // Set pref to indicate we've shown the notification. -- let currentVersion = Services.prefs.getIntPref("browser.rights.version"); -- Services.prefs.setBoolPref("browser.rights." + currentVersion + ".shown", true); -- } -- - if (target && target.messageManager) { - target.messageManager.sendAsyncMessage("AboutHome:Update", data); - } else { +diff -Nur a/debian/branding/Makefile.in b/debian/branding/Makefile.in +--- a/debian/branding/Makefile.in 2015-11-03 20:35:49.000000000 -0300 ++++ b/debian/branding/Makefile.in 2015-11-05 04:24:34.326560824 -0300 +@@ -32,9 +32,9 @@ + GARBAGE += document_icon.png default64.png + + mozicon128.png default16.png default32.png default48.png default64.png: $(srcdir)/iceweasel_icon.svg +- rsvg-convert -w $(SIZE) -h $(SIZE) -o $@ $< ++ convert -background none $< -resize $(SIZE)x$(SIZE)^ -gravity center -extent $(SIZE)x$(SIZE) $@ + + iceweasel_logo.png: $(srcdir)/iceweasel_logo.svg +- rsvg-convert -w 256 -a -o $@ $< ++ convert -background none $< -resize 256x256^ -gravity center -extent 256x256 $@ + + GARBAGE += iceweasel_logo.png +diff -Nur a/debian/branding/content/Makefile.in b/debian/branding/content/Makefile.in +--- a/debian/branding/content/Makefile.in 2015-11-03 21:06:22.000000000 -0300 ++++ b/debian/branding/content/Makefile.in 2015-11-05 04:26:53.849713418 -0300 +@@ -23,10 +23,10 @@ + convert - -define png:exclude-chunk=time +set date:create +set date:modify $@ + + about-logo.png: ../iceweasel_icon.svg +- rsvg-convert -w 210 -h 210 -o $@ $< ++ convert -background none $< -resize 210x210^ -gravity center -extent 210x210 $@ + + about-logo@2x.png: ../iceweasel_icon.svg +- rsvg-convert -w 420 -h 420 -o $@ $< ++ convert -background none $< -resize 420x420^ -gravity center -extent 420x420 $@ + + about-wordmark.svg: wordmark.xsl ../iceweasel_logo.svg + xsltproc -o $@ $^ |