diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes
index dd2dc85..9ad468b 100644
--- a/MozillaFirefox.changes
+++ b/MozillaFirefox.changes
@@ -1,10 +1,19 @@
+-------------------------------------------------------------------
+Sat Mar 28 09:46:48 UTC 2015 - wr@rosenauer.org
+
+- update to Firefox 37.0
+- removed obsolete patches
+ * mozilla-bmo1088588.patch
+ * mozilla-bmo1108834.patch
+- requires NSPR 4.10.8
+
-------------------------------------------------------------------
Tue Mar 24 15:35:24 UTC 2015 - dvaleev@suse.com
- Fix builds with skia on Power
mozilla-skia-be-le.patch (patch from #bmo1136958)
mozilla-bmo1108834.patch
- mozilla-bmo1005535.patch
+ mozilla-bmo1005535.patch
-------------------------------------------------------------------
Sat Mar 21 09:03:12 UTC 2015 - wr@rosenauer.org
diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec
index 643a240..d118c72 100644
--- a/MozillaFirefox.spec
+++ b/MozillaFirefox.spec
@@ -18,10 +18,10 @@
# changed with every update
-%define major 36
-%define mainver %major.0.4
+%define major 37
+%define mainver %major.0
%define update_channel release
-%define releasedate 2015032000
+%define releasedate 2015032800
# general build definitions
%if "%{update_channel}" != "aurora"
@@ -76,7 +76,7 @@ BuildRequires: libiw-devel
BuildRequires: libnotify-devel
BuildRequires: libproxy-devel
BuildRequires: makeinfo
-BuildRequires: mozilla-nspr-devel >= 4.10.7
+BuildRequires: mozilla-nspr-devel >= 4.10.8
BuildRequires: mozilla-nss-devel >= 3.17.4
BuildRequires: nss-shared-helper-devel
BuildRequires: python-devel
@@ -143,12 +143,10 @@ Patch8: mozilla-ntlm-full-path.patch
Patch9: mozilla-repo.patch
Patch10: mozilla-icu-strncat.patch
Patch11: mozilla-arm-disable-edsp.patch
-Patch12: mozilla-bmo1088588.patch
-Patch13: mozilla-openaes-decl.patch
-Patch14: mozilla-skia-bmo1136958.patch
-Patch15: mozilla-skia-be-le.patch
-Patch16: mozilla-bmo1108834.patch
-Patch17: mozilla-bmo1005535.patch
+Patch12: mozilla-openaes-decl.patch
+Patch13: mozilla-skia-bmo1136958.patch
+Patch14: mozilla-skia-be-le.patch
+Patch15: mozilla-bmo1005535.patch
# Firefox/browser
Patch101: firefox-kde.patch
Patch102: firefox-no-default-ualocale.patch
@@ -202,7 +200,7 @@ of %{appname}.
%package translations-other
Summary: Extra translations for %{appname}
Group: System/Localization
-Provides: locale(%{name}:ach;af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;vi;zu)
+Provides: locale(%{name}:ach;af;ak;as;ast;be;bg;bn_BD;bn_IN;br;bs;csb;cy;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;km;kn;ku;lg;lij;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;uz;vi;zu)
Requires: %{name} = %{version}
Obsoletes: %{name}-translations < %{version}-%{release}
@@ -264,8 +262,6 @@ cd $RPM_BUILD_DIR/mozilla
%patch13 -p1
%patch14 -p1
%patch15 -p1
-%patch16 -p1
-%patch17 -p1
# Firefox
%patch101 -p1
%patch102 -p1
diff --git a/compare-locales.tar.xz b/compare-locales.tar.xz
index 0c9e900..c202102 100644
--- a/compare-locales.tar.xz
+++ b/compare-locales.tar.xz
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:414f002f062916b91a593ce98d101f331227b4bbde1ec8da0c8816bebbe46311
-size 28428
+oid sha256:784dd12e81443ddab028d74976128b76411088f16baef118821c55d684f909c5
+size 28432
diff --git a/create-tar.sh b/create-tar.sh
index 990be5f..96cf8e3 100644
--- a/create-tar.sh
+++ b/create-tar.sh
@@ -2,8 +2,8 @@
CHANNEL="release"
BRANCH="releases/mozilla-$CHANNEL"
-RELEASE_TAG="FIREFOX_36_0_4_RELEASE"
-VERSION="36.0.4"
+RELEASE_TAG="FIREFOX_37_0_RELEASE"
+VERSION="37.0"
# mozilla
if [ -d mozilla ]; then
diff --git a/firefox-36.0.4-source.tar.xz b/firefox-36.0.4-source.tar.xz
deleted file mode 100644
index 5689bc5..0000000
--- a/firefox-36.0.4-source.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:e40a708f6581a6504445ca139cc6c32e21a4a0c38f30d15176312f059b30107c
-size 153777592
diff --git a/firefox-37.0-source.tar.xz b/firefox-37.0-source.tar.xz
new file mode 100644
index 0000000..33ba1bc
--- /dev/null
+++ b/firefox-37.0-source.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6cf7f659459c92aed536c80096044dfeb845b0e16372a0d9258e187851ecb325
+size 152773908
diff --git a/firefox-kde.patch b/firefox-kde.patch
index 0506a81..cacf3f6 100644
--- a/firefox-kde.patch
+++ b/firefox-kde.patch
@@ -1,11 +1,11 @@
# HG changeset patch
-# Parent ae5fa7b97ee57df54434bebc6dbda400b7525340
+# Parent 409c60c5454efb61ebecf0edc8822a0e92f563f3
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
new file mode 100644
--- /dev/null
+++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1272 @@
+@@ -0,0 +1,1288 @@
+#filter substitution
+
+# -*- Mode: HTML -*-
@@ -295,17 +295,22 @@ new file mode 100644
+
-+
-+
++
++
++
+
+
-+
++
++
+
+
+
++
++
+
+
+#ifdef CAN_DRAW_IN_TITLEBAR
@@ -642,7 +658,6 @@ new file mode 100644
+
+
+
-+
+
+
++
+
+
@@ -1333,10 +1349,10 @@ diff --git a/browser/base/jar.mn b/browser/base/jar.mn
* content/browser/browser.xul (content/browser.xul)
+* content/browser/browser-kde.xul (content/browser-kde.xul)
+% override chrome://browser/content/browser.xul chrome://browser/content/browser-kde.xul desktop=kde
+ * content/browser/browser-eme.properties (content/browser-eme.properties)
* content/browser/browser-tabPreviews.xml (content/browser-tabPreviews.xml)
* content/browser/chatWindow.xul (content/chatWindow.xul)
content/browser/content.js (content/content.js)
- content/browser/content-UITour.js (content/content-UITour.js)
content/browser/defaultthemes/1.footer.jpg (content/defaultthemes/1.footer.jpg)
content/browser/defaultthemes/1.header.jpg (content/defaultthemes/1.header.jpg)
content/browser/defaultthemes/1.icon.jpg (content/defaultthemes/1.icon.jpg)
@@ -1427,7 +1443,7 @@ diff --git a/browser/components/preferences/main.js b/browser/components/prefere
// when the user will select the default. We refresh here periodically
// in case the default changes. On other Windows OS's defaults can also
// be set while the prefs are open.
-@@ -572,16 +578,27 @@ var gMainPane = {
+@@ -549,16 +555,27 @@ var gMainPane = {
*/
setDefaultBrowser: function()
{
@@ -1895,7 +1911,7 @@ new file mode 100644
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
-@@ -689,19 +689,21 @@
+@@ -688,19 +688,21 @@
@RESPATH@/defaults/autoconfig/prefcalls.js
@RESPATH@/browser/defaults/profile/prefs.js
diff --git a/firefox-multilocale-chrome.patch b/firefox-multilocale-chrome.patch
index ca4dd4c..6aaf9ad 100644
--- a/firefox-multilocale-chrome.patch
+++ b/firefox-multilocale-chrome.patch
@@ -1,12 +1,13 @@
# HG changeset patch
# Parent 16846914f968944f991c8b12fdc38ce8fc099d73
# User Wolfgang Rosenauer
+# Parent c0a406c7a6cc5edc8fb34549428866ff39ad878f
Add searchplugins to chrome packaging for proper localization
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
-@@ -389,16 +389,20 @@ pref("browser.helperApps.deleteTempFileO
+@@ -378,16 +378,20 @@ pref("browser.helperApps.deleteTempFileO
#endif
// search engines URL
@@ -19,18 +20,18 @@ diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
+pref("browser.search.loadFromJars", true);
+pref("browser.search.jarURIs", "chrome://browser/locale/searchplugins/");
+
- // disable logging for the search service by default
- pref("browser.search.log", false);
-
// Ordering of Search Engines in the Engine list.
pref("browser.search.order.1", "chrome://browser-region/locale/region.properties");
pref("browser.search.order.2", "chrome://browser-region/locale/region.properties");
pref("browser.search.order.3", "chrome://browser-region/locale/region.properties");
+ // Market-specific search defaults (US market only)
+ pref("browser.search.geoSpecificDefaults", true);
+ pref("browser.search.defaultenginename.US", "data:text/plain,browser.search.defaultenginename.US=Yahoo");
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
-@@ -66,24 +66,27 @@ STUB_HOOK = $(NSINSTALL) -D '$(_ABS_DIST
+@@ -66,27 +66,30 @@ STUB_HOOK = $(NSINSTALL) -D '$(_ABS_DIST
cp ../installer/windows/l10ngen/stub.exe '$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_STUB_BASENAME).exe'; \
chmod 0755 '$(_ABS_DIST)/$(PKG_INST_PATH)$(PKG_STUB_BASENAME).exe'; \
$(NULL)
@@ -41,17 +42,20 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
else
-SEARCHPLUGINS_NAMES = $(shell cat $(call MERGE_FILE,/searchplugins/list.txt)) ddg
+SEARCHPLUGINS_NAMES = $(shell cat \
-+ $(firstword $(wildcard $(LOCALE_SRCDIR)/searchplugins/list.txt) \
-+ @srcdir@/en-US/searchplugins/list.txt ) ) ddg
++ $(firstword $(wildcard $(LOCALE_SRCDIR)/searchplugins/list.txt) \
++ @srcdir@/en-US/searchplugins/list.txt ) ) ddg
endif
SEARCHPLUGINS_PATH := $(FINAL_TARGET)/searchplugins
# metro build call a searchplugins target for search engine plugins
.PHONY: searchplugins
SEARCHPLUGINS_TARGET := libs searchplugins
--SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_NAMES)),$(or $(wildcard $(call MERGE_FILE,searchplugins/$(plugin))),$(info Missing searchplugin: $(plugin))))
--PP_TARGETS += SEARCHPLUGINS
-+#SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_NAMES)),$(or $(wildcard $(call MERGE_FILE,searchplugins/$(plugin))),$(info Missing searchplugin: $(plugin))))
+-SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_NAMES)),$(or $(wildcard $(call EN_US_OR_L10N_FILE,searchplugins/$(plugin))),$(info Missing searchplugin: $(plugin))))
++#SEARCHPLUGINS := $(foreach plugin,$(addsuffix .xml,$(SEARCHPLUGINS_NAMES)),$(or $(wildcard $(call EN_US_OR_L10N_FILE,searchplugins/$(plugin))),$(info Missing searchplugin: $(plugin))))
+SEARCHPLUGINS := $(addsuffix .xml,$(SEARCHPLUGINS_NAMES))
+ # Some locale-specific search plugins may have preprocessor directives, but the
+ # default en-US ones do not.
+ SEARCHPLUGINS_FLAGS := --silence-missing-directive-warnings
+-PP_TARGETS += SEARCHPLUGINS
+#PP_TARGETS += SEARCHPLUGINS
# Required for l10n.mk - defines a list of app sub dirs that should
@@ -61,7 +65,7 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
DIST_SUBDIRS = browser metro
else
DIST_SUBDIRS = $(DIST_SUBDIR)
-@@ -117,16 +120,39 @@ NO_JA_JP_MAC_AB_CD := $(if $(filter ja-J
+@@ -120,16 +123,39 @@ NO_JA_JP_MAC_AB_CD := $(if $(filter ja-J
libs:: $(FINAL_TARGET)/defaults/profile/bookmarks.html ;
libs:: $(addprefix generic/profile/,$(PROFILE_FILES))
@@ -104,7 +108,7 @@ diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
-@@ -141,14 +141,15 @@
+@@ -146,14 +146,15 @@
locale/browser/syncQuota.properties (%chrome/browser/syncQuota.properties)
#endif
% locale browser-region @AB_CD@ %locale/browser-region/
diff --git a/l10n-36.0.4.tar.xz b/l10n-36.0.4.tar.xz
deleted file mode 100644
index fd94068..0000000
--- a/l10n-36.0.4.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b740a3e35919eb10c154e1be9ad8a0b8ed84fcfe7c72ac7e5e56be3dd99b1939
-size 41685172
diff --git a/l10n-37.0.tar.xz b/l10n-37.0.tar.xz
new file mode 100644
index 0000000..7a3c714
--- /dev/null
+++ b/l10n-37.0.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:602f7c7a37a73ff1c9e4b1a84031313e41c37548a8d4266c709478e275f26a09
+size 41698496
diff --git a/mozilla-bmo1005535.patch b/mozilla-bmo1005535.patch
index 95f0650..4755bac 100644
--- a/mozilla-bmo1005535.patch
+++ b/mozilla-bmo1005535.patch
@@ -1,25 +1,36 @@
# HG changeset patch
# Parent b7eb1ce0237d6125b75bc8ff1cb3afc328d6e78c
# User Steve Singer
+# Parent d7af74fb513bcca581012f17ea248b1692db5d97
Bug 1005535 - Get skia GPU building on big endian.
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
-@@ -8239,11 +8239,11 @@ if test "${MOZ_WIDGET_TOOLKIT}" = "andro
- AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK)
- fi
+@@ -8198,21 +8198,21 @@ dnl Skia
+ dnl ========================================================
+ if test "$MOZ_ENABLE_SKIA"; then
+ AC_DEFINE(MOZ_ENABLE_SKIA)
+ AC_DEFINE(USE_SKIA)
+ if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then
+ AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK)
+ fi
--if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then
-+# if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then
- MOZ_ENABLE_SKIA_GPU=1
- AC_DEFINE(USE_SKIA_GPU)
- AC_SUBST(MOZ_ENABLE_SKIA_GPU)
--fi
-+# fi
+- if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then
++ #if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then
+ MOZ_ENABLE_SKIA_GPU=1
+ AC_DEFINE(USE_SKIA_GPU)
+ AC_SUBST(MOZ_ENABLE_SKIA_GPU)
+- fi
++ #fi
+ fi
+ AC_SUBST(MOZ_ENABLE_SKIA)
dnl ========================================================
dnl Check for nss-shared-helper
+ dnl ========================================================
+
+ PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h
--- a/gfx/skia/trunk/include/config/SkUserConfig.h
+++ b/gfx/skia/trunk/include/config/SkUserConfig.h
diff --git a/mozilla-bmo1088588.patch b/mozilla-bmo1088588.patch
deleted file mode 100644
index 5863168..0000000
--- a/mozilla-bmo1088588.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-# HG changeset patch
-# User Dirk Mueller
-# Date 1414618964 0
-# Wed Oct 29 21:42:44 2014 +0000
-# Node ID 8e3825b2d12a9f295b6ff9a972340b9d84fce068
-# Parent 262e4847ad6cca40d7375e40a0d6ebe8b372e3d3
-Bug 1088588 - fix ifdef in X11TextureSourceOGL.cpp, r?nical
-
-diff --git a/gfx/layers/opengl/X11TextureSourceOGL.cpp b/gfx/layers/opengl/X11TextureSourceOGL.cpp
---- a/gfx/layers/opengl/X11TextureSourceOGL.cpp
-+++ b/gfx/layers/opengl/X11TextureSourceOGL.cpp
-@@ -94,14 +94,14 @@ X11TextureSourceOGL::ContentTypeToSurfac
- switch (aType) {
- case gfxContentType::COLOR:
- return SurfaceFormat::R8G8B8X8;
- case gfxContentType::COLOR_ALPHA:
- return SurfaceFormat::R8G8B8A8;
- default:
- return SurfaceFormat::UNKNOWN;
- }
- }
-
-+}
-+}
-+
- #endif
--
--}
--}
diff --git a/mozilla-bmo1108834.patch b/mozilla-bmo1108834.patch
deleted file mode 100644
index 00a9d53..0000000
--- a/mozilla-bmo1108834.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up mozilla/js/src/jit/none/Lowering-none.h.old firefox-36.0/mozilla-release/js/src/jit/none/Lowering-none.h
---- mozilla/js/src/jit/none/Lowering-none.h.old 2015-02-20 03:01:48.000000000 +0100
-+++ mozilla/js/src/jit/none/Lowering-none.h 2015-03-06 12:00:43.486675228 +0100
-@@ -89,6 +89,7 @@ class LIRGeneratorNone : public LIRGener
- bool visitSimdTernaryBitwise(MSimdTernaryBitwise *ins) { MOZ_CRASH(); }
- bool visitSimdSplatX4(MSimdSplatX4 *ins) { MOZ_CRASH(); }
- bool visitSimdValueX4(MSimdValueX4 *lir) { MOZ_CRASH(); }
-+ bool visitSubstr(MSubstr *) { MOZ_CRASH(); }
- };
-
- typedef LIRGeneratorNone LIRGeneratorSpecific;
diff --git a/mozilla-kde.patch b/mozilla-kde.patch
index b45d88a..bc629c6 100644
--- a/mozilla-kde.patch
+++ b/mozilla-kde.patch
@@ -1,5 +1,5 @@
# HG changeset patch
-# Parent aba9432d1fd32a118ba24e92c6b6e99ddb0b9bdc
+# Parent 2b183c17f6e4693372442af1a8ee0be364f8cba0
Description: Add KDE integration to Firefox (toolkit parts)
Author: Wolfgang Rosenauer
Author: Lubos Lunak
@@ -46,7 +46,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
#include "prefread.h"
#include "prefapi_private_data.h"
-@@ -1172,16 +1173,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
+@@ -1165,16 +1166,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
static nsresult pref_LoadPrefsInDirList(const char *listId)
{
@@ -81,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
return NS_OK;
bool hasMore;
-@@ -1197,17 +1216,17 @@ static nsresult pref_LoadPrefsInDirList(
+@@ -1190,17 +1209,17 @@ static nsresult pref_LoadPrefsInDirList(
nsAutoCString leaf;
path->GetNativeLeafName(leaf);
@@ -100,7 +100,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
{
nsZipItemPtr manifest(jarReader, name, true);
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
-@@ -1301,26 +1320,38 @@ static nsresult pref_InitInitialObjects(
+@@ -1294,26 +1313,38 @@ static nsresult pref_InitInitialObjects(
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
static const char* specialFiles[] = {
#if defined(XP_MACOSX)
@@ -223,9 +223,9 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
#ifdef MOZ_WIDGET_ANDROID
#include "AndroidBridge.h"
- using namespace mozilla::widget::android;
#endif
-@@ -2717,16 +2721,25 @@ nsDownload::SetState(DownloadState aStat
+
+@@ -2716,16 +2720,25 @@ nsDownload::SetState(DownloadState aStat
nsCOMPtr pref(do_GetService(NS_PREFSERVICE_CONTRACTID));
// Master pref to control this function.
@@ -251,12 +251,12 @@ diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/compon
int64_t goat = PR_Now() - mStartTime;
showTaskbarAlert = goat > alertIntervalUSec;
-@@ -2757,16 +2770,17 @@ nsDownload::SetState(DownloadState aStat
+@@ -2756,16 +2769,17 @@ nsDownload::SetState(DownloadState aStat
NS_LITERAL_STRING(DOWNLOAD_MANAGER_ALERT_ICON), title,
message, !removeWhenDone,
mPrivate ? NS_LITERAL_STRING("private") : NS_LITERAL_STRING("non-private"),
mDownloadManager, EmptyString(), NS_LITERAL_STRING("auto"),
- EmptyString(), EmptyString(), nullptr);
+ EmptyString(), EmptyString(), nullptr, mPrivate);
}
}
}
@@ -3137,13 +3137,13 @@ diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
--- a/widget/gtk/nsFilePicker.cpp
+++ b/widget/gtk/nsFilePicker.cpp
-@@ -1,32 +1,34 @@
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
+@@ -4,32 +4,34 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/Types.h"
+ #include
+ #include
+ #include
#include
+#include
@@ -3172,7 +3172,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
nsIFile *nsFilePicker::mPrevDisplayDirectory = nullptr;
void
-@@ -224,17 +226,19 @@ nsFilePicker::AppendFilters(int32_t aFil
+@@ -238,17 +240,19 @@ nsFilePicker::AppendFilters(int32_t aFil
return nsBaseFilePicker::AppendFilters(aFilterMask);
}
@@ -3193,7 +3193,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
mFilters.AppendElement(filter);
mFilterNames.AppendElement(name);
-@@ -349,16 +353,32 @@ nsFilePicker::Show(int16_t *aReturn)
+@@ -363,16 +367,32 @@ nsFilePicker::Show(int16_t *aReturn)
NS_IMETHODIMP
nsFilePicker::Open(nsIFilePickerShownCallback *aCallback)
@@ -3226,7 +3226,7 @@ diff --git a/widget/gtk/nsFilePicker.cpp b/widget/gtk/nsFilePicker.cpp
GtkFileChooserAction action = GetGtkFileChooserAction(mMode);
const gchar *accept_button = (action == GTK_FILE_CHOOSER_ACTION_SAVE)
-@@ -537,8 +557,235 @@ nsFilePicker::Done(GtkWidget* file_choos
+@@ -551,8 +571,235 @@ nsFilePicker::Done(GtkWidget* file_choos
if (mCallback) {
mCallback->Done(result);
mCallback = nullptr;
@@ -3561,7 +3561,7 @@ diff --git a/xpcom/components/ManifestParser.cpp b/xpcom/components/ManifestPars
mozilla::AndroidBridge::Bridge()->GetStaticStringField("android/os/Build$VERSION",
"RELEASE",
osVersion);
- isTablet = mozilla::widget::android::GeckoAppShell::IsTablet();
+ isTablet = mozilla::widget::GeckoAppShell::IsTablet();
}
+ desktop = NS_LITERAL_STRING("android");
#endif
diff --git a/mozilla-openaes-decl.patch b/mozilla-openaes-decl.patch
index 0e56ee4..ae482e0 100644
--- a/mozilla-openaes-decl.patch
+++ b/mozilla-openaes-decl.patch
@@ -1,17 +1,18 @@
# HG changeset patch
# Parent 33024abb3c58dab7239e32388df58e14f99defd5
# User Wolfgang Rosenauer
+# Parent 12305a99d90ce098f8f11f5609571cd709b6e2de
diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
--- a/media/gmp-clearkey/0.1/openaes/oaes_lib.c
+++ b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
-@@ -27,16 +27,17 @@
+@@ -24,16 +24,17 @@
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* ---------------------------------------------------------------------------
*/
- static const char _NR[] = {
- 0x4e,0x61,0x62,0x69,0x6c,0x20,0x53,0x2e,0x20,
- 0x41,0x6c,0x20,0x52,0x61,0x6d,0x6c,0x69,0x00 };
#include
+#include
diff --git a/mozilla-repo.patch b/mozilla-repo.patch
index 904111b..e51a130 100644
--- a/mozilla-repo.patch
+++ b/mozilla-repo.patch
@@ -1,5 +1,6 @@
# HG changeset patch
# Parent 80b6464bd883864fce57e8748010869af1be69e9
+# Parent d160c6876c5f05d902b391551bf4f684254b3c7d
diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/installer/package-name.mk
--- a/toolkit/mozapps/installer/package-name.mk
@@ -10,7 +11,7 @@ diff --git a/toolkit/mozapps/installer/package-name.mk b/toolkit/mozapps/install
ifndef INCLUDED_RCS_MK
USE_RCS_MK := 1
- include $(topsrcdir)/config/makefiles/makeutils.mk
+ include $(MOZILLA_DIR)/config/makefiles/makeutils.mk
endif
-MOZ_SOURCE_STAMP = $(firstword $(shell hg -R $(MOZILLA_DIR) parent --template="{node|short}\n" 2>/dev/null))
diff --git a/mozilla-shared-nss-db.patch b/mozilla-shared-nss-db.patch
index 9dbb350..d805028 100644
--- a/mozilla-shared-nss-db.patch
+++ b/mozilla-shared-nss-db.patch
@@ -7,7 +7,7 @@ References:
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
-@@ -8268,16 +8268,31 @@ if test "$MOZ_ENABLE_SKIA"; then
+@@ -8207,16 +8207,31 @@ if test "$MOZ_ENABLE_SKIA"; then
MOZ_ENABLE_SKIA_GPU=1
AC_DEFINE(USE_SKIA_GPU)
AC_SUBST(MOZ_ENABLE_SKIA_GPU)
@@ -84,10 +84,10 @@ diff --git a/security/manager/ssl/src/nsNSSComponent.cpp b/security/manager/ssl/
#include "ExtendedValidation.h"
#include "NSSCertDBTrustDomain.h"
#include "mozilla/Telemetry.h"
+ #include "nsAppDirectoryServiceDefs.h"
#include "nsCertVerificationThread.h"
#include "nsAppDirectoryServiceDefs.h"
- #include "nsComponentManagerUtils.h"
-@@ -986,17 +993,31 @@ nsNSSComponent::InitializeNSS()
+@@ -996,17 +1003,31 @@ nsNSSComponent::InitializeNSS()
if (NS_FAILED(rv)) {
nsPSMInitPanic::SetPanic();
return NS_ERROR_NOT_AVAILABLE;
diff --git a/mozilla-skia-be-le.patch b/mozilla-skia-be-le.patch
index f4ee4d7..4dc48a7 100644
--- a/mozilla-skia-be-le.patch
+++ b/mozilla-skia-be-le.patch
@@ -1,8 +1,17 @@
-Index: mozilla/gfx/skia/trunk/include/core/SkPreConfig.h
-===================================================================
---- mozilla.orig/gfx/skia/trunk/include/core/SkPreConfig.h
-+++ mozilla/gfx/skia/trunk/include/core/SkPreConfig.h
-@@ -92,6 +92,14 @@
+# HG changeset patch
+# Parent c5d7373760d7abbd34f89cb60d4a45cba2c05379
+Part 2 of
+Bug 1136958 - gfx/layers/basic/BasicCompositor.cpp:20:56: fatal error: skia/SkCanvas.h: No such file or directory when skia is disabled
+
+diff --git a/gfx/skia/trunk/include/core/SkPreConfig.h b/gfx/skia/trunk/include/core/SkPreConfig.h
+--- a/gfx/skia/trunk/include/core/SkPreConfig.h
++++ b/gfx/skia/trunk/include/core/SkPreConfig.h
+@@ -87,16 +87,24 @@
+
+ #if !defined(SK_WARN_UNUSED_RESULT)
+ #define SK_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+ #endif
+
//////////////////////////////////////////////////////////////////////
#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN)
@@ -17,11 +26,20 @@ Index: mozilla/gfx/skia/trunk/include/core/SkPreConfig.h
#if defined(__sparc) || defined(__sparc__) || \
defined(_POWER) || defined(__powerpc__) || \
defined(__ppc__) || defined(__hppa) || \
-Index: mozilla/js/src/jsdtoa.cpp
-===================================================================
---- mozilla.orig/js/src/jsdtoa.cpp
-+++ mozilla/js/src/jsdtoa.cpp
-@@ -52,6 +52,7 @@ static inline void dtoa_free(void* p) {
+ defined(__PPC__) || defined(__PPC64__) || \
+ defined(_MIPSEB) || defined(__ARMEB__) || \
+ defined(__s390__) || \
+ (defined(__sh__) && defined(__BIG_ENDIAN__)) || \
+ (defined(__ia64) && defined(__BIG_ENDIAN__))
+diff --git a/js/src/jsdtoa.cpp b/js/src/jsdtoa.cpp
+--- a/js/src/jsdtoa.cpp
++++ b/js/src/jsdtoa.cpp
+@@ -47,16 +47,17 @@ using namespace js;
+ static inline void* dtoa_malloc(size_t size) { return js_malloc(size); }
+ static inline void dtoa_free(void* p) { return js_free(p); }
+
+ #define NO_GLOBAL_STATE
+ #define NO_ERRNO
#define MALLOC dtoa_malloc
#define FREE dtoa_free
#include "dtoa.c"
@@ -29,3 +47,8 @@ Index: mozilla/js/src/jsdtoa.cpp
/* Mapping of JSDToStrMode -> js_dtoa mode */
static const uint8_t dtoaModes[] = {
+ 0, /* DTOSTR_STANDARD */
+ 0, /* DTOSTR_STANDARD_EXPONENTIAL, */
+ 3, /* DTOSTR_FIXED, */
+ 2, /* DTOSTR_EXPONENTIAL, */
+ 2}; /* DTOSTR_PRECISION */
diff --git a/mozilla-skia-bmo1136958.patch b/mozilla-skia-bmo1136958.patch
index a330ce0..bd69f0b 100644
--- a/mozilla-skia-bmo1136958.patch
+++ b/mozilla-skia-bmo1136958.patch
@@ -1,410 +1,282 @@
-From 8dc9e73b80ec33fe1a1c855829ef1438301a5de1 Mon Sep 17 00:00:00 2001
-From: Mike Hommey
-Date: Thu, 26 Feb 2015 14:14:02 +0900
-Subject: [PATCH 1/2] Bug 1136958 - Remove duplicate
- SkDiscardableMemory_none.cpp from gfx/skia/moz.build
+From a8ab3ec3542469c1d4e0741121eb1be17cc0acb0 Mon Sep 17 00:00:00 2001
+From: Mike Hommey
+Date: Mon, 9 Mar 2015 08:42:19 +0900
+Subject: [PATCH] Bug 1136958 - Reintroduce pixman code path removed in bug
+ 1097776 for --disable-skia builds
-And to do so, cleanup gfx/skia/generate_mozbuild.py a little.
---
- gfx/skia/generate_mozbuild.py | 53 ++++++++++++++++---------------------------
- gfx/skia/moz.build | 1 -
- 2 files changed, 20 insertions(+), 34 deletions(-)
+ gfx/layers/basic/BasicCompositor.cpp | 94 +++++++++++++++++++++++++++++++---
+ gfx/layers/basic/BasicLayerManager.cpp | 88 +++++++++++++++++++++++++++++--
+ 2 files changed, 171 insertions(+), 11 deletions(-)
-diff --git a/configure.in b/configure.in
---- a/configure.in
-+++ b/configure.in
-@@ -7997,39 +7997,16 @@ dnl ====================================
+diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
+index 0bef076..000b591 100644
+--- a/gfx/layers/basic/BasicCompositor.cpp
++++ b/gfx/layers/basic/BasicCompositor.cpp
+@@ -17,8 +17,13 @@
+ #include
+ #include "ImageContainer.h"
+ #include "gfxPrefs.h"
++#ifdef MOZ_ENABLE_SKIA
+ #include "skia/SkCanvas.h" // for SkCanvas
+ #include "skia/SkBitmapDevice.h" // for SkBitmapDevice
++#else
++#define PIXMAN_DONT_DEFINE_STDINT
++#include "pixman.h" // for pixman_f_transform, etc
++#endif
- if test "${OS_TARGET}" = "WINNT"; then
- if $PERL -e "exit($MOZ_WINSDK_MAXVER < 0x06020000)"; then
- MOZ_ENABLE_DIRECT2D1_1=1
- AC_SUBST(MOZ_ENABLE_DIRECT2D1_1)
- fi
- fi
+ namespace mozilla {
+ using namespace mozilla::gfx;
+@@ -168,6 +173,7 @@ DrawSurfaceWithTextureCoords(DrawTarget *aDest,
+ mode, aMask, aMaskTransform, &matrix);
+ }
--if test "${OS_TARGET}" = "WINNT" -o \
-- "${OS_ARCH}" = "Darwin" -o \
-- "${MOZ_WIDGET_TOOLKIT}" = "android" -o \
-- "${MOZ_WIDGET_TOOLKIT}" = "gonk" -o \
-- "${MOZ_WIDGET_TOOLKIT}" = "gtk2" -o \
-- "${MOZ_WIDGET_TOOLKIT}" = "gtk3"; then
-- case "${target_cpu}" in
-- i*86*|x86_64|arm)
-- MOZ_ENABLE_SKIA=1
-- ;;
-- *)
-- MOZ_ENABLE_SKIA=
-- ;;
-- esac
--else
--MOZ_ENABLE_SKIA=
--fi
--
--MOZ_ARG_ENABLE_BOOL(skia,
--[ --enable-skia Enable use of Skia],
--MOZ_ENABLE_SKIA=1,
--MOZ_ENABLE_SKIA=)
--
- MOZ_ARG_DISABLE_BOOL(skia-gpu,
- [ --disable-skia-gpu Disable use of Skia-GPU],
- MOZ_DISABLE_SKIA_GPU=1,
- MOZ_DISABLE_SKIA_GPU=)
++#ifdef MOZ_ENABLE_SKIA
+ static SkMatrix
+ Matrix3DToSkia(const gfx3DMatrix& aMatrix)
+ {
+@@ -186,10 +192,10 @@ Matrix3DToSkia(const gfx3DMatrix& aMatrix)
+ }
- if test "$USE_FC_FREETYPE"; then
- if test "$COMPILE_ENVIRONMENT"; then
- dnl ========================================================
-@@ -8252,30 +8229,26 @@ AC_SUBST(MOZ_TREE_CAIRO)
- AC_SUBST_LIST(MOZ_CAIRO_CFLAGS)
- AC_SUBST_LIST(MOZ_CAIRO_LIBS)
- AC_SUBST_LIST(MOZ_CAIRO_OSLIBS)
- AC_SUBST(MOZ_TREE_PIXMAN)
-
- dnl ========================================================
- dnl Skia
- dnl ========================================================
--if test "$MOZ_ENABLE_SKIA"; then
-- AC_DEFINE(MOZ_ENABLE_SKIA)
-- AC_DEFINE(USE_SKIA)
-- if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then
-- AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK)
-- fi
--
-- if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then
-- MOZ_ENABLE_SKIA_GPU=1
-- AC_DEFINE(USE_SKIA_GPU)
-- AC_SUBST(MOZ_ENABLE_SKIA_GPU)
-- fi
--fi
--AC_SUBST(MOZ_ENABLE_SKIA)
-+AC_DEFINE(USE_SKIA)
-+if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then
-+ AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK)
-+fi
+ static void
+-SkiaTransform(DataSourceSurface* aDest,
+- DataSourceSurface* aSource,
+- const gfx3DMatrix& aTransform,
+- const Point& aDestOffset)
++Transform(DataSourceSurface* aDest,
++ DataSourceSurface* aSource,
++ const gfx3DMatrix& aTransform,
++ const Point& aDestOffset)
+ {
+ if (aTransform.IsSingular()) {
+ return;
+@@ -225,6 +231,78 @@ SkiaTransform(DataSourceSurface* aDest,
+ SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
+ destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
+ }
++#else
++static pixman_transform
++Matrix3DToPixman(const gfx3DMatrix& aMatrix)
++{
++ pixman_f_transform transform;
+
-+if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then
-+ MOZ_ENABLE_SKIA_GPU=1
-+ AC_DEFINE(USE_SKIA_GPU)
-+ AC_SUBST(MOZ_ENABLE_SKIA_GPU)
-+fi
++ transform.m[0][0] = aMatrix._11;
++ transform.m[0][1] = aMatrix._21;
++ transform.m[0][2] = aMatrix._41;
++ transform.m[1][0] = aMatrix._12;
++ transform.m[1][1] = aMatrix._22;
++ transform.m[1][2] = aMatrix._42;
++ transform.m[2][0] = aMatrix._14;
++ transform.m[2][1] = aMatrix._24;
++ transform.m[2][2] = aMatrix._44;
++
++ pixman_transform result;
++ pixman_transform_from_pixman_f_transform(&result, &transform);
++
++ return result;
++}
++
++static void
++Transform(DataSourceSurface* aDest,
++ DataSourceSurface* aSource,
++ const gfx3DMatrix& aTransform,
++ const Point& aDestOffset)
++{
++ IntSize destSize = aDest->GetSize();
++ pixman_image_t* dest = pixman_image_create_bits(PIXMAN_a8r8g8b8,
++ destSize.width,
++ destSize.height,
++ (uint32_t*)aDest->GetData(),
++ aDest->Stride());
++
++ IntSize srcSize = aSource->GetSize();
++ pixman_image_t* src = pixman_image_create_bits(PIXMAN_a8r8g8b8,
++ srcSize.width,
++ srcSize.height,
++ (uint32_t*)aSource->GetData(),
++ aSource->Stride());
++
++ NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
++
++ pixman_transform pixTransform = Matrix3DToPixman(aTransform);
++ pixman_transform pixTransformInverted;
++
++ // If the transform is singular then nothing would be drawn anyway, return here
++ if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
++ pixman_image_unref(dest);
++ pixman_image_unref(src);
++ return;
++ }
++ pixman_image_set_transform(src, &pixTransformInverted);
++
++ pixman_image_composite32(PIXMAN_OP_SRC,
++ src,
++ nullptr,
++ dest,
++ aDestOffset.x,
++ aDestOffset.y,
++ 0,
++ 0,
++ 0,
++ 0,
++ destSize.width,
++ destSize.height);
++
++ pixman_image_unref(dest);
++ pixman_image_unref(src);
++}
++#endif
- dnl ========================================================
- dnl Check for nss-shared-helper
- dnl ========================================================
-
- PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper,
- [MOZ_ENABLE_NSSHELPER=1],
- [MOZ_ENABLE_NSSHELPER=])
-diff --git a/gfx/2d/moz.build b/gfx/2d/moz.build
---- a/gfx/2d/moz.build
-+++ b/gfx/2d/moz.build
-@@ -64,51 +64,46 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'wi
- SOURCES += [
- 'DrawTargetD2D1.cpp',
- 'FilterNodeD2D1.cpp',
- 'RadialGradientEffectD2D1.cpp',
- 'SourceSurfaceD2D1.cpp'
- ]
- DEFINES['USE_D2D1_1'] = True
-
--if CONFIG['MOZ_ENABLE_SKIA']:
-- UNIFIED_SOURCES += [
-- 'convolver.cpp',
-- 'DrawTargetSkia.cpp',
-- 'PathSkia.cpp',
-- 'SourceSurfaceSkia.cpp',
-- ]
-- SOURCES += [
-- 'image_operations.cpp', # Uses _USE_MATH_DEFINES
-- ]
-- EXPORTS.mozilla.gfx += [
-- 'HelpersSkia.h',
-- ]
-+UNIFIED_SOURCES += [
-+ 'convolver.cpp',
-+ 'DrawTargetSkia.cpp',
-+ 'PathSkia.cpp',
-+ 'SourceSurfaceSkia.cpp',
-+]
-+SOURCES += [
-+ 'image_operations.cpp', # Uses _USE_MATH_DEFINES
-+]
-+EXPORTS.mozilla.gfx += [
-+ 'HelpersSkia.h',
-+]
-
- # Are we targeting x86 or x64? If so, build SSE2 files.
- if CONFIG['INTEL_ARCHITECTURE']:
- # VC2005 doesn't support _mm_castsi128_ps, so SSE2 is turned off
- if CONFIG['_MSC_VER'] != '1400':
- SOURCES += [
- 'BlurSSE2.cpp',
-+ 'convolverSSE2.cpp',
- 'FilterProcessingSSE2.cpp',
- 'ImageScalingSSE2.cpp',
- ]
-- if CONFIG['MOZ_ENABLE_SKIA']:
-- SOURCES += [
-- 'convolverSSE2.cpp',
-- ]
- DEFINES['USE_SSE2'] = True
- # The file uses SSE2 intrinsics, so it needs special compile flags on some
- # compilers.
- SOURCES['BlurSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
- SOURCES['FilterProcessingSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
- SOURCES['ImageScalingSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-- if CONFIG['MOZ_ENABLE_SKIA']:
-- SOURCES['convolverSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-+ SOURCES['convolverSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
-
- UNIFIED_SOURCES += [
- 'Blur.cpp',
- 'DataSourceSurface.cpp',
- 'DataSurfaceHelpers.cpp',
- 'DrawEventRecorder.cpp',
- 'DrawTarget.cpp',
- 'DrawTargetCairo.cpp',
-diff --git a/gfx/moz.build b/gfx/moz.build
---- a/gfx/moz.build
-+++ b/gfx/moz.build
-@@ -17,16 +17,15 @@ DIRS += [
- 'layers',
- 'graphite2/src',
- 'harfbuzz/src',
- 'ots/src',
- 'thebes',
- 'ipc',
- ]
-
--if CONFIG['MOZ_ENABLE_SKIA']:
-- DIRS += ['skia']
-+DIRS += ['skia']
-
- if CONFIG['ENABLE_TESTS']:
- DIRS += ['tests/gtest']
-
- TEST_DIRS += ['tests']
-
-diff --git a/gfx/skia/generate_mozbuild.py b/gfx/skia/generate_mozbuild.py
---- a/gfx/skia/generate_mozbuild.py
-+++ b/gfx/skia/generate_mozbuild.py
-@@ -1,13 +1,14 @@
- #!/usr/bin/env python
-
- import os
-
- import locale
-+from collections import defaultdict
- locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
-
- header = """
- #
- # ##### ####### # # # # # #
- # ## # # # # # # # # # # # #
- # ## # # # # # # # # # # #
- # ## #### # # # # # # # # # #
-@@ -187,17 +188,17 @@ def generate_platform_sources():
-
- for plat in platforms:
- if os.system("cd trunk && GYP_GENERATORS=dump_mozbuild ./gyp_skia -D OS=%s gyp/skia_lib.gyp" % plat) != 0:
- print 'Failed to generate sources for ' + plat
- continue
-
-
- f = open('trunk/sources.json');
-- sources[plat] = set(json.load(f));
-+ sources[plat] = set(v.replace('../', 'trunk/') for v in json.load(f));
- f.close()
-
- return dict(sources.items() + generate_opt_sources().items())
-
-
- def generate_separated_sources(platform_sources):
- blacklist = [
- 'ChromeUtils',
-@@ -232,17 +233,17 @@ def generate_separated_sources(platform_
-
- def isblacklisted(value):
- for item in blacklist:
- if value.find(item) >= 0:
- return True
-
- return False
-
-- separated = {
-+ separated = defaultdict(set, {
- 'common': {
- #'trunk/src/effects/gradients/SkGradientTileProc.cpp',
- 'trunk/src/gpu/gl/GrGLCreateNativeInterface_none.cpp',
- 'trunk/src/ports/SkDiscardableMemory_none.cpp',
- 'trunk/src/ports/SkImageDecoder_empty.cpp',
- 'trunk/src/ports/SkMemory_mozalloc.cpp',
- # 'trunk/src/images/SkImages.cpp',
- # 'trunk/src/images/SkImageRef.cpp',
-@@ -277,69 +278,55 @@ def generate_separated_sources(platform_
- 'trunk/src/core/SkUtilsArm.cpp',
- },
- 'neon': {
- 'trunk/src/opts/SkBitmapProcState_arm_neon.cpp',
- },
- 'none': {
- 'trunk/src/opts/SkUtils_opts_none.cpp',
+ static inline IntRect
+ RoundOut(Rect r)
+@@ -364,12 +442,16 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
+ RefPtr snapshot = dest->Snapshot();
+ RefPtr source = snapshot->GetDataSurface();
+ RefPtr temp =
+- Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8, true);
++ Factory::CreateDataSourceSurface(RoundOut(transformBounds).Size(), SurfaceFormat::B8G8R8A8
++#ifdef MOZ_ENABLE_SKIA
++ , true
++#endif
++ );
+ if (NS_WARN_IF(!temp)) {
+ return;
}
-- }
-+ })
- for plat in platform_sources.keys():
-- if not separated.has_key(plat):
-- separated[plat] = set()
--
- for value in platform_sources[plat]:
- if isblacklisted(value):
- continue
+- SkiaTransform(temp, source, new3DTransform, transformBounds.TopLeft());
++ Transform(temp, source, new3DTransform, transformBounds.TopLeft());
-- if value.find('_SSE') > 0 or value.find('_SSSE') > 0 or value.find('_SSE4') > 0 : #lol
-- separated['intel'].add(value)
-+ if value in separated['common']:
- continue
+ transformBounds.MoveTo(0, 0);
+ buffer->DrawSurface(temp, transformBounds, transformBounds);
+diff --git a/gfx/layers/basic/BasicLayerManager.cpp b/gfx/layers/basic/BasicLayerManager.cpp
+index f4ec9e4..c849c27 100644
+--- a/gfx/layers/basic/BasicLayerManager.cpp
++++ b/gfx/layers/basic/BasicLayerManager.cpp
+@@ -46,8 +46,13 @@
+ #include "nsRect.h" // for nsIntRect
+ #include "nsRegion.h" // for nsIntRegion, etc
+ #include "nsTArray.h" // for nsAutoTArray
++#ifdef MOZ_ENABLE_SKIA
+ #include "skia/SkCanvas.h" // for SkCanvas
+ #include "skia/SkBitmapDevice.h" // for SkBitmapDevice
++#else
++#define PIXMAN_DONT_DEFINE_STDINT
++#include "pixman.h" // for pixman_f_transform, etc
++#endif
+ class nsIWidget;
-- if value.find('_neon') > 0:
-- separated['neon'].add(value)
-- continue
-+ key = plat
-
-- if value.find('_arm') > 0:
-- separated['arm'].add(value)
-- continue
-+ if '_SSE' in value or '_SSSE' in value:
-+ key = 'intel'
-+ elif '_neon' in value:
-+ key = 'neon'
-+ elif '_arm' in value:
-+ key = 'arm'
-+ elif '_none' in value:
-+ key = 'none'
-+ elif all(value in platform_sources.get(p, {})
-+ for p in platforms if p != plat):
-+ key = 'common'
-
-- if value.find('_none') > 0:
-- separated['none'].add(value)
-- continue
--
-- found = True
-- for other in platforms:
-- if other == plat or not platform_sources.has_key(other):
-- continue
--
-- if not value in platform_sources[other]:
-- found = False
-- break;
--
-- if found:
-- separated['common'].add(value)
-- else:
-- separated[plat].add(value)
-+ separated[key].add(value)
-
- return separated
-
- def uniq(seq):
- seen = set()
- seen_add = seen.add
- return [ x for x in seq if x not in seen and not seen_add(x)]
-
- def write_cflags(f, values, subsearch, cflag, indent):
- def write_indent(indent):
- for _ in range(indent):
- f.write(' ')
-
-- val_list = uniq(sorted(map(lambda val: val.replace('../', 'trunk/'), values), key=lambda x: x.lower()))
-+ val_list = uniq(sorted(values, key=lambda x: x.lower()))
-
- if len(val_list) == 0:
- return
-
- for val in val_list:
- if val.find(subsearch) > 0:
- write_indent(indent)
- f.write("SOURCES[\'" + val + "\'].flags += [\'" + cflag + "\']\n")
-@@ -391,17 +378,17 @@ def write_sources(f, values, indent):
- write_list(f, "UNIFIED_SOURCES", sources['unified'], indent)
- write_list(f, "SOURCES", sources['nonunified'], indent)
-
- def write_list(f, name, values, indent):
- def write_indent(indent):
- for _ in range(indent):
- f.write(' ')
-
-- val_list = uniq(sorted(map(lambda val: val.replace('../', 'trunk/'), values), key=lambda x: x.lower()))
-+ val_list = uniq(sorted(values, key=lambda x: x.lower()))
-
- if len(val_list) == 0:
- return
-
- write_indent(indent)
- f.write(name + ' += [\n')
- for val in val_list:
- write_indent(indent + 4)
-diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
---- a/gfx/skia/moz.build
-+++ b/gfx/skia/moz.build
-@@ -847,17 +847,16 @@ else:
- 'trunk/src/opts/SkBitmapProcState_opts_none.cpp',
- 'trunk/src/opts/SkBlitMask_opts_none.cpp',
- 'trunk/src/opts/SkBlitRow_opts_none.cpp',
- 'trunk/src/opts/SkBlurImage_opts_none.cpp',
- 'trunk/src/opts/SkMorphology_opts_none.cpp',
- 'trunk/src/opts/SkTextureCompression_opts_none.cpp',
- 'trunk/src/opts/SkUtils_opts_none.cpp',
- 'trunk/src/opts/SkXfermode_opts_none.cpp',
-- 'trunk/src/ports/SkDiscardableMemory_none.cpp',
- ]
-
-
- # can we find a better way of dealing with asm sources?
-
- # left out of UNIFIED_SOURCES for now; that's not C++ anyway, nothing else to unify it with
- if not CONFIG['INTEL_ARCHITECTURE'] and CONFIG['CPU_ARCH'] == 'arm' and CONFIG['GNU_CC']:
- SOURCES += [
-diff --git a/image/src/RasterImage.cpp b/image/src/RasterImage.cpp
---- a/image/src/RasterImage.cpp
-+++ b/image/src/RasterImage.cpp
-@@ -2090,20 +2090,16 @@ RasterImage::RecoverFromLossOfFrames()
- RequestDecodeCore(ASYNCHRONOUS);
+ namespace mozilla {
+@@ -601,6 +606,7 @@ BasicLayerManager::SetRoot(Layer* aLayer)
+ mRoot = aLayer;
}
- bool
- RasterImage::CanScale(GraphicsFilter aFilter,
- const nsIntSize& aSize,
- uint32_t aFlags)
++#ifdef MOZ_ENABLE_SKIA
+ static SkMatrix
+ BasicLayerManager_Matrix3DToSkia(const gfx3DMatrix& aMatrix)
{
--#ifndef MOZ_ENABLE_SKIA
-- // The high-quality scaler requires Skia.
-- return false;
--#else
- // Check basic requirements: HQ downscaling is enabled, we're decoded, the
- // flags allow us to do it, and a 'good' filter is being used. The flags may
- // ask us not to scale because the caller isn't drawing to the window. If
- // we're drawing to something else (e.g. a canvas) we usually have no way of
- // updating what we've drawn, so HQ scaling is useless.
- if (!gfxPrefs::ImageHQDownscalingEnabled() || !mDecoded ||
- !(aFlags & imgIContainer::FLAG_HIGH_QUALITY_SCALING) ||
- aFilter != GraphicsFilter::FILTER_GOOD) {
-@@ -2137,17 +2133,16 @@ RasterImage::CanScale(GraphicsFilter aFi
- // XXX(seth): It's not clear what this check buys us over
- // gfxPrefs::ImageHQUpscalingMaxSize().
- // The default value of this pref is 1000, which means that we never upscale.
- // If that's all it's getting us, I'd rather we just forbid that explicitly.
- gfx::Size scale(double(aSize.width) / mSize.width,
- double(aSize.height) / mSize.height);
- gfxFloat minFactor = gfxPrefs::ImageHQDownscalingMinFactor() / 1000.0;
- return (scale.width < minFactor || scale.height < minFactor);
--#endif
+@@ -619,10 +625,10 @@ BasicLayerManager_Matrix3DToSkia(const gfx3DMatrix& aMatrix)
}
- void
- RasterImage::NotifyNewScaledFrame()
+ static void
+-SkiaTransform(const gfxImageSurface* aDest,
+- RefPtr aSrc,
+- const gfx3DMatrix& aTransform,
+- gfxPoint aDestOffset)
++Transform(const gfxImageSurface* aDest,
++ RefPtr aSrc,
++ const gfx3DMatrix& aTransform,
++ gfxPoint aDestOffset)
{
- if (mProgressTracker) {
- // Send an invalidation so observers will repaint and can take advantage of
- // the new scaled frame if possible.
+ if (aTransform.IsSingular()) {
+ return;
+@@ -658,6 +664,78 @@ SkiaTransform(const gfxImageSurface* aDest,
+ SkRect destRect = SkRect::MakeXYWH(0, 0, srcSize.width, srcSize.height);
+ destCanvas.drawBitmapRectToRect(src, nullptr, destRect, &paint);
+ }
++#else
++static pixman_transform
++BasicLayerManager_Matrix3DToPixman(const gfx3DMatrix& aMatrix)
++{
++ pixman_f_transform transform;
++
++ transform.m[0][0] = aMatrix._11;
++ transform.m[0][1] = aMatrix._21;
++ transform.m[0][2] = aMatrix._41;
++ transform.m[1][0] = aMatrix._12;
++ transform.m[1][1] = aMatrix._22;
++ transform.m[1][2] = aMatrix._42;
++ transform.m[2][0] = aMatrix._14;
++ transform.m[2][1] = aMatrix._24;
++ transform.m[2][2] = aMatrix._44;
++
++ pixman_transform result;
++ pixman_transform_from_pixman_f_transform(&result, &transform);
++
++ return result;
++}
++
++static void
++Transform(const gfxImageSurface* aDest,
++ RefPtr aSrc,
++ const gfx3DMatrix& aTransform,
++ gfxPoint aDestOffset)
++{
++ IntSize destSize = ToIntSize(aDest->GetSize());
++ pixman_image_t* dest = pixman_image_create_bits(aDest->Format() == gfxImageFormat::ARGB32 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
++ destSize.width,
++ destSize.height,
++ (uint32_t*)aDest->Data(),
++ aDest->Stride());
++
++ IntSize srcSize = aSrc->GetSize();
++ pixman_image_t* src = pixman_image_create_bits(aSrc->GetFormat() == SurfaceFormat::B8G8R8A8 ? PIXMAN_a8r8g8b8 : PIXMAN_x8r8g8b8,
++ srcSize.width,
++ srcSize.height,
++ (uint32_t*)aSrc->GetData(),
++ aSrc->Stride());
++
++ NS_ABORT_IF_FALSE(src && dest, "Failed to create pixman images?");
++
++ pixman_transform pixTransform = BasicLayerManager_Matrix3DToPixman(aTransform);
++ pixman_transform pixTransformInverted;
++
++ // If the transform is singular then nothing would be drawn anyway, return here
++ if (!pixman_transform_invert(&pixTransformInverted, &pixTransform)) {
++ pixman_image_unref(dest);
++ pixman_image_unref(src);
++ return;
++ }
++ pixman_image_set_transform(src, &pixTransformInverted);
++
++ pixman_image_composite32(PIXMAN_OP_SRC,
++ src,
++ nullptr,
++ dest,
++ aDestOffset.x,
++ aDestOffset.y,
++ 0,
++ 0,
++ 0,
++ 0,
++ destSize.width,
++ destSize.height);
++
++ pixman_image_unref(dest);
++ pixman_image_unref(src);
++}
++#endif
+
+ /**
+ * Transform a surface using a gfx3DMatrix and blit to the destination if
+@@ -699,7 +777,7 @@ Transform3D(RefPtr aSource,
+ gfx3DMatrix translation = gfx3DMatrix::Translation(aBounds.x, aBounds.y, 0);
+
+ // Transform the content and offset it such that the content begins at the origin.
+- SkiaTransform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
++ Transform(destImage, aSource->GetDataSurface(), translation * aTransform, offset);
+
+ // If we haven't actually drawn to aDest then return our temporary image so
+ // that the caller can do this.
+--
+2.3.0.4.g34b1174
+
diff --git a/source-stamp.txt b/source-stamp.txt
index 86089c3..fe52887 100644
--- a/source-stamp.txt
+++ b/source-stamp.txt
@@ -1,2 +1,2 @@
-REV=df45b1c67169
+REV=29182ac68a26
REPO=http://hg.mozilla.org/releases/mozilla-release
diff --git a/toolkit-download-folder.patch b/toolkit-download-folder.patch
index 43d48d9..7885103 100644
--- a/toolkit-download-folder.patch
+++ b/toolkit-download-folder.patch
@@ -6,7 +6,7 @@ https://bugzilla.novell.com/show_bug.cgi?id=501724
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
--- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js
-@@ -290,17 +290,17 @@ var gMainPane = {
+@@ -408,17 +408,17 @@ var gMainPane = {
// and was available as an option in the 1.5 drop down. On XP this
// was in My Documents, on OSX it was in User Docs. In 2.0, we did
// away with the drop down option, although the special label was
@@ -17,18 +17,18 @@ diff --git a/browser/components/preferences/main.js b/browser/components/prefere
// folder. See nsDownloadManager for details.
- downloadFolder.label = bundlePreferences.getString("downloadsFolderName");
+ downloadFolder.label = "Downloads";
- iconUrlSpec = fph.getURLSpecFromFile(this._indexToFolder(1));
+ iconUrlSpec = fph.getURLSpecFromFile(yield this._indexToFolder(1));
} else {
// 'Desktop'
downloadFolder.label = bundlePreferences.getString("desktopFolderName");
- iconUrlSpec = fph.getURLSpecFromFile(this._getDownloadsFolder("Desktop"));
+ iconUrlSpec = fph.getURLSpecFromFile(yield this._getDownloadsFolder("Desktop"));
}
downloadFolder.image = "moz-icon://" + iconUrlSpec + "?size=16";
-
+ }),
diff --git a/toolkit/components/downloads/nsDownloadManager.cpp b/toolkit/components/downloads/nsDownloadManager.cpp
--- a/toolkit/components/downloads/nsDownloadManager.cpp
+++ b/toolkit/components/downloads/nsDownloadManager.cpp
-@@ -1365,18 +1365,20 @@ nsDownloadManager::GetDefaultDownloadsDi
+@@ -1361,18 +1361,20 @@ nsDownloadManager::GetDefaultDownloadsDi
// Vista:
// Downloads
// XP/2K: