aboutsummaryrefslogtreecommitdiffstats
path: root/www
diff options
context:
space:
mode:
authorjbeich <jbeich@FreeBSD.org>2016-04-21 19:18:13 +0800
committerjbeich <jbeich@FreeBSD.org>2016-04-21 19:18:13 +0800
commit6430722ff2a915080b85d5e4136b10757a23a481 (patch)
tree137e7f78b6588b4f8a0de72ec98184f748d41bdf /www
parentba98b0c18d595d43d54f1c426a56c3a01b48b4fc (diff)
downloadfreebsd-ports-gnome-6430722ff2a915080b85d5e4136b10757a23a481.tar.gz
freebsd-ports-gnome-6430722ff2a915080b85d5e4136b10757a23a481.tar.zst
freebsd-ports-gnome-6430722ff2a915080b85d5e4136b10757a23a481.zip
www/firefox{,-esr}: update to 46.0 (rc4) / 45.1esr
Changes: https://www.mozilla.org/firefox/46.0/releasenotes/ Changes: https://www.mozilla.org/firefox/45.1.0/releasenotes/ Security: 92d44f83-a7bf-41cf-91ee-3d1b8ecf579f MFH: 2016Q2
Diffstat (limited to 'www')
-rw-r--r--www/firefox-esr-i18n/Makefile2
-rw-r--r--www/firefox-esr-i18n/Makefile.lang28
-rw-r--r--www/firefox-esr-i18n/Makefile.option73
-rw-r--r--www/firefox-esr-i18n/distinfo356
-rw-r--r--www/firefox-esr/Makefile34
-rw-r--r--www/firefox-esr/distinfo4
-rw-r--r--www/firefox-esr/files/extra-patch-bug112551436
-rw-r--r--www/firefox-esr/files/patch-bug101388218
-rw-r--r--www/firefox-esr/files/patch-bug102176112
-rw-r--r--www/firefox-esr/files/patch-bug102649968
-rw-r--r--www/firefox-esr/files/patch-bug1073117877
-rw-r--r--www/firefox-esr/files/patch-bug1138845134
-rw-r--r--www/firefox-esr/files/patch-bug114368646
-rw-r--r--www/firefox-esr/files/patch-bug114464333
-rw-r--r--www/firefox-esr/files/patch-bug114820338
-rw-r--r--www/firefox-esr/files/patch-bug123327518
-rw-r--r--www/firefox-esr/files/patch-bug124213213
-rw-r--r--www/firefox-esr/files/patch-bug125224644
-rw-r--r--www/firefox-esr/files/patch-bug1257947 (renamed from www/firefox/files/patch-bug1257947)0
-rw-r--r--www/firefox-esr/files/patch-bug70217933
-rw-r--r--www/firefox-esr/files/patch-bug77971377
-rw-r--r--www/firefox-esr/files/patch-bug82698558
-rw-r--r--www/firefox-esr/files/patch-bug84756887
-rw-r--r--www/firefox-esr/files/patch-bug98134810
-rw-r--r--www/firefox-esr/files/patch-bug9912536
-rw-r--r--www/firefox-esr/files/patch-config-baseconfig.mk11
-rw-r--r--www/firefox-esr/files/patch-dom-events-MessageEvent.h12
-rw-r--r--www/firefox-esr/files/patch-ijg-libjpeg5
-rw-r--r--www/firefox-esr/files/patch-memory-jemalloc-Makefile.in10
-rw-r--r--www/firefox-esr/files/patch-modules-libpref-init-all.js15
-rw-r--r--www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk2
-rw-r--r--www/firefox-esr/files/patch-z-bug517422328
-rw-r--r--www/firefox-i18n/Makefile6
-rw-r--r--www/firefox-i18n/Makefile.lang10
-rw-r--r--www/firefox-i18n/Makefile.option3
-rw-r--r--www/firefox-i18n/distinfo356
-rw-r--r--www/firefox/Makefile12
-rw-r--r--www/firefox/distinfo4
-rw-r--r--www/firefox/files/patch-bug102176140
-rw-r--r--www/firefox/files/patch-bug1239550144
-rw-r--r--www/firefox/files/patch-bug125613621
-rw-r--r--www/firefox/files/patch-bug8269854
-rw-r--r--www/firefox/files/patch-bug8475684
-rw-r--r--www/firefox/files/patch-z-bug51742240
-rw-r--r--www/libxul/Makefile32
-rw-r--r--www/libxul/distinfo4
-rw-r--r--www/libxul/files/extra-patch-bug112551436
-rw-r--r--www/libxul/files/patch-bug101388218
-rw-r--r--www/libxul/files/patch-bug102176112
-rw-r--r--www/libxul/files/patch-bug102649968
-rw-r--r--www/libxul/files/patch-bug1073117877
-rw-r--r--www/libxul/files/patch-bug1138845134
-rw-r--r--www/libxul/files/patch-bug114368646
-rw-r--r--www/libxul/files/patch-bug114464333
-rw-r--r--www/libxul/files/patch-bug114820338
-rw-r--r--www/libxul/files/patch-bug123327518
-rw-r--r--www/libxul/files/patch-bug124213213
-rw-r--r--www/libxul/files/patch-bug125224644
-rw-r--r--www/libxul/files/patch-bug70217933
-rw-r--r--www/libxul/files/patch-bug77971377
-rw-r--r--www/libxul/files/patch-bug82698558
-rw-r--r--www/libxul/files/patch-bug84756887
-rw-r--r--www/libxul/files/patch-bug98134810
-rw-r--r--www/libxul/files/patch-bug9912536
-rw-r--r--www/libxul/files/patch-config-baseconfig.mk11
-rw-r--r--www/libxul/files/patch-dom-events-MessageEvent.h12
-rw-r--r--www/libxul/files/patch-ijg-libjpeg5
-rw-r--r--www/libxul/files/patch-memory-jemalloc-Makefile.in10
-rw-r--r--www/libxul/files/patch-modules-libpref-init-all.js15
-rw-r--r--www/libxul/files/patch-toolkit_mozapps_installer_packager_mk2
-rw-r--r--www/libxul/files/patch-z-bug517422328
-rw-r--r--www/linux-firefox/Makefile4
-rw-r--r--www/linux-firefox/distinfo4
-rw-r--r--www/linux-firefox/pkg-plist6
74 files changed, 1289 insertions, 3884 deletions
diff --git a/www/firefox-esr-i18n/Makefile b/www/firefox-esr-i18n/Makefile
index 23daa1486d5a..1eac32c6b4ef 100644
--- a/www/firefox-esr-i18n/Makefile
+++ b/www/firefox-esr-i18n/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= firefox
-PORTVERSION= 38.7.1
+PORTVERSION= 45.1.0
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}esr/linux-i686/xpi \
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build1/linux-i686/xpi
diff --git a/www/firefox-esr-i18n/Makefile.lang b/www/firefox-esr-i18n/Makefile.lang
index aa4c89c91326..79a8cfac796b 100644
--- a/www/firefox-esr-i18n/Makefile.lang
+++ b/www/firefox-esr-i18n/Makefile.lang
@@ -3,11 +3,11 @@
FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs \
cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \
- es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl \
+ es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \
gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \
kn ko lij lt lv mai mk ml mr ms nb-NO nl nn-NO \
or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq \
- sr sv-SE ta te th tr uk vi xh zh-CN zh-TW
+ sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW
.if defined(FIREFOX_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package)
FIREFOX_I18N= ${FIREFOX_I18N_ALL_}
@@ -57,9 +57,6 @@ FIREFOX_I18N+= ca
.if ${PORT_OPTIONS:MLANG_CS}
FIREFOX_I18N+= cs
.endif
-.if ${PORT_OPTIONS:MLANG_CSB}
-FIREFOX_I18N+= csb
-.endif
.if ${PORT_OPTIONS:MLANG_CY}
FIREFOX_I18N+= cy
.endif
@@ -129,6 +126,9 @@ FIREFOX_I18N+= gd
.if ${PORT_OPTIONS:MLANG_GL}
FIREFOX_I18N+= gl
.endif
+.if ${PORT_OPTIONS:MLANG_GN}
+FIREFOX_I18N+= gn
+.endif
.if ${PORT_OPTIONS:MLANG_GU}
FIREFOX_I18N+= gu-IN
.endif
@@ -174,9 +174,6 @@ FIREFOX_I18N+= kn
.if ${PORT_OPTIONS:MLANG_KO}
FIREFOX_I18N+= ko
.endif
-.if ${PORT_OPTIONS:MLANG_KU}
-FIREFOX_I18N+= ku
-.endif
.if ${PORT_OPTIONS:MLANG_LIJ}
FIREFOX_I18N+= lij
.endif
@@ -240,12 +237,12 @@ FIREFOX_I18N+= si
.if ${PORT_OPTIONS:MLANG_SK}
FIREFOX_I18N+= sk
.endif
-.if ${PORT_OPTIONS:MLANG_SON}
-FIREFOX_I18N+= son
-.endif
.if ${PORT_OPTIONS:MLANG_SL}
FIREFOX_I18N+= sl
.endif
+.if ${PORT_OPTIONS:MLANG_SON}
+FIREFOX_I18N+= son
+.endif
.if ${PORT_OPTIONS:MLANG_SQ}
FIREFOX_I18N+= sq
.endif
@@ -255,9 +252,6 @@ FIREFOX_I18N+= sr
.if ${PORT_OPTIONS:MLANG_SV}
FIREFOX_I18N+= sv-SE
.endif
-.if ${PORT_OPTIONS:MLANG_SW}
-FIREFOX_I18N+= sw
-.endif
.if ${PORT_OPTIONS:MLANG_TA}
FIREFOX_I18N+= ta
.endif
@@ -273,6 +267,9 @@ FIREFOX_I18N+= tr
.if ${PORT_OPTIONS:MLANG_UK}
FIREFOX_I18N+= uk
.endif
+.if ${PORT_OPTIONS:MLANG_UZ}
+FIREFOX_I18N+= uz
+.endif
.if ${PORT_OPTIONS:MLANG_VI}
FIREFOX_I18N+= vi
.endif
@@ -285,7 +282,4 @@ FIREFOX_I18N+= zh-CN
.if ${PORT_OPTIONS:MLANG_TW}
FIREFOX_I18N+= zh-TW
.endif
-.if ${PORT_OPTIONS:MLANG_ZU}
-FIREFOX_I18N+= zu
-.endif
.endif
diff --git a/www/firefox-esr-i18n/Makefile.option b/www/firefox-esr-i18n/Makefile.option
index bfe46e018187..6df5c3632fc8 100644
--- a/www/firefox-esr-i18n/Makefile.option
+++ b/www/firefox-esr-i18n/Makefile.option
@@ -1,100 +1,101 @@
# Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp>
# $FreeBSD$
+# this is sorted on the name of the xpi files, not the option name
OPTIONS_DEFINE= LANG_ACH \
LANG_AF \
LANG_AN \
- LANG_SQ \
LANG_AR \
LANG_AS \
- LANG_AM \
LANG_AST \
LANG_AZ \
- LANG_EU \
- LANG_BN \
+ LANG_BE \
+ LANG_BG \
LANG_BB \
- LANG_BS \
+ LANG_BN \
LANG_BR \
- LANG_BG \
- LANG_BE \
+ LANG_BS \
LANG_CA \
- LANG_CN \
LANG_CS \
+ LANG_CY \
LANG_DA \
- LANG_NL \
+ LANG_DE \
+ LANG_DSB \
+ LANG_EL \
LANG_GB \
LANG_US \
+ LANG_ZA \
LANG_EO \
+ LANG_SA \
+ LANG_SC \
+ LANG_ES \
+ LANG_SM \
LANG_ET \
- LANG_GL \
- LANG_DE \
- LANG_DSB \
- LANG_EL \
- LANG_GU \
+ LANG_EU \
+ LANG_FA \
LANG_FF \
LANG_FI \
LANG_FR \
LANG_FY \
LANG_GA \
LANG_GD \
+ LANG_GL \
+ LANG_GN \
+ LANG_GU \
LANG_HE \
LANG_HI \
LANG_HR \
LANG_HSB \
LANG_HU \
- LANG_IS \
+ LANG_AM \
LANG_ID \
+ LANG_IS \
LANG_IT \
LANG_JA \
- LANG_KN \
LANG_KK \
LANG_KM \
+ LANG_KN \
LANG_KO \
- LANG_LV \
- LANG_LT \
LANG_LIJ \
- LANG_MK \
+ LANG_LT \
+ LANG_LV \
LANG_MAI \
+ LANG_MK \
LANG_ML \
LANG_MR \
- LANG_MN \
LANG_MS \
LANG_NB \
+ LANG_NL \
LANG_NN \
LANG_OR \
- LANG_FA \
+ LANG_PA \
LANG_PL \
- LANG_PT \
LANG_PBR\
- LANG_PA \
- LANG_RO \
+ LANG_PT \
LANG_RM \
+ LANG_RO \
LANG_RU \
- LANG_SR \
LANG_SI \
- LANG_ES \
- LANG_SON \
- LANG_SA \
- LANG_SC \
- LANG_SM \
LANG_SK \
LANG_SL \
+ LANG_SON \
+ LANG_SQ \
+ LANG_SR \
LANG_SV \
- LANG_TW \
LANG_TA \
LANG_TE \
LANG_TH \
LANG_TR \
LANG_UK \
+ LANG_UZ \
LANG_VI \
- LANG_CY \
LANG_XH \
- LANG_ZA \
- LANG_ZU
+ LANG_CN \
+ LANG_TW
OPTIONS_DEFAULT=LANG_AR LANG_BN LANG_BR LANG_CN LANG_ET LANG_DE LANG_FR \
LANG_HI LANG_ID LANG_IT LANG_JA LANG_KO LANG_MK LANG_MR \
- LANG_MN LANG_PBR LANG_PA LANG_RU LANG_ES LANG_SON LANG_TE
+ LANG_PBR LANG_PA LANG_RU LANG_ES LANG_SON LANG_TE
LANG_ACH_DESC?= Acholi language support
LANG_AN_DESC?= Aragonese language support
@@ -103,9 +104,11 @@ LANG_AZ_DESC?= Azerbaijani language support
LANG_CSB_DESC?= Kashubian language support
LANG_DSB_DESC?= Lower Sorbian language support
LANG_FF_DESC?= Fulah language support
+LANG_GN_DESC?= Guarani (Paraguay) language support
LANG_HSB_DESC?= Upper Sorbian language support
LANG_KM_DESC?= Khmer language support
LANG_LIJ_DESC?= Ligurian (Genoa) language support
LANG_MS_DESC?= Malay language support
LANG_SW_DESC?= Swahili language support
+LANG_UZ_DESC?= Uzbek language support
LANG_XH_DESC?= Xhosa language support
diff --git a/www/firefox-esr-i18n/distinfo b/www/firefox-esr-i18n/distinfo
index c7d7ca7a334e..9cba01f75fa9 100644
--- a/www/firefox-esr-i18n/distinfo
+++ b/www/firefox-esr-i18n/distinfo
@@ -1,176 +1,180 @@
-SHA256 (xpi/firefox-38.7.1/ach.xpi) = e426d4a42a3a5922ebfce36791f3150eec4be09b82c48a24cff82d54231ab1b1
-SIZE (xpi/firefox-38.7.1/ach.xpi) = 477969
-SHA256 (xpi/firefox-38.7.1/af.xpi) = 495ba9aa6d33b913ceb89be4eff01746574b6315d87b038ae9229d9ba0217adb
-SIZE (xpi/firefox-38.7.1/af.xpi) = 483326
-SHA256 (xpi/firefox-38.7.1/an.xpi) = 9e3c9588b363b08ec230bf0518a6709a84d9efe0cd89f4577147e91f7e223fd7
-SIZE (xpi/firefox-38.7.1/an.xpi) = 461423
-SHA256 (xpi/firefox-38.7.1/ar.xpi) = 49035a4c7bbc4ec29388a531d13a73c6d6c69dcbcb55fcfd0f09866378a795d0
-SIZE (xpi/firefox-38.7.1/ar.xpi) = 516495
-SHA256 (xpi/firefox-38.7.1/as.xpi) = 245b472e0a22f66afb2aa1b5c5121be45a51137e5b356be40c2e792189593af9
-SIZE (xpi/firefox-38.7.1/as.xpi) = 509574
-SHA256 (xpi/firefox-38.7.1/ast.xpi) = 54915a1d3d4e241cfa11a41384db5d50cbf13e2053b74ff38d49480550d4f0b8
-SIZE (xpi/firefox-38.7.1/ast.xpi) = 397202
-SHA256 (xpi/firefox-38.7.1/az.xpi) = f0600dcc8b1b7e0d871d402aa7f93e16796b1560d329bb9e93c65649c6117ba3
-SIZE (xpi/firefox-38.7.1/az.xpi) = 489153
-SHA256 (xpi/firefox-38.7.1/be.xpi) = 6b36c34fc846032af3ef67707662c997704d6a410c1d672c2cda7cd7c172d6b6
-SIZE (xpi/firefox-38.7.1/be.xpi) = 441057
-SHA256 (xpi/firefox-38.7.1/bg.xpi) = ffb7d4db11f3fa641281cdfa2eb146971dba5b5c74c0fc84401ee5f5779d6f52
-SIZE (xpi/firefox-38.7.1/bg.xpi) = 487819
-SHA256 (xpi/firefox-38.7.1/bn-BD.xpi) = b77c6eb0c696926727a792b0fc60f95713b4b999d54fc7708804bee5abd11213
-SIZE (xpi/firefox-38.7.1/bn-BD.xpi) = 528690
-SHA256 (xpi/firefox-38.7.1/bn-IN.xpi) = d7558c09adcc9c26cdf0ff1d5e66813336c8e1e50dfe759510553788e0bc887a
-SIZE (xpi/firefox-38.7.1/bn-IN.xpi) = 527927
-SHA256 (xpi/firefox-38.7.1/br.xpi) = 75fa3b403ba6be699e7dce4d189231c6ce6c50d0ad44e672140f5ec680635100
-SIZE (xpi/firefox-38.7.1/br.xpi) = 441962
-SHA256 (xpi/firefox-38.7.1/bs.xpi) = 2cc60c9216dc38d7b28a7fd1594d1755c69378ec05c9edcdaef5b6de9ed3a11c
-SIZE (xpi/firefox-38.7.1/bs.xpi) = 485305
-SHA256 (xpi/firefox-38.7.1/ca.xpi) = febf01c4ebe3ed48ced0bd4309f0baa1423fb42e992286669d32ac6022ad5625
-SIZE (xpi/firefox-38.7.1/ca.xpi) = 458092
-SHA256 (xpi/firefox-38.7.1/cs.xpi) = 13e71176b8ec9d27858aa9536e3c702b1e30b700f9e68016beb78d29353cd838
-SIZE (xpi/firefox-38.7.1/cs.xpi) = 446726
-SHA256 (xpi/firefox-38.7.1/cy.xpi) = 4b23251868fbaf581186e19f20b5fc661ea5f015e769b782470ed0790ab2c25f
-SIZE (xpi/firefox-38.7.1/cy.xpi) = 444385
-SHA256 (xpi/firefox-38.7.1/da.xpi) = 54ee9948a047eec9827abf0ea62f4f80f963edde1e681f7a3e8b22a518468c32
-SIZE (xpi/firefox-38.7.1/da.xpi) = 450762
-SHA256 (xpi/firefox-38.7.1/de.xpi) = 02ab0f297dac17e189eb8aa19c5a11e5a7f7d93a59c4734847ccdbe6c079f4d3
-SIZE (xpi/firefox-38.7.1/de.xpi) = 451629
-SHA256 (xpi/firefox-38.7.1/dsb.xpi) = 995d87f77fd6da8c3ae62c1dceb6f74caf32c0b135b0852f4259e6fba31402f8
-SIZE (xpi/firefox-38.7.1/dsb.xpi) = 470923
-SHA256 (xpi/firefox-38.7.1/el.xpi) = f7798d14e6b623a4390d2eb6aebb5cdcf0ac14a538d0aa60d0f68d6400110201
-SIZE (xpi/firefox-38.7.1/el.xpi) = 498370
-SHA256 (xpi/firefox-38.7.1/en-GB.xpi) = 299005aa0b813bf6ce711214abd89f116a907be84e14076620bc54d54b0e5fd1
-SIZE (xpi/firefox-38.7.1/en-GB.xpi) = 437845
-SHA256 (xpi/firefox-38.7.1/en-US.xpi) = 2850454d1cea1aba064f69e5d3b845ae3591f6b65b54011c4e16f7816df22b8e
-SIZE (xpi/firefox-38.7.1/en-US.xpi) = 469718
-SHA256 (xpi/firefox-38.7.1/en-ZA.xpi) = e749074c9260be3eecc42976c06341920b93015a40f2564f9e04a6de7f9b47d0
-SIZE (xpi/firefox-38.7.1/en-ZA.xpi) = 439925
-SHA256 (xpi/firefox-38.7.1/eo.xpi) = 6b7c10f8a21a5038f3a770ebfb37b10207ac9ce2702abfefe8f7f4225223a84d
-SIZE (xpi/firefox-38.7.1/eo.xpi) = 488369
-SHA256 (xpi/firefox-38.7.1/es-AR.xpi) = 6d69d7543694e5dbc79918b630c0ebed94c7cb67dc3ee6cf93f05accc26af920
-SIZE (xpi/firefox-38.7.1/es-AR.xpi) = 453983
-SHA256 (xpi/firefox-38.7.1/es-CL.xpi) = cada53ffc8c1a0d35cf16fa8990d1e4678937375fefaf5b464a6c0d6e0a4d398
-SIZE (xpi/firefox-38.7.1/es-CL.xpi) = 384678
-SHA256 (xpi/firefox-38.7.1/es-ES.xpi) = 6cac270d43a71cbf833329197bb5d965be231bb5c67311a005861c347b64659f
-SIZE (xpi/firefox-38.7.1/es-ES.xpi) = 374073
-SHA256 (xpi/firefox-38.7.1/es-MX.xpi) = a54e0d916a2b5b0b81e68f24a3f0263458311435204013fc1c09aed94161bea5
-SIZE (xpi/firefox-38.7.1/es-MX.xpi) = 457049
-SHA256 (xpi/firefox-38.7.1/et.xpi) = 0577f74dac4d36ae9ed87aeffb2e4d6f9cfb2286fafd6d8b45378d6aec7919a8
-SIZE (xpi/firefox-38.7.1/et.xpi) = 443229
-SHA256 (xpi/firefox-38.7.1/eu.xpi) = 13e617b0e8476d6ea2353414f5157c8f2494c2a91a06476568ecc513abdd2bbc
-SIZE (xpi/firefox-38.7.1/eu.xpi) = 466555
-SHA256 (xpi/firefox-38.7.1/fa.xpi) = e41d3fa8b4af987a567faffb61199417bb6fc7c691e8e22865d5a5cf73074506
-SIZE (xpi/firefox-38.7.1/fa.xpi) = 518282
-SHA256 (xpi/firefox-38.7.1/ff.xpi) = c44d2a4fa2e780027332c2e987a919c4b515f79b9cac7bf1a919c336c8602673
-SIZE (xpi/firefox-38.7.1/ff.xpi) = 454587
-SHA256 (xpi/firefox-38.7.1/fi.xpi) = 4cca1a5987ba25b7d516e006e7286bd88b9d87db24b295a21cdafeaec1d8b42c
-SIZE (xpi/firefox-38.7.1/fi.xpi) = 444852
-SHA256 (xpi/firefox-38.7.1/fr.xpi) = 3307e02df045e91d4406e1008fca298fd386f707899914052faee11a10cb79fe
-SIZE (xpi/firefox-38.7.1/fr.xpi) = 461402
-SHA256 (xpi/firefox-38.7.1/fy-NL.xpi) = 2dfe6582cf7f4b38bf7ab1ba4d929764144d9fe0d9981f28a0371a3c201a6e10
-SIZE (xpi/firefox-38.7.1/fy-NL.xpi) = 455541
-SHA256 (xpi/firefox-38.7.1/ga-IE.xpi) = d5f98c255c96505b2303780ae939db1d63280b8d757c1a33308b0fba3e6a83d3
-SIZE (xpi/firefox-38.7.1/ga-IE.xpi) = 469623
-SHA256 (xpi/firefox-38.7.1/gd.xpi) = 0c34cec01771932438fa78457a65bb320d5246e003861caa4a2b099f5bde7194
-SIZE (xpi/firefox-38.7.1/gd.xpi) = 454616
-SHA256 (xpi/firefox-38.7.1/gl.xpi) = 61a24fc4decd3fc98815784183e98c9d631fb0569fc8342c2d052585c5367264
-SIZE (xpi/firefox-38.7.1/gl.xpi) = 448925
-SHA256 (xpi/firefox-38.7.1/gu-IN.xpi) = 404df6179b7d422ca170c8b5fb473a3a4deb31382876f2944f311ab716bb261e
-SIZE (xpi/firefox-38.7.1/gu-IN.xpi) = 477980
-SHA256 (xpi/firefox-38.7.1/he.xpi) = fd43f7c6721b6b33fbe65e64b6b6bdcc8c64d1801ece8cb30ac6828e90ed682f
-SIZE (xpi/firefox-38.7.1/he.xpi) = 486786
-SHA256 (xpi/firefox-38.7.1/hi-IN.xpi) = 9330e532d897056aad75c33ac89c34e947d45ba902679d67b02201936b4ccdc6
-SIZE (xpi/firefox-38.7.1/hi-IN.xpi) = 508167
-SHA256 (xpi/firefox-38.7.1/hr.xpi) = fa418bf4eddc971c53d9e2f2dc46726df63820fd196bc17b4c51f9b19fcbf6bf
-SIZE (xpi/firefox-38.7.1/hr.xpi) = 478272
-SHA256 (xpi/firefox-38.7.1/hsb.xpi) = 9a59584de8d1339950c085e486d79a59dc3a40c04cceaa06ac2fc335fdbdfb7f
-SIZE (xpi/firefox-38.7.1/hsb.xpi) = 468719
-SHA256 (xpi/firefox-38.7.1/hu.xpi) = 8116c880098c2efa89561edf0ef0541cea1a1d742dbfc6df97747c3e7d8b4003
-SIZE (xpi/firefox-38.7.1/hu.xpi) = 453555
-SHA256 (xpi/firefox-38.7.1/hy-AM.xpi) = fb2c52d224128732dc2efa22661bc74ccfab729a263ea92979e0007a151ae80d
-SIZE (xpi/firefox-38.7.1/hy-AM.xpi) = 534265
-SHA256 (xpi/firefox-38.7.1/id.xpi) = 07b83d2cac216a8e395b78f816d29c812af142a59c63543785dc2b16f8242e39
-SIZE (xpi/firefox-38.7.1/id.xpi) = 431489
-SHA256 (xpi/firefox-38.7.1/is.xpi) = 4e4d5d646d985da2f1c2199919edfd123153229109137aaefee806d7aadb6136
-SIZE (xpi/firefox-38.7.1/is.xpi) = 485128
-SHA256 (xpi/firefox-38.7.1/it.xpi) = f130c735897f87788add259808b1ba63597c563d16e13718f1c8cc252435afdc
-SIZE (xpi/firefox-38.7.1/it.xpi) = 368409
-SHA256 (xpi/firefox-38.7.1/ja.xpi) = a8dfde526878ec3139641b2684b33374b3c8efe2437daa3b61eae55435a241fb
-SIZE (xpi/firefox-38.7.1/ja.xpi) = 479113
-SHA256 (xpi/firefox-38.7.1/kk.xpi) = 575076851a9ced7683cca17e642c377cceeedc645bd39d065a603d6acbd94762
-SIZE (xpi/firefox-38.7.1/kk.xpi) = 503568
-SHA256 (xpi/firefox-38.7.1/km.xpi) = e7b96756bf6fa67491b52b36bf4278b318fdf19c17f8b229a537a9a7d991fcf2
-SIZE (xpi/firefox-38.7.1/km.xpi) = 565674
-SHA256 (xpi/firefox-38.7.1/kn.xpi) = a045b0e508b2b25b69aa5d59a0837de0dcff30e89c699ce2a679f8681a38b8e2
-SIZE (xpi/firefox-38.7.1/kn.xpi) = 533464
-SHA256 (xpi/firefox-38.7.1/ko.xpi) = a1eec2480d601ddd5457e2db32e093ea1fa2afb86f5e994efcbdb1cb3a04ce30
-SIZE (xpi/firefox-38.7.1/ko.xpi) = 460854
-SHA256 (xpi/firefox-38.7.1/lij.xpi) = 9976a055215e903deca570ea02d453747319629408bcd8b589f8d71848c391f7
-SIZE (xpi/firefox-38.7.1/lij.xpi) = 444241
-SHA256 (xpi/firefox-38.7.1/lt.xpi) = e6c4d6219fe9615ceeaf500e3307ea2e918e596ebf302bedf3621e39f08b4b81
-SIZE (xpi/firefox-38.7.1/lt.xpi) = 486452
-SHA256 (xpi/firefox-38.7.1/lv.xpi) = 5ddd9963c85db2e99bb26908e767ccb4b079fe87ee08feb15e62d5bf8eb56414
-SIZE (xpi/firefox-38.7.1/lv.xpi) = 467198
-SHA256 (xpi/firefox-38.7.1/mai.xpi) = 73064db0dccc3127d9998b04537d236a288538595e06c0f5d8b6a1712669cb57
-SIZE (xpi/firefox-38.7.1/mai.xpi) = 514665
-SHA256 (xpi/firefox-38.7.1/mk.xpi) = f01ac3cd7c09b8855df905acac57daf053f0e5dbb476f8c58fea23c3034ccedf
-SIZE (xpi/firefox-38.7.1/mk.xpi) = 529205
-SHA256 (xpi/firefox-38.7.1/ml.xpi) = 7c5b7d6e67a86df253b8f865035a049cc8541d35d7741029faf5ec4f285fbd88
-SIZE (xpi/firefox-38.7.1/ml.xpi) = 528919
-SHA256 (xpi/firefox-38.7.1/mr.xpi) = 903e11f0be03982cb00da9e709469c98f321ebb96cd416258b3c5ed807c54c29
-SIZE (xpi/firefox-38.7.1/mr.xpi) = 505961
-SHA256 (xpi/firefox-38.7.1/ms.xpi) = 5b9f3769a67c0211eaba899a03ad5bd54aea33a4759c342dc1db57b43342562e
-SIZE (xpi/firefox-38.7.1/ms.xpi) = 489872
-SHA256 (xpi/firefox-38.7.1/nb-NO.xpi) = 34c8aa37d1e6c914ad97aba939ce26800d71d96ed264247afe56767c57bf522c
-SIZE (xpi/firefox-38.7.1/nb-NO.xpi) = 444176
-SHA256 (xpi/firefox-38.7.1/nl.xpi) = 0f794624e2e68eaeb33c2d225dbdae3ff407c887549f4969ff702f886fb68c36
-SIZE (xpi/firefox-38.7.1/nl.xpi) = 443994
-SHA256 (xpi/firefox-38.7.1/nn-NO.xpi) = 743ea205e27aefd8eccaa22aa92f507a7a2e87a87c6c0cc032faff1eac24142e
-SIZE (xpi/firefox-38.7.1/nn-NO.xpi) = 438451
-SHA256 (xpi/firefox-38.7.1/or.xpi) = bc6db8fa74f36e725a5c3b13f81240353dcb5dace0280b045b70a7e71788df1b
-SIZE (xpi/firefox-38.7.1/or.xpi) = 527049
-SHA256 (xpi/firefox-38.7.1/pa-IN.xpi) = b18721f0e3ff559201179007b6e2a4bc52528f5d4fd4b633472456a2d9394526
-SIZE (xpi/firefox-38.7.1/pa-IN.xpi) = 493722
-SHA256 (xpi/firefox-38.7.1/pl.xpi) = 126d7277b112cd5e1016e970dd966002a00c1bcc168ebb076380eba0b93b8e9b
-SIZE (xpi/firefox-38.7.1/pl.xpi) = 406566
-SHA256 (xpi/firefox-38.7.1/pt-BR.xpi) = a50abb5b26d99b2015993d38aa2736b049e9784375f29c4340c67b5ce5901e9e
-SIZE (xpi/firefox-38.7.1/pt-BR.xpi) = 459810
-SHA256 (xpi/firefox-38.7.1/pt-PT.xpi) = e74a1044b30ce08b536840eb97fc41322ffbbfabb8d65f32f86552f9055adca9
-SIZE (xpi/firefox-38.7.1/pt-PT.xpi) = 439975
-SHA256 (xpi/firefox-38.7.1/rm.xpi) = 23a00150ed90672462ce64646b960afe7e93c365407c900d64b5efdefc9658b0
-SIZE (xpi/firefox-38.7.1/rm.xpi) = 446287
-SHA256 (xpi/firefox-38.7.1/ro.xpi) = 5ec5d1365df706e1cb24877df22ac97e7aaa982af951e99e4318d05a6a4c9164
-SIZE (xpi/firefox-38.7.1/ro.xpi) = 494078
-SHA256 (xpi/firefox-38.7.1/ru.xpi) = b993cbfaa34fc2c2b06993ab1a1b660d9f9c58830ce0c1ef6afa6eb80e566932
-SIZE (xpi/firefox-38.7.1/ru.xpi) = 414419
-SHA256 (xpi/firefox-38.7.1/si.xpi) = 976713479c27a6e27eb8aa1264c690e83ad006be284e28e4762f9b76ddfd2170
-SIZE (xpi/firefox-38.7.1/si.xpi) = 537393
-SHA256 (xpi/firefox-38.7.1/sk.xpi) = d85f0a9f7ed32c93c9006af642e1442aa65860a8fe0252f1282575f64f790305
-SIZE (xpi/firefox-38.7.1/sk.xpi) = 469436
-SHA256 (xpi/firefox-38.7.1/sl.xpi) = 788ab280792ffe954cc410191f30f358e74b8f786435616d62c371087359f799
-SIZE (xpi/firefox-38.7.1/sl.xpi) = 441594
-SHA256 (xpi/firefox-38.7.1/son.xpi) = eec4af39f46367dcc9c282e298e6b947b4da62e8e2f4ee75c03de11f277d11e5
-SIZE (xpi/firefox-38.7.1/son.xpi) = 449268
-SHA256 (xpi/firefox-38.7.1/sq.xpi) = 7264bc57b263ff32a5e1a93e8047cdee44fc6bd78be737ffd03648d2485a9aa1
-SIZE (xpi/firefox-38.7.1/sq.xpi) = 486076
-SHA256 (xpi/firefox-38.7.1/sr.xpi) = b92988b1bee95773e35639ed3f02db267916bc2cff8a71bf02aab38fa1cab520
-SIZE (xpi/firefox-38.7.1/sr.xpi) = 479419
-SHA256 (xpi/firefox-38.7.1/sv-SE.xpi) = 980c79937cdd273c0275731bd26c03d57e82c8a5e0d0fb79b0dbd0a25b606ab8
-SIZE (xpi/firefox-38.7.1/sv-SE.xpi) = 452633
-SHA256 (xpi/firefox-38.7.1/ta.xpi) = b0a828f1f077ebbedd6618e85de5172f2f51f4baaf13acfedf7b5d94fbf6f85c
-SIZE (xpi/firefox-38.7.1/ta.xpi) = 506607
-SHA256 (xpi/firefox-38.7.1/te.xpi) = ed56af85b5ae041aa56986688d51e1f14ffe210360483e744c1350508961a865
-SIZE (xpi/firefox-38.7.1/te.xpi) = 526250
-SHA256 (xpi/firefox-38.7.1/th.xpi) = 45c2369c227ccdd786cd9e99bfe3ef53f98bf8d86c17286ab7182c60b66bb042
-SIZE (xpi/firefox-38.7.1/th.xpi) = 534270
-SHA256 (xpi/firefox-38.7.1/tr.xpi) = 0bb028b144c5cda6b0d310b91b1312e591e18c91db0b223a037b18e0cbe34f83
-SIZE (xpi/firefox-38.7.1/tr.xpi) = 481076
-SHA256 (xpi/firefox-38.7.1/uk.xpi) = 2fa352e22e30f6ad80c4884ab85b9036483223b17470cf0d559875c9da1b815a
-SIZE (xpi/firefox-38.7.1/uk.xpi) = 493313
-SHA256 (xpi/firefox-38.7.1/vi.xpi) = e44d8ad1601ccda0f534ae5a7c5afbbca89723ab4dd35c54ff917fed15112914
-SIZE (xpi/firefox-38.7.1/vi.xpi) = 467504
-SHA256 (xpi/firefox-38.7.1/xh.xpi) = e758251a6189df898e7eaf67a794d5160e82b0a94a703b1821f4dc6e0cdb86fd
-SIZE (xpi/firefox-38.7.1/xh.xpi) = 450242
-SHA256 (xpi/firefox-38.7.1/zh-CN.xpi) = 8c99716132f6268368d632e150cb77ad43e4a2374f85566fccbbe88dcbf76512
-SIZE (xpi/firefox-38.7.1/zh-CN.xpi) = 488276
-SHA256 (xpi/firefox-38.7.1/zh-TW.xpi) = e41aa8a9b5cd65abaca3735e2a87065671d1fc30b7627187ca1e4353290549f0
-SIZE (xpi/firefox-38.7.1/zh-TW.xpi) = 467843
+SHA256 (xpi/firefox-45.1.0/ach.xpi) = 520703fb2e195a2ed247633062cb0bbb5aa4adb090abd00f83ed7fcebce532b4
+SIZE (xpi/firefox-45.1.0/ach.xpi) = 426525
+SHA256 (xpi/firefox-45.1.0/af.xpi) = 4e830d0c8fd8d2be20de9bc76484b5517191c582bfc3ec8fd049f80d101905f8
+SIZE (xpi/firefox-45.1.0/af.xpi) = 439350
+SHA256 (xpi/firefox-45.1.0/an.xpi) = dacee584b408755b199e91cc302eae5819ce362d5177633ae4da67d277767e32
+SIZE (xpi/firefox-45.1.0/an.xpi) = 449031
+SHA256 (xpi/firefox-45.1.0/ar.xpi) = ffd15f00739b1add480594933b14af7ed6f1a18be9d9570e5d55f06dcdad211f
+SIZE (xpi/firefox-45.1.0/ar.xpi) = 474955
+SHA256 (xpi/firefox-45.1.0/as.xpi) = 5844b82bb60165784c0d0066ca03d6149997854b241712d67675568684db2749
+SIZE (xpi/firefox-45.1.0/as.xpi) = 483091
+SHA256 (xpi/firefox-45.1.0/ast.xpi) = 8387356f83db26385201ca706b1de8d870ccf74647cf64c3db99c430e53757ca
+SIZE (xpi/firefox-45.1.0/ast.xpi) = 419244
+SHA256 (xpi/firefox-45.1.0/az.xpi) = 757612b2ab3d7a0174f77fba2fc79c36012ea81c4d32f70368a10d2a4ad913da
+SIZE (xpi/firefox-45.1.0/az.xpi) = 464012
+SHA256 (xpi/firefox-45.1.0/be.xpi) = fa57643a1c050dd4b5d37a5302348ef86dd0f97d718ff42ae2fb65ce49514156
+SIZE (xpi/firefox-45.1.0/be.xpi) = 442614
+SHA256 (xpi/firefox-45.1.0/bg.xpi) = 0483235b368cf7b980fa8a017c8f606842eb2538f989656e0ca49cd968dc036b
+SIZE (xpi/firefox-45.1.0/bg.xpi) = 460803
+SHA256 (xpi/firefox-45.1.0/bn-BD.xpi) = ec199c1a9a1f5aa379eee7176584c9f68d85ecc7e27a00d3252de3260748ab6c
+SIZE (xpi/firefox-45.1.0/bn-BD.xpi) = 515637
+SHA256 (xpi/firefox-45.1.0/bn-IN.xpi) = 3ddc05753ccd30595d5204f90ee715bab75fefeec430c572ec0e98d13ffb6c42
+SIZE (xpi/firefox-45.1.0/bn-IN.xpi) = 494070
+SHA256 (xpi/firefox-45.1.0/br.xpi) = 6a914b1c11d73a628be78596ce34dbe9c10a6bf221c16aa409b39d6033b4cf8f
+SIZE (xpi/firefox-45.1.0/br.xpi) = 436387
+SHA256 (xpi/firefox-45.1.0/bs.xpi) = 835a206cd5f2f628c80abd440c393c2984bcb202a2ecdcc86e0c8fc5218f2be1
+SIZE (xpi/firefox-45.1.0/bs.xpi) = 442992
+SHA256 (xpi/firefox-45.1.0/ca.xpi) = 34d21e459aa1ca44748de421429f6368fcac22d66ab44135df4e9d583f705c9a
+SIZE (xpi/firefox-45.1.0/ca.xpi) = 436828
+SHA256 (xpi/firefox-45.1.0/cs.xpi) = 66de4bb611850904d2b3037e22ea60a1e0184ad0362afbfd04c1c74a649f4674
+SIZE (xpi/firefox-45.1.0/cs.xpi) = 443478
+SHA256 (xpi/firefox-45.1.0/cy.xpi) = a0e9d2d5b7c4406ff9156464bbcf44f2f3f7f12c1a409eb091b10fc18425cf98
+SIZE (xpi/firefox-45.1.0/cy.xpi) = 438903
+SHA256 (xpi/firefox-45.1.0/da.xpi) = beaeddeff7d784a1e8bf99ccbf36e65240aa62de7f600f8a5513a34e95f995ed
+SIZE (xpi/firefox-45.1.0/da.xpi) = 430073
+SHA256 (xpi/firefox-45.1.0/de.xpi) = d375a46d2d5b626c3036d45eb286da06402b40c4fb7fe564c07426cb9b9e05ac
+SIZE (xpi/firefox-45.1.0/de.xpi) = 445477
+SHA256 (xpi/firefox-45.1.0/dsb.xpi) = 9358152130db0eb7bbed6d71ef27464ce5367e041ff2329813c783a51a624538
+SIZE (xpi/firefox-45.1.0/dsb.xpi) = 463786
+SHA256 (xpi/firefox-45.1.0/el.xpi) = 5ec7b64200168b59dde23b41e44874f2a15f47ee160cf9d2e7b65a7ced08698c
+SIZE (xpi/firefox-45.1.0/el.xpi) = 470862
+SHA256 (xpi/firefox-45.1.0/en-GB.xpi) = c856d0dedb73068d16b56db7706d6107f510dfe9649f0b878988b75fd8f4fc58
+SIZE (xpi/firefox-45.1.0/en-GB.xpi) = 423866
+SHA256 (xpi/firefox-45.1.0/en-US.xpi) = b21bee531e86c7e85c9c4a97e4ba4b2c7d061e44a7dbbdc23bcef57d897891c9
+SIZE (xpi/firefox-45.1.0/en-US.xpi) = 425464
+SHA256 (xpi/firefox-45.1.0/en-ZA.xpi) = 601cb03941023adcf1f22234c538912ad138629d24031266f4b7deaed2f47e8d
+SIZE (xpi/firefox-45.1.0/en-ZA.xpi) = 420771
+SHA256 (xpi/firefox-45.1.0/eo.xpi) = 8f45bb2b8ac13d578e9ec410a1d05523ee5284409ac908c456109194a8d79d74
+SIZE (xpi/firefox-45.1.0/eo.xpi) = 440955
+SHA256 (xpi/firefox-45.1.0/es-AR.xpi) = 8017fa20fee5db586f654496e8779cbc3b7f0ce7ea710f8eeefb0e67c374d0b0
+SIZE (xpi/firefox-45.1.0/es-AR.xpi) = 441476
+SHA256 (xpi/firefox-45.1.0/es-CL.xpi) = 5d7b7d5c58198a61d13371d8e7cfd8a61b1b173e5c75e1595c68787f38fa2f92
+SIZE (xpi/firefox-45.1.0/es-CL.xpi) = 368759
+SHA256 (xpi/firefox-45.1.0/es-ES.xpi) = 422423e6a3c680daa70fb84bed3c671f8a754fa8c0f9957f0bbffe390042f476
+SIZE (xpi/firefox-45.1.0/es-ES.xpi) = 353710
+SHA256 (xpi/firefox-45.1.0/es-MX.xpi) = 02772e3581b82d298a3a42ba944fab64645516f2768353891ab7168882c0290e
+SIZE (xpi/firefox-45.1.0/es-MX.xpi) = 449390
+SHA256 (xpi/firefox-45.1.0/et.xpi) = 47fe79a5b5a3ce60fc2df77170cad6f33a4cd45b46506f6994b5f3b9cd7d0cd5
+SIZE (xpi/firefox-45.1.0/et.xpi) = 433347
+SHA256 (xpi/firefox-45.1.0/eu.xpi) = 09ef21060722257a9c061f36f65ff264387572084cbb9df09ead920c81779956
+SIZE (xpi/firefox-45.1.0/eu.xpi) = 441352
+SHA256 (xpi/firefox-45.1.0/fa.xpi) = e66d551af1ab1d722c778c07164297fb1836b5e07013c4be94012ee7dddcba2f
+SIZE (xpi/firefox-45.1.0/fa.xpi) = 491935
+SHA256 (xpi/firefox-45.1.0/ff.xpi) = d117e2390e6e5311b8e3fac85be71c090149d0b49f04f5a99a9ced3b853567b8
+SIZE (xpi/firefox-45.1.0/ff.xpi) = 441495
+SHA256 (xpi/firefox-45.1.0/fi.xpi) = 7fcfe60b776ce7beb4284d9ee026a4a845d76912be44a4e8868f01385fad568e
+SIZE (xpi/firefox-45.1.0/fi.xpi) = 438343
+SHA256 (xpi/firefox-45.1.0/fr.xpi) = acf98ddd2d7900b378631f9f0debe5725ffbb6757bb12e8395c648b923a612b2
+SIZE (xpi/firefox-45.1.0/fr.xpi) = 450033
+SHA256 (xpi/firefox-45.1.0/fy-NL.xpi) = 631becc167f5ac36071a68124047638cdea99589ee7c8e44619e9630a8499d81
+SIZE (xpi/firefox-45.1.0/fy-NL.xpi) = 447773
+SHA256 (xpi/firefox-45.1.0/ga-IE.xpi) = 996f321a4706efbf0489ed0d4f834396758cece68ea51fcedb78c55f00e9c486
+SIZE (xpi/firefox-45.1.0/ga-IE.xpi) = 460050
+SHA256 (xpi/firefox-45.1.0/gd.xpi) = c691bc21f05f9e0b1cd8a00f60516ddad15240bc4eb314b025940e47d06140ec
+SIZE (xpi/firefox-45.1.0/gd.xpi) = 449705
+SHA256 (xpi/firefox-45.1.0/gl.xpi) = d941d515af9a304579cf5f08719489ddcbdbfe7a63c3b6d65e02138084bbc3bd
+SIZE (xpi/firefox-45.1.0/gl.xpi) = 434800
+SHA256 (xpi/firefox-45.1.0/gn.xpi) = 437b2b9885a8e3800435afd26e33638743cf300b66a9ee0b9e92566fc1419d7d
+SIZE (xpi/firefox-45.1.0/gn.xpi) = 460642
+SHA256 (xpi/firefox-45.1.0/gu-IN.xpi) = 7fe25e9f20cdaaa10d5685303c69bdfdb42d677ace365933f6041d88a6298984
+SIZE (xpi/firefox-45.1.0/gu-IN.xpi) = 472561
+SHA256 (xpi/firefox-45.1.0/he.xpi) = 878cbe9aa34d1968a40b1abc8a43eb7bf75d2a1c85e13e77d45e79ad595552f1
+SIZE (xpi/firefox-45.1.0/he.xpi) = 454782
+SHA256 (xpi/firefox-45.1.0/hi-IN.xpi) = def808718637fb0a8f1ec842fa6187d7c6ccf33e77535d8d1a7e37045910767a
+SIZE (xpi/firefox-45.1.0/hi-IN.xpi) = 486985
+SHA256 (xpi/firefox-45.1.0/hr.xpi) = 272881202ef43f0f686649bf5135c374d5cae28670aea2833a2d3c9414591578
+SIZE (xpi/firefox-45.1.0/hr.xpi) = 449065
+SHA256 (xpi/firefox-45.1.0/hsb.xpi) = 788e9d9a496663a81eda82af730a1db2228fcb3b5d4b9e04d7f28036c62fb2db
+SIZE (xpi/firefox-45.1.0/hsb.xpi) = 461449
+SHA256 (xpi/firefox-45.1.0/hu.xpi) = 8ddefee5e3d9bb1f2983af3376f8247e3fcd38b1bd0136d82b1e7c610a87feba
+SIZE (xpi/firefox-45.1.0/hu.xpi) = 449772
+SHA256 (xpi/firefox-45.1.0/hy-AM.xpi) = e54b4ea162145165b938cbd89d78e6817bed4bb92f252aa7cf380ad32f62b9e8
+SIZE (xpi/firefox-45.1.0/hy-AM.xpi) = 500035
+SHA256 (xpi/firefox-45.1.0/id.xpi) = 3792ff8654aaad501b523720a5ff250d41fed98b6105abfb5de198aa52e6e2ee
+SIZE (xpi/firefox-45.1.0/id.xpi) = 427171
+SHA256 (xpi/firefox-45.1.0/is.xpi) = 742676e0207c26fc81a1ef89ddee5fa905dda343659cee879f5a192ce8951c87
+SIZE (xpi/firefox-45.1.0/is.xpi) = 443209
+SHA256 (xpi/firefox-45.1.0/it.xpi) = 781c48919f90a461d402936252dfd04cc449d20fcfdace5b3e2430dc76acc874
+SIZE (xpi/firefox-45.1.0/it.xpi) = 343720
+SHA256 (xpi/firefox-45.1.0/ja.xpi) = 5de75db5bb087a5032a5d8fbac727239639a5ec5a5544e5ad563c42d6cfaf1e2
+SIZE (xpi/firefox-45.1.0/ja.xpi) = 486325
+SHA256 (xpi/firefox-45.1.0/kk.xpi) = 64e3ccdaafca6d9127d0faa46c253342340ce0eacdbcc8e4176fcf0166e012a9
+SIZE (xpi/firefox-45.1.0/kk.xpi) = 498890
+SHA256 (xpi/firefox-45.1.0/km.xpi) = 8cd72b860d89103ec6f61f46137ada5f1b96047e70beb70e08b0fc5b97c3fe61
+SIZE (xpi/firefox-45.1.0/km.xpi) = 504298
+SHA256 (xpi/firefox-45.1.0/kn.xpi) = 8b5b90c613be9e2892f07795bcfed1a7d68c9105546836a678a230086f4cdc90
+SIZE (xpi/firefox-45.1.0/kn.xpi) = 495877
+SHA256 (xpi/firefox-45.1.0/ko.xpi) = 65cdc4462a2212e935b7309e047a2ad05ad34ff9921e958a2de7243c6a6650e6
+SIZE (xpi/firefox-45.1.0/ko.xpi) = 465285
+SHA256 (xpi/firefox-45.1.0/lij.xpi) = c7054361b75abe861dd365cf2cd6f98783326c6adc8756ba1d10e916095438f7
+SIZE (xpi/firefox-45.1.0/lij.xpi) = 381379
+SHA256 (xpi/firefox-45.1.0/lt.xpi) = 4c6c918deeab044783177cb7f0303269be16ff3cbf80c855786f71b2732a5cb9
+SIZE (xpi/firefox-45.1.0/lt.xpi) = 454674
+SHA256 (xpi/firefox-45.1.0/lv.xpi) = 647bcdf245353e7f22b04c387ae98bb0a4283f0555bd832c03abb5551fbc09d5
+SIZE (xpi/firefox-45.1.0/lv.xpi) = 445716
+SHA256 (xpi/firefox-45.1.0/mai.xpi) = 9cedbc11eaffb5968e33df27f47f67fb457bb7dc17ae142283f093f245c38e6d
+SIZE (xpi/firefox-45.1.0/mai.xpi) = 492644
+SHA256 (xpi/firefox-45.1.0/mk.xpi) = 2e4fc67d1ed7564148851166d04787ce856445960849ac891982ab3c66da0ade
+SIZE (xpi/firefox-45.1.0/mk.xpi) = 476389
+SHA256 (xpi/firefox-45.1.0/ml.xpi) = 9e7375141869b52cbdd7ef89a4dabc9b797d7b50632a7d9a8af72c780fb20f05
+SIZE (xpi/firefox-45.1.0/ml.xpi) = 498677
+SHA256 (xpi/firefox-45.1.0/mr.xpi) = c3d38c612d3aff7c4fd2f8bccd2b74176be0f0b0161781c5242dedbedb35c5f0
+SIZE (xpi/firefox-45.1.0/mr.xpi) = 503694
+SHA256 (xpi/firefox-45.1.0/ms.xpi) = 2875610734813bbbf52337bd3317768e82838dce14543333041648d0cc30b529
+SIZE (xpi/firefox-45.1.0/ms.xpi) = 440061
+SHA256 (xpi/firefox-45.1.0/nb-NO.xpi) = 9496e01cb9839677cb8051667acc2b6692f4663de532d13d72c31596e2fa0fac
+SIZE (xpi/firefox-45.1.0/nb-NO.xpi) = 435466
+SHA256 (xpi/firefox-45.1.0/nl.xpi) = 3e7bcb94564cb01be83e12adc490001180f0cf666c6ce64691bd46fc1af4fd7f
+SIZE (xpi/firefox-45.1.0/nl.xpi) = 435197
+SHA256 (xpi/firefox-45.1.0/nn-NO.xpi) = 55d754d238d3fb7834199879ea64667e11bdf14b291a715f34586090a8b75269
+SIZE (xpi/firefox-45.1.0/nn-NO.xpi) = 432929
+SHA256 (xpi/firefox-45.1.0/or.xpi) = 07d421f719bef417588838d668ea50f28853c8b05f0197334dd48df982102813
+SIZE (xpi/firefox-45.1.0/or.xpi) = 495917
+SHA256 (xpi/firefox-45.1.0/pa-IN.xpi) = 909c16142442a4f0cd83a0b4da87ce52fd339fba740b008227b143c3cb90dec1
+SIZE (xpi/firefox-45.1.0/pa-IN.xpi) = 489546
+SHA256 (xpi/firefox-45.1.0/pl.xpi) = d79512a921f3137ec393882af23ac4060a5e058fff0b23466750c3a921b12396
+SIZE (xpi/firefox-45.1.0/pl.xpi) = 383924
+SHA256 (xpi/firefox-45.1.0/pt-BR.xpi) = fc299a8c1552ac2008a2a4cb5fe8b0fb2285e8f0cf92df541a309da3bb08219d
+SIZE (xpi/firefox-45.1.0/pt-BR.xpi) = 450986
+SHA256 (xpi/firefox-45.1.0/pt-PT.xpi) = 388de1d5ec25349f7d0b59bb8d0817ab7031821f23591692debeaf06d130ad23
+SIZE (xpi/firefox-45.1.0/pt-PT.xpi) = 437017
+SHA256 (xpi/firefox-45.1.0/rm.xpi) = 2a1185afca7aebf2a236df616f8a7fada7829cce0ccbd7f0bab38b42ee6530c4
+SIZE (xpi/firefox-45.1.0/rm.xpi) = 437714
+SHA256 (xpi/firefox-45.1.0/ro.xpi) = f094b95572faf5415ce7cd1073830d6c1e82e09b305478a70322f3485276c8f8
+SIZE (xpi/firefox-45.1.0/ro.xpi) = 444056
+SHA256 (xpi/firefox-45.1.0/ru.xpi) = 7e2c2f27b273077193b9a2eee3581e324201ea2b8119960ead943c4bad895441
+SIZE (xpi/firefox-45.1.0/ru.xpi) = 392734
+SHA256 (xpi/firefox-45.1.0/si.xpi) = 87d5c084c8c9ee2949e9703bf59163f03400b466b83722ee3dd9e3a114bc4f8b
+SIZE (xpi/firefox-45.1.0/si.xpi) = 482242
+SHA256 (xpi/firefox-45.1.0/sk.xpi) = b9770ec13612263736b1c59063e644f5c78dedf25b43b66339107ee1c5fd5a9d
+SIZE (xpi/firefox-45.1.0/sk.xpi) = 453603
+SHA256 (xpi/firefox-45.1.0/sl.xpi) = 1b7a5c66c37c4cc7900cd4fc97c019c166b1cdd974846d685179f84733fb92f8
+SIZE (xpi/firefox-45.1.0/sl.xpi) = 444960
+SHA256 (xpi/firefox-45.1.0/son.xpi) = f1782e9086ea8a52c3f0c66b4d315b086bd75b649c539e88d389943a051c4457
+SIZE (xpi/firefox-45.1.0/son.xpi) = 433509
+SHA256 (xpi/firefox-45.1.0/sq.xpi) = ff807f114438782bc017869b6a4e4cc2c323cabc09ad9a47094bed7736382897
+SIZE (xpi/firefox-45.1.0/sq.xpi) = 452182
+SHA256 (xpi/firefox-45.1.0/sr.xpi) = 24f3be1c5751a1283e14ebbb33c73951371c2f0715a1fece502f03d6dd5cef87
+SIZE (xpi/firefox-45.1.0/sr.xpi) = 464474
+SHA256 (xpi/firefox-45.1.0/sv-SE.xpi) = f0f0d1f0217cdbf6d919ad5731c6f6492c30c059fd4ece63ec59f44a61742e45
+SIZE (xpi/firefox-45.1.0/sv-SE.xpi) = 444208
+SHA256 (xpi/firefox-45.1.0/ta.xpi) = 5803307096dc644cbb282c42e8d041451899dacbd052a68b2f2d044b425e23bd
+SIZE (xpi/firefox-45.1.0/ta.xpi) = 483114
+SHA256 (xpi/firefox-45.1.0/te.xpi) = 2ad70721fa4b4b2b67bdce70760b72f2d9c32a79e4bda2563aa5a6a5c9758395
+SIZE (xpi/firefox-45.1.0/te.xpi) = 492465
+SHA256 (xpi/firefox-45.1.0/th.xpi) = 0ba903ee3607ba6bc76c39a1ea855e3e0eec9b0af91beced08136def0138949a
+SIZE (xpi/firefox-45.1.0/th.xpi) = 477644
+SHA256 (xpi/firefox-45.1.0/tr.xpi) = cf86e15a1c0547f891121d9cadce25cd3be09d35c1e2f998a2809e7f66241e3d
+SIZE (xpi/firefox-45.1.0/tr.xpi) = 451160
+SHA256 (xpi/firefox-45.1.0/uk.xpi) = d9b9493fa0da79fdd86c043c455b7626312246ed5c3b1a82052b79a3231d25b7
+SIZE (xpi/firefox-45.1.0/uk.xpi) = 494776
+SHA256 (xpi/firefox-45.1.0/uz.xpi) = e33398c14c24241c412fd22b46eaa3e2f78cb36e26a9ee02fe2aacc881cc3aa6
+SIZE (xpi/firefox-45.1.0/uz.xpi) = 443798
+SHA256 (xpi/firefox-45.1.0/vi.xpi) = 842a43a616f2a5ea0ad6963fe21fb2d3b25b98612a21be629adbb74301dec67a
+SIZE (xpi/firefox-45.1.0/vi.xpi) = 450774
+SHA256 (xpi/firefox-45.1.0/xh.xpi) = 24f08d22e7d90f211a005b7c6f5580512268088c046b452052e62102b6e4acf1
+SIZE (xpi/firefox-45.1.0/xh.xpi) = 432913
+SHA256 (xpi/firefox-45.1.0/zh-CN.xpi) = 5532eaf005914abca2e28a9c455029a98357bd17b305a0460e020ca37f4fd864
+SIZE (xpi/firefox-45.1.0/zh-CN.xpi) = 475791
+SHA256 (xpi/firefox-45.1.0/zh-TW.xpi) = 5127eb60caead072b71dac2a3a75a0b28fc85f7532ef78f75e4bd834557a0aab
+SIZE (xpi/firefox-45.1.0/zh-TW.xpi) = 466524
diff --git a/www/firefox-esr/Makefile b/www/firefox-esr/Makefile
index 4b39ae22a900..95b8e925eee5 100644
--- a/www/firefox-esr/Makefile
+++ b/www/firefox-esr/Makefile
@@ -2,9 +2,8 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 38.7.1
+DISTVERSION= 45.1.0
DISTVERSIONSUFFIX=esr.source
-PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
@@ -14,35 +13,36 @@ PKGNAMESUFFIX= -esr
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
-BUILD_DEPENDS= nspr>=4.10.10:devel/nspr \
- nss>=3.19.2.1:security/nss \
+BUILD_DEPENDS= nspr>=4.12:devel/nspr \
+ nss>=3.21.1:security/nss \
libevent2>=2.0.21_2:devel/libevent2 \
- soundtouch>=1.8.0:audio/soundtouch \
- harfbuzz>=0.9.34:print/harfbuzz \
- graphite2>=1.2.4:graphics/graphite2 \
+ soundtouch>=1.9.0:audio/soundtouch \
+ harfbuzz>=1.1.0:print/harfbuzz \
+ graphite2>=1.3.6:graphics/graphite2 \
+ png>=1.6.19:graphics/png \
libvorbis>=1.3.5,3:audio/libvorbis \
- libvpx>=1.3.0:multimedia/libvpx \
- sqlite3>=3.8.9:databases/sqlite3 \
+ libvpx>=1.5.0:multimedia/libvpx \
+ sqlite3>=3.9.1:databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
v4l_compat>0:multimedia/v4l_compat \
autoconf-2.13:devel/autoconf213 \
+ yasm:devel/yasm \
zip:archivers/zip \
unzip:archivers/unzip
-# opus>=1.1:audio/opus \
LIB_DEPENDS= libv4l2.so:multimedia/libv4l
USE_GECKO= gecko
CPE_PRODUCT= ${PORTNAME}_esr
-CONFLICTS_INSTALL= firefox-4[0-46-9].* firefox-3[02-9].* firefox-2[0-35-9].*
+CONFLICTS_INSTALL= firefox-[0-9]*
MOZ_PKGCONFIG_FILES= # empty
-USE_MOZILLA= -opus
+USE_MOZILLA= # empty
MOZILLA_NAME= Firefox
USE_QT5= # empty
QT_NONSTANDARD= yes
USE_GL= gl
-USES= tar:bzip2
+USES= tar:xz
FIREFOX_ICON= ${MOZILLA}.png
FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png
@@ -50,14 +50,16 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \
--enable-application=browser \
--enable-official-branding
-OPTIONS_DEFAULT= GTK2
+OPTIONS_EXCLUDE= GSTREAMER LOGGING
+OPTIONS_DEFINE= RUST
+OPTIONS_DEFAULT= BUNDLED_CAIRO GTK2
OPTIONS_SINGLE+= TOOLKIT
OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3
.include "${.CURDIR}/../../www/firefox/Makefile.options"
-WRKSRC:= ${WRKDIR}/mozilla-esr38
+WRKSRC:= ${WRKDIR}/${PORTNAME}-${DISTVERSION}esr
post-extract:
@${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \
@@ -65,8 +67,6 @@ post-extract:
<${FILESDIR}/firefox.desktop.in >${WRKDIR}/${MOZILLA}.desktop
post-patch:
- @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \
- ${WRKSRC}/configure.in
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/browser/app/nsBrowserApp.cpp
diff --git a/www/firefox-esr/distinfo b/www/firefox-esr/distinfo
index d47eb6334468..2b98ab4be38a 100644
--- a/www/firefox-esr/distinfo
+++ b/www/firefox-esr/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-38.7.1esr.source.tar.bz2) = d0fce46a948610c8231ceaad5da5542bd57af363ff2341d77f2f00955f888f65
-SIZE (firefox-38.7.1esr.source.tar.bz2) = 181300248
+SHA256 (firefox-45.1.0esr.source.tar.xz) = 8bdc4a0f6d0ca4f28e888ca0044ba735ddc78302820b5ffcc25cd65064ff40a1
+SIZE (firefox-45.1.0esr.source.tar.xz) = 184373664
diff --git a/www/firefox-esr/files/extra-patch-bug1125514 b/www/firefox-esr/files/extra-patch-bug1125514
deleted file mode 100644
index f6837f2c6a48..000000000000
--- a/www/firefox-esr/files/extra-patch-bug1125514
+++ /dev/null
@@ -1,36 +0,0 @@
-changeset: 258513:ffbd5f5f46f1
-user: Guilherme Goncalves <guilherme.p.gonc@gmail.com>
-date: Thu Aug 20 10:05:29 2015 +0900
-summary: Bug 1125514 - Use jemalloc's metadata statistics to compute bookkeeping. r=glandium
-
---- memory/build/mozjemalloc_compat.c~
-+++ memory/build/mozjemalloc_compat.c
-@@ -136,6 +136,7 @@ jemalloc_stats_impl(jemalloc_stats_t *st
- {
- unsigned narenas;
- size_t active, allocated, mapped, page, pdirty;
-+ size_t meta, ameta;
- size_t lg_chunk;
-
- // Refresh jemalloc's stats by updating its epoch, see ctl_refresh in
-@@ -149,17 +150,19 @@ jemalloc_stats_impl(jemalloc_stats_t *st
- CTL_GET("stats.active", active);
- CTL_GET("stats.allocated", allocated);
- CTL_GET("stats.mapped", mapped);
-+ CTL_GET("stats.metadata", meta);
- CTL_GET("opt.lg_chunk", lg_chunk);
-- CTL_GET("stats.bookkeeping", stats->bookkeeping);
-
- /* get the summation for all arenas, i == narenas */
- CTL_I_GET("stats.arenas.0.pdirty", pdirty, narenas);
-+ CTL_I_GET("stats.arenas.0.metadata.allocated", ameta, narenas);
-
- stats->chunksize = 1 << lg_chunk;
- stats->mapped = mapped;
- stats->allocated = allocated;
- stats->waste = active - allocated;
- stats->page_cache = pdirty * page;
-+ stats->bookkeeping = meta - ameta;
- stats->bin_unused = compute_bin_unused(narenas);
- stats->waste -= stats->bin_unused;
- }
diff --git a/www/firefox-esr/files/patch-bug1013882 b/www/firefox-esr/files/patch-bug1013882
index b3177989a39e..80f45c011c67 100644
--- a/www/firefox-esr/files/patch-bug1013882
+++ b/www/firefox-esr/files/patch-bug1013882
@@ -2,7 +2,7 @@ diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in
index 754312a..c69904c 100644
--- b2g/installer/Makefile.in
+++ b2g/installer/Makefile.in
-@@ -63,6 +63,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)))
+@@ -101,6 +101,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)
DEFINES += -DMOZ_RTSP
endif
@@ -10,21 +10,21 @@ index 754312a..c69904c 100644
+DEFINES += -DMOZ_DEBUG=1
+endif
+
- ifdef GKMEDIAS_SHARED_LIBRARY
- DEFINES += -DGKMEDIAS_SHARED_LIBRARY
- endif
+ DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
+ ifdef MOZ_NATIVE_ICU
+ DEFINES += -DMOZ_NATIVE_ICU
diff --git b2g/installer/package-manifest.in b2g/installer/package-manifest.in
index 17d433c..0416187 100644
--- b2g/installer/package-manifest.in
+++ b2g/installer/package-manifest.in
-@@ -576,7 +576,7 @@
- @BINPATH@/components/MozKeyboard.js
- @BINPATH@/components/InputMethod.manifest
+@@ -660,7 +660,7 @@
+ @RESPATH@/components/EngineeringModeAPI.js
+ @RESPATH@/components/EngineeringModeService.js
-#ifdef MOZ_DEBUG
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
- @BINPATH@/components/TestInterfaceJS.js
- @BINPATH@/components/TestInterfaceJS.manifest
+ @RESPATH@/components/TestInterfaceJS.js
+ @RESPATH@/components/TestInterfaceJS.manifest
#endif
diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in
index b509fd4..195345c 100644
diff --git a/www/firefox-esr/files/patch-bug1021761 b/www/firefox-esr/files/patch-bug1021761
index 253327b733a7..86c4d9b0f19b 100644
--- a/www/firefox-esr/files/patch-bug1021761
+++ b/www/firefox-esr/files/patch-bug1021761
@@ -561,8 +561,8 @@ index a962553..1f780f4 100644
/* get a pcm, disabling resampling, so we get a rate the
* hardware/dmix/pulse/etc. supports. */
-- r = snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
-+ r = WRAP(snd_pcm_open)(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
+- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
++ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
if (r < 0) {
return CUBEB_ERROR;
}
@@ -1070,11 +1070,11 @@ index 8b7a0dd..31212ce 100644
+CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
-diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
+diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build
index 991f03f..3d99eb5 100644
---- media/webrtc/signaling/test/moz.build
-+++ media/webrtc/signaling/test/moz.build
-@@ -112,8 +112,8 @@ if CONFIG['JS_SHARED_LIBRARY']:
+--- media/webrtc/signaling/test/common.build
++++ media/webrtc/signaling/test/common.build
+@@ -102,8 +102,8 @@ USE_LIBS += ['mozglue']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
OS_LIBS += CONFIG['REALTIME_LIBS']
diff --git a/www/firefox-esr/files/patch-bug1026499 b/www/firefox-esr/files/patch-bug1026499
deleted file mode 100644
index e446f22c64cf..000000000000
--- a/www/firefox-esr/files/patch-bug1026499
+++ /dev/null
@@ -1,68 +0,0 @@
-commit 8d0efe4
-Author: Martin Husemann <martin@NetBSD.org>
-Date: Wed Jun 18 18:12:22 2014 +0200
-
- Bug 1026499 - Use MOZ_ALIGNED_DECL to declare union members in ipdl value declarations. r=bsmedberg
----
- ipc/ipdl/ipdl/cxx/ast.py | 7 ++++---
- ipc/ipdl/ipdl/cxx/cgen.py | 5 ++++-
- ipc/ipdl/ipdl/lower.py | 2 +-
- 4 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git ipc/ipdl/ipdl/cxx/ast.py ipc/ipdl/ipdl/cxx/ast.py
-index 3180a65..c2d945b 100644
---- ipc/ipdl/ipdl/cxx/ast.py
-+++ ipc/ipdl/ipdl/cxx/ast.py
-@@ -336,12 +336,13 @@ Type.VOID = Type('void')
- Type.VOIDPTR = Type('void', ptr=1)
-
- class TypeArray(Node):
-- def __init__(self, basetype, nmemb):
-- '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr'''
-+ def __init__(self, basetype, nmemb, alignType):
-+ '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr, |alignType| is a type'''
- self.basetype = basetype
- self.nmemb = nmemb
-+ self.alignType = alignType
- def __deepcopy__(self, memo):
-- return TypeArray(deepcopy(self.basetype, memo), nmemb)
-+ return TypeArray(deepcopy(self.basetype, memo), nmemb, alignType)
-
- class TypeEnum(Node):
- def __init__(self, name=None):
-diff --git ipc/ipdl/ipdl/cxx/cgen.py ipc/ipdl/ipdl/cxx/cgen.py
-index 48b0988..bc914cf 100644
---- ipc/ipdl/ipdl/cxx/cgen.py
-+++ ipc/ipdl/ipdl/cxx/cgen.py
-@@ -101,6 +101,7 @@ class CxxCodeGen(CodePrinter, Visitor):
- def visitDecl(self, d):
- # C-syntax arrays make code generation much more annoying
- if isinstance(d.type, TypeArray):
-+ self.write('MOZ_ALIGNED_DECL(')
- d.type.basetype.accept(self)
- else:
- d.type.accept(self)
-@@ -111,7 +112,9 @@ class CxxCodeGen(CodePrinter, Visitor):
- if isinstance(d.type, TypeArray):
- self.write('[')
- d.type.nmemb.accept(self)
-- self.write(']')
-+ self.write('], MOZ_ALIGNOF(')
-+ d.type.alignType.accept(self)
-+ self.write('))')
-
- def visitParam(self, p):
- self.visitDecl(p)
-diff --git ipc/ipdl/ipdl/lower.py ipc/ipdl/ipdl/lower.py
-index e97a34c..9360f3c 100644
---- ipc/ipdl/ipdl/lower.py
-+++ ipc/ipdl/ipdl/lower.py
-@@ -768,7 +768,7 @@ IPDL union type."""
- if self.recursive:
- return self.ptrToType()
- else:
-- return TypeArray(Type('char'), ExprSizeof(self.internalType()))
-+ return TypeArray(Type('char'), ExprSizeof(self.internalType()), self.internalType())
-
- def unionValue(self):
- # NB: knows that Union's storage C union is named |mValue|
diff --git a/www/firefox-esr/files/patch-bug1073117 b/www/firefox-esr/files/patch-bug1073117
deleted file mode 100644
index 7708023aee70..000000000000
--- a/www/firefox-esr/files/patch-bug1073117
+++ /dev/null
@@ -1,877 +0,0 @@
-diff --git widget/gtk/gtk2drawing.c widget/gtk/gtk2drawing.c
-index 34f22af..1b950ab 100644
---- widget/gtk/gtk2drawing.c
-+++ widget/gtk/gtk2drawing.c
-@@ -831,7 +831,7 @@ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
- return MOZ_GTK_SUCCESS;
- }
-
--gint
-+static gint
- moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
- gint* focus_width, gint* focus_pad)
- {
-@@ -928,7 +928,7 @@ moz_gtk_splitter_get_metrics(gint orientation, gint* size)
- return MOZ_GTK_SUCCESS;
- }
-
--gint
-+static gint
- moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
- {
- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
-diff --git widget/gtk/gtk3drawing.c widget/gtk/gtk3drawing.c
-index 08a58d6..7fef6fa 100644
---- widget/gtk/gtk3drawing.c
-+++ widget/gtk/gtk3drawing.c
-@@ -65,6 +65,7 @@ static GtkWidget* gScrolledWindowWidget;
- static style_prop_t style_prop_func;
- static gboolean have_arrow_scaling;
- static gboolean checkbox_check_state;
-+static gboolean notebook_has_tab_gap;
- static gboolean is_initialized;
-
- #define ARROW_UP 0
-@@ -725,6 +726,14 @@ moz_gtk_init()
- else
- checkbox_check_state = GTK_STATE_FLAG_ACTIVE;
-
-+ if(!gtk_check_version(3, 12, 0)) {
-+ ensure_tab_widget();
-+ gtk_widget_style_get(gTabWidget, "has-tab-gap", &notebook_has_tab_gap, NULL);
-+ }
-+ else {
-+ notebook_has_tab_gap = TRUE;
-+ }
-+
- /* Add style property to GtkEntry.
- * Adding the style property to the normal GtkEntry class means that it
- * will work without issues inside GtkComboBox and for Spinbuttons. */
-@@ -762,37 +771,17 @@ moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing)
- gint
- moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
- {
-- gboolean interior_focus;
-- gint focus_width = 0;
-+ GtkBorder border;
-+ GtkBorder padding;
-+ GtkStyleContext *style;
-
- ensure_entry_widget();
-- gtk_widget_style_get(gEntryWidget,
-- "interior-focus", &interior_focus,
-- "focus-line-width", &focus_width,
-- NULL);
-- if (interior_focus) {
-- GtkBorder border;
-- GtkStyleContext *style = gtk_widget_get_style_context(gEntryWidget);
-- gtk_style_context_get_border(style, 0, &border);
-- *focus_h_width = border.left + focus_width;
-- *focus_v_width = border.top + focus_width;
-- } else {
-- *focus_h_width = focus_width;
-- *focus_v_width = focus_width;
-- }
-- return MOZ_GTK_SUCCESS;
--}
--
--gint
--moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
-- gint* focus_width, gint* focus_pad)
--{
-- gtk_widget_style_get (widget,
-- "interior-focus", interior_focus,
-- "focus-line-width", focus_width,
-- "focus-padding", focus_pad,
-- NULL);
-+ style = gtk_widget_get_style_context(gEntryWidget);
-
-+ gtk_style_context_get_border(style, 0, &border);
-+ gtk_style_context_get_padding(style, 0, &padding);
-+ *focus_h_width = border.left + padding.left;
-+ *focus_v_width = border.top + padding.top;
- return MOZ_GTK_SUCCESS;
- }
-
-@@ -880,24 +860,6 @@ moz_gtk_splitter_get_metrics(gint orientation, gint* size)
- return MOZ_GTK_SUCCESS;
- }
-
--gint
--moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
--{
-- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
-- GtkBorder *tmp_border;
--
-- gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
--
-- if (tmp_border) {
-- *inner_border = *tmp_border;
-- gtk_border_free(tmp_border);
-- }
-- else
-- *inner_border = default_inner_border;
--
-- return MOZ_GTK_SUCCESS;
--}
--
- static gint
- moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
- GtkWidgetState* state,
-@@ -908,19 +870,8 @@ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
- GtkStyleContext* style = gtk_widget_get_style_context(widget);
- gint x = rect->x, y=rect->y, width=rect->width, height=rect->height;
-
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
-- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
- gtk_widget_set_direction(widget, direction);
--
-- if (!interior_focus && state->focused) {
-- x += focus_width + focus_pad;
-- y += focus_width + focus_pad;
-- width -= 2 * (focus_width + focus_pad);
-- height -= 2 * (focus_width + focus_pad);
-- }
--
-+
- gtk_style_context_save(style);
- gtk_style_context_set_state(style, state_flags);
-
-@@ -953,20 +904,12 @@ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
- }
-
- if (state->focused) {
-- if (interior_focus) {
-- GtkBorder border;
-- gtk_style_context_get_border(style, state_flags, &border);
-- x += border.left + focus_pad;
-- y += border.top + focus_pad;
-- width -= 2 * (border.left + focus_pad);
-- height -= 2 * (border.top + focus_pad);
-- } else {
-- x -= focus_width + focus_pad;
-- y -= focus_width + focus_pad;
-- width += 2 * (focus_width + focus_pad);
-- height += 2 * (focus_width + focus_pad);
-- }
--
-+ GtkBorder border;
-+ gtk_style_context_get_border(style, state_flags, &border);
-+ x += border.left;
-+ y += border.top;
-+ width -= (border.left + border.right);
-+ height -= (border.top + border.bottom);
- gtk_render_focus(style, cr, x, y, width, height);
- }
- gtk_style_context_restore(style);
-@@ -1056,33 +999,23 @@ calculate_button_inner_rect(GtkWidget* button, GdkRectangle* rect,
- GtkTextDirection direction,
- gboolean ignore_focus)
- {
-- GtkBorder inner_border;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
- GtkStyleContext* style;
- GtkBorder border;
-+ GtkBorder padding = {0, 0, 0, 0};
-
- style = gtk_widget_get_style_context(button);
-
- /* This mirrors gtkbutton's child positioning */
-- moz_gtk_button_get_inner_border(button, &inner_border);
-- moz_gtk_widget_get_focus(button, &interior_focus,
-- &focus_width, &focus_pad);
--
-- if (ignore_focus)
-- focus_width = focus_pad = 0;
--
- gtk_style_context_get_border(style, 0, &border);
-+ if (!ignore_focus)
-+ gtk_style_context_get_padding(style, 0, &padding);
-
-- inner_rect->x = rect->x + border.left + focus_width + focus_pad;
-- inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
-- inner_border.left : inner_border.right;
-- inner_rect->y = rect->y + inner_border.top + border.top +
-- focus_width + focus_pad;
-- inner_rect->width = MAX(1, rect->width - inner_border.left -
-- inner_border.right - (border.left + focus_pad + focus_width) * 2);
-- inner_rect->height = MAX(1, rect->height - inner_border.top -
-- inner_border.bottom - (border.top + focus_pad + focus_width) * 2);
-+ inner_rect->x = rect->x + border.left + padding.left;
-+ inner_rect->y = rect->y + padding.top + border.top;
-+ inner_rect->width = MAX(1, rect->width - padding.left -
-+ padding.right - border.left * 2);
-+ inner_rect->height = MAX(1, rect->height - padding.top -
-+ padding.bottom - border.top * 2);
-
- return MOZ_GTK_SUCCESS;
- }
-@@ -1457,19 +1390,12 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
- {
- gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
- GtkStyleContext* style;
-- gboolean interior_focus;
-- gint focus_width;
- int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
-
- gtk_widget_set_direction(widget, direction);
-
- style = gtk_widget_get_style_context(widget);
-
-- gtk_widget_style_get(widget,
-- "interior-focus", &interior_focus,
-- "focus-line-width", &focus_width,
-- NULL);
--
- if (draw_focus_outline_only) {
- // Inflate the given 'rect' with the focus outline size.
- gint h, v;
-@@ -1501,14 +1427,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
- /* This will get us the lit borders that focused textboxes enjoy on
- * some themes. */
- gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
-- if (!interior_focus) {
-- /* Indent the border a little bit if we have exterior focus
-- (this is what GTK does to draw native entries) */
-- x += focus_width;
-- y += focus_width;
-- width -= 2 * focus_width;
-- height -= 2 * focus_width;
-- }
- }
-
- if (state->disabled) {
-@@ -1520,11 +1438,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
- }
- gtk_render_frame(style, cr, x, y, width, height);
-
-- if (state->focused && !state->disabled) {
-- if (!interior_focus) {
-- gtk_render_focus(style, cr, rect->x, rect->y, rect->width, rect->height);
-- }
-- }
- gtk_style_context_restore(style);
-
- return MOZ_GTK_SUCCESS;
-@@ -1829,8 +1742,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
- GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
- GtkStyleContext* style;
- GtkWidget *widget;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
-
- if (isradio) {
- ensure_radiobutton_widget();
-@@ -1843,7 +1754,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
-
- style = gtk_widget_get_style_context(widget);
- gtk_style_context_save(style);
-- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
- gtk_style_context_set_state(style, state_flags);
-
- /* this is for drawing a prelight box */
-@@ -1852,10 +1762,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
- rect->x, rect->y, rect->width, rect->height);
- }
-
-- if (state->focused && !interior_focus) {
-- gtk_render_focus(style, cr,
-- rect->x, rect->y, rect->width, rect->height);
-- }
- gtk_style_context_restore(style);
-
- return MOZ_GTK_SUCCESS;
-@@ -1868,7 +1774,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr, GdkRectangle* rect,
- {
- GtkStyleContext *style;
- GtkWidget *widget;
-- gboolean interior_focus;
-
- if (!state->focused)
- return MOZ_GTK_SUCCESS;
-@@ -1889,10 +1794,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr, GdkRectangle* rect,
- }
- gtk_widget_set_direction(widget, direction);
-
-- gtk_widget_style_get(widget, "interior-focus", &interior_focus, NULL);
-- if (!interior_focus)
-- return MOZ_GTK_SUCCESS;
--
- gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
- gtk_render_focus(style, cr,
- rect->x, rect->y, rect->width, rect->height);
-@@ -2105,6 +2015,9 @@ moz_gtk_get_tab_thickness(void)
- GtkStyleContext * style;
-
- ensure_tab_widget();
-+ if (!notebook_has_tab_gap)
-+ return 0; /* tabs do not overdraw the tabpanel border with "no gap" style */
-+
- style = gtk_widget_get_style_context(gTabWidget);
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_NOTEBOOK);
- gtk_style_context_get_border(style, 0, &border);
-@@ -2150,7 +2063,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectangle* rect,
- ensure_tab_widget();
- gtk_widget_set_direction(gTabWidget, direction);
-
-- style = gtk_widget_get_style_context(gTabWidget);
-+ style = gtk_widget_get_style_context(gTabWidget);
- gtk_style_context_save(style);
- moz_gtk_tab_prepare_style_context(style, flags);
-
-@@ -2167,143 +2080,155 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectangle* rect,
-
- focusRect = backRect = tabRect;
-
-- if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
-- /* Only draw the tab */
-- gtk_render_extension(style, cr,
-- tabRect.x, tabRect.y, tabRect.width, tabRect.height,
-- (flags & MOZ_GTK_TAB_BOTTOM) ?
-- GTK_POS_TOP : GTK_POS_BOTTOM );
-- } else {
-- /* Draw the tab and the gap
-- * We want the gap to be positioned exactly on the tabpanel top
-- * border; since tabbox.css may set a negative margin so that the tab
-- * frame rect already overlaps the tabpanel frame rect, we need to take
-- * that into account when drawing. To that effect, nsNativeThemeGTK
-- * passes us this negative margin (bmargin in the graphic below) in the
-- * lowest bits of |flags|. We use it to set gap_voffset, the distance
-- * between the top of the gap and the bottom of the tab (resp. the
-- * bottom of the gap and the top of the tab when we draw a bottom tab),
-- * while ensuring that the gap always touches the border of the tab,
-- * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
-- * with big negative or positive margins.
-- * Here is a graphical explanation in the case of top tabs:
-- * ___________________________
-- * / \
-- * | T A B |
-- * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
-- * : ^ bmargin : ^
-- * : | (-negative margin, : |
-- * bottom : v passed in flags) : | gap_height
-- * of -> :.............................: | (the size of the
-- * the tab . part of the gap . | tabpanel top border)
-- * . outside of the tab . v
-- * ----------------------------------------------
-- *
-- * To draw the gap, we use gtk_paint_box_gap(), see comment in
-- * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
-- * which should suffice to ensure that the only visible border is the
-- * pierced one. If the tab is in the middle, we make the box_gap begin
-- * a bit to the left of the tab and end a bit to the right, adjusting
-- * the gap position so it still is under the tab, because we want the
-- * rendering of a gap in the middle of a tabpanel. This is the role of
-- * the gints gap_{l,r}_offset. On the contrary, if the tab is the
-- * first, we align the start border of the box_gap with the start
-- * border of the tab (left if LTR, right if RTL), by setting the
-- * appropriate offset to 0.*/
-- gint gap_loffset, gap_roffset, gap_voffset, gap_height;
--
-- /* Get height needed by the gap */
-- gap_height = moz_gtk_get_tab_thickness();
--
-- /* Extract gap_voffset from the first bits of flags */
-- gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
-- if (gap_voffset > gap_height)
-- gap_voffset = gap_height;
--
-- /* Set gap_{l,r}_offset to appropriate values */
-- gap_loffset = gap_roffset = 20; /* should be enough */
-- if (flags & MOZ_GTK_TAB_FIRST) {
-- if (direction == GTK_TEXT_DIR_RTL)
-- gap_roffset = initial_gap;
-- else
-- gap_loffset = initial_gap;
-- }
--
-- if (flags & MOZ_GTK_TAB_BOTTOM) {
-- /* Draw the tab on bottom */
-- focusRect.y += gap_voffset;
-- focusRect.height -= gap_voffset;
--
-+ if (notebook_has_tab_gap) {
-+ if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
-+ /* Only draw the tab */
- gtk_render_extension(style, cr,
-- tabRect.x, tabRect.y + gap_voffset, tabRect.width,
-- tabRect.height - gap_voffset, GTK_POS_TOP);
--
-- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
--
-- backRect.y += (gap_voffset - gap_height);
-- backRect.height = gap_height;
--
-- /* Draw the gap; erase with background color before painting in
-- * case theme does not */
-- gtk_render_background(style, cr, backRect.x, backRect.y,
-- backRect.width, backRect.height);
-- cairo_save(cr);
-- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-- cairo_clip(cr);
--
-- gtk_render_frame_gap(style, cr,
-- tabRect.x - gap_loffset,
-- tabRect.y + gap_voffset - 3 * gap_height,
-- tabRect.width + gap_loffset + gap_roffset,
-- 3 * gap_height, GTK_POS_BOTTOM,
-- gap_loffset, gap_loffset + tabRect.width);
-- cairo_restore(cr);
-+ tabRect.x, tabRect.y, tabRect.width, tabRect.height,
-+ (flags & MOZ_GTK_TAB_BOTTOM) ?
-+ GTK_POS_TOP : GTK_POS_BOTTOM );
- } else {
-- /* Draw the tab on top */
-- focusRect.height -= gap_voffset;
-- gtk_render_extension(style, cr,
-- tabRect.x, tabRect.y, tabRect.width,
-- tabRect.height - gap_voffset, GTK_POS_BOTTOM);
--
-- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
--
-- backRect.y += (tabRect.height - gap_voffset);
-- backRect.height = gap_height;
--
-- /* Draw the gap; erase with background color before painting in
-- * case theme does not */
-- gtk_render_background(style, cr, backRect.x, backRect.y,
-- backRect.width, backRect.height);
--
-- cairo_save(cr);
-- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-- cairo_clip(cr);
--
-- gtk_render_frame_gap(style, cr,
-- tabRect.x - gap_loffset,
-- tabRect.y + tabRect.height - gap_voffset,
-- tabRect.width + gap_loffset + gap_roffset,
-- 3 * gap_height, GTK_POS_TOP,
-- gap_loffset, gap_loffset + tabRect.width);
-- cairo_restore(cr);
-+ /* Draw the tab and the gap
-+ * We want the gap to be positioned exactly on the tabpanel top
-+ * border; since tabbox.css may set a negative margin so that the tab
-+ * frame rect already overlaps the tabpanel frame rect, we need to take
-+ * that into account when drawing. To that effect, nsNativeThemeGTK
-+ * passes us this negative margin (bmargin in the graphic below) in the
-+ * lowest bits of |flags|. We use it to set gap_voffset, the distance
-+ * between the top of the gap and the bottom of the tab (resp. the
-+ * bottom of the gap and the top of the tab when we draw a bottom tab),
-+ * while ensuring that the gap always touches the border of the tab,
-+ * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
-+ * with big negative or positive margins.
-+ * Here is a graphical explanation in the case of top tabs:
-+ * ___________________________
-+ * / \
-+ * | T A B |
-+ * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
-+ * : ^ bmargin : ^
-+ * : | (-negative margin, : |
-+ * bottom : v passed in flags) : | gap_height
-+ * of -> :.............................: | (the size of the
-+ * the tab . part of the gap . | tabpanel top border)
-+ * . outside of the tab . v
-+ * ----------------------------------------------
-+ *
-+ * To draw the gap, we use gtk_paint_box_gap(), see comment in
-+ * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
-+ * which should suffice to ensure that the only visible border is the
-+ * pierced one. If the tab is in the middle, we make the box_gap begin
-+ * a bit to the left of the tab and end a bit to the right, adjusting
-+ * the gap position so it still is under the tab, because we want the
-+ * rendering of a gap in the middle of a tabpanel. This is the role of
-+ * the gints gap_{l,r}_offset. On the contrary, if the tab is the
-+ * first, we align the start border of the box_gap with the start
-+ * border of the tab (left if LTR, right if RTL), by setting the
-+ * appropriate offset to 0.*/
-+ gint gap_loffset, gap_roffset, gap_voffset, gap_height;
-+
-+ /* Get height needed by the gap */
-+ gap_height = moz_gtk_get_tab_thickness();
-+
-+ /* Extract gap_voffset from the first bits of flags */
-+ gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
-+ if (gap_voffset > gap_height)
-+ gap_voffset = gap_height;
-+
-+ /* Set gap_{l,r}_offset to appropriate values */
-+ gap_loffset = gap_roffset = 20; /* should be enough */
-+ if (flags & MOZ_GTK_TAB_FIRST) {
-+ if (direction == GTK_TEXT_DIR_RTL)
-+ gap_roffset = initial_gap;
-+ else
-+ gap_loffset = initial_gap;
-+ }
-+
-+ if (flags & MOZ_GTK_TAB_BOTTOM) {
-+ /* Draw the tab on bottom */
-+ focusRect.y += gap_voffset;
-+ focusRect.height -= gap_voffset;
-+
-+ gtk_render_extension(style, cr,
-+ tabRect.x, tabRect.y + gap_voffset, tabRect.width,
-+ tabRect.height - gap_voffset, GTK_POS_TOP);
-+
-+ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
-+
-+ backRect.y += (gap_voffset - gap_height);
-+ backRect.height = gap_height;
-+
-+ /* Draw the gap; erase with background color before painting in
-+ * case theme does not */
-+ gtk_render_background(style, cr, backRect.x, backRect.y,
-+ backRect.width, backRect.height);
-+ cairo_save(cr);
-+ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-+ cairo_clip(cr);
-+
-+ gtk_render_frame_gap(style, cr,
-+ tabRect.x - gap_loffset,
-+ tabRect.y + gap_voffset - 3 * gap_height,
-+ tabRect.width + gap_loffset + gap_roffset,
-+ 3 * gap_height, GTK_POS_BOTTOM,
-+ gap_loffset, gap_loffset + tabRect.width);
-+ cairo_restore(cr);
-+ } else {
-+ /* Draw the tab on top */
-+ focusRect.height -= gap_voffset;
-+ gtk_render_extension(style, cr,
-+ tabRect.x, tabRect.y, tabRect.width,
-+ tabRect.height - gap_voffset, GTK_POS_BOTTOM);
-+
-+ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
-+
-+ backRect.y += (tabRect.height - gap_voffset);
-+ backRect.height = gap_height;
-+
-+ /* Draw the gap; erase with background color before painting in
-+ * case theme does not */
-+ gtk_render_background(style, cr, backRect.x, backRect.y,
-+ backRect.width, backRect.height);
-+
-+ cairo_save(cr);
-+ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-+ cairo_clip(cr);
-+
-+ gtk_render_frame_gap(style, cr,
-+ tabRect.x - gap_loffset,
-+ tabRect.y + tabRect.height - gap_voffset,
-+ tabRect.width + gap_loffset + gap_roffset,
-+ 3 * gap_height, GTK_POS_TOP,
-+ gap_loffset, gap_loffset + tabRect.width);
-+ cairo_restore(cr);
-+ }
- }
-+ } else {
-+ gtk_render_background(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
-+ gtk_render_frame(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
- }
-
-+ gtk_style_context_restore(style);
-+
- if (state->focused) {
- /* Paint the focus ring */
-- GtkBorder border;
-- gtk_style_context_get_border(style, GetStateFlagsFromGtkWidgetState(state), &border);
-+ GtkBorder padding;
-+
-+ gtk_style_context_save(style);
-+ moz_gtk_tab_prepare_style_context(style, flags);
-
-- focusRect.x += border.left;
-- focusRect.width -= (border.left + border.right);
-- focusRect.y += border.top;
-- focusRect.height -= (border.top + border.bottom);
-+ gtk_style_context_get_padding(style, GetStateFlagsFromGtkWidgetState(state), &padding);
-+
-+ focusRect.x += padding.left;
-+ focusRect.width -= (padding.left + padding.right);
-+ focusRect.y += padding.top;
-+ focusRect.height -= (padding.top + padding.bottom);
-
- gtk_render_focus(style, cr,
- focusRect.x, focusRect.y, focusRect.width, focusRect.height);
-+
-+ gtk_style_context_restore(style);
- }
-
-- gtk_style_context_restore(style);
-
- return MOZ_GTK_SUCCESS;
- }
-@@ -2684,26 +2609,18 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- switch (widget) {
- case MOZ_GTK_BUTTON:
- {
-- GtkBorder inner_border;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
- ensure_button_widget();
-+ style = gtk_widget_get_style_context(gButtonWidget);
-+
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
-
- /* Don't add this padding in HTML, otherwise the buttons will
- become too big and stuff the layout. */
- if (!inhtml) {
-- moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad);
-- moz_gtk_button_get_inner_border(gButtonWidget, &inner_border);
-- *left += focus_width + focus_pad + inner_border.left;
-- *right += focus_width + focus_pad + inner_border.right;
-- *top += focus_width + focus_pad + inner_border.top;
-- *bottom += focus_width + focus_pad + inner_border.bottom;
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
- }
-
-- moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget),
-- left, top, right, bottom);
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_ENTRY:
-@@ -2717,7 +2610,13 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- ensure_entry_widget();
- style = gtk_widget_get_style_context(gEntryWidget);
- moz_gtk_add_style_border(style, left, top, right, bottom);
-- moz_gtk_add_style_padding(style, left, top, right, bottom);
-+
-+ /* Use the document padding in HTML
-+ and GTK style padding in XUL. */
-+ if (!inhtml) {
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
-+ }
-+
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_TREEVIEW:
-@@ -2737,23 +2636,15 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- * assigned.
- * That is why the following code is the same as for MOZ_GTK_BUTTON.
- * */
--
-- GtkBorder inner_border;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
-+ GtkStyleContext *style;
-
- ensure_tree_header_cell_widget();
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gTreeHeaderCellWidget));
-
-- moz_gtk_widget_get_focus(gTreeHeaderCellWidget, &interior_focus, &focus_width, &focus_pad);
-- moz_gtk_button_get_inner_border(gTreeHeaderCellWidget, &inner_border);
-- *left += focus_width + focus_pad + inner_border.left;
-- *right += focus_width + focus_pad + inner_border.right;
-- *top += focus_width + focus_pad + inner_border.top;
-- *bottom += focus_width + focus_pad + inner_border.bottom;
--
-- moz_gtk_add_style_border(gtk_widget_get_style_context(gTreeHeaderCellWidget),
-- left, top, right, bottom);
-+ style = gtk_widget_get_style_context(gTreeHeaderCellWidget);
-+
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_TREE_HEADER_SORTARROW:
-@@ -2773,29 +2664,23 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- /* We need to account for the arrow on the dropdown, so text
- * doesn't come too close to the arrow, or in some cases spill
- * into the arrow. */
-- gboolean ignored_interior_focus, wide_separators;
-- gint focus_width, focus_pad, separator_width;
-+ gboolean wide_separators;
-+ gint separator_width;
- GtkRequisition arrow_req;
- GtkBorder border;
-
- ensure_combo_box_widgets();
-
-- *left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
-+ *left = *top = *right = *bottom =
-+ gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
-+
-+ style = gtk_widget_get_style_context(gComboBoxButtonWidget);
-
- if (!inhtml) {
-- moz_gtk_widget_get_focus(gComboBoxButtonWidget,
-- &ignored_interior_focus,
-- &focus_width, &focus_pad);
-- *left += focus_width + focus_pad;
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
- }
-
-- style = gtk_widget_get_style_context(gComboBoxButtonWidget);
-- gtk_style_context_get_border(style, 0, &border);
--
-- *top = *left + border.top;
-- *left += border.left;
--
-- *right = *left; *bottom = *top;
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
-
- /* If there is no separator, don't try to count its width. */
- separator_width = 0;
-@@ -2847,60 +2732,23 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- ensure_frame_widget();
- w = gFrameWidget;
- break;
-- case MOZ_GTK_CHECKBUTTON_LABEL:
-- case MOZ_GTK_RADIOBUTTON_LABEL:
-- {
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
-- /* If the focus is interior, then the label has a border of
-- (focus_width + focus_pad). */
-- if (widget == MOZ_GTK_CHECKBUTTON_LABEL) {
-- ensure_checkbox_widget();
-- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
-- &focus_width, &focus_pad);
-- }
-- else {
-- ensure_radiobutton_widget();
-- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
-- &focus_width, &focus_pad);
-- }
--
-- if (interior_focus)
-- *left = *top = *right = *bottom = (focus_width + focus_pad);
--
-- return MOZ_GTK_SUCCESS;
-- }
--
- case MOZ_GTK_CHECKBUTTON_CONTAINER:
- case MOZ_GTK_RADIOBUTTON_CONTAINER:
- {
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
-- /* If the focus is _not_ interior, then the container has a border
-- of (focus_width + focus_pad). */
- if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
- ensure_checkbox_widget();
-- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
-- &focus_width, &focus_pad);
- w = gCheckboxWidget;
- } else {
- ensure_radiobutton_widget();
-- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
-- &focus_width, &focus_pad);
- w = gRadiobuttonWidget;
- }
-+ style = gtk_widget_get_style_context(w);
-
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
--
-- if (!interior_focus) {
-- *left += (focus_width + focus_pad);
-- *right += (focus_width + focus_pad);
-- *top += (focus_width + focus_pad);
-- *bottom += (focus_width + focus_pad);
-- }
--
-+ moz_gtk_add_style_border(style,
-+ left, top, right, bottom);
-+ moz_gtk_add_style_padding(style,
-+ left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_MENUPOPUP:
-@@ -2927,6 +2775,8 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- return MOZ_GTK_SUCCESS;
- }
- /* These widgets have no borders, since they are not containers. */
-+ case MOZ_GTK_CHECKBUTTON_LABEL:
-+ case MOZ_GTK_RADIOBUTTON_LABEL:
- case MOZ_GTK_SPLITTER_HORIZONTAL:
- case MOZ_GTK_SPLITTER_VERTICAL:
- case MOZ_GTK_CHECKBUTTON:
-@@ -2975,11 +2849,7 @@ moz_gtk_get_tab_border(gint* left, gint* top, gint* right, gint* bottom,
- gtk_style_context_save(style);
- moz_gtk_tab_prepare_style_context(style, flags);
-
-- // TODO add_style_border() should be replaced
-- // with focus-line-width and focus-padding
-- // see Bug 877605
- *left = *top = *right = *bottom = 0;
-- moz_gtk_add_style_border(style, left, top, right, bottom);
- moz_gtk_add_style_padding(style, left, top, right, bottom);
-
- gtk_widget_style_get (gTabWidget, "tab-curvature", &tab_curvature, NULL);
-@@ -2990,16 +2860,9 @@ moz_gtk_get_tab_border(gint* left, gint* top, gint* right, gint* bottom,
- int initial_gap;
- gtk_widget_style_get (gTabWidget, "initial-gap", &initial_gap, NULL);
- if (direction == GTK_TEXT_DIR_RTL)
-- *right += initial_gap;
-+ *right += initial_gap;
- else
-- *left += initial_gap;
-- }
--
-- // Top tabs have no bottom border, bottom tabs have no top border
-- if (flags & MOZ_GTK_TAB_BOTTOM) {
-- *top = 0;
-- } else {
-- *bottom = 0;
-+ *left += initial_gap;
- }
-
- gtk_style_context_restore(style);
-diff --git widget/gtk/gtkdrawing.h widget/gtk/gtkdrawing.h
-index 1938e8f..5f71cfd 100644
---- widget/gtk/gtkdrawing.h
-+++ widget/gtk/gtkdrawing.h
-@@ -293,16 +293,6 @@ moz_gtk_checkbox_get_metrics(gint* indicator_size, gint* indicator_spacing);
- gint
- moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
-
--/**
-- * Get the inner-border value for a GtkButton widget (button or tree header)
-- * widget: [IN] the widget to get the border value for
-- * inner_border: [OUT] the inner border
-- *
-- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-- */
--gint
--moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
--
- /** Get the extra size for the focus ring for outline:auto.
- * widget: [IN] the widget to get the focus metrics for
- * focus_h_width: [OUT] the horizontal width
-@@ -313,19 +303,6 @@ moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
- gint
- moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
-
--/** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
-- * widget: [IN] the widget to get the focus metrics for
-- * interior_focus: [OUT] whether the focus is drawn around the
-- * label (TRUE) or around the whole container (FALSE)
-- * focus_width: [OUT] the width of the focus line
-- * focus_pad: [OUT] the padding between the focus line and children
-- *
-- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-- */
--gint
--moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
-- gint* focus_width, gint* focus_pad);
--
- /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
- * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
- *
-diff --git widget/gtk/nsNativeThemeGTK.cpp widget/gtk/nsNativeThemeGTK.cpp
-index e5e1867..76d28e3 100644
---- widget/gtk/nsNativeThemeGTK.cpp
-+++ widget/gtk/nsNativeThemeGTK.cpp
-@@ -761,6 +761,8 @@ nsNativeThemeGTK::GetExtraSizeForWidget(nsIFrame* aFrame, uint8_t aWidgetType,
- return false;
-
- gint gap_height = moz_gtk_get_tab_thickness();
-+ if (!gap_height)
-+ return false;
-
- int32_t extra = gap_height - GetTabMarginPixels(aFrame);
- if (extra <= 0)
diff --git a/www/firefox-esr/files/patch-bug1138845 b/www/firefox-esr/files/patch-bug1138845
deleted file mode 100644
index 12a9542f538f..000000000000
--- a/www/firefox-esr/files/patch-bug1138845
+++ /dev/null
@@ -1,134 +0,0 @@
-commit 4b5b332
-Author: Mike Hommey <mh+mozilla@glandium.org>
-Date: Tue Mar 3 18:41:13 2015 +0900
-
- Bug 1138845 - Don't require atk-bridge for gtk+3 builds. r=tbsaunde
----
- accessible/atk/Platform.cpp | 29 +++++++++++++++++++----------
- config/system-headers | 1 -
- configure.in | 2 +-
- 3 files changed, 20 insertions(+), 12 deletions(-)
-
-diff --git accessible/atk/Platform.cpp accessible/atk/Platform.cpp
-index a2afd96..2ed5e0b 100644
---- accessible/atk/Platform.cpp
-+++ accessible/atk/Platform.cpp
-@@ -18,8 +18,9 @@
- #include <dbus/dbus.h>
- #endif
- #include <gtk/gtk.h>
-+
- #if (MOZ_WIDGET_GTK == 3)
--#include <atk-bridge.h>
-+extern "C" __attribute__((weak,visibility("default"))) int atk_bridge_adaptor_init(int*, char **[]);
- #endif
-
- using namespace mozilla;
-@@ -46,7 +47,6 @@ static gulong sToplevel_hide_hook = 0;
-
- GType g_atk_hyperlink_impl_type = G_TYPE_INVALID;
-
--#if (MOZ_WIDGET_GTK == 2)
- struct GnomeAccessibilityModule
- {
- const char *libName;
-@@ -67,11 +67,13 @@ static GnomeAccessibilityModule sAtkBridge = {
- "gnome_accessibility_module_shutdown", nullptr
- };
-
-+#if (MOZ_WIDGET_GTK == 2)
- static GnomeAccessibilityModule sGail = {
- "libgail.so", nullptr,
- "gnome_accessibility_module_init", nullptr,
- "gnome_accessibility_module_shutdown", nullptr
- };
-+#endif
-
- static nsresult
- LoadGtkModule(GnomeAccessibilityModule& aModule)
-@@ -98,7 +100,11 @@ LoadGtkModule(GnomeAccessibilityModule& aModule)
- else
- subLen = loc2 - loc1;
- nsAutoCString sub(Substring(libPath, loc1, subLen));
-+#if (MOZ_WIDGET_GTK == 2)
- sub.AppendLiteral("/gtk-2.0/modules/");
-+#else
-+ sub.AppendLiteral("/gtk-3.0/modules/");
-+#endif
- sub.Append(aModule.libName);
- aModule.lib = PR_LoadLibrary(sub.get());
- if (aModule.lib)
-@@ -123,7 +129,6 @@ LoadGtkModule(GnomeAccessibilityModule& aModule)
- }
- return NS_OK;
- }
--#endif // (MOZ_WIDGET_GTK == 2)
-
- void
- a11y::PlatformInit()
-@@ -175,14 +180,17 @@ a11y::PlatformInit()
-
- // Init atk-bridge now
- PR_SetEnv("NO_AT_BRIDGE=0");
--#if (MOZ_WIDGET_GTK == 2)
-- rv = LoadGtkModule(sAtkBridge);
-- if (NS_SUCCEEDED(rv)) {
-- (*sAtkBridge.init)();
-- }
--#else
-- atk_bridge_adaptor_init(nullptr, nullptr);
-+#if (MOZ_WIDGET_GTK == 3)
-+ if (atk_bridge_adaptor_init) {
-+ atk_bridge_adaptor_init(nullptr, nullptr);
-+ } else
- #endif
-+ {
-+ nsresult rv = LoadGtkModule(sAtkBridge);
-+ if (NS_SUCCEEDED(rv)) {
-+ (*sAtkBridge.init)();
-+ }
-+ }
-
- if (!sToplevel_event_hook_added) {
- sToplevel_event_hook_added = true;
-@@ -210,7 +218,6 @@ a11y::PlatformShutdown()
- sToplevel_hide_hook);
- }
-
--#if (MOZ_WIDGET_GTK == 2)
- if (sAtkBridge.lib) {
- // Do not shutdown/unload atk-bridge,
- // an exit function registered will take care of it
-@@ -221,6 +228,7 @@ a11y::PlatformShutdown()
- sAtkBridge.init = nullptr;
- sAtkBridge.shutdown = nullptr;
- }
-+#if (MOZ_WIDGET_GTK == 2)
- if (sGail.lib) {
- // Do not shutdown gail because
- // 1) Maybe it's not init-ed by us. e.g. GtkEmbed
-diff --git config/system-headers config/system-headers
-index 2c94a7d..cf01775 100644
---- config/system-headers
-+++ config/system-headers
-@@ -189,7 +189,6 @@ asm/signal.h
- ASRegistry.h
- assert.h
- atk/atk.h
--atk-bridge.h
- atlcom.h
- atlconv.h
- atlctl.cpp
-diff --git configure.in configure.in
-index 0bd1eb7..f3b3365 100644
---- configure.in
-+++ configure.in
-@@ -4408,7 +4408,7 @@ fi
-
- if test "$COMPILE_ENVIRONMENT"; then
- if test "$MOZ_ENABLE_GTK3"; then
-- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 atk-bridge-2.0 $GDK_PACKAGES)
-+ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
- MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
- dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead
- dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build
diff --git a/www/firefox-esr/files/patch-bug1143686 b/www/firefox-esr/files/patch-bug1143686
deleted file mode 100644
index d4cc2834d67e..000000000000
--- a/www/firefox-esr/files/patch-bug1143686
+++ /dev/null
@@ -1,46 +0,0 @@
-commit e50e738
-Author: Martin Stransky <stransky@redhat.com>
-Date: Mon Mar 16 08:00:00 2015 -0400
-
- Bug 1143686 - Gtk3 - Render scrollbar thumb with margin. r=karlt
----
- widget/gtk/gtk3drawing.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git widget/gtk/gtk3drawing.c widget/gtk/gtk3drawing.c
-index 17f46ab..08a58d6 100644
---- widget/gtk/gtk3drawing.c
-+++ widget/gtk/gtk3drawing.c
-@@ -1230,6 +1230,7 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWidgetType widget,
- GtkStyleContext* style;
- GtkScrollbar *scrollbar;
- GtkAdjustment *adj;
-+ GtkBorder margin;
-
- ensure_scrollbar_widget();
-
-@@ -1239,15 +1240,20 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWidgetType widget,
- scrollbar = GTK_SCROLLBAR(gVertScrollbarWidget);
-
- gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
--
-+
- style = gtk_widget_get_style_context(GTK_WIDGET(scrollbar));
- gtk_style_context_save(style);
--
-+
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_SLIDER);
- gtk_style_context_set_state(style, state_flags);
-
-- gtk_render_slider(style, cr, rect->x, rect->y,
-- rect->width, rect->height,
-+ gtk_style_context_get_margin (style, state_flags, &margin);
-+
-+ gtk_render_slider(style, cr,
-+ rect->x + margin.left,
-+ rect->y + margin.top,
-+ rect->width - margin.left - margin.right,
-+ rect->height - margin.top - margin.bottom,
- (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
- GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
-
diff --git a/www/firefox-esr/files/patch-bug1144643 b/www/firefox-esr/files/patch-bug1144643
deleted file mode 100644
index fe8150ba182c..000000000000
--- a/www/firefox-esr/files/patch-bug1144643
+++ /dev/null
@@ -1,33 +0,0 @@
-commit a0ccc19
-Author: Martin Stransky <stransky@redhat.com>
-Date: Wed Mar 18 07:14:00 2015 -0400
-
- Bug 1144643 - Render tooltips as transparent on Gtk3. r=karlt
-
- --HG--
- extra : rebase_source : 23085532b27350ca71cbe18db071628388003f33
----
- widget/gtk/nsNativeThemeGTK.cpp | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git widget/gtk/nsNativeThemeGTK.cpp widget/gtk/nsNativeThemeGTK.cpp
-index e5e1867..26d13a5 100644
---- widget/gtk/nsNativeThemeGTK.cpp
-+++ widget/gtk/nsNativeThemeGTK.cpp
-@@ -1528,9 +1528,15 @@ nsNativeThemeGTK::GetWidgetTransparency(nsIFrame* aFrame, uint8_t aWidgetType)
- case NS_THEME_MENUPOPUP:
- case NS_THEME_WINDOW:
- case NS_THEME_DIALOG:
-- // Tooltips use gtk_paint_flat_box().
-+ return eOpaque;
-+ // Tooltips use gtk_paint_flat_box() on Gtk2
-+ // but are shaped on Gtk3
- case NS_THEME_TOOLTIP:
-+#if (MOZ_WIDGET_GTK == 2)
- return eOpaque;
-+#else
-+ return eTransparent;
-+#endif
- }
-
- return eUnknownTransparency;
diff --git a/www/firefox-esr/files/patch-bug1148203 b/www/firefox-esr/files/patch-bug1148203
deleted file mode 100644
index fcbe7677d3e5..000000000000
--- a/www/firefox-esr/files/patch-bug1148203
+++ /dev/null
@@ -1,38 +0,0 @@
-# HG changeset patch
-# User Chris Double <chris.double@double.co.nz>
-# Date 1427767594 -46800
-# Tue Mar 31 15:06:34 2015 +1300
-# Node ID 858ea94746eedc4b65734f8ceedfff7021940cb2
-# Parent 1b8f36a7ee321ca62cf87424910d0e2ed6fed076
-Bug 1148203 - Fix build errors with combinations of enable/disable of ffmp4/ffmpeg/eme - r=cpearce,ted
-
-Fixes build error with all three disabled. Prevents other combinations
-that cause build errors by detecting them at configure time and displaying
-an error message.
-
-diff --git a/configure.in b/configure.in
---- configure.in
-+++ configure.in
-@@ -5316,6 +5316,10 @@ MOZ_ARG_DISABLE_BOOL(fmp4,
- MOZ_FMP4=,
- MOZ_FMP4=1)
-
-+if test -n "$MOZ_FFMPEG" -a -z "$MOZ_FMP4"; then
-+ AC_MSG_ERROR([Fragmented MP4 support must be enabled if using FFMPEG])
-+fi
-+
- if test -n "$MOZ_FMP4"; then
- AC_DEFINE(MOZ_FMP4)
- MOZ_EME=1
-diff --git a/media/libstagefright/binding/MoofParser.cpp b/media/libstagefright/binding/MoofParser.cpp
---- media/libstagefright/binding/MoofParser.cpp
-+++ media/libstagefright/binding/MoofParser.cpp
-@@ -9,7 +9,7 @@
-
- #include "prlog.h"
-
--#ifdef PR_LOGGING
-+#if defined(MOZ_FMP4) && defined(PR_LOGGING)
- extern PRLogModuleInfo* GetDemuxerLog();
-
- /* Polyfill __func__ on MSVC to pass to the log. */
diff --git a/www/firefox-esr/files/patch-bug1233275 b/www/firefox-esr/files/patch-bug1233275
index e99e86a74ce0..ac5d9d2cdedb 100644
--- a/www/firefox-esr/files/patch-bug1233275
+++ b/www/firefox-esr/files/patch-bug1233275
@@ -3,23 +3,19 @@
diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc
--- ipc/chromium/src/base/process_util_bsd.cc
+++ ipc/chromium/src/base/process_util_bsd.cc
-@@ -13,6 +13,7 @@
+@@ -12,10 +12,9 @@
#include <string>
+#include "nspr.h"
#include "base/eintr_wrapper.h"
- #include "base/file_util.h"
- #include "base/logging.h"
-@@ -48,7 +49,6 @@
- #ifdef HAVE_POSIX_SPAWN
- #include <spawn.h>
--extern "C" char **environ __dso_public;
- #endif
+-extern "C" char **environ __attribute__((__visibility__("default")));
+-
+ namespace base {
- namespace {
-@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector<std::st
+ void FreeEnvVarsArray(char* array[], int length)
+@@ -66,6 +65,7 @@ bool LaunchApp(const std::vector<std::st
// Existing variables are overwritten by env_vars_to_set.
int pos = 0;
environment_map combined_env_vars = env_vars_to_set;
@@ -27,7 +23,7 @@ diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/p
while(environ[pos] != NULL) {
std::string varString = environ[pos];
std::string varName = varString.substr(0, varString.find_first_of('='));
-@@ -121,8 +122,9 @@ bool LaunchApp(const std::vector<std::st
+@@ -73,8 +73,9 @@ bool LaunchApp(const std::vector<std::st
if (combined_env_vars.find(varName) == combined_env_vars.end()) {
combined_env_vars[varName] = varValue;
}
diff --git a/www/firefox-esr/files/patch-bug1242132 b/www/firefox-esr/files/patch-bug1242132
new file mode 100644
index 000000000000..2a228cd466a1
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug1242132
@@ -0,0 +1,13 @@
+# nss-config --cflags returns multiple flags, don't treat them as one string
+
+--- python/mozbuild/mozbuild/frontend/gyp_reader.py~
++++ python/mozbuild/mozbuild/frontend/gyp_reader.py
+@@ -217,7 +217,7 @@ def read_from_gyp(config, path, output,
+ # We may be getting make variable references out of the
+ # gyp data, and we don't want those in emitted data, so
+ # substitute them with their actual value.
+- f = expand_variables(f, config.substs)
++ f = expand_variables(f, config.substs).split()
+ if not f:
+ continue
+ # the result may be a string or a list.
diff --git a/www/firefox-esr/files/patch-bug1252246 b/www/firefox-esr/files/patch-bug1252246
new file mode 100644
index 000000000000..429391f0dc15
--- /dev/null
+++ b/www/firefox-esr/files/patch-bug1252246
@@ -0,0 +1,44 @@
+# Prefer PTHREAD_PROCESS_SHARED on FreeBSD 11.0 or later
+
+diff --git a/ipc/glue/CrossProcessMutex.h b/ipc/glue/CrossProcessMutex.h
+--- ipc/glue/CrossProcessMutex.h
++++ ipc/glue/CrossProcessMutex.h
+@@ -9,7 +9,7 @@
+ #include "base/process.h"
+ #include "mozilla/Mutex.h"
+
+-#if defined(OS_LINUX) || defined(XP_DARWIN)
++#if !defined(OS_WIN) && !defined(OS_NETBSD) && !defined(OS_OPENBSD)
+ #include <pthread.h>
+ #include "SharedMemoryBasic.h"
+ #include "mozilla/Atomics.h"
+@@ -34,7 +34,7 @@ struct ParamTraits;
+ namespace mozilla {
+ #if defined(OS_WIN)
+ typedef HANDLE CrossProcessMutexHandle;
+-#elif defined(OS_LINUX) || defined(OS_MACOSX)
++#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD)
+ typedef mozilla::ipc::SharedMemoryBasic::Handle CrossProcessMutexHandle;
+ #else
+ // Stub for other platforms. We can't use uintptr_t here since different
+@@ -100,7 +100,7 @@ private:
+
+ #if defined(OS_WIN)
+ HANDLE mMutex;
+-#elif defined(OS_LINUX) || defined(OS_MACOSX)
++#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD)
+ RefPtr<mozilla::ipc::SharedMemoryBasic> mSharedBuffer;
+ pthread_mutex_t* mMutex;
+ mozilla::Atomic<int32_t>* mCount;
+diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build
+--- ipc/glue/moz.build
++++ ipc/glue/moz.build
+@@ -61,7 +61,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
+ SOURCES += [
+ 'CrossProcessMutex_windows.cpp',
+ ]
+-elif CONFIG['OS_ARCH'] in ('Linux', 'Darwin'):
++elif not CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD'):
+ UNIFIED_SOURCES += [
+ 'CrossProcessMutex_posix.cpp',
+ ]
diff --git a/www/firefox/files/patch-bug1257947 b/www/firefox-esr/files/patch-bug1257947
index 62818bcca102..62818bcca102 100644
--- a/www/firefox/files/patch-bug1257947
+++ b/www/firefox-esr/files/patch-bug1257947
diff --git a/www/firefox-esr/files/patch-bug702179 b/www/firefox-esr/files/patch-bug702179
index d1aa293d2237..bb642382dfd8 100644
--- a/www/firefox-esr/files/patch-bug702179
+++ b/www/firefox-esr/files/patch-bug702179
@@ -1,24 +1,13 @@
-commit 6ddaacd
-Author: Ginn Chen <ginn.chen@oracle.com>
-Date: Wed Nov 30 07:23:46 2011 +0800
-
- Bug 702179 dtrace probes are not installed on Solaris with static js lib r=glandium
----
- js/src/Makefile.in | 3 ---
- toolkit/library/moz.build | 5 -----
- 2 files changed, 8 deletions(-)
-
-diff --git js/src/Makefile.in js/src/Makefile.in
-index 62bbfa0..90400cb 100644
---- js/src/Makefile.in
-+++ js/src/Makefile.in
-@@ -17,9 +17,6 @@ TOPLEVEL_BUILD := 1
- run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
- EXTRA_LIBS += $(NSPR_LIBS)
+--- js/src/moz.build.orig 2015-12-16 12:32:04.574425000 +0100
++++ js/src/moz.build 2015-12-16 12:32:09.032032000 +0100
+@@ -671,10 +671,6 @@ CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+ CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+ LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
--DIST_INSTALL = 1
--NO_EXPAND_LIBS = 1
+-NO_EXPAND_LIBS = True
-
- ifdef JS_HAS_CTYPES
- ifdef MOZ_NATIVE_FFI
- LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS)
+-DIST_INSTALL = True
+-
+ # Prepare self-hosted JS code for embedding
+ GENERATED_FILES += ['selfhosted.out.h']
+ selfhosted = GENERATED_FILES['selfhosted.out.h']
diff --git a/www/firefox-esr/files/patch-bug779713 b/www/firefox-esr/files/patch-bug779713
deleted file mode 100644
index cbf73d463db0..000000000000
--- a/www/firefox-esr/files/patch-bug779713
+++ /dev/null
@@ -1,77 +0,0 @@
-diff --git mfbt/Alignment.h mfbt/Alignment.h
-index e0843ca..353ec36 100644
---- mfbt/Alignment.h
-+++ mfbt/Alignment.h
-@@ -9,11 +9,20 @@
- #ifndef mozilla_Alignment_h
- #define mozilla_Alignment_h
-
-+#include "mozilla/Attributes.h"
-+
- #include <stddef.h>
- #include <stdint.h>
-
- namespace mozilla {
-
-+#if defined(MOZ_HAVE_CXX11_ALIGNAS)
-+#define MOZ_ALIGNOF(T) alignof(T)
-+#elif defined(__GNUC__)
-+#define MOZ_ALIGNOF(T) __alignof__(T)
-+#elif defined(_MSC_VER)
-+#define MOZ_ALIGNOF(T) __alignof(T)
-+#else
- /*
- * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many
- * bytes of alignment a given type needs.
-@@ -32,6 +41,7 @@ public:
- };
-
- #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder<T>::alignment
-+#endif
-
- /*
- * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types.
-@@ -43,7 +53,10 @@ public:
- * will declare a two-character array |arr| aligned to 8 bytes.
- */
-
--#if defined(__GNUC__)
-+#if defined(MOZ_HAVE_CXX11_ALIGNAS)
-+# define MOZ_ALIGNED_DECL(_type, _align) \
-+ alignas(_align) _type
-+#elif defined(__GNUC__)
- # define MOZ_ALIGNED_DECL(_type, _align) \
- _type __attribute__((aligned(_align)))
- #elif defined(_MSC_VER)
-diff --git mfbt/Attributes.h mfbt/Attributes.h
-index d317766..ddb13da 100644
---- mfbt/Attributes.h
-+++ mfbt/Attributes.h
-@@ -50,6 +50,7 @@
- * don't indicate support for them here, due to
- * http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug
- */
-+# define MOZ_HAVE_CXX11_ALIGNAS
- # define MOZ_HAVE_NEVER_INLINE __declspec(noinline)
- # define MOZ_HAVE_NORETURN __declspec(noreturn)
- # ifdef __clang__
-@@ -70,6 +71,9 @@
- # ifndef __has_extension
- # define __has_extension __has_feature /* compatibility, for older versions of clang */
- # endif
-+# if __has_extension(cxx_alignas)
-+# define MOZ_HAVE_CXX11_ALIGNAS
-+# endif
- # if __has_extension(cxx_constexpr)
- # define MOZ_HAVE_CXX11_CONSTEXPR
- # endif
-@@ -84,6 +88,9 @@
- # endif
- #elif defined(__GNUC__)
- # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
-+# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
-+# define MOZ_HAVE_CXX11_ALIGNAS
-+# endif
- # define MOZ_HAVE_CXX11_CONSTEXPR
- # define MOZ_HAVE_EXPLICIT_CONVERSION
- # endif
diff --git a/www/firefox-esr/files/patch-bug826985 b/www/firefox-esr/files/patch-bug826985
index 4fb4dde7bd4d..941acf53f265 100644
--- a/www/firefox-esr/files/patch-bug826985
+++ b/www/firefox-esr/files/patch-bug826985
@@ -17,10 +17,10 @@ diff --git config/system-headers config/system-headers
index 55e4cd1..76567b3 100644
--- config/system-headers
+++ config/system-headers
-@@ -635,6 +635,7 @@ libgnomevfs/gnome-vfs-mime-handlers.h
- libgnomevfs/gnome-vfs-mime-utils.h
- libgnomevfs/gnome-vfs-ops.h
- libgnomevfs/gnome-vfs-standard-callbacks.h
+@@ -627,6 +627,7 @@ libgnome/libgnome.h
+ libgnomeui/gnome-icon-lookup.h
+ libgnomeui/gnome-icon-theme.h
+ libgnomeui/gnome-ui-init.h
+libv4l2.h
lib$routines.h
limits
@@ -51,13 +51,13 @@ index b483cd1..f1dd1f0 100644
# basic stuff for everything
'include_internal_video_render': 0,
'clang_use_chrome_plugins': 0,
-diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
+diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build
index b483cd1..f1dd1f0 100644
---- media/webrtc/signaling/test/moz.build
-+++ media/webrtc/signaling/test/moz.build
-@@ -122,6 +122,7 @@ if CONFIG['JS_SHARED_LIBRARY']:
- 'js',
- ]
+--- media/webrtc/signaling/test/common.build
++++ media/webrtc/signaling/test/common.build
+@@ -99,6 +99,7 @@ if CONFIG['JS_SHARED_LIBRARY']:
+
+ USE_LIBS += ['mozglue']
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
@@ -145,26 +145,26 @@ index d46b5aa..e452223 100644
'targets': [
{
'target_name': 'video_capture_module',
-@@ -69,6 +72,19 @@
- 'linux/video_capture_linux.cc',
- 'linux/video_capture_linux.h',
- ],
-+ 'conditions': [
-+ ['use_libv4l2==1', {
-+ 'defines': [
-+ 'HAVE_LIBV4L2',
-+ ],
-+ 'cflags_mozilla': [
-+ '$(MOZ_LIBV4L2_CFLAGS)',
-+ ],
-+ 'libraries': [
-+ '-lv4l2',
+@@ -75,6 +78,19 @@
+ 'linux/video_capture_linux.cc',
+ 'linux/video_capture_linux.h',
+ ],
++ 'conditions': [
++ ['use_libv4l2==1', {
++ 'defines': [
++ 'HAVE_LIBV4L2',
++ ],
++ 'cflags_mozilla': [
++ '$(MOZ_LIBV4L2_CFLAGS)',
++ ],
++ 'libraries': [
++ '-lv4l2',
++ ],
++ }],
+ ],
-+ }],
-+ ],
- }], # linux
- ['OS=="mac"', {
- 'sources': [
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
diff --git toolkit/library/moz.build toolkit/library/moz.build
index 9c16ffa..1db3794 100644
--- toolkit/library/moz.build
diff --git a/www/firefox-esr/files/patch-bug847568 b/www/firefox-esr/files/patch-bug847568
index debd9a78f1d4..6eb00b509d88 100644
--- a/www/firefox-esr/files/patch-bug847568
+++ b/www/firefox-esr/files/patch-bug847568
@@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
index 14bfc0d..5383399 100644
--- config/Makefile.in
+++ config/Makefile.in
-@@ -75,6 +75,8 @@ export:: $(export-preqs)
+@@ -49,6 +49,8 @@ export:: $(export-preqs)
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
@@ -17,7 +17,7 @@ diff --git config/system-headers config/system-headers
index 18e8703..bdc5f82 100644
--- config/system-headers
+++ config/system-headers
-@@ -1357,3 +1357,11 @@ unicode/utypes.h
+@@ -1344,3 +1344,11 @@ unicode/utypes.h
#endif
libutil.h
unwind.h
@@ -33,7 +33,7 @@ diff --git configure.in configure.in
index ac38f40..87536b7 100644
--- configure.in
+++ configure.in
-@@ -7986,6 +7986,49 @@ if test "$USE_FC_FREETYPE"; then
+@@ -7989,6 +7989,49 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
@@ -46,7 +46,7 @@ index ac38f40..87536b7 100644
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
-+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.0)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
@@ -70,7 +70,7 @@ index ac38f40..87536b7 100644
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
-+ #if !GR2_VERSION_REQUIRE(1,2,4)
++ #if !GR2_VERSION_REQUIRE(1,3,6)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
@@ -87,38 +87,54 @@ diff --git dom/base/moz.build dom/base/moz.build
index a660ba4..6b2f602 100644
--- dom/base/moz.build
+++ dom/base/moz.build
-@@ -196,6 +196,9 @@ SOURCES += [
- 'nsObjectLoadingContent.cpp',
- ]
+@@ -397,6 +397,9 @@ if CONFIG['INTEL_ARCHITECTURE']:
+ SOURCES += ['nsTextFragmentSSE2.cpp']
+ SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
EXTRA_COMPONENTS += [
- 'contentAreaDropListener.js',
- 'contentAreaDropListener.manifest',
+ 'ConsoleAPI.manifest',
+ 'ConsoleAPIStorage.js',
diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh
index f3d76ea..a9e7fb6 100644
--- gfx/graphite2/moz-gr-update.sh
+++ gfx/graphite2/moz-gr-update.sh
-@@ -37,6 +37,9 @@
+@@ -1,6 +1,7 @@
+ #!/bin/bash
+
+ # Script used to update the Graphite2 library in the mozilla source tree
++# and bump version for --with-system-graphite2
+
+ # This script lives in gfx/graphite2, along with the library source,
+ # but must be run from the top level of the mozilla-central tree.
+@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >>
#find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
#find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
++# chase version for --with-system-graphite2
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
+ if /GR2_VERSION_REQUIRE/" configure.in
+
# summarize what's been touched
echo Updated to $RELEASE.
echo Here is what changed in the gfx/graphite2 directory:
+ echo
+
+-hg stat gfx/graphite2
++hg stat configure.in gfx/graphite2
+
+ echo
+ echo If gfx/graphite2/src/files.mk has changed, please make corresponding
diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla
index ca57d16..1ce21fe 100644
--- gfx/harfbuzz/README-mozilla
+++ gfx/harfbuzz/README-mozilla
-@@ -21,3 +21,8 @@ In addition, the src/Makefile.in file here is NOT from upstream, nor is it
+@@ -18,3 +18,8 @@ the mozilla tree.
+ In addition, the src/Makefile.in file here is NOT from upstream, nor is it
generated from src/Makefile.am (the original harfbuzz version); it is a mozilla-
- specific makefile that is maintained by hand. It should only need updating when
- new source files or exported headers are added in harfbuzz.
+ specific makefile that is maintained by hand.
+
+The in-tree copy may be omitted during build by --with-system-harfbuzz.
+Make sure to keep pkg-config version check within configure.in in sync
@@ -154,9 +170,9 @@ diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py
index 28fa6b5..240dced 100755
--- gfx/skia/generate_mozbuild.py
+++ gfx/skia/generate_mozbuild.py
-@@ -140,6 +140,9 @@ if CONFIG['GNU_CXX']:
- if not CONFIG['CLANG_CXX']:
- CXXFLAGS += ['-Wno-logical-op']
+@@ -134,6 +134,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_
+ '-Wno-unused-private-field',
+ ]
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
@@ -168,9 +184,9 @@ diff --git gfx/skia/moz.build gfx/skia/moz.build
index 1d0c2f9..adb8941 100644
--- gfx/skia/moz.build
+++ gfx/skia/moz.build
-@@ -968,6 +968,9 @@ if CONFIG['GNU_CXX']:
- if not CONFIG['CLANG_CXX']:
- CXXFLAGS += ['-Wno-logical-op']
+@@ -752,6 +752,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_
+ '-Wno-unused-private-field',
+ ]
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
@@ -182,9 +198,9 @@ diff --git gfx/thebes/moz.build gfx/thebes/moz.build
index d5852fa..aeeab25 100644
--- gfx/thebes/moz.build
+++ gfx/thebes/moz.build
-@@ -294,7 +294,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'andr
- if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'qt'):
- CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']
+@@ -306,7 +306,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk
+
+ LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
-DEFINES['GRAPHITE2_STATIC'] = True
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
@@ -195,35 +211,38 @@ index d5852fa..aeeab25 100644
+else:
+ DEFINES['GRAPHITE2_STATIC'] = True
- if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
- DEFINES['OTS_DLL'] = True
-diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build
+ if CONFIG['CLANG_CXX']:
+ # Suppress warnings from Skia header files.
index d736943..41a931f 100644
--- intl/unicharutil/util/moz.build
+++ intl/unicharutil/util/moz.build
-@@ -37,3 +37,6 @@ if CONFIG['_MSC_VER']:
+@@ -44,4 +44,7 @@ if CONFIG['ENABLE_INTL_API']:
+ LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
+ USE_LIBS += ['icu']
- if CONFIG['ENABLE_INTL_API']:
- CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ DIST_INSTALL = True
diff --git netwerk/dns/moz.build netwerk/dns/moz.build
index 0b0717a..2e665c9 100644
--- netwerk/dns/moz.build
+++ netwerk/dns/moz.build
-@@ -64,3 +64,6 @@ GENERATED_FILES = [
- LOCAL_INCLUDES += [
+@@ -66,6 +66,9 @@ LOCAL_INCLUDES += [
'/netwerk/base',
]
-+
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19':
+ LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']]
+
diff --git toolkit/library/moz.build toolkit/library/moz.build
index 67f0db9..d42137a 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
-@@ -187,6 +187,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
+@@ -231,6 +231,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
if not CONFIG['MOZ_TREE_PIXMAN']:
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
diff --git a/www/firefox-esr/files/patch-bug981348 b/www/firefox-esr/files/patch-bug981348
index 6eb877b08fa8..e4b7edfd9b03 100644
--- a/www/firefox-esr/files/patch-bug981348
+++ b/www/firefox-esr/files/patch-bug981348
@@ -2,13 +2,13 @@ diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp
index 4b21361..cb3be32 100644
--- dom/system/OSFileConstants.cpp
+++ dom/system/OSFileConstants.cpp
-@@ -596,7 +596,7 @@ static const dom::ConstantSpec gLibcProperties[] =
+@@ -662,7 +662,7 @@
- { "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) },
+ { "OSFILE_SIZEOF_STATVFS", JS::Int32Value(sizeof (struct statvfs)) },
-- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_bsize)) },
-+ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_frsize)) },
- { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", INT_TO_JSVAL(offsetof (struct statvfs, f_bavail)) },
+- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", JS::Int32Value(offsetof (struct statvfs, f_bsize)) },
++ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", JS::Int32Value(offsetof (struct statvfs, f_frsize)) },
+ { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", JS::Int32Value(offsetof (struct statvfs, f_bavail)) },
#endif // defined(XP_UNIX)
diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm
diff --git a/www/firefox-esr/files/patch-bug991253 b/www/firefox-esr/files/patch-bug991253
index 73d71610ab03..a9931030e915 100644
--- a/www/firefox-esr/files/patch-bug991253
+++ b/www/firefox-esr/files/patch-bug991253
@@ -1,6 +1,6 @@
---- extensions/spellcheck/hunspell/src/mozHunspell.cpp~
-+++ extensions/spellcheck/hunspell/src/mozHunspell.cpp
-@@ -400,6 +400,14 @@ mozHunspell::LoadDictionaryList(bool aNo
+--- extensions/spellcheck/hunspell/glue/mozHunspell.cpp~
++++ extensions/spellcheck/hunspell/glue/mozHunspell.cpp
+@@ -392,6 +392,14 @@ mozHunspell::LoadDictionaryList(bool aNo
}
}
diff --git a/www/firefox-esr/files/patch-config-baseconfig.mk b/www/firefox-esr/files/patch-config-baseconfig.mk
index 9db69516cbcc..40a81f4587f4 100644
--- a/www/firefox-esr/files/patch-config-baseconfig.mk
+++ b/www/firefox-esr/files/patch-config-baseconfig.mk
@@ -1,6 +1,9 @@
--- config/baseconfig.mk~
+++ config/baseconfig.mk
-@@ -1,7 +1,7 @@
+@@ -2,10 +2,10 @@
+ # directly in python/mozbuild/mozbuild/base.py for gmake validation.
+ # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
+ # 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)
@@ -9,6 +12,6 @@
+idldir = $(datadir)/idl/%%MOZILLA%%
+installdir = $(libdir)/%%MOZILLA%%
+sdkdir = $(libdir)/%%MOZILLA%%
- ifndef TOP_DIST
- TOP_DIST = dist
- endif
+ ifeq (.,$(DEPTH))
+ DIST = dist
+ else
diff --git a/www/firefox-esr/files/patch-dom-events-MessageEvent.h b/www/firefox-esr/files/patch-dom-events-MessageEvent.h
deleted file mode 100644
index cd9e286d4fc9..000000000000
--- a/www/firefox-esr/files/patch-dom-events-MessageEvent.h
+++ /dev/null
@@ -1,12 +0,0 @@
---- dom/events/MessageEvent.h.orig 2015-12-22 00:49:29.000000000 +0100
-+++ dom/events/MessageEvent.h 2016-01-24 16:05:27.439512000 +0100
-@@ -15,9 +15,6 @@ namespace mozilla {
- namespace dom {
-
- struct MessageEventInit;
--class MessagePort;
--class MessagePortBase;
--class MessagePortList;
- class OwningWindowProxyOrMessagePort;
-
- /**
diff --git a/www/firefox-esr/files/patch-ijg-libjpeg b/www/firefox-esr/files/patch-ijg-libjpeg
index f3378046dd32..074297aaa618 100644
--- a/www/firefox-esr/files/patch-ijg-libjpeg
+++ b/www/firefox-esr/files/patch-ijg-libjpeg
@@ -69,7 +69,7 @@ index 8fa8200..1d2a259 100644
break;
case JCS_CMYK:
case JCS_YCCK:
-@@ -433,6 +452,15 @@ nsJPEGDecoder::WriteInternal(const char*
+@@ -448,6 +467,16 @@ nsJPEGDecoder::WriteInternal(const char*
return; // I/O suspension
}
@@ -82,9 +82,10 @@ index 8fa8200..1d2a259 100644
+ mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
+ }
+#endif
-
++
// If this is a progressive JPEG ...
mState = mInfo.buffered_image ?
+ JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
@@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
uint32_t* imageRow = ((uint32_t*)mImageData) +
(mInfo.output_scanline * mInfo.output_width);
diff --git a/www/firefox-esr/files/patch-memory-jemalloc-Makefile.in b/www/firefox-esr/files/patch-memory-jemalloc-Makefile.in
deleted file mode 100644
index e02b050cbb1d..000000000000
--- a/www/firefox-esr/files/patch-memory-jemalloc-Makefile.in
+++ /dev/null
@@ -1,10 +0,0 @@
---- memory/jemalloc/Makefile.in~
-+++ memory/jemalloc/Makefile.in
-@@ -12,3 +12,7 @@ include $(topsrcdir)/config/rules.mk
- ifdef GNU_CC
- CFLAGS += -std=gnu99
- endif
-+
-+# XXX startup crash workaround for gcc47 on amd64
-+jemalloc.$(OBJ_SUFFIX): OS_CFLAGS := $(filter-out -O3 -Ofast,$(OS_CFLAGS))
-+jemalloc.$(OBJ_SUFFIX): MOZ_OPTIMIZE_FLAGS=
diff --git a/www/firefox-esr/files/patch-modules-libpref-init-all.js b/www/firefox-esr/files/patch-modules-libpref-init-all.js
new file mode 100644
index 000000000000..660b538c62a9
--- /dev/null
+++ b/www/firefox-esr/files/patch-modules-libpref-init-all.js
@@ -0,0 +1,15 @@
+--- modules/libpref/init/all.js.orig 2015-08-06 22:39:34 UTC
++++ modules/libpref/init/all.js
+@@ -4052,7 +4052,12 @@ pref("layers.max-active", -1);
+ pref("layers.tiles.adjust", true);
+
+ // Set the default values, and then override per-platform as needed
++#ifdef MOZ_TREE_CAIRO
+ pref("layers.offmainthreadcomposition.enabled", true);
++#else
++// Disable for system cairo on suspicion of causing random crashes
++pref("layers.offmainthreadcomposition.enabled", false);
++#endif
+ // Compositor target frame rate. NOTE: If vsync is enabled the compositor
+ // frame rate will still be capped.
+ // -1 -> default (match layout.frame_rate or 60 FPS)
diff --git a/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk b/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk
index 75af88fbcb4a..42da812a1df5 100644
--- a/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk
+++ b/www/firefox-esr/files/patch-toolkit_mozapps_installer_packager_mk
@@ -2,7 +2,7 @@ $OpenBSD: patch-toolkit_mozapps_installer_packager_mk,v 1.11 2012/06/11 15:29:56
install headers/idl/sdk libs only if xulrunner
--- toolkit/mozapps/installer/packager.mk.orig Fri Jun 1 14:04:20 2012
+++ toolkit/mozapps/installer/packager.mk Tue Jun 5 07:55:51 2012
-@@ -886,7 +886,7 @@ endif
+@@ -127,7 +127,7 @@ endif
$(NSINSTALL) -D $(DESTDIR)$(bindir)
$(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
diff --git a/www/firefox-esr/files/patch-z-bug517422 b/www/firefox-esr/files/patch-z-bug517422
index 0137e4858cf8..723900a6a894 100644
--- a/www/firefox-esr/files/patch-z-bug517422
+++ b/www/firefox-esr/files/patch-z-bug517422
@@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
index 5383399..0410004 100644
--- config/Makefile.in
+++ config/Makefile.in
-@@ -77,6 +77,14 @@ export:: $(export-preqs)
+@@ -77,6 +77,11 @@ export:: $(export-preqs)
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
-DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
-DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
@@ -12,9 +12,6 @@ index 5383399..0410004 100644
+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \
+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \
+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \
-+ -DMOZ_NATIVE_CELT=$(MOZ_NATIVE_CELT) \
-+ -DMOZ_NATIVE_OPUS=$(MOZ_NATIVE_OPUS) \
-+ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \
+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
$(INSTALL) system_wrappers $(DIST)
@@ -23,7 +20,7 @@ diff --git config/external/moz.build config/external/moz.build
index f67c5c7..eb909ce 100644
--- config/external/moz.build
+++ config/external/moz.build
-@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
+@@ -19,10 +19,16 @@ if CONFIG['MOZ_UPDATER']:
# There's no "native brotli" yet, but probably in the future...
external_dirs += ['modules/brotli']
@@ -31,9 +28,6 @@ index f67c5c7..eb909ce 100644
+if not CONFIG['MOZ_NATIVE_OGG']:
+ external_dirs += ['media/libogg']
+
-+if not CONFIG['MOZ_NATIVE_CELT'] or not CONFIG['MOZ_NATIVE_OPUS']:
-+ external_dirs += ['media/libopus']
-+
+if not CONFIG['MOZ_NATIVE_THEORA']:
+ external_dirs += ['media/libtheora']
+
@@ -45,13 +39,10 @@ index f67c5c7..eb909ce 100644
external_dirs += ['media/libtremor']
if CONFIG['MOZ_WEBM']:
-@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
+@@ -37,15 +46,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
if not CONFIG['MOZ_NATIVE_PNG']:
external_dirs += ['media/libpng']
-+if not CONFIG['MOZ_NATIVE_SPEEX']:
-+ external_dirs += ['media/libspeex_resampler']
-+
+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ external_dirs += ['media/libsoundtouch']
+
@@ -59,9 +50,9 @@ index f67c5c7..eb909ce 100644
'media/kiss_fft',
'media/libcubeb',
- 'media/libogg',
-- 'media/libopus',
+ 'media/libopus',
- 'media/libtheora',
-- 'media/libspeex_resampler',
+ 'media/libspeex_resampler',
'media/libstagefright',
- 'media/libsoundtouch',
]
@@ -71,23 +62,7 @@ diff --git config/system-headers config/system-headers
index bef567c..9807c29 100644
--- config/system-headers
+++ config/system-headers
-@@ -1263,7 +1263,6 @@ X11/Xlocale.h
- X11/Xos.h
- X11/Xutil.h
- zmouse.h
--soundtouch/SoundTouch.h
- #if MOZ_NATIVE_PNG==1
- png.h
- #endif
-@@ -1325,6 +1324,7 @@ vorbis/codec.h
- theora/theoradec.h
- tremor/ivorbiscodec.h
- speex/speex_resampler.h
-+soundtouch/SoundTouch.h
- ogg/ogg.h
- ogg/os_types.h
- nestegg/nestegg.h
-@@ -1365,3 +1365,35 @@ graphite2/Segment.h
+@@ -1364,3 +1363,17 @@ graphite2/Segment.h
harfbuzz/hb-ot.h
harfbuzz/hb.h
#endif
@@ -105,29 +80,11 @@ index bef567c..9807c29 100644
+#if MOZ_NATIVE_TREMOR==1
+tremor/ivorbiscodec.h
+#endif
-+#if MOZ_NATIVE_CELT==1
-+celt.h
-+celt_header.h
-+celt/celt.h
-+celt/celt_header.h
-+#endif
-+#if MOZ_NATIVE_OPUS==1
-+opus.h
-+opus_multistream.h
-+opus/opus.h
-+opus/opus_multistream.h
-+#endif
-+#if MOZ_NATIVE_SPEEX==1
-+speex/speex_resampler.h
-+#endif
-+#if MOZ_NATIVE_SOUNDTOUCH==1
-+soundtouch/SoundTouch.h
-+#endif
diff --git configure.in configure.in
index 87db361..7947626 100644
--- configure.in
+++ configure.in
-@@ -5223,6 +5223,157 @@ if test "${ac_cv_c_attribute_aligned}" !
+@@ -5223,6 +5223,111 @@ if test "${ac_cv_c_attribute_aligned}" !
fi
dnl ========================================================
@@ -182,40 +139,6 @@ index 87db361..7947626 100644
+AC_SUBST(MOZ_NATIVE_TREMOR)
+
+dnl ========================================================
-+dnl Check for libcelt
-+dnl ========================================================
-+
-+MOZ_ARG_WITH_BOOL(system-celt,
-+[ --with-system-celt Use system libcelt (located with pkgconfig)],
-+MOZ_NATIVE_CELT=1,
-+MOZ_NATIVE_CELT=)
-+
-+if test -n "$MOZ_NATIVE_CELT"; then
-+ PKG_CHECK_MODULES(MOZ_CELT, celt)
-+else
-+ MOZ_CELT_CFLAGS='-I$(topsrcdir)/media/libopus'
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_CELT)
-+
-+dnl ========================================================
-+dnl Check for libopus
-+dnl ========================================================
-+
-+MOZ_ARG_WITH_BOOL(system-opus,
-+[ --with-system-opus Use system libopus (located with pkgconfig)],
-+MOZ_NATIVE_OPUS=1,
-+MOZ_NATIVE_OPUS=)
-+
-+if test -n "$MOZ_NATIVE_OPUS"; then
-+ PKG_CHECK_MODULES(MOZ_OPUS, opus >= 1.1)
-+else
-+ MOZ_OPUS_CFLAGS='-I$(topsrcdir)/media/libopus/include'
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_OPUS)
-+
-+dnl ========================================================
+dnl Check for libtheora
+dnl ========================================================
+
@@ -231,31 +154,16 @@ index 87db361..7947626 100644
+AC_SUBST(MOZ_NATIVE_THEORA)
+
+dnl ========================================================
-+dnl Check for libspeex resampler
-+dnl ========================================================
-+
-+MOZ_ARG_WITH_BOOL(system-speex,
-+[ --with-system-speex Use system libspeex (located with pkgconfig)],
-+MOZ_NATIVE_SPEEX=1,
-+MOZ_NATIVE_SPEEX=)
-+
-+if test -n "$MOZ_NATIVE_SPEEX"; then
-+ PKG_CHECK_MODULES(MOZ_SPEEX, speexdsp >= 1.2)
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_SPEEX)
-+
-+dnl ========================================================
-+dnl Check for libsoundtouch
++dnl Check for libSoundTouch
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-soundtouch,
-+[ --with-system-soundtouch Use system libsoundtouch (located with pkgconfig)],
++[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)],
+MOZ_NATIVE_SOUNDTOUCH=1,
+MOZ_NATIVE_SOUNDTOUCH=)
+
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
-+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.8.0)
++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0)
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
@@ -279,30 +187,86 @@ index 87db361..7947626 100644
+ fi
+fi
+
++if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
++ AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH)
++fi
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
+
+dnl ========================================================
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
+diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp
+index 2127256..1ec09fe 100644
+--- dom/media/AudioStream.cpp
++++ dom/media/AudioStream.cpp
+@@ -129,7 +129,9 @@ AudioStream::AudioStream()
+ , mOutChannels(0)
+ , mWritten(0)
+ , mAudioClock(this)
++#ifndef MOZ_NATIVE_SOUNDTOUCH
+ , mTimeStretcher(nullptr)
++#endif
+ , mDumpFile(nullptr)
+ , mBytesPerFrame(0)
+ , mState(INITIALIZED)
+@@ -152,9 +154,11 @@ AudioStream::~AudioStream()
+ if (mDumpFile) {
+ fclose(mDumpFile);
+ }
++#ifndef MOZ_NATIVE_SOUNDTOUCH
+ if (mTimeStretcher) {
+ soundtouch::destroySoundTouchObj(mTimeStretcher);
+ }
++#endif
+ }
+
+ size_t
+@@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked()
+ {
+ mMonitor.AssertCurrentThreadOwns();
+ if (!mTimeStretcher) {
++#ifdef MOZ_NATIVE_SOUNDTOUCH
++ mTimeStretcher = new soundtouch::SoundTouch();
++#else
+ mTimeStretcher = soundtouch::createSoundTouchObj();
++#endif
+ mTimeStretcher->setSampleRate(mInRate);
+ mTimeStretcher->setChannels(mOutChannels);
+ mTimeStretcher->setPitch(1.0);
diff --git dom/media/AudioStream.h dom/media/AudioStream.h
-index 085676d..00c54fb 100644
+index a552e3e..02b80b1 100644
--- dom/media/AudioStream.h
+++ dom/media/AudioStream.h
-@@ -17,7 +17,7 @@
+@@ -15,7 +15,11 @@
+ #include "mozilla/RefPtr.h"
+ #include "mozilla/UniquePtr.h"
#include "CubebUtils.h"
-
- namespace soundtouch {
--class SoundTouch;
-+class MOZ_IMPORT_API SoundTouch;
- }
++#ifdef MOZ_NATIVE_SOUNDTOUCH
++#include "soundtouch/SoundTouch.h"
++#else
+ #include "soundtouch/SoundTouchFactory.h"
++#endif
namespace mozilla {
+
+@@ -277,7 +277,11 @@ private:
+ // Number of frames written to the buffers.
+ int64_t mWritten;
+ AudioClock mAudioClock;
++#ifdef MOZ_NATIVE_SOUNDTOUCH
++ nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher;
++#else
+ soundtouch::SoundTouch* mTimeStretcher;
++#endif
+
+ // Stream start time for stream open delay telemetry.
+ TimeStamp mStartTime;
diff --git dom/media/moz.build dom/media/moz.build
index 7526cff..e0a0ca0 100644
--- dom/media/moz.build
+++ dom/media/moz.build
-@@ -212,3 +212,24 @@ if CONFIG['ANDROID_VERSION'] > '15':
+@@ -212,3 +212,18 @@ if CONFIG['ANDROID_VERSION'] > '15':
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
@@ -319,28 +283,8 @@ index 7526cff..e0a0ca0 100644
+if CONFIG['MOZ_NATIVE_TREMOR']:
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
+
-+if CONFIG['MOZ_NATIVE_OPUS']:
-+ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS']
-+
-+if CONFIG['MOZ_NATIVE_SPEEX']:
-+ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS']
-+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
-diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build
-index 944744d..9a7c8c0 100644
---- media/libcubeb/src/moz.build
-+++ media/libcubeb/src/moz.build
-@@ -65,6 +65,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
-
- FINAL_LIBRARY = 'gkmedias'
-
-+if CONFIG['MOZ_NATIVE_SPEEX']:
-+ SOURCES['cubeb_resampler.cpp'].flags += CONFIG['MOZ_SPEEX_CFLAGS']
-+
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
- CFLAGS += [
- '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA
index 0833e4d..7ece97b 100644
--- media/libogg/README_MOZILLA
@@ -352,17 +296,6 @@ index 0833e4d..7ece97b 100644
+
+The in-tree copy may be omitted during build by --with-system-ogg.
+Keep version in configure.in in sync on updates.
-diff --git media/libopus/README_MOZILLA media/libopus/README_MOZILLA
-index 2d85c9f..d3fb9f8 100644
---- media/libopus/README_MOZILLA
-+++ media/libopus/README_MOZILLA
-@@ -9,3 +9,6 @@ files after the copy step.
- The upstream repository is https://git.xiph.org/opus.git
-
- The git tag/revision used was v1.1.
-+
-+The in-tree copy may be omitted during build by --with-system-opus.
-+So, keep its pkg-config version check within configure.in in sync on updates.
diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA
index bfd4b1a..15b158d 100644
--- media/libsoundtouch/README_MOZILLA
@@ -373,17 +306,20 @@ index bfd4b1a..15b158d 100644
+The in-tree copy may be omitted during build by --with-system-soundtouch.
+Keep version in configure.in in sync on updates.
-diff --git media/libspeex_resampler/README_MOZILLA media/libspeex_resampler/README_MOZILLA
-index 7f6b1bb..e830300 100644
---- media/libspeex_resampler/README_MOZILLA
-+++ media/libspeex_resampler/README_MOZILLA
-@@ -3,3 +3,6 @@ This source is from the Speex DSP library
+diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h
+index 0af2fe6..d80c145 100644
+--- media/libsoundtouch/src/soundtouch_perms.h
++++ media/libsoundtouch/src/soundtouch_perms.h
+@@ -12,7 +12,9 @@
- It consists in the audio resampling code (resampler.c) and its header files
- dependancies, imported into the tree using the update.sh script.
-+
-+The in-tree copy may be omitted during build by --with-system-speex.
-+Keep version in configure.in in sync on updates.
+ #pragma GCC visibility push(default)
+ #include "SoundTouch.h"
++#ifndef MOZ_NATIVE_SOUNDTOUCH
+ #include "SoundTouchFactory.h"
++#endif
+ #pragma GCC visibility pop
+
+ #endif // MOZILLA_SOUNDTOUCH_PERMS_H
diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA
index d48dbfa..f08a2ed 100644
--- media/libtheora/README_MOZILLA
@@ -399,12 +335,16 @@ diff --git media/libtheora/moz.build media/libtheora/moz.build
index 14265b1..3069e99 100644
--- media/libtheora/moz.build
+++ media/libtheora/moz.build
-@@ -93,3 +93,5 @@ if CONFIG['GNU_AS']:
- if CONFIG['OS_TARGET'] == 'Android':
- DEFINES['__linux__'] = True
+@@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
+ # The encoder is currently not included.
+ DEFINES['THEORA_DISABLE_ENCODE'] = True
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
++
+ # Suppress warnings in third-party code.
+ if CONFIG['GNU_CC']:
+ CFLAGS += ['-Wno-type-limits']
diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA
index ee67b53..3f34a09 100644
--- media/libtremor/README_MOZILLA
@@ -448,80 +388,11 @@ index 919b99e..cc776f7 100644
+
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
-diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
-index bbc971c..6ed7e41 100644
---- media/webrtc/signaling/test/moz.build
-+++ media/webrtc/signaling/test/moz.build
-@@ -127,6 +127,9 @@ if CONFIG['MOZ_ALSA']:
- if CONFIG['MOZ_NATIVE_JPEG']:
- OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
-
-+if CONFIG['MOZ_NATIVE_OPUS']:
-+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
-+
- if CONFIG['MOZ_NATIVE_LIBVPX']:
- OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS']
-
-diff --git media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-index 00e77e7..55f48ab 100644
---- media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-+++ media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-@@ -17,18 +17,11 @@
- 'conditions': [
- ['build_with_mozilla==1', {
- # Mozilla provides its own build of the opus library.
-- 'include_dirs': [
-- '/media/libopus/include',
-- '/media/libopus/src',
-- '/media/libopus/celt',
-+ 'cflags_mozilla': [
-+ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
-+ '$(MOZ_OPUS_CFLAGS)',
-+ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
- ],
-- 'direct_dependent_settings': {
-- 'include_dirs': [
-- '/media/libopus/include',
-- '/media/libopus/src',
-- '/media/libopus/celt',
-- ],
-- },
- }, {
- 'dependencies': [
- '<(DEPTH)/third_party/opus/opus.gyp:opus'
-diff --git media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
-index 00e77e7..55f48ab 100644
---- media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
-+++ media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
-@@ -84,19 +84,11 @@
- ],
- }],
- ['build_with_mozilla==1', {
-- 'include_dirs': [
-- # Need Opus header files for the audio classifier.
-- '<(DEPTH)/../../../media/opus/celt',
--# '<(DEPTH)/third_party/opus/src/src',
-+ 'cflags_mozilla': [
-+ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
-+ '$(MOZ_OPUS_CFLAGS)',
-+ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
- ],
-- 'direct_dependent_settings': {
-- 'include_dirs': [
-- '../../../../../../media/opus/celt',
-- # Need Opus header files for the audio classifier.
-- '<(DEPTH)/../../../media/opus/celt',
--# '<(DEPTH)/third_party/opus/src/src',
-- ],
-- },
- }],
- ],
- 'sources': [
diff --git toolkit/library/moz.build toolkit/library/moz.build
index d42137a..695e75a8 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
-@@ -178,6 +178,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
+@@ -178,6 +178,21 @@ if CONFIG['MOZ_NATIVE_PNG']:
if CONFIG['MOZ_NATIVE_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
@@ -537,15 +408,6 @@ index d42137a..695e75a8 100644
+if CONFIG['MOZ_NATIVE_TREMOR']:
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
+
-+if CONFIG['MOZ_NATIVE_CELT']:
-+ OS_LIBS += CONFIG['MOZ_CELT_LIBS']
-+
-+if CONFIG['MOZ_NATIVE_OPUS']:
-+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
-+
-+if CONFIG['MOZ_NATIVE_SPEEX']:
-+ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS']
-+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
+
diff --git a/www/firefox-i18n/Makefile b/www/firefox-i18n/Makefile
index ebd72f6a7a0f..78e8647a0c56 100644
--- a/www/firefox-i18n/Makefile
+++ b/www/firefox-i18n/Makefile
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= firefox-i18n
-PORTVERSION= 45.0.2
+PORTVERSION= 46.0
CATEGORIES= www
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \
- MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build2/linux-i686/xpi
+ MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build4/linux-i686/xpi
PKGNAMEPREFIX=
DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/}
DIST_SUBDIR= xpi/${DISTNAME}
@@ -15,7 +15,7 @@ COMMENT= Localized interface for Firefox
EXTRACT_DEPENDS= zip:archivers/zip
-USES= zip:infozip gecko:firefox,45,build
+USES= zip:infozip gecko:firefox,46,build
USE_XPI= firefox linux-firefox
NO_ARCH= yes
diff --git a/www/firefox-i18n/Makefile.lang b/www/firefox-i18n/Makefile.lang
index d2b7b0e0a4b7..940cb85a511b 100644
--- a/www/firefox-i18n/Makefile.lang
+++ b/www/firefox-i18n/Makefile.lang
@@ -2,8 +2,8 @@
# $FreeBSD$
FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cs \
- cy da de dsb el en-GB en-US en-ZA eo es-AR es-CL \
- es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl \
+ cy da de dsb el en-GB en-ZA eo es-AR es-CL \
+ es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \
gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \
kn ko lij lt lv mai mk ml mr ms nb-NO nl nn-NO \
or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq \
@@ -75,9 +75,6 @@ FIREFOX_I18N+= el
.if ${PORT_OPTIONS:MLANG_GB}
FIREFOX_I18N+= en-GB
.endif
-.if ${PORT_OPTIONS:MLANG_US}
-FIREFOX_I18N+= en-US
-.endif
.if ${PORT_OPTIONS:MLANG_ZA}
FIREFOX_I18N+= en-ZA
.endif
@@ -126,6 +123,9 @@ FIREFOX_I18N+= gd
.if ${PORT_OPTIONS:MLANG_GL}
FIREFOX_I18N+= gl
.endif
+.if ${PORT_OPTIONS:MLANG_GN}
+FIREFOX_I18N+= gn
+.endif
.if ${PORT_OPTIONS:MLANG_GU}
FIREFOX_I18N+= gu-IN
.endif
diff --git a/www/firefox-i18n/Makefile.option b/www/firefox-i18n/Makefile.option
index 147884e23e20..858d542e7d6e 100644
--- a/www/firefox-i18n/Makefile.option
+++ b/www/firefox-i18n/Makefile.option
@@ -23,7 +23,6 @@ OPTIONS_DEFINE= LANG_ACH \
LANG_DSB \
LANG_EL \
LANG_GB \
- LANG_US \
LANG_ZA \
LANG_EO \
LANG_SA \
@@ -40,6 +39,7 @@ OPTIONS_DEFINE= LANG_ACH \
LANG_GA \
LANG_GD \
LANG_GL \
+ LANG_GN \
LANG_GU \
LANG_HE \
LANG_HI \
@@ -103,6 +103,7 @@ LANG_AZ_DESC?= Azerbaijani language support
LANG_CSB_DESC?= Kashubian language support
LANG_DSB_DESC?= Lower Sorbian language support
LANG_FF_DESC?= Fulah language support
+LANG_GN_DESC?= Guarani (Paraguay) language support
LANG_HSB_DESC?= Upper Sorbian language support
LANG_KM_DESC?= Khmer language support
LANG_LIJ_DESC?= Ligurian (Genoa) language support
diff --git a/www/firefox-i18n/distinfo b/www/firefox-i18n/distinfo
index 16ad25684291..be3065055e52 100644
--- a/www/firefox-i18n/distinfo
+++ b/www/firefox-i18n/distinfo
@@ -1,178 +1,178 @@
-SHA256 (xpi/firefox-i18n-45.0.2/ach.xpi) = efb37a5be7251b3292543c1bc9e9dda64cda3340fc12b0b797e9564164e2d00e
-SIZE (xpi/firefox-i18n-45.0.2/ach.xpi) = 426524
-SHA256 (xpi/firefox-i18n-45.0.2/af.xpi) = 9152a817e5e732d3220714182dd6ebd2f40f953902b40e584e012d9424ade3bd
-SIZE (xpi/firefox-i18n-45.0.2/af.xpi) = 439349
-SHA256 (xpi/firefox-i18n-45.0.2/an.xpi) = ffc84b75ed2b0026582159dddccfa50d037a6f6c55f149a11474ad9262761641
-SIZE (xpi/firefox-i18n-45.0.2/an.xpi) = 449031
-SHA256 (xpi/firefox-i18n-45.0.2/ar.xpi) = ed7539ef68238b42346c6c7e4dec33eb775016a701acb2b5f013c8416bef8a2d
-SIZE (xpi/firefox-i18n-45.0.2/ar.xpi) = 474955
-SHA256 (xpi/firefox-i18n-45.0.2/as.xpi) = 4c3bb7346c57bbd0cb4fe9bb9603b0be8c413c86e93cfcafc1fd067b08e5e9f0
-SIZE (xpi/firefox-i18n-45.0.2/as.xpi) = 483090
-SHA256 (xpi/firefox-i18n-45.0.2/ast.xpi) = 77690c4d73497a39b81d5eeec52a975e2a110fc9993e548d1d71f45735e6c6cf
-SIZE (xpi/firefox-i18n-45.0.2/ast.xpi) = 419241
-SHA256 (xpi/firefox-i18n-45.0.2/az.xpi) = cecb1fd993ebce9baaca3ea0304f693694276c76eaabfc811b253008519a6678
-SIZE (xpi/firefox-i18n-45.0.2/az.xpi) = 464013
-SHA256 (xpi/firefox-i18n-45.0.2/be.xpi) = 7981ad4c9a16c0917c9d2c5578afefd45060b57b605c1a23e65463ff254048f0
-SIZE (xpi/firefox-i18n-45.0.2/be.xpi) = 442613
-SHA256 (xpi/firefox-i18n-45.0.2/bg.xpi) = a5d1086caa6e5de1dd7dac11ccdedf230505dc7a523c13e56add2d18ff464d5a
-SIZE (xpi/firefox-i18n-45.0.2/bg.xpi) = 460804
-SHA256 (xpi/firefox-i18n-45.0.2/bn-BD.xpi) = 0dbc7524b1f5f8acf43946cefbc57af49f80dada7bf907784635e976ce096397
-SIZE (xpi/firefox-i18n-45.0.2/bn-BD.xpi) = 515636
-SHA256 (xpi/firefox-i18n-45.0.2/bn-IN.xpi) = b38c4c20881a6cb02025d5bf2da93ea1fc2aad27c0894fe1b7668b9953f7ea52
-SIZE (xpi/firefox-i18n-45.0.2/bn-IN.xpi) = 494070
-SHA256 (xpi/firefox-i18n-45.0.2/br.xpi) = 97bd48bf64f4f9c0dd5357e1280b53e21bf3c200e02fd95cc592e3216f269e1e
-SIZE (xpi/firefox-i18n-45.0.2/br.xpi) = 436385
-SHA256 (xpi/firefox-i18n-45.0.2/bs.xpi) = 79e1251e8c3f8be8159ca0cb8272c57cdd8d848b6a663b467e703e5e7dcefff4
-SIZE (xpi/firefox-i18n-45.0.2/bs.xpi) = 442993
-SHA256 (xpi/firefox-i18n-45.0.2/ca.xpi) = 4d37bc4b74a9a5b6e5afd51af442b3768f32cd0227caddaf597ca24290ba6ef2
-SIZE (xpi/firefox-i18n-45.0.2/ca.xpi) = 436828
-SHA256 (xpi/firefox-i18n-45.0.2/cs.xpi) = 67a2af1413284890fe72feb2c26aa901f626346299611e8c9057ed64a84bbe0c
-SIZE (xpi/firefox-i18n-45.0.2/cs.xpi) = 443477
-SHA256 (xpi/firefox-i18n-45.0.2/cy.xpi) = 1633f9583f3f73778e4d45a580ffe744919674e2a7c06b3f46fe8b9ce08746ab
-SIZE (xpi/firefox-i18n-45.0.2/cy.xpi) = 438903
-SHA256 (xpi/firefox-i18n-45.0.2/da.xpi) = 2e873766c7f44e061b9b9d4ec77348ce72d023ae01315d831affcf789bf3bf21
-SIZE (xpi/firefox-i18n-45.0.2/da.xpi) = 430072
-SHA256 (xpi/firefox-i18n-45.0.2/de.xpi) = 2e01d1e5adb306a81f501c63072e6c6b7ee9298461c2e6773b972a76f0f0f14a
-SIZE (xpi/firefox-i18n-45.0.2/de.xpi) = 445476
-SHA256 (xpi/firefox-i18n-45.0.2/dsb.xpi) = e6024b2a69953630c65cf667d522fcabaf6a822e01465a546baee21708125dee
-SIZE (xpi/firefox-i18n-45.0.2/dsb.xpi) = 463789
-SHA256 (xpi/firefox-i18n-45.0.2/el.xpi) = 119aab8443f13fe0198ca4e16a4d837d9e6a04b0de1777a58b4f7152559d9e8f
-SIZE (xpi/firefox-i18n-45.0.2/el.xpi) = 470861
-SHA256 (xpi/firefox-i18n-45.0.2/en-GB.xpi) = e67f715e3832ae1bace9775b06a02dedddf439a0ac842672a298106d226d5de7
-SIZE (xpi/firefox-i18n-45.0.2/en-GB.xpi) = 423864
-SHA256 (xpi/firefox-i18n-45.0.2/en-US.xpi) = 196e8c5c27db003c2e669dd0610bd30f48abd9f3fb0bd0971c49bcfc41b73697
-SIZE (xpi/firefox-i18n-45.0.2/en-US.xpi) = 425463
-SHA256 (xpi/firefox-i18n-45.0.2/en-ZA.xpi) = 106901b017b74c7c3075a903f8f1b70df4f683ba88826bde47e1f804dc3557a6
-SIZE (xpi/firefox-i18n-45.0.2/en-ZA.xpi) = 420770
-SHA256 (xpi/firefox-i18n-45.0.2/eo.xpi) = bef8d9a8682bb1af91d77d52e55f2f28c1631e375579a1a2641ff36ffa6162cb
-SIZE (xpi/firefox-i18n-45.0.2/eo.xpi) = 440954
-SHA256 (xpi/firefox-i18n-45.0.2/es-AR.xpi) = 8b4f385ac3fa7da9bbbba1d96c2b06418b9d3731e3779881a7a8ea3811ffd8bf
-SIZE (xpi/firefox-i18n-45.0.2/es-AR.xpi) = 441476
-SHA256 (xpi/firefox-i18n-45.0.2/es-CL.xpi) = e7c54a732e655b9987554de8dee62c86e9dd94a0c2bb592de2100f2accf8a7e7
-SIZE (xpi/firefox-i18n-45.0.2/es-CL.xpi) = 368758
-SHA256 (xpi/firefox-i18n-45.0.2/es-ES.xpi) = ecb5beaf117c56cad545c5cf35cf8d7087b54e0d3242191370b805256a781e06
-SIZE (xpi/firefox-i18n-45.0.2/es-ES.xpi) = 353710
-SHA256 (xpi/firefox-i18n-45.0.2/es-MX.xpi) = 810e0f057ca757566ef66a1c93b4b5b1c1b6a500f3ae09df9869df4c3f5fc90c
-SIZE (xpi/firefox-i18n-45.0.2/es-MX.xpi) = 449390
-SHA256 (xpi/firefox-i18n-45.0.2/et.xpi) = a7fce5130839cd338c789b7d0c2f15f27e00039e232bd284a90dbf126911ab8f
-SIZE (xpi/firefox-i18n-45.0.2/et.xpi) = 433347
-SHA256 (xpi/firefox-i18n-45.0.2/eu.xpi) = 67ee8f3ee30cf18529114dc2cdda62688a40d0ffeb3a380cb36523f371b5cc35
-SIZE (xpi/firefox-i18n-45.0.2/eu.xpi) = 441351
-SHA256 (xpi/firefox-i18n-45.0.2/fa.xpi) = 954568597d533dc4a2ee0f5694d6bb0f8ba9c975188f9be59fa9fa47bc46d3c7
-SIZE (xpi/firefox-i18n-45.0.2/fa.xpi) = 491936
-SHA256 (xpi/firefox-i18n-45.0.2/ff.xpi) = 7fe6634c9543efbd285a2ad531a4b7941e159981c70ae1bbb7198f5e7b27cb4f
-SIZE (xpi/firefox-i18n-45.0.2/ff.xpi) = 441495
-SHA256 (xpi/firefox-i18n-45.0.2/fi.xpi) = add3e3b364cd347c9bd3c15310fe499fc8991584d3c506eaffbb46d702e3b59e
-SIZE (xpi/firefox-i18n-45.0.2/fi.xpi) = 438341
-SHA256 (xpi/firefox-i18n-45.0.2/fr.xpi) = 17b7e81d30be1cb8b294e4573f051bf3e64117f3fd1fe0e18a7f63f23a08ed77
-SIZE (xpi/firefox-i18n-45.0.2/fr.xpi) = 450032
-SHA256 (xpi/firefox-i18n-45.0.2/fy-NL.xpi) = 03a845d7abbbc259fee731ff0514c6314eca9a4668ebf222f41c4330d5647558
-SIZE (xpi/firefox-i18n-45.0.2/fy-NL.xpi) = 447771
-SHA256 (xpi/firefox-i18n-45.0.2/ga-IE.xpi) = e44dacbe292e6745673bfa017548d952acc03ccdaf61e7b0478dd5a7d2cab5f1
-SIZE (xpi/firefox-i18n-45.0.2/ga-IE.xpi) = 460049
-SHA256 (xpi/firefox-i18n-45.0.2/gd.xpi) = f74d40aebab96611837de2491f93d88a02ba7947680931b11c4ab89728a277e1
-SIZE (xpi/firefox-i18n-45.0.2/gd.xpi) = 449705
-SHA256 (xpi/firefox-i18n-45.0.2/gl.xpi) = e4ad2852109dc5e058d6f2c80df160f83de83e38c6284d7822426dade7051b7e
-SIZE (xpi/firefox-i18n-45.0.2/gl.xpi) = 434798
-SHA256 (xpi/firefox-i18n-45.0.2/gu-IN.xpi) = ef5bf6eaa89dea4850fafc47ff75475da63751ecf2438c73242bcd208865c807
-SIZE (xpi/firefox-i18n-45.0.2/gu-IN.xpi) = 472561
-SHA256 (xpi/firefox-i18n-45.0.2/he.xpi) = c976ed77c2af58cca303059a1d9ab2bb6fd020c2206ec33379a55f889686f3bb
-SIZE (xpi/firefox-i18n-45.0.2/he.xpi) = 454781
-SHA256 (xpi/firefox-i18n-45.0.2/hi-IN.xpi) = f11714fc7bf089f05bb228b12394e5134713083beee40d0279f18da231e57922
-SIZE (xpi/firefox-i18n-45.0.2/hi-IN.xpi) = 486984
-SHA256 (xpi/firefox-i18n-45.0.2/hr.xpi) = c98d40f99a67de7af54f8ee06a973eda5a90933a46ed464d5140e3e9cd8a45e2
-SIZE (xpi/firefox-i18n-45.0.2/hr.xpi) = 449064
-SHA256 (xpi/firefox-i18n-45.0.2/hsb.xpi) = 4463ae66e009fcf3bc85248fe742669801e55ecdb93d01c9ec84d32bff70873b
-SIZE (xpi/firefox-i18n-45.0.2/hsb.xpi) = 461452
-SHA256 (xpi/firefox-i18n-45.0.2/hu.xpi) = c6c07114077ee31c219f4a35aa826fc241f7771df685f3eb20be694ebd0b33ff
-SIZE (xpi/firefox-i18n-45.0.2/hu.xpi) = 449775
-SHA256 (xpi/firefox-i18n-45.0.2/hy-AM.xpi) = f844f411bb6484d14e46c9a1ea069bb8eecb635a82192d0684fcde5fac50f7f2
-SIZE (xpi/firefox-i18n-45.0.2/hy-AM.xpi) = 500035
-SHA256 (xpi/firefox-i18n-45.0.2/id.xpi) = 64346c40e7da7920cbb2d4f1dd05d65600f49c925152fc1388ae700463d16097
-SIZE (xpi/firefox-i18n-45.0.2/id.xpi) = 427171
-SHA256 (xpi/firefox-i18n-45.0.2/is.xpi) = bda2e1f8e1fc1fd3463259d1130da0e7f8a022eb8cdc4ca1a35b9c504cfdc49e
-SIZE (xpi/firefox-i18n-45.0.2/is.xpi) = 443207
-SHA256 (xpi/firefox-i18n-45.0.2/it.xpi) = 9d293f12007a834ad2bda436437b7de1939776cb516b7306c91078caeb70b1f5
-SIZE (xpi/firefox-i18n-45.0.2/it.xpi) = 343719
-SHA256 (xpi/firefox-i18n-45.0.2/ja.xpi) = aec53e67edd8bee502e6c9cc455c2bafaefb36adcafec3f60a5e42390bf62b3f
-SIZE (xpi/firefox-i18n-45.0.2/ja.xpi) = 486325
-SHA256 (xpi/firefox-i18n-45.0.2/kk.xpi) = b13120b728c5c0313f05b5aa803af1b3a514f1d861052ecdcc379d2a0d4ada00
-SIZE (xpi/firefox-i18n-45.0.2/kk.xpi) = 498890
-SHA256 (xpi/firefox-i18n-45.0.2/km.xpi) = 82f60648ef2ceb4353d0a6c6d763678e208746ef38d940736eafecf5c76cba6d
-SIZE (xpi/firefox-i18n-45.0.2/km.xpi) = 504297
-SHA256 (xpi/firefox-i18n-45.0.2/kn.xpi) = ed0af4fc19739d9996d922e5ed7ba3111f2e401f2d2904e1a656db08c754c6be
-SIZE (xpi/firefox-i18n-45.0.2/kn.xpi) = 495876
-SHA256 (xpi/firefox-i18n-45.0.2/ko.xpi) = 0026d258d16e43fd62c898c2f47143802c34f4b38098ee5342b3b46c184ddd36
-SIZE (xpi/firefox-i18n-45.0.2/ko.xpi) = 465284
-SHA256 (xpi/firefox-i18n-45.0.2/lij.xpi) = b467074ab52736f0ea9abf4b56a53f260ca7d7cff43287b4c181c71c2d1632b8
-SIZE (xpi/firefox-i18n-45.0.2/lij.xpi) = 381381
-SHA256 (xpi/firefox-i18n-45.0.2/lt.xpi) = 5b93434cc217cf14d896b3bbbebf1f35e3e0e9b13cae6ca33ec20598de782a7f
-SIZE (xpi/firefox-i18n-45.0.2/lt.xpi) = 454673
-SHA256 (xpi/firefox-i18n-45.0.2/lv.xpi) = f27b8524f4f2163794641761016d06d7b22fa44299a951b706a40282a71a8f56
-SIZE (xpi/firefox-i18n-45.0.2/lv.xpi) = 445715
-SHA256 (xpi/firefox-i18n-45.0.2/mai.xpi) = bf8738eb52f221c07b1fbb8483868d13d0c6cd9a5ef86652ceab2794b94d42f4
-SIZE (xpi/firefox-i18n-45.0.2/mai.xpi) = 492642
-SHA256 (xpi/firefox-i18n-45.0.2/mk.xpi) = 05ad074e9952b41a1a78c121999c4726b82e927faa1447247adff4f7df72763d
-SIZE (xpi/firefox-i18n-45.0.2/mk.xpi) = 476388
-SHA256 (xpi/firefox-i18n-45.0.2/ml.xpi) = 606842034242381b4d48c4756a18901653036556f5453c024449ece23fc70191
-SIZE (xpi/firefox-i18n-45.0.2/ml.xpi) = 498675
-SHA256 (xpi/firefox-i18n-45.0.2/mr.xpi) = d8a8c287e739fdcd485ae0f6074238d1903d663e87fa58cb0443ee4fc3df6beb
-SIZE (xpi/firefox-i18n-45.0.2/mr.xpi) = 503695
-SHA256 (xpi/firefox-i18n-45.0.2/ms.xpi) = 061e0e74a01276c61e99fa9de303c7f575d9eae2f8df07569b98744275cf6a1a
-SIZE (xpi/firefox-i18n-45.0.2/ms.xpi) = 440060
-SHA256 (xpi/firefox-i18n-45.0.2/nb-NO.xpi) = 9ec27cfc18e82592c08cb0b9b85431a0f3d30b46f9471e29d83db42e0910a39d
-SIZE (xpi/firefox-i18n-45.0.2/nb-NO.xpi) = 435465
-SHA256 (xpi/firefox-i18n-45.0.2/nl.xpi) = 122d2011aaec9e9df1dbdad00b95a5415e6fc7ef9a8cf683e8a95f44af6f57dc
-SIZE (xpi/firefox-i18n-45.0.2/nl.xpi) = 435196
-SHA256 (xpi/firefox-i18n-45.0.2/nn-NO.xpi) = 2738c50db88f6cd929a842db5ab7acd26493d2ec5a6c0e8f970daed8f5535841
-SIZE (xpi/firefox-i18n-45.0.2/nn-NO.xpi) = 432927
-SHA256 (xpi/firefox-i18n-45.0.2/or.xpi) = 221b62c85334e171d06ed6518e48d837034d4f38b5a9aff0d184b0adc853aabc
-SIZE (xpi/firefox-i18n-45.0.2/or.xpi) = 495918
-SHA256 (xpi/firefox-i18n-45.0.2/pa-IN.xpi) = 75767d1771d0831b2714ef8e546e9152e64a1909bef9128e4227337f48af93a1
-SIZE (xpi/firefox-i18n-45.0.2/pa-IN.xpi) = 489544
-SHA256 (xpi/firefox-i18n-45.0.2/pl.xpi) = b97ea94db39bd5cd341c72a11228bc466bbb3f27f09eff61b2a78199a42edbd4
-SIZE (xpi/firefox-i18n-45.0.2/pl.xpi) = 383923
-SHA256 (xpi/firefox-i18n-45.0.2/pt-BR.xpi) = 36b8ab80ef87bcc94f02c58d3dcc9a715e5036a638ec36f1feb5340305a36987
-SIZE (xpi/firefox-i18n-45.0.2/pt-BR.xpi) = 450984
-SHA256 (xpi/firefox-i18n-45.0.2/pt-PT.xpi) = 107729338bab8d75c050e1573fafe30b98fd2500eb9377433270682c021b2ddf
-SIZE (xpi/firefox-i18n-45.0.2/pt-PT.xpi) = 437017
-SHA256 (xpi/firefox-i18n-45.0.2/rm.xpi) = 760a1b6be0a8da0b6d6e4310b6d650ece63ecd38798333e878748ce2ec089e21
-SIZE (xpi/firefox-i18n-45.0.2/rm.xpi) = 437713
-SHA256 (xpi/firefox-i18n-45.0.2/ro.xpi) = 64adcb3bd5d8e35a5aa38c55a5b09bf746c8e6f645f64e27c75e4dfb79436f14
-SIZE (xpi/firefox-i18n-45.0.2/ro.xpi) = 444057
-SHA256 (xpi/firefox-i18n-45.0.2/ru.xpi) = 2f64f70a5dbb4a4f27e7af5ca55e5b58071ae5df5b5b6116dd6b3d663b313f84
-SIZE (xpi/firefox-i18n-45.0.2/ru.xpi) = 392732
-SHA256 (xpi/firefox-i18n-45.0.2/si.xpi) = 987ece4aeb65a0924119fc4e9314f7f97903029e1f3dd7267354617687c117a7
-SIZE (xpi/firefox-i18n-45.0.2/si.xpi) = 482243
-SHA256 (xpi/firefox-i18n-45.0.2/sk.xpi) = 27f881cdfe596eabd20c1b200981474559e7d7a441be7bbcf8cf35ec9a7ea8ab
-SIZE (xpi/firefox-i18n-45.0.2/sk.xpi) = 453601
-SHA256 (xpi/firefox-i18n-45.0.2/sl.xpi) = 1dc535f6d3fcabced5798b3369d2cdb252ada5938b920ed8b459ecbd06752248
-SIZE (xpi/firefox-i18n-45.0.2/sl.xpi) = 444958
-SHA256 (xpi/firefox-i18n-45.0.2/son.xpi) = 8b56b9d5097ac46627af733c19c1fae246c6fa5dd12c7d134b63bf1abe7154a7
-SIZE (xpi/firefox-i18n-45.0.2/son.xpi) = 433509
-SHA256 (xpi/firefox-i18n-45.0.2/sq.xpi) = af18a66dfc22cdef467dd1ff7a173b6dc6b324ff674f8737d8ce337164053370
-SIZE (xpi/firefox-i18n-45.0.2/sq.xpi) = 452182
-SHA256 (xpi/firefox-i18n-45.0.2/sr.xpi) = 58c887131041da4b9b41c4b5d24f19ab2561d1cf9b7c6a5d3fc9983572c61aad
-SIZE (xpi/firefox-i18n-45.0.2/sr.xpi) = 464473
-SHA256 (xpi/firefox-i18n-45.0.2/sv-SE.xpi) = 7ddf8c018d1de4edd86ecf284e275b3f6b3f3b21401cd606130a2198c91ae420
-SIZE (xpi/firefox-i18n-45.0.2/sv-SE.xpi) = 444206
-SHA256 (xpi/firefox-i18n-45.0.2/ta.xpi) = b637bd823ac8d9beefbeec7521d217c83c24a3838339ef6fb584faf03e95f59c
-SIZE (xpi/firefox-i18n-45.0.2/ta.xpi) = 483113
-SHA256 (xpi/firefox-i18n-45.0.2/te.xpi) = 76fbbd6588023fa3cc15a4b6af30daae52e276a8e997c076cf22490d0809645d
-SIZE (xpi/firefox-i18n-45.0.2/te.xpi) = 492463
-SHA256 (xpi/firefox-i18n-45.0.2/th.xpi) = d507c23d977630693b4817fdbdf9e481e5fe7abef828775261dbe067a9e4e908
-SIZE (xpi/firefox-i18n-45.0.2/th.xpi) = 477647
-SHA256 (xpi/firefox-i18n-45.0.2/tr.xpi) = 97fdc43c8d75a9cdc0e1be97e918f2cfc9b5280159e7de657b85e9f38f7cfd4a
-SIZE (xpi/firefox-i18n-45.0.2/tr.xpi) = 451162
-SHA256 (xpi/firefox-i18n-45.0.2/uk.xpi) = e875fbd2ae06820601adb613ee7ecbdf4c8fc17f3f12cb1d3910b6b5f9b34a24
-SIZE (xpi/firefox-i18n-45.0.2/uk.xpi) = 494776
-SHA256 (xpi/firefox-i18n-45.0.2/uz.xpi) = 9c8afbb66756da8aa7b03524b07018654e7922dea00d6a1e2816c0b1ed0b1abe
-SIZE (xpi/firefox-i18n-45.0.2/uz.xpi) = 443798
-SHA256 (xpi/firefox-i18n-45.0.2/vi.xpi) = 7bf92d5d3b1f62c999ab20ece3df79ec2e46779d943ddf72ed1d2f23cd49893f
-SIZE (xpi/firefox-i18n-45.0.2/vi.xpi) = 450774
-SHA256 (xpi/firefox-i18n-45.0.2/xh.xpi) = e789475ba7b910f97de08409f42facfbc8e2bd50ac3a671f3df93e36a8136dad
-SIZE (xpi/firefox-i18n-45.0.2/xh.xpi) = 432914
-SHA256 (xpi/firefox-i18n-45.0.2/zh-CN.xpi) = 07b8593cdcf8f9b23edcd97c98bb706456e3e2607c07a5809dd05809be260f48
-SIZE (xpi/firefox-i18n-45.0.2/zh-CN.xpi) = 475790
-SHA256 (xpi/firefox-i18n-45.0.2/zh-TW.xpi) = 3a342835cdb918b1ae03cd980519dd733d195e63ecdaa5de1b3497586a2f39d5
-SIZE (xpi/firefox-i18n-45.0.2/zh-TW.xpi) = 466524
+SHA256 (xpi/firefox-i18n-46.0/ach.xpi) = 07ffd4359f0c28bc7eebf70e2fa18972ffa8976b6a739982a251b0e75bf4061d
+SIZE (xpi/firefox-i18n-46.0/ach.xpi) = 430402
+SHA256 (xpi/firefox-i18n-46.0/af.xpi) = b3919ca3bf9c06fb7c8fa1a3dda5bc9c60d16e5f4deb805a65c10c9b8912b162
+SIZE (xpi/firefox-i18n-46.0/af.xpi) = 437748
+SHA256 (xpi/firefox-i18n-46.0/an.xpi) = d83cf7ff0801599dcd092d8dec690275fd175589dfd8e520ccf0bee9bc246ccd
+SIZE (xpi/firefox-i18n-46.0/an.xpi) = 447541
+SHA256 (xpi/firefox-i18n-46.0/ar.xpi) = 3b5e550bd9ffea7105beaae49a701867d2767975b1e502e8b7e9a9d7d2dd7cd1
+SIZE (xpi/firefox-i18n-46.0/ar.xpi) = 473481
+SHA256 (xpi/firefox-i18n-46.0/as.xpi) = e3cd7ff2fb176820e0780906cb8890d96db33c3476ed05020949490b4ff4caf9
+SIZE (xpi/firefox-i18n-46.0/as.xpi) = 485653
+SHA256 (xpi/firefox-i18n-46.0/ast.xpi) = 8cecde0054f03bb2328b11354ec118d23e38f44f36156067ed7b4abd0260dc7d
+SIZE (xpi/firefox-i18n-46.0/ast.xpi) = 421851
+SHA256 (xpi/firefox-i18n-46.0/az.xpi) = fdbcc59e25eb81bc953dbab53005c251b48e707f2f59d58f5bc2b0cc7286bb60
+SIZE (xpi/firefox-i18n-46.0/az.xpi) = 458433
+SHA256 (xpi/firefox-i18n-46.0/be.xpi) = 274e1f1069b970215698b0d8adfd3bd7266e58d2c8bf924daa951d36a88852ee
+SIZE (xpi/firefox-i18n-46.0/be.xpi) = 447173
+SHA256 (xpi/firefox-i18n-46.0/bg.xpi) = fd5fa1f4a81d358412465d1317f9939bc1f97bd6bbd21cbe6a8dc466e023ce34
+SIZE (xpi/firefox-i18n-46.0/bg.xpi) = 485134
+SHA256 (xpi/firefox-i18n-46.0/bn-BD.xpi) = d2e6a8f37d7ae8da70beae4f64b97cc25394873f0607bacb71faf9e19442bef1
+SIZE (xpi/firefox-i18n-46.0/bn-BD.xpi) = 514950
+SHA256 (xpi/firefox-i18n-46.0/bn-IN.xpi) = a3282bec3d716c18a5afa58a1aa31e01dd72c779ce067278805bc0b10742443f
+SIZE (xpi/firefox-i18n-46.0/bn-IN.xpi) = 511075
+SHA256 (xpi/firefox-i18n-46.0/br.xpi) = 409dc97e382c72c4585de8c8f607b4181182bdc1ef2af2f448e58183690f5afc
+SIZE (xpi/firefox-i18n-46.0/br.xpi) = 434579
+SHA256 (xpi/firefox-i18n-46.0/bs.xpi) = 31a19afae541bdd878d8a9c3161034ac83194618882c4e8be7003ed48a62a0db
+SIZE (xpi/firefox-i18n-46.0/bs.xpi) = 441580
+SHA256 (xpi/firefox-i18n-46.0/ca.xpi) = 6b2c29ddc9152ef2a9ac677b76b63c1c4413af928a50bc00d91d1512069901f2
+SIZE (xpi/firefox-i18n-46.0/ca.xpi) = 439818
+SHA256 (xpi/firefox-i18n-46.0/cs.xpi) = a379273637cb0b92fa5df9c5e46b0f76c5c4873b60241a9abcd349b8b347311a
+SIZE (xpi/firefox-i18n-46.0/cs.xpi) = 442403
+SHA256 (xpi/firefox-i18n-46.0/cy.xpi) = d032320783f829e06badc3e578398d376c5a69a0ba73e6d1cc8d1bea8cc8cbe8
+SIZE (xpi/firefox-i18n-46.0/cy.xpi) = 437835
+SHA256 (xpi/firefox-i18n-46.0/da.xpi) = 219251166867311d3a25c8a16ab6f2954a6d135aa916a647345d3b25b5006318
+SIZE (xpi/firefox-i18n-46.0/da.xpi) = 428300
+SHA256 (xpi/firefox-i18n-46.0/de.xpi) = 785982f91ca922d167afb2aa2d71c2493401884bd56295665a1a0826a8ea41f8
+SIZE (xpi/firefox-i18n-46.0/de.xpi) = 444227
+SHA256 (xpi/firefox-i18n-46.0/dsb.xpi) = 09df1f9233653d80735aae719f28eb2e0a175984a2c956a65f92485e244bdddc
+SIZE (xpi/firefox-i18n-46.0/dsb.xpi) = 462448
+SHA256 (xpi/firefox-i18n-46.0/el.xpi) = 4be476d4f8c9ce9f68c2037725dc5906871437b454f001c869fb951766bdac93
+SIZE (xpi/firefox-i18n-46.0/el.xpi) = 473270
+SHA256 (xpi/firefox-i18n-46.0/en-GB.xpi) = a190894fafc1d327ed031233d292cc95c9d095c7944e1c39ba0c1faa64fdd640
+SIZE (xpi/firefox-i18n-46.0/en-GB.xpi) = 421791
+SHA256 (xpi/firefox-i18n-46.0/en-ZA.xpi) = 5f72c9a633d0dcb4f811f2fdadea2ac73bd1c9b5bd5e08b3da5263910134a298
+SIZE (xpi/firefox-i18n-46.0/en-ZA.xpi) = 411425
+SHA256 (xpi/firefox-i18n-46.0/eo.xpi) = 9a1c8886a245fd29cbc03b3e3709378e64bcb8ff9e46683fb383cf31f5dd7d50
+SIZE (xpi/firefox-i18n-46.0/eo.xpi) = 438102
+SHA256 (xpi/firefox-i18n-46.0/es-AR.xpi) = 3c7afec2358c8db143c0ca74134fead70e4b277667d820c64a564c133b7e5f6d
+SIZE (xpi/firefox-i18n-46.0/es-AR.xpi) = 439909
+SHA256 (xpi/firefox-i18n-46.0/es-CL.xpi) = bc2df2f13f36d345a8c9bd593b4b176f9456f0d389f3d2ebe32d575e8a4ba261
+SIZE (xpi/firefox-i18n-46.0/es-CL.xpi) = 369928
+SHA256 (xpi/firefox-i18n-46.0/es-ES.xpi) = 929c22f82fd629df63f5f3b903314096095be92f63a966d5a1c58da4173a88e0
+SIZE (xpi/firefox-i18n-46.0/es-ES.xpi) = 351139
+SHA256 (xpi/firefox-i18n-46.0/es-MX.xpi) = 4f74eeb37e0cde222e26af5ad301ec894c532a686665ad94a34af24559aaae9f
+SIZE (xpi/firefox-i18n-46.0/es-MX.xpi) = 447938
+SHA256 (xpi/firefox-i18n-46.0/et.xpi) = 49b279acb346f064b8b96d77460f9403137c25108ff94ec5efa44f8aed417476
+SIZE (xpi/firefox-i18n-46.0/et.xpi) = 430983
+SHA256 (xpi/firefox-i18n-46.0/eu.xpi) = c69db1ff934796d7d113d1ebe27a55f12e2804a2f11e5ae2299dc547af38b0d1
+SIZE (xpi/firefox-i18n-46.0/eu.xpi) = 439730
+SHA256 (xpi/firefox-i18n-46.0/fa.xpi) = ebb35eaab7eeca6666de134df88d69aa28b584af37bc1b985c66e36f4c60e7a0
+SIZE (xpi/firefox-i18n-46.0/fa.xpi) = 490903
+SHA256 (xpi/firefox-i18n-46.0/ff.xpi) = 7f658325f67cae4578f4a5a6845b8742557a41756a412f9079e0aa8c85a315c5
+SIZE (xpi/firefox-i18n-46.0/ff.xpi) = 444021
+SHA256 (xpi/firefox-i18n-46.0/fi.xpi) = c70084bc209fb7b0ae6725bb8bd68cd4f57c1a629adf3943a114ca237f1ecc17
+SIZE (xpi/firefox-i18n-46.0/fi.xpi) = 432979
+SHA256 (xpi/firefox-i18n-46.0/fr.xpi) = f03ca655e298d324203dc0a3955453aa33c3a46c9f663858f759cd63747007e6
+SIZE (xpi/firefox-i18n-46.0/fr.xpi) = 452687
+SHA256 (xpi/firefox-i18n-46.0/fy-NL.xpi) = 7e8d9063e06103a0e2a6e698b1ac2e76985593a3d6cb0dd7a427560207a0a9b2
+SIZE (xpi/firefox-i18n-46.0/fy-NL.xpi) = 446127
+SHA256 (xpi/firefox-i18n-46.0/ga-IE.xpi) = 341419c036e5e7fe50f42cdad56aa0e11af1611b79084bb2cd74df0711f10a5c
+SIZE (xpi/firefox-i18n-46.0/ga-IE.xpi) = 458863
+SHA256 (xpi/firefox-i18n-46.0/gd.xpi) = 94636db4ee6966fb8a0a14cab62b93642f4cf79c9eb6a307d477a601633e5b07
+SIZE (xpi/firefox-i18n-46.0/gd.xpi) = 448189
+SHA256 (xpi/firefox-i18n-46.0/gl.xpi) = ae569115a06ec56138bd0ab2bed673372c651050bc8386d8f764ec00868503ac
+SIZE (xpi/firefox-i18n-46.0/gl.xpi) = 437725
+SHA256 (xpi/firefox-i18n-46.0/gn.xpi) = dfc914b275a02f139f0305a4864000769e0ca0d4e65bcb2495eeaf9ee63cf392
+SIZE (xpi/firefox-i18n-46.0/gn.xpi) = 459120
+SHA256 (xpi/firefox-i18n-46.0/gu-IN.xpi) = d2df323fe40caf040a35de54950c1d502827f5d630a3374a7bcabeffa449ad44
+SIZE (xpi/firefox-i18n-46.0/gu-IN.xpi) = 475101
+SHA256 (xpi/firefox-i18n-46.0/he.xpi) = 7581353c756355e38b48ac73533c3b6a4a924f88d6d7234d2dbc20d9ec2c0980
+SIZE (xpi/firefox-i18n-46.0/he.xpi) = 458139
+SHA256 (xpi/firefox-i18n-46.0/hi-IN.xpi) = fd2765afb39edb8a94b8b34486619224e4034d322157f4f2df7607cc9280afab
+SIZE (xpi/firefox-i18n-46.0/hi-IN.xpi) = 489610
+SHA256 (xpi/firefox-i18n-46.0/hr.xpi) = 44041e5d089918b6b0def75f6a584454b0b99ca8887e4f69846fdb23b4a7087c
+SIZE (xpi/firefox-i18n-46.0/hr.xpi) = 447648
+SHA256 (xpi/firefox-i18n-46.0/hsb.xpi) = 57c63c17d2609f69a308cc57225653bc59528da8c0bb0b102c34755965bae37b
+SIZE (xpi/firefox-i18n-46.0/hsb.xpi) = 460111
+SHA256 (xpi/firefox-i18n-46.0/hu.xpi) = 1bb6b01bdc1ea10ecd79d0e56ce83a1fb497995f1d38d53aafc116fb95566814
+SIZE (xpi/firefox-i18n-46.0/hu.xpi) = 452498
+SHA256 (xpi/firefox-i18n-46.0/hy-AM.xpi) = a967c208544c1b2097ca9d74399ded364f46bb7290c168b3435011afd2cfbefd
+SIZE (xpi/firefox-i18n-46.0/hy-AM.xpi) = 499527
+SHA256 (xpi/firefox-i18n-46.0/id.xpi) = 7915eec028769e58289932bb04ba1ca5dfc825f3fd8b8a0c7d350348852fdf7d
+SIZE (xpi/firefox-i18n-46.0/id.xpi) = 424696
+SHA256 (xpi/firefox-i18n-46.0/is.xpi) = 35e06413964bea351ff608d92b10bd9c356e6d205183c46c4adec80db68dc9c4
+SIZE (xpi/firefox-i18n-46.0/is.xpi) = 441688
+SHA256 (xpi/firefox-i18n-46.0/it.xpi) = 3885dee3d2382ce08c811c03796c185db498e7492a92898ebb1f6a696c5eabbe
+SIZE (xpi/firefox-i18n-46.0/it.xpi) = 345325
+SHA256 (xpi/firefox-i18n-46.0/ja.xpi) = 9072722594eef1f73b76e2f69503757589a7eb69eb7d714e6be1bb9cfdd21bdb
+SIZE (xpi/firefox-i18n-46.0/ja.xpi) = 489493
+SHA256 (xpi/firefox-i18n-46.0/kk.xpi) = 1174c113317242fc782c5880ad2e6bddd25670a792008522b438d1c305710f6a
+SIZE (xpi/firefox-i18n-46.0/kk.xpi) = 496312
+SHA256 (xpi/firefox-i18n-46.0/km.xpi) = fc4158c5cd3d7ed781b9244fe42c1db10889efdfd12d90ee0a542533f152c3a9
+SIZE (xpi/firefox-i18n-46.0/km.xpi) = 507002
+SHA256 (xpi/firefox-i18n-46.0/kn.xpi) = 0d7915bb7ef866daad21bcffe9a8289f4795b9a681a4549358c0d056793e44d6
+SIZE (xpi/firefox-i18n-46.0/kn.xpi) = 516187
+SHA256 (xpi/firefox-i18n-46.0/ko.xpi) = b5b5c71afdb341596f0ba151c7051022af48a93b2816f749f0414bb16844183a
+SIZE (xpi/firefox-i18n-46.0/ko.xpi) = 464492
+SHA256 (xpi/firefox-i18n-46.0/lij.xpi) = be3cdaf8b562a9d0b7f6018f2b6987e91a58f7432a5ab611d7689b1a4dbd3ec7
+SIZE (xpi/firefox-i18n-46.0/lij.xpi) = 386402
+SHA256 (xpi/firefox-i18n-46.0/lt.xpi) = 59d38526ff2fd84d0ddcee1faf0b5018b40cc6d788cf562d350d45a4c739f0d9
+SIZE (xpi/firefox-i18n-46.0/lt.xpi) = 453248
+SHA256 (xpi/firefox-i18n-46.0/lv.xpi) = 25cbcea962f1af4d1178253b1d2bee916f91fdabcdaa107b288fdcbd1e453c5d
+SIZE (xpi/firefox-i18n-46.0/lv.xpi) = 444267
+SHA256 (xpi/firefox-i18n-46.0/mai.xpi) = 55cb374615e9cca57d5952d1b45dcc9aacee0a2ce126d7fdfaf0d8ec75e8ea0e
+SIZE (xpi/firefox-i18n-46.0/mai.xpi) = 495238
+SHA256 (xpi/firefox-i18n-46.0/mk.xpi) = 1d7761ec5f6bd5620745fe7672ab51f1b3ab8f7c5fb55e5b39ce52673df61d9f
+SIZE (xpi/firefox-i18n-46.0/mk.xpi) = 478835
+SHA256 (xpi/firefox-i18n-46.0/ml.xpi) = e4e372cc9a666d552cc572924d0f97ecedb93c59d09f0af321d2e079cdc78ef9
+SIZE (xpi/firefox-i18n-46.0/ml.xpi) = 520737
+SHA256 (xpi/firefox-i18n-46.0/mr.xpi) = fc45e9909b94f473fba613f62b85fde9f343f853bff70c58e759e6f60d93064e
+SIZE (xpi/firefox-i18n-46.0/mr.xpi) = 502299
+SHA256 (xpi/firefox-i18n-46.0/ms.xpi) = 23fa3a916bc7d79a738f5ad19497a8d1edeed59bc9962c430ea2c4d3ce148670
+SIZE (xpi/firefox-i18n-46.0/ms.xpi) = 442893
+SHA256 (xpi/firefox-i18n-46.0/nb-NO.xpi) = 67b95f513d968088f8a0f6cf28a97d02d13f85e3a02575be6c2a45d83310de54
+SIZE (xpi/firefox-i18n-46.0/nb-NO.xpi) = 433722
+SHA256 (xpi/firefox-i18n-46.0/nl.xpi) = c2fd2f2a02ff2c7c83697cf4a0f6e47f373269ce20536432ea2677a5a45cbf16
+SIZE (xpi/firefox-i18n-46.0/nl.xpi) = 433462
+SHA256 (xpi/firefox-i18n-46.0/nn-NO.xpi) = d1a731fe0228e7721a7c1781d60a2f796cab099886eac2bbc4a378458a8af181
+SIZE (xpi/firefox-i18n-46.0/nn-NO.xpi) = 429633
+SHA256 (xpi/firefox-i18n-46.0/or.xpi) = ed06aa2153bd4dab5173b1a514b94c064f44896180666a42f520478a8d1a350e
+SIZE (xpi/firefox-i18n-46.0/or.xpi) = 498478
+SHA256 (xpi/firefox-i18n-46.0/pa-IN.xpi) = f25173c9e58f3b960b88cbc0baa7c1d01161ef60b3dd751869e763304c2d6fb4
+SIZE (xpi/firefox-i18n-46.0/pa-IN.xpi) = 492201
+SHA256 (xpi/firefox-i18n-46.0/pl.xpi) = 6b3f3bf2a4fb149cdac2899bef1ffb6abe2a80be814f08eeb125e41bdc27542b
+SIZE (xpi/firefox-i18n-46.0/pl.xpi) = 385141
+SHA256 (xpi/firefox-i18n-46.0/pt-BR.xpi) = 31564e3297a2545895aeac8ff7ce218484b8d94af59be5c46544f0bb813b182e
+SIZE (xpi/firefox-i18n-46.0/pt-BR.xpi) = 449139
+SHA256 (xpi/firefox-i18n-46.0/pt-PT.xpi) = f2679b8aa4da35604324226d9944041f51c5cf54d8c7e5b68cefbf5b7bee8e2b
+SIZE (xpi/firefox-i18n-46.0/pt-PT.xpi) = 435518
+SHA256 (xpi/firefox-i18n-46.0/rm.xpi) = 701dad2ab6f099147ae436def236c5402f78cbb3e677670d3f687b978c390bea
+SIZE (xpi/firefox-i18n-46.0/rm.xpi) = 436622
+SHA256 (xpi/firefox-i18n-46.0/ro.xpi) = 6113c668850b935dca9bb712fbf5f791c5e3a2613ab8ef96aad2489f38141d1b
+SIZE (xpi/firefox-i18n-46.0/ro.xpi) = 449440
+SHA256 (xpi/firefox-i18n-46.0/ru.xpi) = 9eeaba8389043fe49a31ebbb31340e65a5b2d984e010a80b3582d4cbdecc9d65
+SIZE (xpi/firefox-i18n-46.0/ru.xpi) = 396261
+SHA256 (xpi/firefox-i18n-46.0/si.xpi) = 8e6d0e463793ddafc5c38ec20f1da551998179d284bf072ea39913d4729394ba
+SIZE (xpi/firefox-i18n-46.0/si.xpi) = 484869
+SHA256 (xpi/firefox-i18n-46.0/sk.xpi) = a2ebb444bf87d1ef1db841fc596ff3d2682a9dd4cd91df2dd4a645b3be5f3ee4
+SIZE (xpi/firefox-i18n-46.0/sk.xpi) = 452397
+SHA256 (xpi/firefox-i18n-46.0/sl.xpi) = 20a5e21a30e31c23f4b5f4c8cb6049d1a89a72d6bf7cb4d35fd8ddd6237b0d41
+SIZE (xpi/firefox-i18n-46.0/sl.xpi) = 443684
+SHA256 (xpi/firefox-i18n-46.0/son.xpi) = 78aa07e70f8d35636f94c488f260c1955373d006d186ac9093a0a222825d8d20
+SIZE (xpi/firefox-i18n-46.0/son.xpi) = 436164
+SHA256 (xpi/firefox-i18n-46.0/sq.xpi) = 31f3203c9ca8974a71e37315355789538cf62499b43aaa8b558fe439f9d84fec
+SIZE (xpi/firefox-i18n-46.0/sq.xpi) = 450731
+SHA256 (xpi/firefox-i18n-46.0/sr.xpi) = 6ab61a20f2a252235f2f13820da8ccb0c6595829d8c12ed514517b397f99eae7
+SIZE (xpi/firefox-i18n-46.0/sr.xpi) = 467557
+SHA256 (xpi/firefox-i18n-46.0/sv-SE.xpi) = 7d4e98630976d8413b2d7937b8dbf59ccf2de9234cbcd36aff713a256ce64d1a
+SIZE (xpi/firefox-i18n-46.0/sv-SE.xpi) = 442602
+SHA256 (xpi/firefox-i18n-46.0/ta.xpi) = fed52087cfcf601aafb55be0bcff19341facaf3e8b92a285b056eab87f99e7ef
+SIZE (xpi/firefox-i18n-46.0/ta.xpi) = 485853
+SHA256 (xpi/firefox-i18n-46.0/te.xpi) = 3ee37a92eff59cbf6ab9555cb5dbd03a9ba662df6310c64033182883e8ce3424
+SIZE (xpi/firefox-i18n-46.0/te.xpi) = 512280
+SHA256 (xpi/firefox-i18n-46.0/th.xpi) = c3c46af4acc77b7c78286fa6b786152bd593506522c5cee08b92d363dbd9f738
+SIZE (xpi/firefox-i18n-46.0/th.xpi) = 488976
+SHA256 (xpi/firefox-i18n-46.0/tr.xpi) = 0ce53c590e3ff321b6646d53154cffba9b4380c4b968997ee47919f51dd7b347
+SIZE (xpi/firefox-i18n-46.0/tr.xpi) = 442976
+SHA256 (xpi/firefox-i18n-46.0/uk.xpi) = 519a1c8d08a3d8f676cc73678fbb8e06b86b554f705f8f04b7c5323e2b2d6752
+SIZE (xpi/firefox-i18n-46.0/uk.xpi) = 492391
+SHA256 (xpi/firefox-i18n-46.0/uz.xpi) = 40e363a3f917e0553f6b3e0ddc5a89b58a3c8a163ae64eeec117068b19a7244c
+SIZE (xpi/firefox-i18n-46.0/uz.xpi) = 450152
+SHA256 (xpi/firefox-i18n-46.0/vi.xpi) = 5f31a7d6ab83e9a38d0da4022965974bca8616cd9faa72a973feaf8fe1696e39
+SIZE (xpi/firefox-i18n-46.0/vi.xpi) = 453620
+SHA256 (xpi/firefox-i18n-46.0/xh.xpi) = a71e8ce6a019bff94296edf3398ad4feb2193150abb7973db7f9e9e6af453ec7
+SIZE (xpi/firefox-i18n-46.0/xh.xpi) = 439622
+SHA256 (xpi/firefox-i18n-46.0/zh-CN.xpi) = 4423752dc04fafc10dad47a8a47931f93daef285a73b9bddc86b9cc335f96624
+SIZE (xpi/firefox-i18n-46.0/zh-CN.xpi) = 464259
+SHA256 (xpi/firefox-i18n-46.0/zh-TW.xpi) = 9dd272a51d9c2007077d9074b1782c98090142e201f6e3bf062358a3684d673f
+SIZE (xpi/firefox-i18n-46.0/zh-TW.xpi) = 472075
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index ab05cb92e9ae..fdde6597d9b8 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -2,26 +2,26 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 45.0.2
+DISTVERSION= 46.0
DISTVERSIONSUFFIX=.source
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source
+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build4/source
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
BUILD_DEPENDS= nspr>=4.12:devel/nspr \
- nss>=3.21.1:security/nss \
+ nss>=3.22.3:security/nss \
libevent2>=2.0.21_2:devel/libevent2 \
soundtouch>=1.9.0:audio/soundtouch \
- harfbuzz>=1.1.0:print/harfbuzz \
- graphite2>=1.3.6:graphics/graphite2 \
+ harfbuzz>=1.1.3:print/harfbuzz \
+ graphite2>=1.3.7:graphics/graphite2 \
png>=1.6.19:graphics/png \
libvorbis>=1.3.5,3:audio/libvorbis \
libvpx>=1.5.0:multimedia/libvpx \
- sqlite3>=3.9.1:databases/sqlite3 \
+ sqlite3>=3.10.2:databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
v4l_compat>0:multimedia/v4l_compat \
autoconf-2.13:devel/autoconf213 \
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index 4c6f6284097f..7635a7857349 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-45.0.2.source.tar.xz) = a6b09bac0390d4e48b752026ec1aaa934332dee31fb3ff3ca59f8209f4217a53
-SIZE (firefox-45.0.2.source.tar.xz) = 184298180
+SHA256 (firefox-46.0.source.tar.xz) = 88405d7875f702d37da2de682a31810f980d894c812411e26a0f082c2cd9e15a
+SIZE (firefox-46.0.source.tar.xz) = 187458860
diff --git a/www/firefox/files/patch-bug1021761 b/www/firefox/files/patch-bug1021761
index 86c4d9b0f19b..743606fd1a8e 100644
--- a/www/firefox/files/patch-bug1021761
+++ b/www/firefox/files/patch-bug1021761
@@ -11,7 +11,7 @@ index 48e60c0..ec08417 100644
+
+dnl If using Linux, Solaris or BSDs, ensure that OSS is available
+case "$OS_TARGET" in
-+Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD)
++Linux|SunOS|DragonFly|FreeBSD|GNU/kFreeBSD)
+ MOZ_OSS=1
+ ;;
+esac
@@ -503,23 +503,21 @@ index a962553..1f780f4 100644
assert(r == 0);
/* Ugly hack: the PA ALSA plugin allows buffer configurations that can't
-@@ -848,23 +954,23 @@ alsa_stream_init(cubeb * ctx, cubeb_stream ** stream, char const * stream_name,
+@@ -859,7 +965,7 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
latency = latency < 500 ? 500 : latency;
}
- r = snd_pcm_set_params(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
-- stm->params.channels, stm->params.rate, 1,
-- latency * 1000);
+ r = WRAP(snd_pcm_set_params)(stm->pcm, format, SND_PCM_ACCESS_RW_INTERLEAVED,
-+ stm->params.channels, stm->params.rate, 1,
-+ latency * 1000);
+ stm->params.channels, stm->params.rate, 1,
+ latency * 1000);
if (r < 0) {
- alsa_stream_destroy(stm);
+@@ -867,15 +973,15 @@ alsa_stream_init(cubeb * ctx, cubeb_stre
return CUBEB_ERROR_INVALID_FORMAT;
}
-- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &stm->period_size);
-+ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &stm->period_size);
+- r = snd_pcm_get_params(stm->pcm, &stm->buffer_size, &period_size);
++ r = WRAP(snd_pcm_get_params)(stm->pcm, &stm->buffer_size, &period_size);
assert(r == 0);
- stm->nfds = snd_pcm_poll_descriptors_count(stm->pcm);
@@ -643,7 +641,7 @@ new file mode 100644
index 0000000..5e38e27
--- /dev/null
+++ media/libcubeb/src/cubeb_oss.c
-@@ -0,0 +1,402 @@
+@@ -0,0 +1,412 @@
+/*
+ * Copyright © 2014 Mozilla Foundation
+ *
@@ -664,6 +662,7 @@ index 0000000..5e38e27
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
++#include <assert.h>
+
+#include "cubeb/cubeb.h"
+#include "cubeb-internal.h"
@@ -762,7 +761,7 @@ index 0000000..5e38e27
+ pthread_mutex_lock(&stream->state_mutex);
+ if (stream->data_callback && stream->running && !stream->stopped) {
+ pthread_mutex_unlock(&stream->state_mutex);
-+ got = stream->data_callback(stream, stream->user_ptr, buffer, nframes);
++ got = stream->data_callback(stream, stream->user_ptr, NULL, buffer, nframes);
+ } else {
+ pthread_mutex_unlock(&stream->state_mutex);
+ }
@@ -862,7 +861,10 @@ index 0000000..5e38e27
+
+static int oss_stream_init(cubeb * context, cubeb_stream ** stm,
+ char const * stream_name,
-+ cubeb_stream_params stream_params,
++ cubeb_devid input_device,
++ cubeb_stream_params * input_stream_params,
++ cubeb_devid output_device,
++ cubeb_stream_params * output_stream_params,
+ unsigned int latency,
+ cubeb_data_callback data_callback,
+ cubeb_state_callback state_callback, void * user_ptr)
@@ -873,6 +875,12 @@ index 0000000..5e38e27
+ stream->state_callback = state_callback;
+ stream->user_ptr = user_ptr;
+
++ assert(!input_stream_params && "not supported.");
++ if (input_device || output_device) {
++ /* Device selection not yet implemented. */
++ return CUBEB_ERROR_DEVICE_UNAVAILABLE;
++ }
++
+ if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) {
+ free(stream);
+ return CUBEB_ERROR;
@@ -884,16 +892,16 @@ index 0000000..5e38e27
+ free(stream); \
+ return CUBEB_ERROR_INVALID_FORMAT; } } while (0)
+
-+ stream->params = stream_params;
++ stream->params = *output_stream_params;
+ stream->volume = 1.0;
+ stream->panning = 0.0;
+
+ oss_try_set_latency(stream, latency);
+
+ stream->floating = 0;
-+ SET(SNDCTL_DSP_CHANNELS, stream_params.channels);
-+ SET(SNDCTL_DSP_SPEED, stream_params.rate);
-+ switch (stream_params.format) {
++ SET(SNDCTL_DSP_CHANNELS, output_stream_params->channels);
++ SET(SNDCTL_DSP_SPEED, output_stream_params->rate);
++ switch (output_stream_params->format) {
+ case CUBEB_SAMPLE_S16LE:
+ SET(SNDCTL_DSP_SETFMT, AFMT_S16_LE);
+ break;
diff --git a/www/firefox/files/patch-bug1239550 b/www/firefox/files/patch-bug1239550
new file mode 100644
index 000000000000..8dc3a94661ad
--- /dev/null
+++ b/www/firefox/files/patch-bug1239550
@@ -0,0 +1,144 @@
+diff --git a/media/ffvpx/config.asm b/media/ffvpx/config.asm
+--- media/ffvpx/config.asm
++++ media/ffvpx/config.asm
+@@ -192,7 +192,6 @@
+ %define HAVE_MACH_MACH_TIME_H 0
+ %define HAVE_MACHINE_IOCTL_BT848_H 0
+ %define HAVE_MACHINE_IOCTL_METEOR_H 0
+-%define HAVE_MALLOC_H 1
+ %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
+ %define HAVE_OPENGL_GL3_H 0
+ %define HAVE_POLL_H 1
+@@ -268,18 +267,15 @@
+ %define HAVE_ISATTY 1
+ %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
+ %define HAVE_KBHIT 0
+-%define HAVE_LOCALTIME_R 1
+ %define HAVE_LSTAT 1
+ %define HAVE_LZO1X_999_COMPRESS 0
+ %define HAVE_MACH_ABSOLUTE_TIME 0
+ %define HAVE_MAPVIEWOFFILE 0
+-%define HAVE_MEMALIGN 1
+ %define HAVE_MKSTEMP 1
+ %define HAVE_MMAP 1
+ %define HAVE_MPROTECT 1
+ %define HAVE_NANOSLEEP 1
+ %define HAVE_PEEKNAMEDPIPE 0
+-%define HAVE_POSIX_MEMALIGN 1
+ %define HAVE_PTHREAD_CANCEL 1
+ %define HAVE_SCHED_GETAFFINITY 1
+ %define HAVE_SETCONSOLETEXTATTRIBUTE 0
+diff --git a/media/ffvpx/config_unix32.h b/media/ffvpx/config_unix32.h
+--- media/ffvpx/config_unix32.h
++++ media/ffvpx/config_unix32.h
+@@ -216,7 +216,6 @@
+ #define HAVE_MACH_MACH_TIME_H 0
+ #define HAVE_MACHINE_IOCTL_BT848_H 0
+ #define HAVE_MACHINE_IOCTL_METEOR_H 0
+-#define HAVE_MALLOC_H 1
+ #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
+ #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
+ #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
+@@ -269,7 +268,6 @@
+ #define HAVE_TRUNCF 1
+ #define HAVE_ACCESS 1
+ #define HAVE_ALIGNED_MALLOC 0
+-#define HAVE_ARC4RANDOM 0
+ #define HAVE_CLOCK_GETTIME 1
+ #define HAVE_CLOSESOCKET 0
+ #define HAVE_COMMANDLINETOARGVW 0
+@@ -295,18 +293,15 @@
+ #define HAVE_ISATTY 1
+ #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
+ #define HAVE_KBHIT 0
+-#define HAVE_LOCALTIME_R 1
+ #define HAVE_LSTAT 1
+ #define HAVE_LZO1X_999_COMPRESS 0
+ #define HAVE_MACH_ABSOLUTE_TIME 0
+ #define HAVE_MAPVIEWOFFILE 0
+-#define HAVE_MEMALIGN 0
+ #define HAVE_MKSTEMP 1
+ #define HAVE_MMAP 1
+ #define HAVE_MPROTECT 1
+ #define HAVE_NANOSLEEP 1
+ #define HAVE_PEEKNAMEDPIPE 0
+-#define HAVE_POSIX_MEMALIGN 0
+ #define HAVE_PTHREAD_CANCEL 1
+ #define HAVE_SCHED_GETAFFINITY 1
+ #define HAVE_SETCONSOLETEXTATTRIBUTE 0
+diff --git a/media/ffvpx/config_unix64.asm b/media/ffvpx/config_unix64.asm
+--- media/ffvpx/config_unix64.asm
++++ media/ffvpx/config_unix64.asm
+@@ -200,7 +200,6 @@
+ %define HAVE_MACH_MACH_TIME_H 0
+ %define HAVE_MACHINE_IOCTL_BT848_H 0
+ %define HAVE_MACHINE_IOCTL_METEOR_H 0
+-%define HAVE_MALLOC_H 1
+ %define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
+ %define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
+ %define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
+@@ -253,7 +252,6 @@
+ %define HAVE_TRUNCF 1
+ %define HAVE_ACCESS 1
+ %define HAVE_ALIGNED_MALLOC 0
+-%define HAVE_ARC4RANDOM 0
+ %define HAVE_CLOCK_GETTIME 1
+ %define HAVE_CLOSESOCKET 0
+ %define HAVE_COMMANDLINETOARGVW 0
+@@ -279,18 +277,15 @@
+ %define HAVE_ISATTY 1
+ %define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
+ %define HAVE_KBHIT 0
+-%define HAVE_LOCALTIME_R 1
+ %define HAVE_LSTAT 1
+ %define HAVE_LZO1X_999_COMPRESS 0
+ %define HAVE_MACH_ABSOLUTE_TIME 0
+ %define HAVE_MAPVIEWOFFILE 0
+-%define HAVE_MEMALIGN 1
+ %define HAVE_MKSTEMP 1
+ %define HAVE_MMAP 1
+ %define HAVE_MPROTECT 1
+ %define HAVE_NANOSLEEP 1
+ %define HAVE_PEEKNAMEDPIPE 0
+-%define HAVE_POSIX_MEMALIGN 1
+ %define HAVE_PTHREAD_CANCEL 1
+ %define HAVE_SCHED_GETAFFINITY 1
+ %define HAVE_SETCONSOLETEXTATTRIBUTE 0
+diff --git a/media/ffvpx/config_unix64.h b/media/ffvpx/config_unix64.h
+--- media/ffvpx/config_unix64.h
++++ media/ffvpx/config_unix64.h
+@@ -216,7 +216,6 @@
+ #define HAVE_MACH_MACH_TIME_H 0
+ #define HAVE_MACHINE_IOCTL_BT848_H 0
+ #define HAVE_MACHINE_IOCTL_METEOR_H 0
+-#define HAVE_MALLOC_H 1
+ #define HAVE_OPENJPEG_2_1_OPENJPEG_H 0
+ #define HAVE_OPENJPEG_2_0_OPENJPEG_H 0
+ #define HAVE_OPENJPEG_1_5_OPENJPEG_H 0
+@@ -269,7 +268,6 @@
+ #define HAVE_TRUNCF 1
+ #define HAVE_ACCESS 1
+ #define HAVE_ALIGNED_MALLOC 0
+-#define HAVE_ARC4RANDOM 0
+ #define HAVE_CLOCK_GETTIME 1
+ #define HAVE_CLOSESOCKET 0
+ #define HAVE_COMMANDLINETOARGVW 0
+@@ -295,18 +293,15 @@
+ #define HAVE_ISATTY 1
+ #define HAVE_JACK_PORT_GET_LATENCY_RANGE 0
+ #define HAVE_KBHIT 0
+-#define HAVE_LOCALTIME_R 1
+ #define HAVE_LSTAT 1
+ #define HAVE_LZO1X_999_COMPRESS 0
+ #define HAVE_MACH_ABSOLUTE_TIME 0
+ #define HAVE_MAPVIEWOFFILE 0
+-#define HAVE_MEMALIGN 1
+ #define HAVE_MKSTEMP 1
+ #define HAVE_MMAP 1
+ #define HAVE_MPROTECT 1
+ #define HAVE_NANOSLEEP 1
+ #define HAVE_PEEKNAMEDPIPE 0
+-#define HAVE_POSIX_MEMALIGN 1
+ #define HAVE_PTHREAD_CANCEL 1
+ #define HAVE_SCHED_GETAFFINITY 1
+ #define HAVE_SETCONSOLETEXTATTRIBUTE 0
diff --git a/www/firefox/files/patch-bug1256136 b/www/firefox/files/patch-bug1256136
new file mode 100644
index 000000000000..b41cafab8bd7
--- /dev/null
+++ b/www/firefox/files/patch-bug1256136
@@ -0,0 +1,21 @@
+diff --git xpcom/glue/nsISupportsImpl.h xpcom/glue/nsISupportsImpl.h
+index 9102102..e1f34c0 100644
+--- xpcom/glue/nsISupportsImpl.h
++++ xpcom/glue/nsISupportsImpl.h
+@@ -32,11 +32,11 @@
+ #include "mozilla/TypeTraits.h"
+
+ #if defined(__clang__)
+- // bug 1028428 shows that at least in FreeBSD 10.0 with Clang 3.4 and libc++ 3.4,
+- // std::is_destructible is buggy in that it returns false when it should return true
+- // on ipc::SharedMemory. On the other hand, all Clang versions currently in use
+- // seem to handle the fallback just fine.
+-# define MOZ_CAN_USE_IS_DESTRUCTIBLE_FALLBACK
++# if MOZ_USING_LIBCXX && __has_include(<type_traits>)
++# define MOZ_HAVE_STD_IS_DESTRUCTIBLE
++# else
++# define MOZ_CAN_USE_IS_DESTRUCTIBLE_FALLBACK
++# endif
+ #elif defined(__GNUC__)
+ // GCC 4.7 is has buggy std::is_destructible
+ # if MOZ_USING_LIBSTDCXX && MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
diff --git a/www/firefox/files/patch-bug826985 b/www/firefox/files/patch-bug826985
index 941acf53f265..8d6602d449f4 100644
--- a/www/firefox/files/patch-bug826985
+++ b/www/firefox/files/patch-bug826985
@@ -17,14 +17,14 @@ diff --git config/system-headers config/system-headers
index 55e4cd1..76567b3 100644
--- config/system-headers
+++ config/system-headers
-@@ -627,6 +627,7 @@ libgnome/libgnome.h
+@@ -629,6 +629,7 @@ libgnome/libgnome.h
libgnomeui/gnome-icon-lookup.h
libgnomeui/gnome-icon-theme.h
libgnomeui/gnome-ui-init.h
+libv4l2.h
- lib$routines.h
limits
limits.h
+ link.h
diff --git configure.in configure.in
index 55e4cd1..76567b3 100644
--- configure.in
diff --git a/www/firefox/files/patch-bug847568 b/www/firefox/files/patch-bug847568
index 6eb00b509d88..fa8c7f3b8353 100644
--- a/www/firefox/files/patch-bug847568
+++ b/www/firefox/files/patch-bug847568
@@ -46,7 +46,7 @@ index ac38f40..87536b7 100644
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
-+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.0)
++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.3)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
@@ -70,7 +70,7 @@ index ac38f40..87536b7 100644
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
-+ #if !GR2_VERSION_REQUIRE(1,3,6)
++ #if !GR2_VERSION_REQUIRE(1,3,7)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
diff --git a/www/firefox/files/patch-z-bug517422 b/www/firefox/files/patch-z-bug517422
index 723900a6a894..7e2ec5eac0b3 100644
--- a/www/firefox/files/patch-z-bug517422
+++ b/www/firefox/files/patch-z-bug517422
@@ -20,7 +20,7 @@ diff --git config/external/moz.build config/external/moz.build
index f67c5c7..eb909ce 100644
--- config/external/moz.build
+++ config/external/moz.build
-@@ -19,10 +19,16 @@ if CONFIG['MOZ_UPDATER']:
+@@ -20,12 +20,21 @@ if CONFIG['MOZ_UPDATER']:
# There's no "native brotli" yet, but probably in the future...
external_dirs += ['modules/brotli']
@@ -28,9 +28,6 @@ index f67c5c7..eb909ce 100644
+if not CONFIG['MOZ_NATIVE_OGG']:
+ external_dirs += ['media/libogg']
+
-+if not CONFIG['MOZ_NATIVE_THEORA']:
-+ external_dirs += ['media/libtheora']
-+
+if CONFIG['MOZ_VORBIS'] and not CONFIG['MOZ_NATIVE_VORBIS']:
external_dirs += ['media/libvorbis']
@@ -38,17 +35,19 @@ index f67c5c7..eb909ce 100644
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
external_dirs += ['media/libtremor']
- if CONFIG['MOZ_WEBM']:
-@@ -37,15 +46,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
- if not CONFIG['MOZ_NATIVE_PNG']:
- external_dirs += ['media/libpng']
-
++if not CONFIG['MOZ_NATIVE_THEORA']:
++ external_dirs += ['media/libtheora']
++
+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ external_dirs += ['media/libsoundtouch']
+
- external_dirs += [
+ if CONFIG['MOZ_WEBM_ENCODER']:
+ external_dirs += ['media/libmkv']
+
+@@ -51,12 +60,9 @@ external_dirs += [
'media/kiss_fft',
'media/libcubeb',
+ 'media/libnestegg',
- 'media/libogg',
'media/libopus',
- 'media/libtheora',
@@ -84,10 +83,11 @@ diff --git configure.in configure.in
index 87db361..7947626 100644
--- configure.in
+++ configure.in
-@@ -5223,6 +5223,111 @@ if test "${ac_cv_c_attribute_aligned}" !
+@@ -5401,6 +5401,111 @@ if test -n "$MOZ_OMX_PLUGIN"; then
+ fi
fi
- dnl ========================================================
++dnl ========================================================
+dnl Check for libogg
+dnl ========================================================
+
@@ -192,10 +192,9 @@ index 87db361..7947626 100644
+fi
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
+
-+dnl ========================================================
- dnl = Disable VP8 decoder support
+ dnl system libvpx Support
dnl ========================================================
- MOZ_ARG_DISABLE_BOOL(webm,
+ MOZ_ARG_WITH_BOOL(system-libvpx,
diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp
index 2127256..1ec09fe 100644
--- dom/media/AudioStream.cpp
@@ -266,11 +265,10 @@ diff --git dom/media/moz.build dom/media/moz.build
index 7526cff..e0a0ca0 100644
--- dom/media/moz.build
+++ dom/media/moz.build
-@@ -212,3 +212,18 @@ if CONFIG['ANDROID_VERSION'] > '15':
+@@ -300,6 +300,21 @@ if CONFIG['MOZ_WEBRTC']:
+
+ DEFINES['MOZILLA_INTERNAL_API'] = True
- CFLAGS += CONFIG['GSTREAMER_CFLAGS']
- CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
-+
+if CONFIG['MOZ_NATIVE_OGG']:
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
+
@@ -285,6 +283,10 @@ index 7526cff..e0a0ca0 100644
+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
++
+ if CONFIG['OS_TARGET'] == 'WINNT':
+ DEFINES['WEBRTC_WIN'] = True
+ else:
diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA
index 0833e4d..7ece97b 100644
--- media/libogg/README_MOZILLA
diff --git a/www/libxul/Makefile b/www/libxul/Makefile
index aed7797bb209..a6f59ad1939b 100644
--- a/www/libxul/Makefile
+++ b/www/libxul/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= libxul
-DISTVERSION= 38.7.1
-PORTREVISION= 1
+DISTVERSION= 45.1.0
CATEGORIES?= www devel
MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \
MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build1/source
@@ -12,31 +11,32 @@ DISTNAME= firefox-${DISTVERSION}esr.source
MAINTAINER?= gecko@FreeBSD.org
COMMENT?= Mozilla runtime package that can be used to bootstrap XUL+XPCOM apps
-BUILD_DEPENDS= nspr>=4.10.10:devel/nspr \
- nss>=3.19.2.1:security/nss \
+BUILD_DEPENDS= nspr>=4.12:devel/nspr \
+ nss>=3.21.1:security/nss \
libevent2>=2.0.21_2:devel/libevent2 \
- soundtouch>=1.8.0:audio/soundtouch \
- harfbuzz>=0.9.34:print/harfbuzz \
- graphite2>=1.2.4:graphics/graphite2 \
+ soundtouch>=1.9.0:audio/soundtouch \
+ harfbuzz>=1.1.0:print/harfbuzz \
+ graphite2>=1.3.6:graphics/graphite2 \
+ png>=1.6.19:graphics/png \
libvorbis>=1.3.5,3:audio/libvorbis \
- libvpx>=1.3.0:multimedia/libvpx \
- sqlite3>=3.8.9:databases/sqlite3 \
+ libvpx>=1.5.0:multimedia/libvpx \
+ sqlite3>=3.9.1:databases/sqlite3 \
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
v4l_compat>0:multimedia/v4l_compat \
autoconf-2.13:devel/autoconf213 \
+ yasm:devel/yasm \
zip:archivers/zip \
unzip:archivers/unzip
-# opus>=1.1:audio/opus \
LIB_DEPENDS= libv4l2.so:multimedia/libv4l
-WRKSRC= ${WRKDIR}/mozilla-esr38
+WRKSRC:= ${WRKDIR}/firefox-${DISTVERSION}esr
CONFLICTS_INSTALL= libxul-1.9.*
USE_QT5= # empty
QT_NONSTANDARD= yes
USE_GL= gl
-USES= pathfix tar:bzip2
+USES= pathfix tar:xz
MAKE_ENV= SKIP_GRE_REGISTRATION=1 mozappdir=${PREFIX}/lib/${MOZILLA}
LDFLAGS+= -Wl,-rpath,${PREFIX}/lib/${MOZ_RPATH}
USE_LDCONFIG= ${PREFIX}/lib/${MOZILLA}
@@ -45,12 +45,14 @@ MOZ_OPTIONS?= --enable-application=xulrunner
USE_GECKO= gecko
CPE_PRODUCT= firefox_esr
MOZILLA_EXEC_NAME=xulrunner
-USE_MOZILLA= -opus
+USE_MOZILLA= # empty
MOZILLA_PLIST_DIRS= bin include lib share/idl libdata
MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \
mozilla-plugin
-OPTIONS_DEFAULT= GTK2
+OPTIONS_EXCLUDE= GSTREAMER LOGGING
+OPTIONS_DEFINE= RUST
+OPTIONS_DEFAULT= BUNDLED_CAIRO GTK2
OPTIONS_SINGLE+= TOOLKIT
OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3
@@ -62,8 +64,6 @@ MOZ_PKGCONFIG_FILES+= mozilla-nss
.endif
post-patch:
- @${REINPLACE_CMD} -e '/MOZPNG/s/=[0-9]*/=10511/' \
- ${WRKSRC}/configure.in
@${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
${WRKSRC}/xulrunner/stub/nsXULStub.cpp
diff --git a/www/libxul/distinfo b/www/libxul/distinfo
index d47eb6334468..2b98ab4be38a 100644
--- a/www/libxul/distinfo
+++ b/www/libxul/distinfo
@@ -1,2 +1,2 @@
-SHA256 (firefox-38.7.1esr.source.tar.bz2) = d0fce46a948610c8231ceaad5da5542bd57af363ff2341d77f2f00955f888f65
-SIZE (firefox-38.7.1esr.source.tar.bz2) = 181300248
+SHA256 (firefox-45.1.0esr.source.tar.xz) = 8bdc4a0f6d0ca4f28e888ca0044ba735ddc78302820b5ffcc25cd65064ff40a1
+SIZE (firefox-45.1.0esr.source.tar.xz) = 184373664
diff --git a/www/libxul/files/extra-patch-bug1125514 b/www/libxul/files/extra-patch-bug1125514
deleted file mode 100644
index f6837f2c6a48..000000000000
--- a/www/libxul/files/extra-patch-bug1125514
+++ /dev/null
@@ -1,36 +0,0 @@
-changeset: 258513:ffbd5f5f46f1
-user: Guilherme Goncalves <guilherme.p.gonc@gmail.com>
-date: Thu Aug 20 10:05:29 2015 +0900
-summary: Bug 1125514 - Use jemalloc's metadata statistics to compute bookkeeping. r=glandium
-
---- memory/build/mozjemalloc_compat.c~
-+++ memory/build/mozjemalloc_compat.c
-@@ -136,6 +136,7 @@ jemalloc_stats_impl(jemalloc_stats_t *st
- {
- unsigned narenas;
- size_t active, allocated, mapped, page, pdirty;
-+ size_t meta, ameta;
- size_t lg_chunk;
-
- // Refresh jemalloc's stats by updating its epoch, see ctl_refresh in
-@@ -149,17 +150,19 @@ jemalloc_stats_impl(jemalloc_stats_t *st
- CTL_GET("stats.active", active);
- CTL_GET("stats.allocated", allocated);
- CTL_GET("stats.mapped", mapped);
-+ CTL_GET("stats.metadata", meta);
- CTL_GET("opt.lg_chunk", lg_chunk);
-- CTL_GET("stats.bookkeeping", stats->bookkeeping);
-
- /* get the summation for all arenas, i == narenas */
- CTL_I_GET("stats.arenas.0.pdirty", pdirty, narenas);
-+ CTL_I_GET("stats.arenas.0.metadata.allocated", ameta, narenas);
-
- stats->chunksize = 1 << lg_chunk;
- stats->mapped = mapped;
- stats->allocated = allocated;
- stats->waste = active - allocated;
- stats->page_cache = pdirty * page;
-+ stats->bookkeeping = meta - ameta;
- stats->bin_unused = compute_bin_unused(narenas);
- stats->waste -= stats->bin_unused;
- }
diff --git a/www/libxul/files/patch-bug1013882 b/www/libxul/files/patch-bug1013882
index b3177989a39e..80f45c011c67 100644
--- a/www/libxul/files/patch-bug1013882
+++ b/www/libxul/files/patch-bug1013882
@@ -2,7 +2,7 @@ diff --git b2g/installer/Makefile.in b2g/installer/Makefile.in
index 754312a..c69904c 100644
--- b2g/installer/Makefile.in
+++ b2g/installer/Makefile.in
-@@ -63,6 +63,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)))
+@@ -101,6 +101,10 @@ ifneq (,$(filter rtsp,$(NECKO_PROTOCOLS)
DEFINES += -DMOZ_RTSP
endif
@@ -10,21 +10,21 @@ index 754312a..c69904c 100644
+DEFINES += -DMOZ_DEBUG=1
+endif
+
- ifdef GKMEDIAS_SHARED_LIBRARY
- DEFINES += -DGKMEDIAS_SHARED_LIBRARY
- endif
+ DEFINES += -DMOZ_ICU_VERSION=$(MOZ_ICU_VERSION)
+ ifdef MOZ_NATIVE_ICU
+ DEFINES += -DMOZ_NATIVE_ICU
diff --git b2g/installer/package-manifest.in b2g/installer/package-manifest.in
index 17d433c..0416187 100644
--- b2g/installer/package-manifest.in
+++ b2g/installer/package-manifest.in
-@@ -576,7 +576,7 @@
- @BINPATH@/components/MozKeyboard.js
- @BINPATH@/components/InputMethod.manifest
+@@ -660,7 +660,7 @@
+ @RESPATH@/components/EngineeringModeAPI.js
+ @RESPATH@/components/EngineeringModeService.js
-#ifdef MOZ_DEBUG
+#if defined(ENABLE_TESTS) && defined(MOZ_DEBUG)
- @BINPATH@/components/TestInterfaceJS.js
- @BINPATH@/components/TestInterfaceJS.manifest
+ @RESPATH@/components/TestInterfaceJS.js
+ @RESPATH@/components/TestInterfaceJS.manifest
#endif
diff --git browser/installer/package-manifest.in browser/installer/package-manifest.in
index b509fd4..195345c 100644
diff --git a/www/libxul/files/patch-bug1021761 b/www/libxul/files/patch-bug1021761
index 253327b733a7..86c4d9b0f19b 100644
--- a/www/libxul/files/patch-bug1021761
+++ b/www/libxul/files/patch-bug1021761
@@ -561,8 +561,8 @@ index a962553..1f780f4 100644
/* get a pcm, disabling resampling, so we get a rate the
* hardware/dmix/pulse/etc. supports. */
-- r = snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
-+ r = WRAP(snd_pcm_open)(&pcm, "default", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
+- r = snd_pcm_open(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
++ r = WRAP(snd_pcm_open)(&pcm, CUBEB_ALSA_PCM_NAME, SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
if (r < 0) {
return CUBEB_ERROR;
}
@@ -1070,11 +1070,11 @@ index 8b7a0dd..31212ce 100644
+CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
-diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
+diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build
index 991f03f..3d99eb5 100644
---- media/webrtc/signaling/test/moz.build
-+++ media/webrtc/signaling/test/moz.build
-@@ -112,8 +112,8 @@ if CONFIG['JS_SHARED_LIBRARY']:
+--- media/webrtc/signaling/test/common.build
++++ media/webrtc/signaling/test/common.build
+@@ -102,8 +102,8 @@ USE_LIBS += ['mozglue']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
OS_LIBS += CONFIG['REALTIME_LIBS']
diff --git a/www/libxul/files/patch-bug1026499 b/www/libxul/files/patch-bug1026499
deleted file mode 100644
index e446f22c64cf..000000000000
--- a/www/libxul/files/patch-bug1026499
+++ /dev/null
@@ -1,68 +0,0 @@
-commit 8d0efe4
-Author: Martin Husemann <martin@NetBSD.org>
-Date: Wed Jun 18 18:12:22 2014 +0200
-
- Bug 1026499 - Use MOZ_ALIGNED_DECL to declare union members in ipdl value declarations. r=bsmedberg
----
- ipc/ipdl/ipdl/cxx/ast.py | 7 ++++---
- ipc/ipdl/ipdl/cxx/cgen.py | 5 ++++-
- ipc/ipdl/ipdl/lower.py | 2 +-
- 4 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git ipc/ipdl/ipdl/cxx/ast.py ipc/ipdl/ipdl/cxx/ast.py
-index 3180a65..c2d945b 100644
---- ipc/ipdl/ipdl/cxx/ast.py
-+++ ipc/ipdl/ipdl/cxx/ast.py
-@@ -336,12 +336,13 @@ Type.VOID = Type('void')
- Type.VOIDPTR = Type('void', ptr=1)
-
- class TypeArray(Node):
-- def __init__(self, basetype, nmemb):
-- '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr'''
-+ def __init__(self, basetype, nmemb, alignType):
-+ '''the type |basetype DECLNAME[nmemb]|. |nmemb| is an Expr, |alignType| is a type'''
- self.basetype = basetype
- self.nmemb = nmemb
-+ self.alignType = alignType
- def __deepcopy__(self, memo):
-- return TypeArray(deepcopy(self.basetype, memo), nmemb)
-+ return TypeArray(deepcopy(self.basetype, memo), nmemb, alignType)
-
- class TypeEnum(Node):
- def __init__(self, name=None):
-diff --git ipc/ipdl/ipdl/cxx/cgen.py ipc/ipdl/ipdl/cxx/cgen.py
-index 48b0988..bc914cf 100644
---- ipc/ipdl/ipdl/cxx/cgen.py
-+++ ipc/ipdl/ipdl/cxx/cgen.py
-@@ -101,6 +101,7 @@ class CxxCodeGen(CodePrinter, Visitor):
- def visitDecl(self, d):
- # C-syntax arrays make code generation much more annoying
- if isinstance(d.type, TypeArray):
-+ self.write('MOZ_ALIGNED_DECL(')
- d.type.basetype.accept(self)
- else:
- d.type.accept(self)
-@@ -111,7 +112,9 @@ class CxxCodeGen(CodePrinter, Visitor):
- if isinstance(d.type, TypeArray):
- self.write('[')
- d.type.nmemb.accept(self)
-- self.write(']')
-+ self.write('], MOZ_ALIGNOF(')
-+ d.type.alignType.accept(self)
-+ self.write('))')
-
- def visitParam(self, p):
- self.visitDecl(p)
-diff --git ipc/ipdl/ipdl/lower.py ipc/ipdl/ipdl/lower.py
-index e97a34c..9360f3c 100644
---- ipc/ipdl/ipdl/lower.py
-+++ ipc/ipdl/ipdl/lower.py
-@@ -768,7 +768,7 @@ IPDL union type."""
- if self.recursive:
- return self.ptrToType()
- else:
-- return TypeArray(Type('char'), ExprSizeof(self.internalType()))
-+ return TypeArray(Type('char'), ExprSizeof(self.internalType()), self.internalType())
-
- def unionValue(self):
- # NB: knows that Union's storage C union is named |mValue|
diff --git a/www/libxul/files/patch-bug1073117 b/www/libxul/files/patch-bug1073117
deleted file mode 100644
index 7708023aee70..000000000000
--- a/www/libxul/files/patch-bug1073117
+++ /dev/null
@@ -1,877 +0,0 @@
-diff --git widget/gtk/gtk2drawing.c widget/gtk/gtk2drawing.c
-index 34f22af..1b950ab 100644
---- widget/gtk/gtk2drawing.c
-+++ widget/gtk/gtk2drawing.c
-@@ -831,7 +831,7 @@ moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
- return MOZ_GTK_SUCCESS;
- }
-
--gint
-+static gint
- moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
- gint* focus_width, gint* focus_pad)
- {
-@@ -928,7 +928,7 @@ moz_gtk_splitter_get_metrics(gint orientation, gint* size)
- return MOZ_GTK_SUCCESS;
- }
-
--gint
-+static gint
- moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
- {
- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
-diff --git widget/gtk/gtk3drawing.c widget/gtk/gtk3drawing.c
-index 08a58d6..7fef6fa 100644
---- widget/gtk/gtk3drawing.c
-+++ widget/gtk/gtk3drawing.c
-@@ -65,6 +65,7 @@ static GtkWidget* gScrolledWindowWidget;
- static style_prop_t style_prop_func;
- static gboolean have_arrow_scaling;
- static gboolean checkbox_check_state;
-+static gboolean notebook_has_tab_gap;
- static gboolean is_initialized;
-
- #define ARROW_UP 0
-@@ -725,6 +726,14 @@ moz_gtk_init()
- else
- checkbox_check_state = GTK_STATE_FLAG_ACTIVE;
-
-+ if(!gtk_check_version(3, 12, 0)) {
-+ ensure_tab_widget();
-+ gtk_widget_style_get(gTabWidget, "has-tab-gap", &notebook_has_tab_gap, NULL);
-+ }
-+ else {
-+ notebook_has_tab_gap = TRUE;
-+ }
-+
- /* Add style property to GtkEntry.
- * Adding the style property to the normal GtkEntry class means that it
- * will work without issues inside GtkComboBox and for Spinbuttons. */
-@@ -762,37 +771,17 @@ moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing)
- gint
- moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width)
- {
-- gboolean interior_focus;
-- gint focus_width = 0;
-+ GtkBorder border;
-+ GtkBorder padding;
-+ GtkStyleContext *style;
-
- ensure_entry_widget();
-- gtk_widget_style_get(gEntryWidget,
-- "interior-focus", &interior_focus,
-- "focus-line-width", &focus_width,
-- NULL);
-- if (interior_focus) {
-- GtkBorder border;
-- GtkStyleContext *style = gtk_widget_get_style_context(gEntryWidget);
-- gtk_style_context_get_border(style, 0, &border);
-- *focus_h_width = border.left + focus_width;
-- *focus_v_width = border.top + focus_width;
-- } else {
-- *focus_h_width = focus_width;
-- *focus_v_width = focus_width;
-- }
-- return MOZ_GTK_SUCCESS;
--}
--
--gint
--moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
-- gint* focus_width, gint* focus_pad)
--{
-- gtk_widget_style_get (widget,
-- "interior-focus", interior_focus,
-- "focus-line-width", focus_width,
-- "focus-padding", focus_pad,
-- NULL);
-+ style = gtk_widget_get_style_context(gEntryWidget);
-
-+ gtk_style_context_get_border(style, 0, &border);
-+ gtk_style_context_get_padding(style, 0, &padding);
-+ *focus_h_width = border.left + padding.left;
-+ *focus_v_width = border.top + padding.top;
- return MOZ_GTK_SUCCESS;
- }
-
-@@ -880,24 +860,6 @@ moz_gtk_splitter_get_metrics(gint orientation, gint* size)
- return MOZ_GTK_SUCCESS;
- }
-
--gint
--moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border)
--{
-- static const GtkBorder default_inner_border = { 1, 1, 1, 1 };
-- GtkBorder *tmp_border;
--
-- gtk_widget_style_get (widget, "inner-border", &tmp_border, NULL);
--
-- if (tmp_border) {
-- *inner_border = *tmp_border;
-- gtk_border_free(tmp_border);
-- }
-- else
-- *inner_border = default_inner_border;
--
-- return MOZ_GTK_SUCCESS;
--}
--
- static gint
- moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
- GtkWidgetState* state,
-@@ -908,19 +870,8 @@ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
- GtkStyleContext* style = gtk_widget_get_style_context(widget);
- gint x = rect->x, y=rect->y, width=rect->width, height=rect->height;
-
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
-- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
- gtk_widget_set_direction(widget, direction);
--
-- if (!interior_focus && state->focused) {
-- x += focus_width + focus_pad;
-- y += focus_width + focus_pad;
-- width -= 2 * (focus_width + focus_pad);
-- height -= 2 * (focus_width + focus_pad);
-- }
--
-+
- gtk_style_context_save(style);
- gtk_style_context_set_state(style, state_flags);
-
-@@ -953,20 +904,12 @@ moz_gtk_button_paint(cairo_t *cr, GdkRectangle* rect,
- }
-
- if (state->focused) {
-- if (interior_focus) {
-- GtkBorder border;
-- gtk_style_context_get_border(style, state_flags, &border);
-- x += border.left + focus_pad;
-- y += border.top + focus_pad;
-- width -= 2 * (border.left + focus_pad);
-- height -= 2 * (border.top + focus_pad);
-- } else {
-- x -= focus_width + focus_pad;
-- y -= focus_width + focus_pad;
-- width += 2 * (focus_width + focus_pad);
-- height += 2 * (focus_width + focus_pad);
-- }
--
-+ GtkBorder border;
-+ gtk_style_context_get_border(style, state_flags, &border);
-+ x += border.left;
-+ y += border.top;
-+ width -= (border.left + border.right);
-+ height -= (border.top + border.bottom);
- gtk_render_focus(style, cr, x, y, width, height);
- }
- gtk_style_context_restore(style);
-@@ -1056,33 +999,23 @@ calculate_button_inner_rect(GtkWidget* button, GdkRectangle* rect,
- GtkTextDirection direction,
- gboolean ignore_focus)
- {
-- GtkBorder inner_border;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
- GtkStyleContext* style;
- GtkBorder border;
-+ GtkBorder padding = {0, 0, 0, 0};
-
- style = gtk_widget_get_style_context(button);
-
- /* This mirrors gtkbutton's child positioning */
-- moz_gtk_button_get_inner_border(button, &inner_border);
-- moz_gtk_widget_get_focus(button, &interior_focus,
-- &focus_width, &focus_pad);
--
-- if (ignore_focus)
-- focus_width = focus_pad = 0;
--
- gtk_style_context_get_border(style, 0, &border);
-+ if (!ignore_focus)
-+ gtk_style_context_get_padding(style, 0, &padding);
-
-- inner_rect->x = rect->x + border.left + focus_width + focus_pad;
-- inner_rect->x += direction == GTK_TEXT_DIR_LTR ?
-- inner_border.left : inner_border.right;
-- inner_rect->y = rect->y + inner_border.top + border.top +
-- focus_width + focus_pad;
-- inner_rect->width = MAX(1, rect->width - inner_border.left -
-- inner_border.right - (border.left + focus_pad + focus_width) * 2);
-- inner_rect->height = MAX(1, rect->height - inner_border.top -
-- inner_border.bottom - (border.top + focus_pad + focus_width) * 2);
-+ inner_rect->x = rect->x + border.left + padding.left;
-+ inner_rect->y = rect->y + padding.top + border.top;
-+ inner_rect->width = MAX(1, rect->width - padding.left -
-+ padding.right - border.left * 2);
-+ inner_rect->height = MAX(1, rect->height - padding.top -
-+ padding.bottom - border.top * 2);
-
- return MOZ_GTK_SUCCESS;
- }
-@@ -1457,19 +1390,12 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
- {
- gint x = rect->x, y = rect->y, width = rect->width, height = rect->height;
- GtkStyleContext* style;
-- gboolean interior_focus;
-- gint focus_width;
- int draw_focus_outline_only = state->depressed; // NS_THEME_FOCUS_OUTLINE
-
- gtk_widget_set_direction(widget, direction);
-
- style = gtk_widget_get_style_context(widget);
-
-- gtk_widget_style_get(widget,
-- "interior-focus", &interior_focus,
-- "focus-line-width", &focus_width,
-- NULL);
--
- if (draw_focus_outline_only) {
- // Inflate the given 'rect' with the focus outline size.
- gint h, v;
-@@ -1501,14 +1427,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
- /* This will get us the lit borders that focused textboxes enjoy on
- * some themes. */
- gtk_style_context_set_state(style, GTK_STATE_FLAG_FOCUSED);
-- if (!interior_focus) {
-- /* Indent the border a little bit if we have exterior focus
-- (this is what GTK does to draw native entries) */
-- x += focus_width;
-- y += focus_width;
-- width -= 2 * focus_width;
-- height -= 2 * focus_width;
-- }
- }
-
- if (state->disabled) {
-@@ -1520,11 +1438,6 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect,
- }
- gtk_render_frame(style, cr, x, y, width, height);
-
-- if (state->focused && !state->disabled) {
-- if (!interior_focus) {
-- gtk_render_focus(style, cr, rect->x, rect->y, rect->width, rect->height);
-- }
-- }
- gtk_style_context_restore(style);
-
- return MOZ_GTK_SUCCESS;
-@@ -1829,8 +1742,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
- GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state);
- GtkStyleContext* style;
- GtkWidget *widget;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
-
- if (isradio) {
- ensure_radiobutton_widget();
-@@ -1843,7 +1754,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
-
- style = gtk_widget_get_style_context(widget);
- gtk_style_context_save(style);
-- moz_gtk_widget_get_focus(widget, &interior_focus, &focus_width, &focus_pad);
- gtk_style_context_set_state(style, state_flags);
-
- /* this is for drawing a prelight box */
-@@ -1852,10 +1762,6 @@ moz_gtk_container_paint(cairo_t *cr, GdkRectangle* rect,
- rect->x, rect->y, rect->width, rect->height);
- }
-
-- if (state->focused && !interior_focus) {
-- gtk_render_focus(style, cr,
-- rect->x, rect->y, rect->width, rect->height);
-- }
- gtk_style_context_restore(style);
-
- return MOZ_GTK_SUCCESS;
-@@ -1868,7 +1774,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr, GdkRectangle* rect,
- {
- GtkStyleContext *style;
- GtkWidget *widget;
-- gboolean interior_focus;
-
- if (!state->focused)
- return MOZ_GTK_SUCCESS;
-@@ -1889,10 +1794,6 @@ moz_gtk_toggle_label_paint(cairo_t *cr, GdkRectangle* rect,
- }
- gtk_widget_set_direction(widget, direction);
-
-- gtk_widget_style_get(widget, "interior-focus", &interior_focus, NULL);
-- if (!interior_focus)
-- return MOZ_GTK_SUCCESS;
--
- gtk_style_context_set_state(style, GetStateFlagsFromGtkWidgetState(state));
- gtk_render_focus(style, cr,
- rect->x, rect->y, rect->width, rect->height);
-@@ -2105,6 +2015,9 @@ moz_gtk_get_tab_thickness(void)
- GtkStyleContext * style;
-
- ensure_tab_widget();
-+ if (!notebook_has_tab_gap)
-+ return 0; /* tabs do not overdraw the tabpanel border with "no gap" style */
-+
- style = gtk_widget_get_style_context(gTabWidget);
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_NOTEBOOK);
- gtk_style_context_get_border(style, 0, &border);
-@@ -2150,7 +2063,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectangle* rect,
- ensure_tab_widget();
- gtk_widget_set_direction(gTabWidget, direction);
-
-- style = gtk_widget_get_style_context(gTabWidget);
-+ style = gtk_widget_get_style_context(gTabWidget);
- gtk_style_context_save(style);
- moz_gtk_tab_prepare_style_context(style, flags);
-
-@@ -2167,143 +2080,155 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectangle* rect,
-
- focusRect = backRect = tabRect;
-
-- if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
-- /* Only draw the tab */
-- gtk_render_extension(style, cr,
-- tabRect.x, tabRect.y, tabRect.width, tabRect.height,
-- (flags & MOZ_GTK_TAB_BOTTOM) ?
-- GTK_POS_TOP : GTK_POS_BOTTOM );
-- } else {
-- /* Draw the tab and the gap
-- * We want the gap to be positioned exactly on the tabpanel top
-- * border; since tabbox.css may set a negative margin so that the tab
-- * frame rect already overlaps the tabpanel frame rect, we need to take
-- * that into account when drawing. To that effect, nsNativeThemeGTK
-- * passes us this negative margin (bmargin in the graphic below) in the
-- * lowest bits of |flags|. We use it to set gap_voffset, the distance
-- * between the top of the gap and the bottom of the tab (resp. the
-- * bottom of the gap and the top of the tab when we draw a bottom tab),
-- * while ensuring that the gap always touches the border of the tab,
-- * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
-- * with big negative or positive margins.
-- * Here is a graphical explanation in the case of top tabs:
-- * ___________________________
-- * / \
-- * | T A B |
-- * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
-- * : ^ bmargin : ^
-- * : | (-negative margin, : |
-- * bottom : v passed in flags) : | gap_height
-- * of -> :.............................: | (the size of the
-- * the tab . part of the gap . | tabpanel top border)
-- * . outside of the tab . v
-- * ----------------------------------------------
-- *
-- * To draw the gap, we use gtk_paint_box_gap(), see comment in
-- * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
-- * which should suffice to ensure that the only visible border is the
-- * pierced one. If the tab is in the middle, we make the box_gap begin
-- * a bit to the left of the tab and end a bit to the right, adjusting
-- * the gap position so it still is under the tab, because we want the
-- * rendering of a gap in the middle of a tabpanel. This is the role of
-- * the gints gap_{l,r}_offset. On the contrary, if the tab is the
-- * first, we align the start border of the box_gap with the start
-- * border of the tab (left if LTR, right if RTL), by setting the
-- * appropriate offset to 0.*/
-- gint gap_loffset, gap_roffset, gap_voffset, gap_height;
--
-- /* Get height needed by the gap */
-- gap_height = moz_gtk_get_tab_thickness();
--
-- /* Extract gap_voffset from the first bits of flags */
-- gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
-- if (gap_voffset > gap_height)
-- gap_voffset = gap_height;
--
-- /* Set gap_{l,r}_offset to appropriate values */
-- gap_loffset = gap_roffset = 20; /* should be enough */
-- if (flags & MOZ_GTK_TAB_FIRST) {
-- if (direction == GTK_TEXT_DIR_RTL)
-- gap_roffset = initial_gap;
-- else
-- gap_loffset = initial_gap;
-- }
--
-- if (flags & MOZ_GTK_TAB_BOTTOM) {
-- /* Draw the tab on bottom */
-- focusRect.y += gap_voffset;
-- focusRect.height -= gap_voffset;
--
-+ if (notebook_has_tab_gap) {
-+ if ((flags & MOZ_GTK_TAB_SELECTED) == 0) {
-+ /* Only draw the tab */
- gtk_render_extension(style, cr,
-- tabRect.x, tabRect.y + gap_voffset, tabRect.width,
-- tabRect.height - gap_voffset, GTK_POS_TOP);
--
-- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
--
-- backRect.y += (gap_voffset - gap_height);
-- backRect.height = gap_height;
--
-- /* Draw the gap; erase with background color before painting in
-- * case theme does not */
-- gtk_render_background(style, cr, backRect.x, backRect.y,
-- backRect.width, backRect.height);
-- cairo_save(cr);
-- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-- cairo_clip(cr);
--
-- gtk_render_frame_gap(style, cr,
-- tabRect.x - gap_loffset,
-- tabRect.y + gap_voffset - 3 * gap_height,
-- tabRect.width + gap_loffset + gap_roffset,
-- 3 * gap_height, GTK_POS_BOTTOM,
-- gap_loffset, gap_loffset + tabRect.width);
-- cairo_restore(cr);
-+ tabRect.x, tabRect.y, tabRect.width, tabRect.height,
-+ (flags & MOZ_GTK_TAB_BOTTOM) ?
-+ GTK_POS_TOP : GTK_POS_BOTTOM );
- } else {
-- /* Draw the tab on top */
-- focusRect.height -= gap_voffset;
-- gtk_render_extension(style, cr,
-- tabRect.x, tabRect.y, tabRect.width,
-- tabRect.height - gap_voffset, GTK_POS_BOTTOM);
--
-- gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
--
-- backRect.y += (tabRect.height - gap_voffset);
-- backRect.height = gap_height;
--
-- /* Draw the gap; erase with background color before painting in
-- * case theme does not */
-- gtk_render_background(style, cr, backRect.x, backRect.y,
-- backRect.width, backRect.height);
--
-- cairo_save(cr);
-- cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-- cairo_clip(cr);
--
-- gtk_render_frame_gap(style, cr,
-- tabRect.x - gap_loffset,
-- tabRect.y + tabRect.height - gap_voffset,
-- tabRect.width + gap_loffset + gap_roffset,
-- 3 * gap_height, GTK_POS_TOP,
-- gap_loffset, gap_loffset + tabRect.width);
-- cairo_restore(cr);
-+ /* Draw the tab and the gap
-+ * We want the gap to be positioned exactly on the tabpanel top
-+ * border; since tabbox.css may set a negative margin so that the tab
-+ * frame rect already overlaps the tabpanel frame rect, we need to take
-+ * that into account when drawing. To that effect, nsNativeThemeGTK
-+ * passes us this negative margin (bmargin in the graphic below) in the
-+ * lowest bits of |flags|. We use it to set gap_voffset, the distance
-+ * between the top of the gap and the bottom of the tab (resp. the
-+ * bottom of the gap and the top of the tab when we draw a bottom tab),
-+ * while ensuring that the gap always touches the border of the tab,
-+ * i.e. 0 <= gap_voffset <= gap_height, to avoid surprinsing results
-+ * with big negative or positive margins.
-+ * Here is a graphical explanation in the case of top tabs:
-+ * ___________________________
-+ * / \
-+ * | T A B |
-+ * ----------|. . . . . . . . . . . . . . .|----- top of tabpanel
-+ * : ^ bmargin : ^
-+ * : | (-negative margin, : |
-+ * bottom : v passed in flags) : | gap_height
-+ * of -> :.............................: | (the size of the
-+ * the tab . part of the gap . | tabpanel top border)
-+ * . outside of the tab . v
-+ * ----------------------------------------------
-+ *
-+ * To draw the gap, we use gtk_paint_box_gap(), see comment in
-+ * moz_gtk_tabpanels_paint(). This box_gap is made 3 * gap_height tall,
-+ * which should suffice to ensure that the only visible border is the
-+ * pierced one. If the tab is in the middle, we make the box_gap begin
-+ * a bit to the left of the tab and end a bit to the right, adjusting
-+ * the gap position so it still is under the tab, because we want the
-+ * rendering of a gap in the middle of a tabpanel. This is the role of
-+ * the gints gap_{l,r}_offset. On the contrary, if the tab is the
-+ * first, we align the start border of the box_gap with the start
-+ * border of the tab (left if LTR, right if RTL), by setting the
-+ * appropriate offset to 0.*/
-+ gint gap_loffset, gap_roffset, gap_voffset, gap_height;
-+
-+ /* Get height needed by the gap */
-+ gap_height = moz_gtk_get_tab_thickness();
-+
-+ /* Extract gap_voffset from the first bits of flags */
-+ gap_voffset = flags & MOZ_GTK_TAB_MARGIN_MASK;
-+ if (gap_voffset > gap_height)
-+ gap_voffset = gap_height;
-+
-+ /* Set gap_{l,r}_offset to appropriate values */
-+ gap_loffset = gap_roffset = 20; /* should be enough */
-+ if (flags & MOZ_GTK_TAB_FIRST) {
-+ if (direction == GTK_TEXT_DIR_RTL)
-+ gap_roffset = initial_gap;
-+ else
-+ gap_loffset = initial_gap;
-+ }
-+
-+ if (flags & MOZ_GTK_TAB_BOTTOM) {
-+ /* Draw the tab on bottom */
-+ focusRect.y += gap_voffset;
-+ focusRect.height -= gap_voffset;
-+
-+ gtk_render_extension(style, cr,
-+ tabRect.x, tabRect.y + gap_voffset, tabRect.width,
-+ tabRect.height - gap_voffset, GTK_POS_TOP);
-+
-+ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
-+
-+ backRect.y += (gap_voffset - gap_height);
-+ backRect.height = gap_height;
-+
-+ /* Draw the gap; erase with background color before painting in
-+ * case theme does not */
-+ gtk_render_background(style, cr, backRect.x, backRect.y,
-+ backRect.width, backRect.height);
-+ cairo_save(cr);
-+ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-+ cairo_clip(cr);
-+
-+ gtk_render_frame_gap(style, cr,
-+ tabRect.x - gap_loffset,
-+ tabRect.y + gap_voffset - 3 * gap_height,
-+ tabRect.width + gap_loffset + gap_roffset,
-+ 3 * gap_height, GTK_POS_BOTTOM,
-+ gap_loffset, gap_loffset + tabRect.width);
-+ cairo_restore(cr);
-+ } else {
-+ /* Draw the tab on top */
-+ focusRect.height -= gap_voffset;
-+ gtk_render_extension(style, cr,
-+ tabRect.x, tabRect.y, tabRect.width,
-+ tabRect.height - gap_voffset, GTK_POS_BOTTOM);
-+
-+ gtk_style_context_remove_region(style, GTK_STYLE_REGION_TAB);
-+
-+ backRect.y += (tabRect.height - gap_voffset);
-+ backRect.height = gap_height;
-+
-+ /* Draw the gap; erase with background color before painting in
-+ * case theme does not */
-+ gtk_render_background(style, cr, backRect.x, backRect.y,
-+ backRect.width, backRect.height);
-+
-+ cairo_save(cr);
-+ cairo_rectangle(cr, backRect.x, backRect.y, backRect.width, backRect.height);
-+ cairo_clip(cr);
-+
-+ gtk_render_frame_gap(style, cr,
-+ tabRect.x - gap_loffset,
-+ tabRect.y + tabRect.height - gap_voffset,
-+ tabRect.width + gap_loffset + gap_roffset,
-+ 3 * gap_height, GTK_POS_TOP,
-+ gap_loffset, gap_loffset + tabRect.width);
-+ cairo_restore(cr);
-+ }
- }
-+ } else {
-+ gtk_render_background(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
-+ gtk_render_frame(style, cr, tabRect.x, tabRect.y, tabRect.width, tabRect.height);
- }
-
-+ gtk_style_context_restore(style);
-+
- if (state->focused) {
- /* Paint the focus ring */
-- GtkBorder border;
-- gtk_style_context_get_border(style, GetStateFlagsFromGtkWidgetState(state), &border);
-+ GtkBorder padding;
-+
-+ gtk_style_context_save(style);
-+ moz_gtk_tab_prepare_style_context(style, flags);
-
-- focusRect.x += border.left;
-- focusRect.width -= (border.left + border.right);
-- focusRect.y += border.top;
-- focusRect.height -= (border.top + border.bottom);
-+ gtk_style_context_get_padding(style, GetStateFlagsFromGtkWidgetState(state), &padding);
-+
-+ focusRect.x += padding.left;
-+ focusRect.width -= (padding.left + padding.right);
-+ focusRect.y += padding.top;
-+ focusRect.height -= (padding.top + padding.bottom);
-
- gtk_render_focus(style, cr,
- focusRect.x, focusRect.y, focusRect.width, focusRect.height);
-+
-+ gtk_style_context_restore(style);
- }
-
-- gtk_style_context_restore(style);
-
- return MOZ_GTK_SUCCESS;
- }
-@@ -2684,26 +2609,18 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- switch (widget) {
- case MOZ_GTK_BUTTON:
- {
-- GtkBorder inner_border;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
- ensure_button_widget();
-+ style = gtk_widget_get_style_context(gButtonWidget);
-+
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget));
-
- /* Don't add this padding in HTML, otherwise the buttons will
- become too big and stuff the layout. */
- if (!inhtml) {
-- moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad);
-- moz_gtk_button_get_inner_border(gButtonWidget, &inner_border);
-- *left += focus_width + focus_pad + inner_border.left;
-- *right += focus_width + focus_pad + inner_border.right;
-- *top += focus_width + focus_pad + inner_border.top;
-- *bottom += focus_width + focus_pad + inner_border.bottom;
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
- }
-
-- moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget),
-- left, top, right, bottom);
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_ENTRY:
-@@ -2717,7 +2610,13 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- ensure_entry_widget();
- style = gtk_widget_get_style_context(gEntryWidget);
- moz_gtk_add_style_border(style, left, top, right, bottom);
-- moz_gtk_add_style_padding(style, left, top, right, bottom);
-+
-+ /* Use the document padding in HTML
-+ and GTK style padding in XUL. */
-+ if (!inhtml) {
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
-+ }
-+
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_TREEVIEW:
-@@ -2737,23 +2636,15 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- * assigned.
- * That is why the following code is the same as for MOZ_GTK_BUTTON.
- * */
--
-- GtkBorder inner_border;
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
-+ GtkStyleContext *style;
-
- ensure_tree_header_cell_widget();
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gTreeHeaderCellWidget));
-
-- moz_gtk_widget_get_focus(gTreeHeaderCellWidget, &interior_focus, &focus_width, &focus_pad);
-- moz_gtk_button_get_inner_border(gTreeHeaderCellWidget, &inner_border);
-- *left += focus_width + focus_pad + inner_border.left;
-- *right += focus_width + focus_pad + inner_border.right;
-- *top += focus_width + focus_pad + inner_border.top;
-- *bottom += focus_width + focus_pad + inner_border.bottom;
--
-- moz_gtk_add_style_border(gtk_widget_get_style_context(gTreeHeaderCellWidget),
-- left, top, right, bottom);
-+ style = gtk_widget_get_style_context(gTreeHeaderCellWidget);
-+
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_TREE_HEADER_SORTARROW:
-@@ -2773,29 +2664,23 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- /* We need to account for the arrow on the dropdown, so text
- * doesn't come too close to the arrow, or in some cases spill
- * into the arrow. */
-- gboolean ignored_interior_focus, wide_separators;
-- gint focus_width, focus_pad, separator_width;
-+ gboolean wide_separators;
-+ gint separator_width;
- GtkRequisition arrow_req;
- GtkBorder border;
-
- ensure_combo_box_widgets();
-
-- *left = gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
-+ *left = *top = *right = *bottom =
-+ gtk_container_get_border_width(GTK_CONTAINER(gComboBoxButtonWidget));
-+
-+ style = gtk_widget_get_style_context(gComboBoxButtonWidget);
-
- if (!inhtml) {
-- moz_gtk_widget_get_focus(gComboBoxButtonWidget,
-- &ignored_interior_focus,
-- &focus_width, &focus_pad);
-- *left += focus_width + focus_pad;
-+ moz_gtk_add_style_padding(style, left, top, right, bottom);
- }
-
-- style = gtk_widget_get_style_context(gComboBoxButtonWidget);
-- gtk_style_context_get_border(style, 0, &border);
--
-- *top = *left + border.top;
-- *left += border.left;
--
-- *right = *left; *bottom = *top;
-+ moz_gtk_add_style_border(style, left, top, right, bottom);
-
- /* If there is no separator, don't try to count its width. */
- separator_width = 0;
-@@ -2847,60 +2732,23 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- ensure_frame_widget();
- w = gFrameWidget;
- break;
-- case MOZ_GTK_CHECKBUTTON_LABEL:
-- case MOZ_GTK_RADIOBUTTON_LABEL:
-- {
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
-- /* If the focus is interior, then the label has a border of
-- (focus_width + focus_pad). */
-- if (widget == MOZ_GTK_CHECKBUTTON_LABEL) {
-- ensure_checkbox_widget();
-- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
-- &focus_width, &focus_pad);
-- }
-- else {
-- ensure_radiobutton_widget();
-- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
-- &focus_width, &focus_pad);
-- }
--
-- if (interior_focus)
-- *left = *top = *right = *bottom = (focus_width + focus_pad);
--
-- return MOZ_GTK_SUCCESS;
-- }
--
- case MOZ_GTK_CHECKBUTTON_CONTAINER:
- case MOZ_GTK_RADIOBUTTON_CONTAINER:
- {
-- gboolean interior_focus;
-- gint focus_width, focus_pad;
--
-- /* If the focus is _not_ interior, then the container has a border
-- of (focus_width + focus_pad). */
- if (widget == MOZ_GTK_CHECKBUTTON_CONTAINER) {
- ensure_checkbox_widget();
-- moz_gtk_widget_get_focus(gCheckboxWidget, &interior_focus,
-- &focus_width, &focus_pad);
- w = gCheckboxWidget;
- } else {
- ensure_radiobutton_widget();
-- moz_gtk_widget_get_focus(gRadiobuttonWidget, &interior_focus,
-- &focus_width, &focus_pad);
- w = gRadiobuttonWidget;
- }
-+ style = gtk_widget_get_style_context(w);
-
- *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(w));
--
-- if (!interior_focus) {
-- *left += (focus_width + focus_pad);
-- *right += (focus_width + focus_pad);
-- *top += (focus_width + focus_pad);
-- *bottom += (focus_width + focus_pad);
-- }
--
-+ moz_gtk_add_style_border(style,
-+ left, top, right, bottom);
-+ moz_gtk_add_style_padding(style,
-+ left, top, right, bottom);
- return MOZ_GTK_SUCCESS;
- }
- case MOZ_GTK_MENUPOPUP:
-@@ -2927,6 +2775,8 @@ moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
- return MOZ_GTK_SUCCESS;
- }
- /* These widgets have no borders, since they are not containers. */
-+ case MOZ_GTK_CHECKBUTTON_LABEL:
-+ case MOZ_GTK_RADIOBUTTON_LABEL:
- case MOZ_GTK_SPLITTER_HORIZONTAL:
- case MOZ_GTK_SPLITTER_VERTICAL:
- case MOZ_GTK_CHECKBUTTON:
-@@ -2975,11 +2849,7 @@ moz_gtk_get_tab_border(gint* left, gint* top, gint* right, gint* bottom,
- gtk_style_context_save(style);
- moz_gtk_tab_prepare_style_context(style, flags);
-
-- // TODO add_style_border() should be replaced
-- // with focus-line-width and focus-padding
-- // see Bug 877605
- *left = *top = *right = *bottom = 0;
-- moz_gtk_add_style_border(style, left, top, right, bottom);
- moz_gtk_add_style_padding(style, left, top, right, bottom);
-
- gtk_widget_style_get (gTabWidget, "tab-curvature", &tab_curvature, NULL);
-@@ -2990,16 +2860,9 @@ moz_gtk_get_tab_border(gint* left, gint* top, gint* right, gint* bottom,
- int initial_gap;
- gtk_widget_style_get (gTabWidget, "initial-gap", &initial_gap, NULL);
- if (direction == GTK_TEXT_DIR_RTL)
-- *right += initial_gap;
-+ *right += initial_gap;
- else
-- *left += initial_gap;
-- }
--
-- // Top tabs have no bottom border, bottom tabs have no top border
-- if (flags & MOZ_GTK_TAB_BOTTOM) {
-- *top = 0;
-- } else {
-- *bottom = 0;
-+ *left += initial_gap;
- }
-
- gtk_style_context_restore(style);
-diff --git widget/gtk/gtkdrawing.h widget/gtk/gtkdrawing.h
-index 1938e8f..5f71cfd 100644
---- widget/gtk/gtkdrawing.h
-+++ widget/gtk/gtkdrawing.h
-@@ -293,16 +293,6 @@ moz_gtk_checkbox_get_metrics(gint* indicator_size, gint* indicator_spacing);
- gint
- moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
-
--/**
-- * Get the inner-border value for a GtkButton widget (button or tree header)
-- * widget: [IN] the widget to get the border value for
-- * inner_border: [OUT] the inner border
-- *
-- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-- */
--gint
--moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
--
- /** Get the extra size for the focus ring for outline:auto.
- * widget: [IN] the widget to get the focus metrics for
- * focus_h_width: [OUT] the horizontal width
-@@ -313,19 +303,6 @@ moz_gtk_button_get_inner_border(GtkWidget* widget, GtkBorder* inner_border);
- gint
- moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
-
--/** Get the focus metrics for a treeheadercell, button, checkbox, or radio button.
-- * widget: [IN] the widget to get the focus metrics for
-- * interior_focus: [OUT] whether the focus is drawn around the
-- * label (TRUE) or around the whole container (FALSE)
-- * focus_width: [OUT] the width of the focus line
-- * focus_pad: [OUT] the padding between the focus line and children
-- *
-- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
-- */
--gint
--moz_gtk_widget_get_focus(GtkWidget* widget, gboolean* interior_focus,
-- gint* focus_width, gint* focus_pad);
--
- /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
- * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
- *
-diff --git widget/gtk/nsNativeThemeGTK.cpp widget/gtk/nsNativeThemeGTK.cpp
-index e5e1867..76d28e3 100644
---- widget/gtk/nsNativeThemeGTK.cpp
-+++ widget/gtk/nsNativeThemeGTK.cpp
-@@ -761,6 +761,8 @@ nsNativeThemeGTK::GetExtraSizeForWidget(nsIFrame* aFrame, uint8_t aWidgetType,
- return false;
-
- gint gap_height = moz_gtk_get_tab_thickness();
-+ if (!gap_height)
-+ return false;
-
- int32_t extra = gap_height - GetTabMarginPixels(aFrame);
- if (extra <= 0)
diff --git a/www/libxul/files/patch-bug1138845 b/www/libxul/files/patch-bug1138845
deleted file mode 100644
index 12a9542f538f..000000000000
--- a/www/libxul/files/patch-bug1138845
+++ /dev/null
@@ -1,134 +0,0 @@
-commit 4b5b332
-Author: Mike Hommey <mh+mozilla@glandium.org>
-Date: Tue Mar 3 18:41:13 2015 +0900
-
- Bug 1138845 - Don't require atk-bridge for gtk+3 builds. r=tbsaunde
----
- accessible/atk/Platform.cpp | 29 +++++++++++++++++++----------
- config/system-headers | 1 -
- configure.in | 2 +-
- 3 files changed, 20 insertions(+), 12 deletions(-)
-
-diff --git accessible/atk/Platform.cpp accessible/atk/Platform.cpp
-index a2afd96..2ed5e0b 100644
---- accessible/atk/Platform.cpp
-+++ accessible/atk/Platform.cpp
-@@ -18,8 +18,9 @@
- #include <dbus/dbus.h>
- #endif
- #include <gtk/gtk.h>
-+
- #if (MOZ_WIDGET_GTK == 3)
--#include <atk-bridge.h>
-+extern "C" __attribute__((weak,visibility("default"))) int atk_bridge_adaptor_init(int*, char **[]);
- #endif
-
- using namespace mozilla;
-@@ -46,7 +47,6 @@ static gulong sToplevel_hide_hook = 0;
-
- GType g_atk_hyperlink_impl_type = G_TYPE_INVALID;
-
--#if (MOZ_WIDGET_GTK == 2)
- struct GnomeAccessibilityModule
- {
- const char *libName;
-@@ -67,11 +67,13 @@ static GnomeAccessibilityModule sAtkBridge = {
- "gnome_accessibility_module_shutdown", nullptr
- };
-
-+#if (MOZ_WIDGET_GTK == 2)
- static GnomeAccessibilityModule sGail = {
- "libgail.so", nullptr,
- "gnome_accessibility_module_init", nullptr,
- "gnome_accessibility_module_shutdown", nullptr
- };
-+#endif
-
- static nsresult
- LoadGtkModule(GnomeAccessibilityModule& aModule)
-@@ -98,7 +100,11 @@ LoadGtkModule(GnomeAccessibilityModule& aModule)
- else
- subLen = loc2 - loc1;
- nsAutoCString sub(Substring(libPath, loc1, subLen));
-+#if (MOZ_WIDGET_GTK == 2)
- sub.AppendLiteral("/gtk-2.0/modules/");
-+#else
-+ sub.AppendLiteral("/gtk-3.0/modules/");
-+#endif
- sub.Append(aModule.libName);
- aModule.lib = PR_LoadLibrary(sub.get());
- if (aModule.lib)
-@@ -123,7 +129,6 @@ LoadGtkModule(GnomeAccessibilityModule& aModule)
- }
- return NS_OK;
- }
--#endif // (MOZ_WIDGET_GTK == 2)
-
- void
- a11y::PlatformInit()
-@@ -175,14 +180,17 @@ a11y::PlatformInit()
-
- // Init atk-bridge now
- PR_SetEnv("NO_AT_BRIDGE=0");
--#if (MOZ_WIDGET_GTK == 2)
-- rv = LoadGtkModule(sAtkBridge);
-- if (NS_SUCCEEDED(rv)) {
-- (*sAtkBridge.init)();
-- }
--#else
-- atk_bridge_adaptor_init(nullptr, nullptr);
-+#if (MOZ_WIDGET_GTK == 3)
-+ if (atk_bridge_adaptor_init) {
-+ atk_bridge_adaptor_init(nullptr, nullptr);
-+ } else
- #endif
-+ {
-+ nsresult rv = LoadGtkModule(sAtkBridge);
-+ if (NS_SUCCEEDED(rv)) {
-+ (*sAtkBridge.init)();
-+ }
-+ }
-
- if (!sToplevel_event_hook_added) {
- sToplevel_event_hook_added = true;
-@@ -210,7 +218,6 @@ a11y::PlatformShutdown()
- sToplevel_hide_hook);
- }
-
--#if (MOZ_WIDGET_GTK == 2)
- if (sAtkBridge.lib) {
- // Do not shutdown/unload atk-bridge,
- // an exit function registered will take care of it
-@@ -221,6 +228,7 @@ a11y::PlatformShutdown()
- sAtkBridge.init = nullptr;
- sAtkBridge.shutdown = nullptr;
- }
-+#if (MOZ_WIDGET_GTK == 2)
- if (sGail.lib) {
- // Do not shutdown gail because
- // 1) Maybe it's not init-ed by us. e.g. GtkEmbed
-diff --git config/system-headers config/system-headers
-index 2c94a7d..cf01775 100644
---- config/system-headers
-+++ config/system-headers
-@@ -189,7 +189,6 @@ asm/signal.h
- ASRegistry.h
- assert.h
- atk/atk.h
--atk-bridge.h
- atlcom.h
- atlconv.h
- atlctl.cpp
-diff --git configure.in configure.in
-index 0bd1eb7..f3b3365 100644
---- configure.in
-+++ configure.in
-@@ -4408,7 +4408,7 @@ fi
-
- if test "$COMPILE_ENVIRONMENT"; then
- if test "$MOZ_ENABLE_GTK3"; then
-- PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 atk-bridge-2.0 $GDK_PACKAGES)
-+ PKG_CHECK_MODULES(MOZ_GTK3, gtk+-3.0 >= $GTK3_VERSION gtk+-unix-print-3.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
- MOZ_GTK3_CFLAGS="-I${_topsrcdir}/widget/gtk/compat-gtk3 $MOZ_GTK3_CFLAGS"
- dnl Contrary to MOZ_GTK2_LIBS, MOZ_GTK3_LIBS needs to be literally added to TK_LIBS instead
- dnl of a make reference because of how TK_LIBS is mangled in toolkit/library/moz.build
diff --git a/www/libxul/files/patch-bug1143686 b/www/libxul/files/patch-bug1143686
deleted file mode 100644
index d4cc2834d67e..000000000000
--- a/www/libxul/files/patch-bug1143686
+++ /dev/null
@@ -1,46 +0,0 @@
-commit e50e738
-Author: Martin Stransky <stransky@redhat.com>
-Date: Mon Mar 16 08:00:00 2015 -0400
-
- Bug 1143686 - Gtk3 - Render scrollbar thumb with margin. r=karlt
----
- widget/gtk/gtk3drawing.c | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git widget/gtk/gtk3drawing.c widget/gtk/gtk3drawing.c
-index 17f46ab..08a58d6 100644
---- widget/gtk/gtk3drawing.c
-+++ widget/gtk/gtk3drawing.c
-@@ -1230,6 +1230,7 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWidgetType widget,
- GtkStyleContext* style;
- GtkScrollbar *scrollbar;
- GtkAdjustment *adj;
-+ GtkBorder margin;
-
- ensure_scrollbar_widget();
-
-@@ -1239,15 +1240,20 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWidgetType widget,
- scrollbar = GTK_SCROLLBAR(gVertScrollbarWidget);
-
- gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
--
-+
- style = gtk_widget_get_style_context(GTK_WIDGET(scrollbar));
- gtk_style_context_save(style);
--
-+
- gtk_style_context_add_class(style, GTK_STYLE_CLASS_SLIDER);
- gtk_style_context_set_state(style, state_flags);
-
-- gtk_render_slider(style, cr, rect->x, rect->y,
-- rect->width, rect->height,
-+ gtk_style_context_get_margin (style, state_flags, &margin);
-+
-+ gtk_render_slider(style, cr,
-+ rect->x + margin.left,
-+ rect->y + margin.top,
-+ rect->width - margin.left - margin.right,
-+ rect->height - margin.top - margin.bottom,
- (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
- GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
-
diff --git a/www/libxul/files/patch-bug1144643 b/www/libxul/files/patch-bug1144643
deleted file mode 100644
index fe8150ba182c..000000000000
--- a/www/libxul/files/patch-bug1144643
+++ /dev/null
@@ -1,33 +0,0 @@
-commit a0ccc19
-Author: Martin Stransky <stransky@redhat.com>
-Date: Wed Mar 18 07:14:00 2015 -0400
-
- Bug 1144643 - Render tooltips as transparent on Gtk3. r=karlt
-
- --HG--
- extra : rebase_source : 23085532b27350ca71cbe18db071628388003f33
----
- widget/gtk/nsNativeThemeGTK.cpp | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git widget/gtk/nsNativeThemeGTK.cpp widget/gtk/nsNativeThemeGTK.cpp
-index e5e1867..26d13a5 100644
---- widget/gtk/nsNativeThemeGTK.cpp
-+++ widget/gtk/nsNativeThemeGTK.cpp
-@@ -1528,9 +1528,15 @@ nsNativeThemeGTK::GetWidgetTransparency(nsIFrame* aFrame, uint8_t aWidgetType)
- case NS_THEME_MENUPOPUP:
- case NS_THEME_WINDOW:
- case NS_THEME_DIALOG:
-- // Tooltips use gtk_paint_flat_box().
-+ return eOpaque;
-+ // Tooltips use gtk_paint_flat_box() on Gtk2
-+ // but are shaped on Gtk3
- case NS_THEME_TOOLTIP:
-+#if (MOZ_WIDGET_GTK == 2)
- return eOpaque;
-+#else
-+ return eTransparent;
-+#endif
- }
-
- return eUnknownTransparency;
diff --git a/www/libxul/files/patch-bug1148203 b/www/libxul/files/patch-bug1148203
deleted file mode 100644
index fcbe7677d3e5..000000000000
--- a/www/libxul/files/patch-bug1148203
+++ /dev/null
@@ -1,38 +0,0 @@
-# HG changeset patch
-# User Chris Double <chris.double@double.co.nz>
-# Date 1427767594 -46800
-# Tue Mar 31 15:06:34 2015 +1300
-# Node ID 858ea94746eedc4b65734f8ceedfff7021940cb2
-# Parent 1b8f36a7ee321ca62cf87424910d0e2ed6fed076
-Bug 1148203 - Fix build errors with combinations of enable/disable of ffmp4/ffmpeg/eme - r=cpearce,ted
-
-Fixes build error with all three disabled. Prevents other combinations
-that cause build errors by detecting them at configure time and displaying
-an error message.
-
-diff --git a/configure.in b/configure.in
---- configure.in
-+++ configure.in
-@@ -5316,6 +5316,10 @@ MOZ_ARG_DISABLE_BOOL(fmp4,
- MOZ_FMP4=,
- MOZ_FMP4=1)
-
-+if test -n "$MOZ_FFMPEG" -a -z "$MOZ_FMP4"; then
-+ AC_MSG_ERROR([Fragmented MP4 support must be enabled if using FFMPEG])
-+fi
-+
- if test -n "$MOZ_FMP4"; then
- AC_DEFINE(MOZ_FMP4)
- MOZ_EME=1
-diff --git a/media/libstagefright/binding/MoofParser.cpp b/media/libstagefright/binding/MoofParser.cpp
---- media/libstagefright/binding/MoofParser.cpp
-+++ media/libstagefright/binding/MoofParser.cpp
-@@ -9,7 +9,7 @@
-
- #include "prlog.h"
-
--#ifdef PR_LOGGING
-+#if defined(MOZ_FMP4) && defined(PR_LOGGING)
- extern PRLogModuleInfo* GetDemuxerLog();
-
- /* Polyfill __func__ on MSVC to pass to the log. */
diff --git a/www/libxul/files/patch-bug1233275 b/www/libxul/files/patch-bug1233275
index e99e86a74ce0..ac5d9d2cdedb 100644
--- a/www/libxul/files/patch-bug1233275
+++ b/www/libxul/files/patch-bug1233275
@@ -3,23 +3,19 @@
diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/process_util_bsd.cc
--- ipc/chromium/src/base/process_util_bsd.cc
+++ ipc/chromium/src/base/process_util_bsd.cc
-@@ -13,6 +13,7 @@
+@@ -12,10 +12,9 @@
#include <string>
+#include "nspr.h"
#include "base/eintr_wrapper.h"
- #include "base/file_util.h"
- #include "base/logging.h"
-@@ -48,7 +49,6 @@
- #ifdef HAVE_POSIX_SPAWN
- #include <spawn.h>
--extern "C" char **environ __dso_public;
- #endif
+-extern "C" char **environ __attribute__((__visibility__("default")));
+-
+ namespace base {
- namespace {
-@@ -114,6 +114,7 @@ bool LaunchApp(const std::vector<std::st
+ void FreeEnvVarsArray(char* array[], int length)
+@@ -66,6 +65,7 @@ bool LaunchApp(const std::vector<std::st
// Existing variables are overwritten by env_vars_to_set.
int pos = 0;
environment_map combined_env_vars = env_vars_to_set;
@@ -27,7 +23,7 @@ diff --git a/ipc/chromium/src/base/process_util_bsd.cc b/ipc/chromium/src/base/p
while(environ[pos] != NULL) {
std::string varString = environ[pos];
std::string varName = varString.substr(0, varString.find_first_of('='));
-@@ -121,8 +122,9 @@ bool LaunchApp(const std::vector<std::st
+@@ -73,8 +73,9 @@ bool LaunchApp(const std::vector<std::st
if (combined_env_vars.find(varName) == combined_env_vars.end()) {
combined_env_vars[varName] = varValue;
}
diff --git a/www/libxul/files/patch-bug1242132 b/www/libxul/files/patch-bug1242132
new file mode 100644
index 000000000000..2a228cd466a1
--- /dev/null
+++ b/www/libxul/files/patch-bug1242132
@@ -0,0 +1,13 @@
+# nss-config --cflags returns multiple flags, don't treat them as one string
+
+--- python/mozbuild/mozbuild/frontend/gyp_reader.py~
++++ python/mozbuild/mozbuild/frontend/gyp_reader.py
+@@ -217,7 +217,7 @@ def read_from_gyp(config, path, output,
+ # We may be getting make variable references out of the
+ # gyp data, and we don't want those in emitted data, so
+ # substitute them with their actual value.
+- f = expand_variables(f, config.substs)
++ f = expand_variables(f, config.substs).split()
+ if not f:
+ continue
+ # the result may be a string or a list.
diff --git a/www/libxul/files/patch-bug1252246 b/www/libxul/files/patch-bug1252246
new file mode 100644
index 000000000000..429391f0dc15
--- /dev/null
+++ b/www/libxul/files/patch-bug1252246
@@ -0,0 +1,44 @@
+# Prefer PTHREAD_PROCESS_SHARED on FreeBSD 11.0 or later
+
+diff --git a/ipc/glue/CrossProcessMutex.h b/ipc/glue/CrossProcessMutex.h
+--- ipc/glue/CrossProcessMutex.h
++++ ipc/glue/CrossProcessMutex.h
+@@ -9,7 +9,7 @@
+ #include "base/process.h"
+ #include "mozilla/Mutex.h"
+
+-#if defined(OS_LINUX) || defined(XP_DARWIN)
++#if !defined(OS_WIN) && !defined(OS_NETBSD) && !defined(OS_OPENBSD)
+ #include <pthread.h>
+ #include "SharedMemoryBasic.h"
+ #include "mozilla/Atomics.h"
+@@ -34,7 +34,7 @@ struct ParamTraits;
+ namespace mozilla {
+ #if defined(OS_WIN)
+ typedef HANDLE CrossProcessMutexHandle;
+-#elif defined(OS_LINUX) || defined(OS_MACOSX)
++#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD)
+ typedef mozilla::ipc::SharedMemoryBasic::Handle CrossProcessMutexHandle;
+ #else
+ // Stub for other platforms. We can't use uintptr_t here since different
+@@ -100,7 +100,7 @@ private:
+
+ #if defined(OS_WIN)
+ HANDLE mMutex;
+-#elif defined(OS_LINUX) || defined(OS_MACOSX)
++#elif !defined(OS_NETBSD) && !defined(OS_OPENBSD)
+ RefPtr<mozilla::ipc::SharedMemoryBasic> mSharedBuffer;
+ pthread_mutex_t* mMutex;
+ mozilla::Atomic<int32_t>* mCount;
+diff --git a/ipc/glue/moz.build b/ipc/glue/moz.build
+--- ipc/glue/moz.build
++++ ipc/glue/moz.build
+@@ -61,7 +61,7 @@ if CONFIG['OS_ARCH'] == 'WINNT':
+ SOURCES += [
+ 'CrossProcessMutex_windows.cpp',
+ ]
+-elif CONFIG['OS_ARCH'] in ('Linux', 'Darwin'):
++elif not CONFIG['OS_ARCH'] in ('NetBSD', 'OpenBSD'):
+ UNIFIED_SOURCES += [
+ 'CrossProcessMutex_posix.cpp',
+ ]
diff --git a/www/libxul/files/patch-bug702179 b/www/libxul/files/patch-bug702179
index d1aa293d2237..bb642382dfd8 100644
--- a/www/libxul/files/patch-bug702179
+++ b/www/libxul/files/patch-bug702179
@@ -1,24 +1,13 @@
-commit 6ddaacd
-Author: Ginn Chen <ginn.chen@oracle.com>
-Date: Wed Nov 30 07:23:46 2011 +0800
-
- Bug 702179 dtrace probes are not installed on Solaris with static js lib r=glandium
----
- js/src/Makefile.in | 3 ---
- toolkit/library/moz.build | 5 -----
- 2 files changed, 8 deletions(-)
-
-diff --git js/src/Makefile.in js/src/Makefile.in
-index 62bbfa0..90400cb 100644
---- js/src/Makefile.in
-+++ js/src/Makefile.in
-@@ -17,9 +17,6 @@ TOPLEVEL_BUILD := 1
- run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
- EXTRA_LIBS += $(NSPR_LIBS)
+--- js/src/moz.build.orig 2015-12-16 12:32:04.574425000 +0100
++++ js/src/moz.build 2015-12-16 12:32:09.032032000 +0100
+@@ -671,10 +671,6 @@ CFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+ CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
+ LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
--DIST_INSTALL = 1
--NO_EXPAND_LIBS = 1
+-NO_EXPAND_LIBS = True
-
- ifdef JS_HAS_CTYPES
- ifdef MOZ_NATIVE_FFI
- LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS)
+-DIST_INSTALL = True
+-
+ # Prepare self-hosted JS code for embedding
+ GENERATED_FILES += ['selfhosted.out.h']
+ selfhosted = GENERATED_FILES['selfhosted.out.h']
diff --git a/www/libxul/files/patch-bug779713 b/www/libxul/files/patch-bug779713
deleted file mode 100644
index cbf73d463db0..000000000000
--- a/www/libxul/files/patch-bug779713
+++ /dev/null
@@ -1,77 +0,0 @@
-diff --git mfbt/Alignment.h mfbt/Alignment.h
-index e0843ca..353ec36 100644
---- mfbt/Alignment.h
-+++ mfbt/Alignment.h
-@@ -9,11 +9,20 @@
- #ifndef mozilla_Alignment_h
- #define mozilla_Alignment_h
-
-+#include "mozilla/Attributes.h"
-+
- #include <stddef.h>
- #include <stdint.h>
-
- namespace mozilla {
-
-+#if defined(MOZ_HAVE_CXX11_ALIGNAS)
-+#define MOZ_ALIGNOF(T) alignof(T)
-+#elif defined(__GNUC__)
-+#define MOZ_ALIGNOF(T) __alignof__(T)
-+#elif defined(_MSC_VER)
-+#define MOZ_ALIGNOF(T) __alignof(T)
-+#else
- /*
- * This class, and the corresponding macro MOZ_ALIGNOF, figures out how many
- * bytes of alignment a given type needs.
-@@ -32,6 +41,7 @@ public:
- };
-
- #define MOZ_ALIGNOF(T) mozilla::AlignmentFinder<T>::alignment
-+#endif
-
- /*
- * Declare the MOZ_ALIGNED_DECL macro for declaring aligned types.
-@@ -43,7 +53,10 @@ public:
- * will declare a two-character array |arr| aligned to 8 bytes.
- */
-
--#if defined(__GNUC__)
-+#if defined(MOZ_HAVE_CXX11_ALIGNAS)
-+# define MOZ_ALIGNED_DECL(_type, _align) \
-+ alignas(_align) _type
-+#elif defined(__GNUC__)
- # define MOZ_ALIGNED_DECL(_type, _align) \
- _type __attribute__((aligned(_align)))
- #elif defined(_MSC_VER)
-diff --git mfbt/Attributes.h mfbt/Attributes.h
-index d317766..ddb13da 100644
---- mfbt/Attributes.h
-+++ mfbt/Attributes.h
-@@ -50,6 +50,7 @@
- * don't indicate support for them here, due to
- * http://stackoverflow.com/questions/20498142/visual-studio-2013-explicit-keyword-bug
- */
-+# define MOZ_HAVE_CXX11_ALIGNAS
- # define MOZ_HAVE_NEVER_INLINE __declspec(noinline)
- # define MOZ_HAVE_NORETURN __declspec(noreturn)
- # ifdef __clang__
-@@ -70,6 +71,9 @@
- # ifndef __has_extension
- # define __has_extension __has_feature /* compatibility, for older versions of clang */
- # endif
-+# if __has_extension(cxx_alignas)
-+# define MOZ_HAVE_CXX11_ALIGNAS
-+# endif
- # if __has_extension(cxx_constexpr)
- # define MOZ_HAVE_CXX11_CONSTEXPR
- # endif
-@@ -84,6 +88,9 @@
- # endif
- #elif defined(__GNUC__)
- # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
-+# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
-+# define MOZ_HAVE_CXX11_ALIGNAS
-+# endif
- # define MOZ_HAVE_CXX11_CONSTEXPR
- # define MOZ_HAVE_EXPLICIT_CONVERSION
- # endif
diff --git a/www/libxul/files/patch-bug826985 b/www/libxul/files/patch-bug826985
index 4fb4dde7bd4d..941acf53f265 100644
--- a/www/libxul/files/patch-bug826985
+++ b/www/libxul/files/patch-bug826985
@@ -17,10 +17,10 @@ diff --git config/system-headers config/system-headers
index 55e4cd1..76567b3 100644
--- config/system-headers
+++ config/system-headers
-@@ -635,6 +635,7 @@ libgnomevfs/gnome-vfs-mime-handlers.h
- libgnomevfs/gnome-vfs-mime-utils.h
- libgnomevfs/gnome-vfs-ops.h
- libgnomevfs/gnome-vfs-standard-callbacks.h
+@@ -627,6 +627,7 @@ libgnome/libgnome.h
+ libgnomeui/gnome-icon-lookup.h
+ libgnomeui/gnome-icon-theme.h
+ libgnomeui/gnome-ui-init.h
+libv4l2.h
lib$routines.h
limits
@@ -51,13 +51,13 @@ index b483cd1..f1dd1f0 100644
# basic stuff for everything
'include_internal_video_render': 0,
'clang_use_chrome_plugins': 0,
-diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
+diff --git media/webrtc/signaling/test/common.build media/webrtc/signaling/test/common.build
index b483cd1..f1dd1f0 100644
---- media/webrtc/signaling/test/moz.build
-+++ media/webrtc/signaling/test/moz.build
-@@ -122,6 +122,7 @@ if CONFIG['JS_SHARED_LIBRARY']:
- 'js',
- ]
+--- media/webrtc/signaling/test/common.build
++++ media/webrtc/signaling/test/common.build
+@@ -99,6 +99,7 @@ if CONFIG['JS_SHARED_LIBRARY']:
+
+ USE_LIBS += ['mozglue']
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
@@ -145,26 +145,26 @@ index d46b5aa..e452223 100644
'targets': [
{
'target_name': 'video_capture_module',
-@@ -69,6 +72,19 @@
- 'linux/video_capture_linux.cc',
- 'linux/video_capture_linux.h',
- ],
-+ 'conditions': [
-+ ['use_libv4l2==1', {
-+ 'defines': [
-+ 'HAVE_LIBV4L2',
-+ ],
-+ 'cflags_mozilla': [
-+ '$(MOZ_LIBV4L2_CFLAGS)',
-+ ],
-+ 'libraries': [
-+ '-lv4l2',
+@@ -75,6 +78,19 @@
+ 'linux/video_capture_linux.cc',
+ 'linux/video_capture_linux.h',
+ ],
++ 'conditions': [
++ ['use_libv4l2==1', {
++ 'defines': [
++ 'HAVE_LIBV4L2',
++ ],
++ 'cflags_mozilla': [
++ '$(MOZ_LIBV4L2_CFLAGS)',
++ ],
++ 'libraries': [
++ '-lv4l2',
++ ],
++ }],
+ ],
-+ }],
-+ ],
- }], # linux
- ['OS=="mac"', {
- 'sources': [
+ }], # linux
+ ['OS=="mac"', {
+ 'sources': [
diff --git toolkit/library/moz.build toolkit/library/moz.build
index 9c16ffa..1db3794 100644
--- toolkit/library/moz.build
diff --git a/www/libxul/files/patch-bug847568 b/www/libxul/files/patch-bug847568
index debd9a78f1d4..6eb00b509d88 100644
--- a/www/libxul/files/patch-bug847568
+++ b/www/libxul/files/patch-bug847568
@@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
index 14bfc0d..5383399 100644
--- config/Makefile.in
+++ config/Makefile.in
-@@ -75,6 +75,8 @@ export:: $(export-preqs)
+@@ -49,6 +49,8 @@ export:: $(export-preqs)
-DMOZ_NATIVE_LIBEVENT=$(MOZ_NATIVE_LIBEVENT) \
-DMOZ_NATIVE_LIBVPX=$(MOZ_NATIVE_LIBVPX) \
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
@@ -17,7 +17,7 @@ diff --git config/system-headers config/system-headers
index 18e8703..bdc5f82 100644
--- config/system-headers
+++ config/system-headers
-@@ -1357,3 +1357,11 @@ unicode/utypes.h
+@@ -1344,3 +1344,11 @@ unicode/utypes.h
#endif
libutil.h
unwind.h
@@ -33,7 +33,7 @@ diff --git configure.in configure.in
index ac38f40..87536b7 100644
--- configure.in
+++ configure.in
-@@ -7986,6 +7986,49 @@ if test "$USE_FC_FREETYPE"; then
+@@ -7989,6 +7989,49 @@ if test "$USE_FC_FREETYPE"; then
fi
dnl ========================================================
@@ -46,7 +46,7 @@ index ac38f40..87536b7 100644
+MOZ_NATIVE_HARFBUZZ=)
+
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
-+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
++ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 1.1.0)
+fi
+
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
@@ -70,7 +70,7 @@ index ac38f40..87536b7 100644
+ * 100 + GR2_VERSION_BUGFIX >= \
+ (major) * 10000 + (minor) * 100 + (bugfix) )
+ ], [
-+ #if !GR2_VERSION_REQUIRE(1,2,4)
++ #if !GR2_VERSION_REQUIRE(1,3,6)
+ #error "Insufficient graphite2 version."
+ #endif
+ ], [],
@@ -87,38 +87,54 @@ diff --git dom/base/moz.build dom/base/moz.build
index a660ba4..6b2f602 100644
--- dom/base/moz.build
+++ dom/base/moz.build
-@@ -196,6 +196,9 @@ SOURCES += [
- 'nsObjectLoadingContent.cpp',
- ]
+@@ -397,6 +397,9 @@ if CONFIG['INTEL_ARCHITECTURE']:
+ SOURCES += ['nsTextFragmentSSE2.cpp']
+ SOURCES['nsTextFragmentSSE2.cpp'].flags += CONFIG['SSE2_FLAGS']
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
+
EXTRA_COMPONENTS += [
- 'contentAreaDropListener.js',
- 'contentAreaDropListener.manifest',
+ 'ConsoleAPI.manifest',
+ 'ConsoleAPIStorage.js',
diff --git gfx/graphite2/moz-gr-update.sh gfx/graphite2/moz-gr-update.sh
index f3d76ea..a9e7fb6 100644
--- gfx/graphite2/moz-gr-update.sh
+++ gfx/graphite2/moz-gr-update.sh
-@@ -37,6 +37,9 @@
+@@ -1,6 +1,7 @@
+ #!/bin/bash
+
+ # Script used to update the Graphite2 library in the mozilla source tree
++# and bump version for --with-system-graphite2
+
+ # This script lives in gfx/graphite2, along with the library source,
+ # but must be run from the top level of the mozilla-central tree.
+@@ -37,12 +38,16 @@ echo "See" $0 "for update procedure." >>
#find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
#find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s/<cstdio>/<stdio.h>/;s/Windows.h/windows.h/;" {} \;
++# chase version for --with-system-graphite2
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$RELEASE/ and tr/./,/ \
+ if /GR2_VERSION_REQUIRE/" configure.in
+
# summarize what's been touched
echo Updated to $RELEASE.
echo Here is what changed in the gfx/graphite2 directory:
+ echo
+
+-hg stat gfx/graphite2
++hg stat configure.in gfx/graphite2
+
+ echo
+ echo If gfx/graphite2/src/files.mk has changed, please make corresponding
diff --git gfx/harfbuzz/README-mozilla gfx/harfbuzz/README-mozilla
index ca57d16..1ce21fe 100644
--- gfx/harfbuzz/README-mozilla
+++ gfx/harfbuzz/README-mozilla
-@@ -21,3 +21,8 @@ In addition, the src/Makefile.in file here is NOT from upstream, nor is it
+@@ -18,3 +18,8 @@ the mozilla tree.
+ In addition, the src/Makefile.in file here is NOT from upstream, nor is it
generated from src/Makefile.am (the original harfbuzz version); it is a mozilla-
- specific makefile that is maintained by hand. It should only need updating when
- new source files or exported headers are added in harfbuzz.
+ specific makefile that is maintained by hand.
+
+The in-tree copy may be omitted during build by --with-system-harfbuzz.
+Make sure to keep pkg-config version check within configure.in in sync
@@ -154,9 +170,9 @@ diff --git gfx/skia/generate_mozbuild.py gfx/skia/generate_mozbuild.py
index 28fa6b5..240dced 100755
--- gfx/skia/generate_mozbuild.py
+++ gfx/skia/generate_mozbuild.py
-@@ -140,6 +140,9 @@ if CONFIG['GNU_CXX']:
- if not CONFIG['CLANG_CXX']:
- CXXFLAGS += ['-Wno-logical-op']
+@@ -134,6 +134,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_
+ '-Wno-unused-private-field',
+ ]
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
@@ -168,9 +184,9 @@ diff --git gfx/skia/moz.build gfx/skia/moz.build
index 1d0c2f9..adb8941 100644
--- gfx/skia/moz.build
+++ gfx/skia/moz.build
-@@ -968,6 +968,9 @@ if CONFIG['GNU_CXX']:
- if not CONFIG['CLANG_CXX']:
- CXXFLAGS += ['-Wno-logical-op']
+@@ -752,6 +752,9 @@ if CONFIG['CLANG_CXX'] or CONFIG['CLANG_
+ '-Wno-unused-private-field',
+ ]
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
@@ -182,9 +198,9 @@ diff --git gfx/thebes/moz.build gfx/thebes/moz.build
index d5852fa..aeeab25 100644
--- gfx/thebes/moz.build
+++ gfx/thebes/moz.build
-@@ -294,7 +294,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'andr
- if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'qt'):
- CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']
+@@ -306,7 +306,13 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk
+
+ LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
-DEFINES['GRAPHITE2_STATIC'] = True
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
@@ -195,35 +211,38 @@ index d5852fa..aeeab25 100644
+else:
+ DEFINES['GRAPHITE2_STATIC'] = True
- if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
- DEFINES['OTS_DLL'] = True
-diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build
+ if CONFIG['CLANG_CXX']:
+ # Suppress warnings from Skia header files.
index d736943..41a931f 100644
--- intl/unicharutil/util/moz.build
+++ intl/unicharutil/util/moz.build
-@@ -37,3 +37,6 @@ if CONFIG['_MSC_VER']:
+@@ -44,4 +44,7 @@ if CONFIG['ENABLE_INTL_API']:
+ LOCAL_INCLUDES += CONFIG['MOZ_ICU_INCLUDES']
+ USE_LIBS += ['icu']
- if CONFIG['ENABLE_INTL_API']:
- CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
-+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ DIST_INSTALL = True
diff --git netwerk/dns/moz.build netwerk/dns/moz.build
index 0b0717a..2e665c9 100644
--- netwerk/dns/moz.build
+++ netwerk/dns/moz.build
-@@ -64,3 +64,6 @@ GENERATED_FILES = [
- LOCAL_INCLUDES += [
+@@ -66,6 +66,9 @@ LOCAL_INCLUDES += [
'/netwerk/base',
]
-+
+
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
++
+ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk' and CONFIG['ANDROID_VERSION'] > '19':
+ LOCAL_INCLUDES += ['%' + '%s/bionic/libc/dns/include' % CONFIG['ANDROID_SOURCE']]
+
diff --git toolkit/library/moz.build toolkit/library/moz.build
index 67f0db9..d42137a 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
-@@ -187,6 +187,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
+@@ -231,6 +231,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
if not CONFIG['MOZ_TREE_PIXMAN']:
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
diff --git a/www/libxul/files/patch-bug981348 b/www/libxul/files/patch-bug981348
index 6eb877b08fa8..e4b7edfd9b03 100644
--- a/www/libxul/files/patch-bug981348
+++ b/www/libxul/files/patch-bug981348
@@ -2,13 +2,13 @@ diff --git dom/system/OSFileConstants.cpp dom/system/OSFileConstants.cpp
index 4b21361..cb3be32 100644
--- dom/system/OSFileConstants.cpp
+++ dom/system/OSFileConstants.cpp
-@@ -596,7 +596,7 @@ static const dom::ConstantSpec gLibcProperties[] =
+@@ -662,7 +662,7 @@
- { "OSFILE_SIZEOF_STATVFS", INT_TO_JSVAL(sizeof (struct statvfs)) },
+ { "OSFILE_SIZEOF_STATVFS", JS::Int32Value(sizeof (struct statvfs)) },
-- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_bsize)) },
-+ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", INT_TO_JSVAL(offsetof (struct statvfs, f_frsize)) },
- { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", INT_TO_JSVAL(offsetof (struct statvfs, f_bavail)) },
+- { "OSFILE_OFFSETOF_STATVFS_F_BSIZE", JS::Int32Value(offsetof (struct statvfs, f_bsize)) },
++ { "OSFILE_OFFSETOF_STATVFS_F_FRSIZE", JS::Int32Value(offsetof (struct statvfs, f_frsize)) },
+ { "OSFILE_OFFSETOF_STATVFS_F_BAVAIL", JS::Int32Value(offsetof (struct statvfs, f_bavail)) },
#endif // defined(XP_UNIX)
diff --git toolkit/components/osfile/modules/osfile_unix_back.jsm toolkit/components/osfile/modules/osfile_unix_back.jsm
diff --git a/www/libxul/files/patch-bug991253 b/www/libxul/files/patch-bug991253
index 73d71610ab03..a9931030e915 100644
--- a/www/libxul/files/patch-bug991253
+++ b/www/libxul/files/patch-bug991253
@@ -1,6 +1,6 @@
---- extensions/spellcheck/hunspell/src/mozHunspell.cpp~
-+++ extensions/spellcheck/hunspell/src/mozHunspell.cpp
-@@ -400,6 +400,14 @@ mozHunspell::LoadDictionaryList(bool aNo
+--- extensions/spellcheck/hunspell/glue/mozHunspell.cpp~
++++ extensions/spellcheck/hunspell/glue/mozHunspell.cpp
+@@ -392,6 +392,14 @@ mozHunspell::LoadDictionaryList(bool aNo
}
}
diff --git a/www/libxul/files/patch-config-baseconfig.mk b/www/libxul/files/patch-config-baseconfig.mk
index 9db69516cbcc..40a81f4587f4 100644
--- a/www/libxul/files/patch-config-baseconfig.mk
+++ b/www/libxul/files/patch-config-baseconfig.mk
@@ -1,6 +1,9 @@
--- config/baseconfig.mk~
+++ config/baseconfig.mk
-@@ -1,7 +1,7 @@
+@@ -2,10 +2,10 @@
+ # directly in python/mozbuild/mozbuild/base.py for gmake validation.
+ # We thus use INCLUDED_AUTOCONF_MK to enable/disable some parts depending
+ # 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)
@@ -9,6 +12,6 @@
+idldir = $(datadir)/idl/%%MOZILLA%%
+installdir = $(libdir)/%%MOZILLA%%
+sdkdir = $(libdir)/%%MOZILLA%%
- ifndef TOP_DIST
- TOP_DIST = dist
- endif
+ ifeq (.,$(DEPTH))
+ DIST = dist
+ else
diff --git a/www/libxul/files/patch-dom-events-MessageEvent.h b/www/libxul/files/patch-dom-events-MessageEvent.h
deleted file mode 100644
index 0b2b97e0c8af..000000000000
--- a/www/libxul/files/patch-dom-events-MessageEvent.h
+++ /dev/null
@@ -1,12 +0,0 @@
---- dom/events/MessageEvent.h.orig 2015-12-22 00:49:29.000000000 +0100
-+++ dom/events/MessageEvent.h 2016-01-17 14:44:08.806122000 +0100
-@@ -15,9 +15,6 @@ namespace mozilla {
- namespace dom {
-
- struct MessageEventInit;
--class MessagePort;
--class MessagePortBase;
--class MessagePortList;
- class OwningWindowProxyOrMessagePort;
-
- /**
diff --git a/www/libxul/files/patch-ijg-libjpeg b/www/libxul/files/patch-ijg-libjpeg
index f3378046dd32..074297aaa618 100644
--- a/www/libxul/files/patch-ijg-libjpeg
+++ b/www/libxul/files/patch-ijg-libjpeg
@@ -69,7 +69,7 @@ index 8fa8200..1d2a259 100644
break;
case JCS_CMYK:
case JCS_YCCK:
-@@ -433,6 +452,15 @@ nsJPEGDecoder::WriteInternal(const char*
+@@ -448,6 +467,16 @@ nsJPEGDecoder::WriteInternal(const char*
return; // I/O suspension
}
@@ -82,9 +82,10 @@ index 8fa8200..1d2a259 100644
+ mInfo.cconvert->color_convert = ycc_rgb_convert_argb;
+ }
+#endif
-
++
// If this is a progressive JPEG ...
mState = mInfo.buffered_image ?
+ JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
@@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
uint32_t* imageRow = ((uint32_t*)mImageData) +
(mInfo.output_scanline * mInfo.output_width);
diff --git a/www/libxul/files/patch-memory-jemalloc-Makefile.in b/www/libxul/files/patch-memory-jemalloc-Makefile.in
deleted file mode 100644
index e02b050cbb1d..000000000000
--- a/www/libxul/files/patch-memory-jemalloc-Makefile.in
+++ /dev/null
@@ -1,10 +0,0 @@
---- memory/jemalloc/Makefile.in~
-+++ memory/jemalloc/Makefile.in
-@@ -12,3 +12,7 @@ include $(topsrcdir)/config/rules.mk
- ifdef GNU_CC
- CFLAGS += -std=gnu99
- endif
-+
-+# XXX startup crash workaround for gcc47 on amd64
-+jemalloc.$(OBJ_SUFFIX): OS_CFLAGS := $(filter-out -O3 -Ofast,$(OS_CFLAGS))
-+jemalloc.$(OBJ_SUFFIX): MOZ_OPTIMIZE_FLAGS=
diff --git a/www/libxul/files/patch-modules-libpref-init-all.js b/www/libxul/files/patch-modules-libpref-init-all.js
new file mode 100644
index 000000000000..660b538c62a9
--- /dev/null
+++ b/www/libxul/files/patch-modules-libpref-init-all.js
@@ -0,0 +1,15 @@
+--- modules/libpref/init/all.js.orig 2015-08-06 22:39:34 UTC
++++ modules/libpref/init/all.js
+@@ -4052,7 +4052,12 @@ pref("layers.max-active", -1);
+ pref("layers.tiles.adjust", true);
+
+ // Set the default values, and then override per-platform as needed
++#ifdef MOZ_TREE_CAIRO
+ pref("layers.offmainthreadcomposition.enabled", true);
++#else
++// Disable for system cairo on suspicion of causing random crashes
++pref("layers.offmainthreadcomposition.enabled", false);
++#endif
+ // Compositor target frame rate. NOTE: If vsync is enabled the compositor
+ // frame rate will still be capped.
+ // -1 -> default (match layout.frame_rate or 60 FPS)
diff --git a/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk b/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk
index 75af88fbcb4a..42da812a1df5 100644
--- a/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk
+++ b/www/libxul/files/patch-toolkit_mozapps_installer_packager_mk
@@ -2,7 +2,7 @@ $OpenBSD: patch-toolkit_mozapps_installer_packager_mk,v 1.11 2012/06/11 15:29:56
install headers/idl/sdk libs only if xulrunner
--- toolkit/mozapps/installer/packager.mk.orig Fri Jun 1 14:04:20 2012
+++ toolkit/mozapps/installer/packager.mk Tue Jun 5 07:55:51 2012
-@@ -886,7 +886,7 @@ endif
+@@ -127,7 +127,7 @@ endif
$(NSINSTALL) -D $(DESTDIR)$(bindir)
$(RM) -f $(DESTDIR)$(bindir)/$(MOZ_APP_NAME)
ln -s $(installdir)/$(MOZ_APP_NAME) $(DESTDIR)$(bindir)
diff --git a/www/libxul/files/patch-z-bug517422 b/www/libxul/files/patch-z-bug517422
index 0137e4858cf8..723900a6a894 100644
--- a/www/libxul/files/patch-z-bug517422
+++ b/www/libxul/files/patch-z-bug517422
@@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
index 5383399..0410004 100644
--- config/Makefile.in
+++ config/Makefile.in
-@@ -77,6 +77,14 @@ export:: $(export-preqs)
+@@ -77,6 +77,11 @@ export:: $(export-preqs)
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
-DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
-DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
@@ -12,9 +12,6 @@ index 5383399..0410004 100644
+ -DMOZ_NATIVE_THEORA=$(MOZ_NATIVE_THEORA) \
+ -DMOZ_NATIVE_VORBIS=$(MOZ_NATIVE_VORBIS) \
+ -DMOZ_NATIVE_TREMOR=$(MOZ_NATIVE_TREMOR) \
-+ -DMOZ_NATIVE_CELT=$(MOZ_NATIVE_CELT) \
-+ -DMOZ_NATIVE_OPUS=$(MOZ_NATIVE_OPUS) \
-+ -DMOZ_NATIVE_SPEEX=$(MOZ_NATIVE_SPEEX) \
+ -DMOZ_NATIVE_SOUNDTOUCH=$(MOZ_NATIVE_SOUNDTOUCH) \
$(srcdir)/system-headers | $(PERL) $(topsrcdir)/nsprpub/config/make-system-wrappers.pl system_wrappers
$(INSTALL) system_wrappers $(DIST)
@@ -23,7 +20,7 @@ diff --git config/external/moz.build config/external/moz.build
index f67c5c7..eb909ce 100644
--- config/external/moz.build
+++ config/external/moz.build
-@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
+@@ -19,10 +19,16 @@ if CONFIG['MOZ_UPDATER']:
# There's no "native brotli" yet, but probably in the future...
external_dirs += ['modules/brotli']
@@ -31,9 +28,6 @@ index f67c5c7..eb909ce 100644
+if not CONFIG['MOZ_NATIVE_OGG']:
+ external_dirs += ['media/libogg']
+
-+if not CONFIG['MOZ_NATIVE_CELT'] or not CONFIG['MOZ_NATIVE_OPUS']:
-+ external_dirs += ['media/libopus']
-+
+if not CONFIG['MOZ_NATIVE_THEORA']:
+ external_dirs += ['media/libtheora']
+
@@ -45,13 +39,10 @@ index f67c5c7..eb909ce 100644
external_dirs += ['media/libtremor']
if CONFIG['MOZ_WEBM']:
-@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
+@@ -37,15 +46,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
if not CONFIG['MOZ_NATIVE_PNG']:
external_dirs += ['media/libpng']
-+if not CONFIG['MOZ_NATIVE_SPEEX']:
-+ external_dirs += ['media/libspeex_resampler']
-+
+if not CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ external_dirs += ['media/libsoundtouch']
+
@@ -59,9 +50,9 @@ index f67c5c7..eb909ce 100644
'media/kiss_fft',
'media/libcubeb',
- 'media/libogg',
-- 'media/libopus',
+ 'media/libopus',
- 'media/libtheora',
-- 'media/libspeex_resampler',
+ 'media/libspeex_resampler',
'media/libstagefright',
- 'media/libsoundtouch',
]
@@ -71,23 +62,7 @@ diff --git config/system-headers config/system-headers
index bef567c..9807c29 100644
--- config/system-headers
+++ config/system-headers
-@@ -1263,7 +1263,6 @@ X11/Xlocale.h
- X11/Xos.h
- X11/Xutil.h
- zmouse.h
--soundtouch/SoundTouch.h
- #if MOZ_NATIVE_PNG==1
- png.h
- #endif
-@@ -1325,6 +1324,7 @@ vorbis/codec.h
- theora/theoradec.h
- tremor/ivorbiscodec.h
- speex/speex_resampler.h
-+soundtouch/SoundTouch.h
- ogg/ogg.h
- ogg/os_types.h
- nestegg/nestegg.h
-@@ -1365,3 +1365,35 @@ graphite2/Segment.h
+@@ -1364,3 +1363,17 @@ graphite2/Segment.h
harfbuzz/hb-ot.h
harfbuzz/hb.h
#endif
@@ -105,29 +80,11 @@ index bef567c..9807c29 100644
+#if MOZ_NATIVE_TREMOR==1
+tremor/ivorbiscodec.h
+#endif
-+#if MOZ_NATIVE_CELT==1
-+celt.h
-+celt_header.h
-+celt/celt.h
-+celt/celt_header.h
-+#endif
-+#if MOZ_NATIVE_OPUS==1
-+opus.h
-+opus_multistream.h
-+opus/opus.h
-+opus/opus_multistream.h
-+#endif
-+#if MOZ_NATIVE_SPEEX==1
-+speex/speex_resampler.h
-+#endif
-+#if MOZ_NATIVE_SOUNDTOUCH==1
-+soundtouch/SoundTouch.h
-+#endif
diff --git configure.in configure.in
index 87db361..7947626 100644
--- configure.in
+++ configure.in
-@@ -5223,6 +5223,157 @@ if test "${ac_cv_c_attribute_aligned}" !
+@@ -5223,6 +5223,111 @@ if test "${ac_cv_c_attribute_aligned}" !
fi
dnl ========================================================
@@ -182,40 +139,6 @@ index 87db361..7947626 100644
+AC_SUBST(MOZ_NATIVE_TREMOR)
+
+dnl ========================================================
-+dnl Check for libcelt
-+dnl ========================================================
-+
-+MOZ_ARG_WITH_BOOL(system-celt,
-+[ --with-system-celt Use system libcelt (located with pkgconfig)],
-+MOZ_NATIVE_CELT=1,
-+MOZ_NATIVE_CELT=)
-+
-+if test -n "$MOZ_NATIVE_CELT"; then
-+ PKG_CHECK_MODULES(MOZ_CELT, celt)
-+else
-+ MOZ_CELT_CFLAGS='-I$(topsrcdir)/media/libopus'
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_CELT)
-+
-+dnl ========================================================
-+dnl Check for libopus
-+dnl ========================================================
-+
-+MOZ_ARG_WITH_BOOL(system-opus,
-+[ --with-system-opus Use system libopus (located with pkgconfig)],
-+MOZ_NATIVE_OPUS=1,
-+MOZ_NATIVE_OPUS=)
-+
-+if test -n "$MOZ_NATIVE_OPUS"; then
-+ PKG_CHECK_MODULES(MOZ_OPUS, opus >= 1.1)
-+else
-+ MOZ_OPUS_CFLAGS='-I$(topsrcdir)/media/libopus/include'
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_OPUS)
-+
-+dnl ========================================================
+dnl Check for libtheora
+dnl ========================================================
+
@@ -231,31 +154,16 @@ index 87db361..7947626 100644
+AC_SUBST(MOZ_NATIVE_THEORA)
+
+dnl ========================================================
-+dnl Check for libspeex resampler
-+dnl ========================================================
-+
-+MOZ_ARG_WITH_BOOL(system-speex,
-+[ --with-system-speex Use system libspeex (located with pkgconfig)],
-+MOZ_NATIVE_SPEEX=1,
-+MOZ_NATIVE_SPEEX=)
-+
-+if test -n "$MOZ_NATIVE_SPEEX"; then
-+ PKG_CHECK_MODULES(MOZ_SPEEX, speexdsp >= 1.2)
-+fi
-+
-+AC_SUBST(MOZ_NATIVE_SPEEX)
-+
-+dnl ========================================================
-+dnl Check for libsoundtouch
++dnl Check for libSoundTouch
+dnl ========================================================
+
+MOZ_ARG_WITH_BOOL(system-soundtouch,
-+[ --with-system-soundtouch Use system libsoundtouch (located with pkgconfig)],
++[ --with-system-soundtouch Use system libSoundTouch (located with pkgconfig)],
+MOZ_NATIVE_SOUNDTOUCH=1,
+MOZ_NATIVE_SOUNDTOUCH=)
+
+if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
-+ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.8.0)
++ PKG_CHECK_MODULES(MOZ_SOUNDTOUCH, soundtouch >= 1.9.0)
+
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
@@ -279,30 +187,86 @@ index 87db361..7947626 100644
+ fi
+fi
+
++if test -n "$MOZ_NATIVE_SOUNDTOUCH"; then
++ AC_DEFINE(MOZ_NATIVE_SOUNDTOUCH)
++fi
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
+
+dnl ========================================================
dnl = Disable VP8 decoder support
dnl ========================================================
MOZ_ARG_DISABLE_BOOL(webm,
+diff --git dom/media/AudioStream.cpp dom/media/AudioStream.cpp
+index 2127256..1ec09fe 100644
+--- dom/media/AudioStream.cpp
++++ dom/media/AudioStream.cpp
+@@ -129,7 +129,9 @@ AudioStream::AudioStream()
+ , mOutChannels(0)
+ , mWritten(0)
+ , mAudioClock(this)
++#ifndef MOZ_NATIVE_SOUNDTOUCH
+ , mTimeStretcher(nullptr)
++#endif
+ , mDumpFile(nullptr)
+ , mBytesPerFrame(0)
+ , mState(INITIALIZED)
+@@ -152,9 +154,11 @@ AudioStream::~AudioStream()
+ if (mDumpFile) {
+ fclose(mDumpFile);
+ }
++#ifndef MOZ_NATIVE_SOUNDTOUCH
+ if (mTimeStretcher) {
+ soundtouch::destroySoundTouchObj(mTimeStretcher);
+ }
++#endif
+ }
+
+ size_t
+@@ -177,7 +181,11 @@ nsresult AudioStream::EnsureTimeStretcherInitializedUnlocked()
+ {
+ mMonitor.AssertCurrentThreadOwns();
+ if (!mTimeStretcher) {
++#ifdef MOZ_NATIVE_SOUNDTOUCH
++ mTimeStretcher = new soundtouch::SoundTouch();
++#else
+ mTimeStretcher = soundtouch::createSoundTouchObj();
++#endif
+ mTimeStretcher->setSampleRate(mInRate);
+ mTimeStretcher->setChannels(mOutChannels);
+ mTimeStretcher->setPitch(1.0);
diff --git dom/media/AudioStream.h dom/media/AudioStream.h
-index 085676d..00c54fb 100644
+index a552e3e..02b80b1 100644
--- dom/media/AudioStream.h
+++ dom/media/AudioStream.h
-@@ -17,7 +17,7 @@
+@@ -15,7 +15,11 @@
+ #include "mozilla/RefPtr.h"
+ #include "mozilla/UniquePtr.h"
#include "CubebUtils.h"
-
- namespace soundtouch {
--class SoundTouch;
-+class MOZ_IMPORT_API SoundTouch;
- }
++#ifdef MOZ_NATIVE_SOUNDTOUCH
++#include "soundtouch/SoundTouch.h"
++#else
+ #include "soundtouch/SoundTouchFactory.h"
++#endif
namespace mozilla {
+
+@@ -277,7 +277,11 @@ private:
+ // Number of frames written to the buffers.
+ int64_t mWritten;
+ AudioClock mAudioClock;
++#ifdef MOZ_NATIVE_SOUNDTOUCH
++ nsAutoPtr<soundtouch::SoundTouch> mTimeStretcher;
++#else
+ soundtouch::SoundTouch* mTimeStretcher;
++#endif
+
+ // Stream start time for stream open delay telemetry.
+ TimeStamp mStartTime;
diff --git dom/media/moz.build dom/media/moz.build
index 7526cff..e0a0ca0 100644
--- dom/media/moz.build
+++ dom/media/moz.build
-@@ -212,3 +212,24 @@ if CONFIG['ANDROID_VERSION'] > '15':
+@@ -212,3 +212,18 @@ if CONFIG['ANDROID_VERSION'] > '15':
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
@@ -319,28 +283,8 @@ index 7526cff..e0a0ca0 100644
+if CONFIG['MOZ_NATIVE_TREMOR']:
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
+
-+if CONFIG['MOZ_NATIVE_OPUS']:
-+ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS']
-+
-+if CONFIG['MOZ_NATIVE_SPEEX']:
-+ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS']
-+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
-diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build
-index 944744d..9a7c8c0 100644
---- media/libcubeb/src/moz.build
-+++ media/libcubeb/src/moz.build
-@@ -65,6 +65,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
-
- FINAL_LIBRARY = 'gkmedias'
-
-+if CONFIG['MOZ_NATIVE_SPEEX']:
-+ SOURCES['cubeb_resampler.cpp'].flags += CONFIG['MOZ_SPEEX_CFLAGS']
-+
- if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
- CFLAGS += [
- '-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA
index 0833e4d..7ece97b 100644
--- media/libogg/README_MOZILLA
@@ -352,17 +296,6 @@ index 0833e4d..7ece97b 100644
+
+The in-tree copy may be omitted during build by --with-system-ogg.
+Keep version in configure.in in sync on updates.
-diff --git media/libopus/README_MOZILLA media/libopus/README_MOZILLA
-index 2d85c9f..d3fb9f8 100644
---- media/libopus/README_MOZILLA
-+++ media/libopus/README_MOZILLA
-@@ -9,3 +9,6 @@ files after the copy step.
- The upstream repository is https://git.xiph.org/opus.git
-
- The git tag/revision used was v1.1.
-+
-+The in-tree copy may be omitted during build by --with-system-opus.
-+So, keep its pkg-config version check within configure.in in sync on updates.
diff --git media/libsoundtouch/README_MOZILLA media/libsoundtouch/README_MOZILLA
index bfd4b1a..15b158d 100644
--- media/libsoundtouch/README_MOZILLA
@@ -373,17 +306,20 @@ index bfd4b1a..15b158d 100644
+The in-tree copy may be omitted during build by --with-system-soundtouch.
+Keep version in configure.in in sync on updates.
-diff --git media/libspeex_resampler/README_MOZILLA media/libspeex_resampler/README_MOZILLA
-index 7f6b1bb..e830300 100644
---- media/libspeex_resampler/README_MOZILLA
-+++ media/libspeex_resampler/README_MOZILLA
-@@ -3,3 +3,6 @@ This source is from the Speex DSP library
+diff --git media/libsoundtouch/src/soundtouch_perms.h media/libsoundtouch/src/soundtouch_perms.h
+index 0af2fe6..d80c145 100644
+--- media/libsoundtouch/src/soundtouch_perms.h
++++ media/libsoundtouch/src/soundtouch_perms.h
+@@ -12,7 +12,9 @@
- It consists in the audio resampling code (resampler.c) and its header files
- dependancies, imported into the tree using the update.sh script.
-+
-+The in-tree copy may be omitted during build by --with-system-speex.
-+Keep version in configure.in in sync on updates.
+ #pragma GCC visibility push(default)
+ #include "SoundTouch.h"
++#ifndef MOZ_NATIVE_SOUNDTOUCH
+ #include "SoundTouchFactory.h"
++#endif
+ #pragma GCC visibility pop
+
+ #endif // MOZILLA_SOUNDTOUCH_PERMS_H
diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA
index d48dbfa..f08a2ed 100644
--- media/libtheora/README_MOZILLA
@@ -399,12 +335,16 @@ diff --git media/libtheora/moz.build media/libtheora/moz.build
index 14265b1..3069e99 100644
--- media/libtheora/moz.build
+++ media/libtheora/moz.build
-@@ -93,3 +93,5 @@ if CONFIG['GNU_AS']:
- if CONFIG['OS_TARGET'] == 'Android':
- DEFINES['__linux__'] = True
+@@ -21,6 +21,9 @@ if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
+ # The encoder is currently not included.
+ DEFINES['THEORA_DISABLE_ENCODE'] = True
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
++
+ # Suppress warnings in third-party code.
+ if CONFIG['GNU_CC']:
+ CFLAGS += ['-Wno-type-limits']
diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA
index ee67b53..3f34a09 100644
--- media/libtremor/README_MOZILLA
@@ -448,80 +388,11 @@ index 919b99e..cc776f7 100644
+
+if CONFIG['MOZ_NATIVE_OGG']:
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
-diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
-index bbc971c..6ed7e41 100644
---- media/webrtc/signaling/test/moz.build
-+++ media/webrtc/signaling/test/moz.build
-@@ -127,6 +127,9 @@ if CONFIG['MOZ_ALSA']:
- if CONFIG['MOZ_NATIVE_JPEG']:
- OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
-
-+if CONFIG['MOZ_NATIVE_OPUS']:
-+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
-+
- if CONFIG['MOZ_NATIVE_LIBVPX']:
- OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS']
-
-diff --git media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-index 00e77e7..55f48ab 100644
---- media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-+++ media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/opus.gypi
-@@ -17,18 +17,11 @@
- 'conditions': [
- ['build_with_mozilla==1', {
- # Mozilla provides its own build of the opus library.
-- 'include_dirs': [
-- '/media/libopus/include',
-- '/media/libopus/src',
-- '/media/libopus/celt',
-+ 'cflags_mozilla': [
-+ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
-+ '$(MOZ_OPUS_CFLAGS)',
-+ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
- ],
-- 'direct_dependent_settings': {
-- 'include_dirs': [
-- '/media/libopus/include',
-- '/media/libopus/src',
-- '/media/libopus/celt',
-- ],
-- },
- }, {
- 'dependencies': [
- '<(DEPTH)/third_party/opus/opus.gyp:opus'
-diff --git media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
-index 00e77e7..55f48ab 100644
---- media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
-+++ media/webrtc/trunk/webrtc/modules/audio_coding/neteq/neteq.gypi
-@@ -84,19 +84,11 @@
- ],
- }],
- ['build_with_mozilla==1', {
-- 'include_dirs': [
-- # Need Opus header files for the audio classifier.
-- '<(DEPTH)/../../../media/opus/celt',
--# '<(DEPTH)/third_party/opus/src/src',
-+ 'cflags_mozilla': [
-+ '$(filter -I%, $(MOZ_CELT_CFLAGS))/celt',
-+ '$(MOZ_OPUS_CFLAGS)',
-+ '$(filter -I%, $(MOZ_OPUS_CFLAGS))/../src',
- ],
-- 'direct_dependent_settings': {
-- 'include_dirs': [
-- '../../../../../../media/opus/celt',
-- # Need Opus header files for the audio classifier.
-- '<(DEPTH)/../../../media/opus/celt',
--# '<(DEPTH)/third_party/opus/src/src',
-- ],
-- },
- }],
- ],
- 'sources': [
diff --git toolkit/library/moz.build toolkit/library/moz.build
index d42137a..695e75a8 100644
--- toolkit/library/moz.build
+++ toolkit/library/moz.build
-@@ -178,6 +178,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
+@@ -178,6 +178,21 @@ if CONFIG['MOZ_NATIVE_PNG']:
if CONFIG['MOZ_NATIVE_HUNSPELL']:
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
@@ -537,15 +408,6 @@ index d42137a..695e75a8 100644
+if CONFIG['MOZ_NATIVE_TREMOR']:
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
+
-+if CONFIG['MOZ_NATIVE_CELT']:
-+ OS_LIBS += CONFIG['MOZ_CELT_LIBS']
-+
-+if CONFIG['MOZ_NATIVE_OPUS']:
-+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
-+
-+if CONFIG['MOZ_NATIVE_SPEEX']:
-+ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS']
-+
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
+
diff --git a/www/linux-firefox/Makefile b/www/linux-firefox/Makefile
index 4c7ce602a315..563255ee4d4c 100644
--- a/www/linux-firefox/Makefile
+++ b/www/linux-firefox/Makefile
@@ -2,11 +2,11 @@
# $FreeBSD$
PORTNAME= firefox
-DISTVERSION= 45.0.2
+DISTVERSION= 46.0
PORTEPOCH= 1
CATEGORIES= www ipv6
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US \
- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/linux-i686/en-US
+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build4/linux-i686/en-US
MAINTAINER= gecko@FreeBSD.org
COMMENT= Web browser based on the browser portion of Mozilla
diff --git a/www/linux-firefox/distinfo b/www/linux-firefox/distinfo
index c36d7a7250be..7f3929ca4c3d 100644
--- a/www/linux-firefox/distinfo
+++ b/www/linux-firefox/distinfo
@@ -1,5 +1,5 @@
-SHA256 (firefox-45.0.2.tar.bz2) = 6ef1fb2322cf448afe2c09b008eb2bab0c2efa94378b2ae9889bf83ac6f779af
-SIZE (firefox-45.0.2.tar.bz2) = 52045876
+SHA256 (firefox-46.0.tar.bz2) = a8239d86e40c21eada6813f8ed0eaf2a609f6acac2d1a16a1daff1983d1298a1
+SIZE (firefox-46.0.tar.bz2) = 53225578
SHA256 (glib2-2.22.2-2.fc12.i686.rpm) = e3b459c245ec14e7248e9de4b506963a4773407f3e58835db5070d0ed02ecc99
SIZE (glib2-2.22.2-2.fc12.i686.rpm) = 1162908
SHA256 (gtk2-2.18.3-19.fc12.i686.rpm) = aea9cf7ffe9c8dae0faa2bf3d2aa1b2117c55dce03da72dcce8c268279ec0a4b
diff --git a/www/linux-firefox/pkg-plist b/www/linux-firefox/pkg-plist
index 11dd868ec1ae..3ccbaa600a1d 100644
--- a/www/linux-firefox/pkg-plist
+++ b/www/linux-firefox/pkg-plist
@@ -12,6 +12,8 @@ lib/%%APP_NAME%%/browser/components/libbrowsercomps.so
lib/%%APP_NAME%%/browser/crashreporter-override.ini
lib/%%APP_NAME%%/browser/defaults/preferences/browser-prefs.js
lib/%%APP_NAME%%/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi
+lib/%%APP_NAME%%/browser/features/e10srollout@mozilla.org.xpi
+lib/%%APP_NAME%%/browser/features/firefox@getpocket.com.xpi
lib/%%APP_NAME%%/browser/features/loop@mozilla.org.xpi
lib/%%APP_NAME%%/browser/icons/mozicon128.png
lib/%%APP_NAME%%/browser/omni.ja
@@ -26,6 +28,7 @@ lib/%%APP_NAME%%/firefox
lib/%%APP_NAME%%/firefox-bin
lib/%%APP_NAME%%/gmp-clearkey/0.1/clearkey.info
lib/%%APP_NAME%%/gmp-clearkey/0.1/libclearkey.so
+lib/%%APP_NAME%%/gtk2/libmozgtk.so
lib/%%APP_NAME%%/icons/updater.png
lib/%%APP_NAME%%/libfreebl3.chk
lib/%%APP_NAME%%/libfreebl3.so
@@ -34,6 +37,9 @@ lib/%%APP_NAME%%/libfreebl3.so
%%GTK218%%lib/%%APP_NAME%%/libglib-2.0.so.0
%%GTK218%%lib/%%APP_NAME%%/libgtk-x11-2.0.so.0
lib/%%APP_NAME%%/liblgpllibs.so
+lib/%%APP_NAME%%/libmozavcodec.so
+lib/%%APP_NAME%%/libmozavutil.so
+lib/%%APP_NAME%%/libmozgtk.so
lib/%%APP_NAME%%/libmozsqlite3.so
lib/%%APP_NAME%%/libnspr4.so
lib/%%APP_NAME%%/libnss3.so