mirror of
https://git.freebsd.org/ports.git
synced 2025-06-03 11:56:28 -04:00
- Update NSS and ca_root_nss to 3.19.2
- Update Firefox and gmp-api to 39.0 - Update Firefox ESR and libxul to 38.1.0 Changes: https://developer.mozilla.org/docs/Mozilla/Projects/NSS/NSS_3.19.2_release_notes Changes: https://www.mozilla.org/firefox/39.0/releasenotes/ Changes: https://www.mozilla.org/firefox/38.1.0/releasenotes/ MFH: 2015Q3 Security: https://vuxml.freebsd.org/freebsd/44d9daee-940c-4179-86bb-6e3ffd617869.html
This commit is contained in:
parent
0f6380feb1
commit
ef0a0c91f1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=392273
93 changed files with 4154 additions and 4628 deletions
|
@ -31,18 +31,18 @@ GECKO_CONFING?= ${LOCALBASE}/bin/${GECKO}-config
|
|||
XPIDL?= ${LOCALBASE}/lib/${GECKO}/xpidl
|
||||
XPIDL_INCL?= `${GECKO_CONFIG} --idlflags`
|
||||
|
||||
BUILD_DEPENDS+= libxul>=31:${PORTSDIR}/www/libxul
|
||||
RUN_DEPENDS+= libxul>=31:${PORTSDIR}/www/libxul
|
||||
BUILD_DEPENDS+= libxul>=38:${PORTSDIR}/www/libxul
|
||||
RUN_DEPENDS+= libxul>=38:${PORTSDIR}/www/libxul
|
||||
|
||||
.elif ${gecko_ARGS:Mfirefox}
|
||||
|
||||
_GECKO_DEFAULT_VERSION= 31
|
||||
_GECKO_VERSIONS= 31 38
|
||||
_GECKO_DEFAULT_VERSION= 38
|
||||
_GECKO_VERSIONS= 38 39
|
||||
_GECKO_TYPE= firefox
|
||||
|
||||
# Dependence lines for different Firefox versions
|
||||
31_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox-esr
|
||||
38_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox
|
||||
38_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox-esr
|
||||
39_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:${PORTSDIR}/www/firefox
|
||||
|
||||
.if exists(${LOCALBASE}/bin/firefox)
|
||||
_GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null
|
||||
|
|
|
@ -161,8 +161,8 @@ icu_LIB_DEPENDS= libicui18n.so:${PORTSDIR}/devel/icu
|
|||
icu_MOZ_OPTIONS= --with-system-icu --with-intl-api
|
||||
|
||||
-jpeg_BUILD_DEPENDS=yasm:${PORTSDIR}/devel/yasm
|
||||
# XXX depends on ports/180159 or package flavor support
|
||||
#jpeg_LIB_DEPENDS= libjpeg.so:${PORTSDIR}/graphics/libjpeg-turbo
|
||||
# XXX JCS_EXTENSIONS API is currently disabled by r371283
|
||||
# XXX Remove files/patch-ijg-libjpeg once -turbo is default
|
||||
jpeg_USES= jpeg
|
||||
jpeg_MOZ_OPTIONS= --with-system-jpeg=${LOCALBASE}
|
||||
|
||||
|
|
|
@ -2,8 +2,7 @@
|
|||
|
||||
PORTNAME= gmp-api
|
||||
DISTVERSIONPREFIX= Firefox
|
||||
DISTVERSION= 38 # tracking www/firefox
|
||||
PORTREVISION= 1
|
||||
DISTVERSION= 39 # tracking www/firefox
|
||||
CATEGORIES= multimedia
|
||||
|
||||
MAINTAINER= gecko@FreeBSD.org
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (mozilla-gmp-api-Firefox38_GH0.tar.gz) = 6b156afe850c0d6faf0492ca5feeff4358e50ddc5ce3022ddcc6905a5bd21c80
|
||||
SIZE (mozilla-gmp-api-Firefox38_GH0.tar.gz) = 16209
|
||||
SHA256 (mozilla-gmp-api-Firefox39_GH0.tar.gz) = ecb461af06f4d8f1c16330e78e73775f5656767ced77ac2b5e4bb9413ca86ec4
|
||||
SIZE (mozilla-gmp-api-Firefox39_GH0.tar.gz) = 16363
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
PORTNAME= openh264
|
||||
PORTVERSION= 1.4.0
|
||||
DISTVERSIONPREFIX=v
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= multimedia
|
||||
|
||||
MAINTAINER= gecko@FreeBSD.org
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
|
||||
PORTNAME= ca_root_nss
|
||||
PORTVERSION= ${VERSION_NSS}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= security
|
||||
MASTER_SITES= MOZILLA/security/nss/releases/${DISTNAME:tu:C/[-.]/_/g}_RTM/src
|
||||
DISTNAME= nss-${VERSION_NSS}${NSS_SUFFIX}
|
||||
|
@ -18,7 +17,7 @@ OPTIONS_DEFAULT= ETCSYMLINK
|
|||
OPTIONS_SUB= yes
|
||||
|
||||
ETCSYMLINK_DESC= Add symlink to /etc/ssl/cert.pem
|
||||
ETCSYMLINK_CONFLICTS= ca-roots-[0-9]*
|
||||
ETCSYMLINK_CONFLICTS_INSTALL= ca-roots-[0-9]*
|
||||
|
||||
USES= perl5
|
||||
USE_PERL5= build
|
||||
|
@ -33,7 +32,7 @@ PLIST_SUB+= CERTDIR=${CERTDIR}
|
|||
# !!! Please DO NOT submit patches for new version until it has !!!
|
||||
# !!! been committed there first. !!!
|
||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
VERSION_NSS= 3.19.1
|
||||
VERSION_NSS= 3.19.2
|
||||
#NSS_SUFFIX= .with.ckbi.1.98
|
||||
CERTDATA_TXT_PATH= nss-${VERSION_NSS}/nss/lib/ckfw/builtins/certdata.txt
|
||||
BUNDLE_PROCESSOR= MAca-bundle.pl
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (nss-3.19.1.tar.gz) = b7be709551ec13206d8e3e8c065b894fa981c11573115e9478fa051029c52fff
|
||||
SIZE (nss-3.19.1.tar.gz) = 6953537
|
||||
SHA256 (nss-3.19.2.tar.gz) = 1306663e8f61d8449ad8cbcffab743a604dcd9f6f34232c210847c51dce2c9ae
|
||||
SIZE (nss-3.19.2.tar.gz) = 6953657
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= nss
|
||||
PORTVERSION= 3.19.1
|
||||
PORTVERSION= 3.19.2
|
||||
#DISTVERSIONSUFFIX= .with.ckbi.1.93
|
||||
CATEGORIES= security
|
||||
MASTER_SITES= MOZILLA/security/${PORTNAME}/releases/${DISTNAME:tu:C/[-.]/_/g}_RTM/src
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (nss-3.19.1.tar.gz) = b7be709551ec13206d8e3e8c065b894fa981c11573115e9478fa051029c52fff
|
||||
SIZE (nss-3.19.1.tar.gz) = 6953537
|
||||
SHA256 (nss-3.19.2.tar.gz) = 1306663e8f61d8449ad8cbcffab743a604dcd9f6f34232c210847c51dce2c9ae
|
||||
SIZE (nss-3.19.2.tar.gz) = 6953657
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox
|
||||
PORTVERSION= 31.7.0
|
||||
PORTVERSION= 38.1.0
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}esr/linux-i686/xpi \
|
||||
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build2/linux-i686/xpi
|
||||
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}esr-candidates/build1/linux-i686/xpi
|
||||
PKGNAMEPREFIX=
|
||||
PKGNAMESUFFIX= -esr-i18n
|
||||
DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/}
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# Created by: Koji Yokota <yokota@res.otaru-uc.ac.jp>
|
||||
# $FreeBSD$
|
||||
|
||||
FIREFOX_I18N_ALL_= ach af an ar as ast be bg bn-BD bn-IN br bs ca cs \
|
||||
csb cy da de el en-GB en-US en-ZA eo es-AR es-CL \
|
||||
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 \
|
||||
gu-IN he hi-IN hr hsb hu hy-AM id is it ja kk km \
|
||||
kn ko ku lij lt lv mai mk ml mr ms nb-NO nl nn-NO \
|
||||
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 zu
|
||||
sr sv-SE ta te th tr uk vi xh zh-CN zh-TW
|
||||
|
||||
.if defined(FIREFOX_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package)
|
||||
FIREFOX_I18N= ${FIREFOX_I18N_ALL_}
|
||||
|
@ -30,6 +30,9 @@ FIREFOX_I18N+= as
|
|||
.if ${PORT_OPTIONS:MLANG_AST}
|
||||
FIREFOX_I18N+= ast
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLANG_AZ}
|
||||
FIREFOX_I18N+= az
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLANG_BE}
|
||||
FIREFOX_I18N+= be
|
||||
.endif
|
||||
|
@ -66,6 +69,9 @@ FIREFOX_I18N+= da
|
|||
.if ${PORT_OPTIONS:MLANG_DE}
|
||||
FIREFOX_I18N+= de
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLANG_DSB}
|
||||
FIREFOX_I18N+= dsb
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLANG_EL}
|
||||
FIREFOX_I18N+= el
|
||||
.endif
|
||||
|
|
|
@ -1,178 +1,176 @@
|
|||
SHA256 (xpi/firefox-31.7.0/ach.xpi) = a46aab04cc4f8e7c310d18f25b281e618e318c3c42c664e0801fc8dfd7d7c448
|
||||
SIZE (xpi/firefox-31.7.0/ach.xpi) = 445326
|
||||
SHA256 (xpi/firefox-31.7.0/af.xpi) = 9b90171ca31d767403cf874b96895e49ba71114bcef4f0f48125ef8062bf1ad8
|
||||
SIZE (xpi/firefox-31.7.0/af.xpi) = 431089
|
||||
SHA256 (xpi/firefox-31.7.0/an.xpi) = 4a0ba3d16c1ea336297d19ec810b74427744ff49dd9eed790594e7e2948ff638
|
||||
SIZE (xpi/firefox-31.7.0/an.xpi) = 407151
|
||||
SHA256 (xpi/firefox-31.7.0/ar.xpi) = a2c08b2724a2582e432bc3442b650a30491efed3b434d790bfd03af66f1182fb
|
||||
SIZE (xpi/firefox-31.7.0/ar.xpi) = 459824
|
||||
SHA256 (xpi/firefox-31.7.0/as.xpi) = 837e0bbb261f288d765d64a5ba320cebb53d6b85fc64e4a5cb5866cec6d393dc
|
||||
SIZE (xpi/firefox-31.7.0/as.xpi) = 448568
|
||||
SHA256 (xpi/firefox-31.7.0/ast.xpi) = 53182a51b3b39f14af5742eb23a2d6392c8982e99baf2fd874ff5f592c536c72
|
||||
SIZE (xpi/firefox-31.7.0/ast.xpi) = 352340
|
||||
SHA256 (xpi/firefox-31.7.0/be.xpi) = a9fbbbe0f55e3a66b23f39a607caa86cc3a2d75618bf421049ce8a0fc989b0f1
|
||||
SIZE (xpi/firefox-31.7.0/be.xpi) = 378668
|
||||
SHA256 (xpi/firefox-31.7.0/bg.xpi) = a5b3ca6b806c7fd3abc2012a54d7a711dc4b5dc0e74feee7db64d4d12a9f090b
|
||||
SIZE (xpi/firefox-31.7.0/bg.xpi) = 438061
|
||||
SHA256 (xpi/firefox-31.7.0/bn-BD.xpi) = 35ec629d0252a452689e2081013d47ef472e8d690c6d400489adca943a816028
|
||||
SIZE (xpi/firefox-31.7.0/bn-BD.xpi) = 472626
|
||||
SHA256 (xpi/firefox-31.7.0/bn-IN.xpi) = 74e81096becea929294b831ca9ae5d27885873ce0c1fc55ac10bd3e7c898c67a
|
||||
SIZE (xpi/firefox-31.7.0/bn-IN.xpi) = 462593
|
||||
SHA256 (xpi/firefox-31.7.0/br.xpi) = 787d8460434e0404d3b41aec55874433a1b62393ceda146c12ca69e3e08de1e0
|
||||
SIZE (xpi/firefox-31.7.0/br.xpi) = 389704
|
||||
SHA256 (xpi/firefox-31.7.0/bs.xpi) = 55c147fb777304da501c93c5f9118eecf96a355b112bce2b7d1d481a7246718a
|
||||
SIZE (xpi/firefox-31.7.0/bs.xpi) = 429014
|
||||
SHA256 (xpi/firefox-31.7.0/ca.xpi) = 98442d2eca73b4e49a2316b1229c245e95d9e44c1548a2dd59967da9a2ca1d12
|
||||
SIZE (xpi/firefox-31.7.0/ca.xpi) = 403575
|
||||
SHA256 (xpi/firefox-31.7.0/cs.xpi) = d5a667efd1b3ae7f7f019c60d9783c2df7ccc31b26d192a0dd6135f1ddd53002
|
||||
SIZE (xpi/firefox-31.7.0/cs.xpi) = 390979
|
||||
SHA256 (xpi/firefox-31.7.0/csb.xpi) = 244cb21b264752c1c51d3b633822a409854e7805ebf3238d64505f9a9ea07de3
|
||||
SIZE (xpi/firefox-31.7.0/csb.xpi) = 383695
|
||||
SHA256 (xpi/firefox-31.7.0/cy.xpi) = 894d27928c7c8be1889a400d950e6cfd750612256d48523a16ab78cc3a62705a
|
||||
SIZE (xpi/firefox-31.7.0/cy.xpi) = 390727
|
||||
SHA256 (xpi/firefox-31.7.0/da.xpi) = 2c04601b1a1927d70cf08429d641f056b7cd9bc5a0b0b4af2cf41da39fbab056
|
||||
SIZE (xpi/firefox-31.7.0/da.xpi) = 397747
|
||||
SHA256 (xpi/firefox-31.7.0/de.xpi) = 0942a9e3108c73904248f5883031db8c9b1533ad7d1fb99b56278c10412252a5
|
||||
SIZE (xpi/firefox-31.7.0/de.xpi) = 395165
|
||||
SHA256 (xpi/firefox-31.7.0/el.xpi) = 9338bd6441506040fbf43dde73751010a897117850da56a7f74eafb49ecae868
|
||||
SIZE (xpi/firefox-31.7.0/el.xpi) = 442982
|
||||
SHA256 (xpi/firefox-31.7.0/en-GB.xpi) = 62a0eab5307fd1bf8edeb650f88e2b5583bc97d3ad09d055fcceded267f70e16
|
||||
SIZE (xpi/firefox-31.7.0/en-GB.xpi) = 390119
|
||||
SHA256 (xpi/firefox-31.7.0/en-US.xpi) = b465b5352d1598225a9d2bc84e54db540e5965618cc4cdaab88fe1c1ef2e8058
|
||||
SIZE (xpi/firefox-31.7.0/en-US.xpi) = 422788
|
||||
SHA256 (xpi/firefox-31.7.0/en-ZA.xpi) = 5402bbc92fb8b7953acf7ff9a2a4bb92d7113e94d92c782687825c303325a0d3
|
||||
SIZE (xpi/firefox-31.7.0/en-ZA.xpi) = 388527
|
||||
SHA256 (xpi/firefox-31.7.0/eo.xpi) = 37793b813547b052751b18cbd8413644d98753bef9cc9de9ce0c319b996300e3
|
||||
SIZE (xpi/firefox-31.7.0/eo.xpi) = 431831
|
||||
SHA256 (xpi/firefox-31.7.0/es-AR.xpi) = 6c5865f4d479449a0a9b825231c859df0d6a275c81afb39a6d8ecbc12b24a462
|
||||
SIZE (xpi/firefox-31.7.0/es-AR.xpi) = 399937
|
||||
SHA256 (xpi/firefox-31.7.0/es-CL.xpi) = 936f49302395973a8fccf344ab121e5d3caf6a9a4713ea28fa74b2e3475d2172
|
||||
SIZE (xpi/firefox-31.7.0/es-CL.xpi) = 342808
|
||||
SHA256 (xpi/firefox-31.7.0/es-ES.xpi) = 16930441fccf01cb56f74e847820374203ee10e3621e0bc727b60faf647b1ea7
|
||||
SIZE (xpi/firefox-31.7.0/es-ES.xpi) = 335880
|
||||
SHA256 (xpi/firefox-31.7.0/es-MX.xpi) = 19e1c14ea4b2964b2c482be44444864be37e7afbb25347b2c61b6a73aea46205
|
||||
SIZE (xpi/firefox-31.7.0/es-MX.xpi) = 402672
|
||||
SHA256 (xpi/firefox-31.7.0/et.xpi) = 7b3aabcd02422a86e990cf3d122fa833493275d433cab826b062ad0c389ddbae
|
||||
SIZE (xpi/firefox-31.7.0/et.xpi) = 390360
|
||||
SHA256 (xpi/firefox-31.7.0/eu.xpi) = 08da23a46160d70f1f267176c367ab42e7d9309a3694aab127f02092846d4032
|
||||
SIZE (xpi/firefox-31.7.0/eu.xpi) = 412999
|
||||
SHA256 (xpi/firefox-31.7.0/fa.xpi) = 9f320fb90856afeda61ed6ef231c7f08a5f286cc1a3e1ccb648e00bc83b9ca0d
|
||||
SIZE (xpi/firefox-31.7.0/fa.xpi) = 460857
|
||||
SHA256 (xpi/firefox-31.7.0/ff.xpi) = 186e83c5d270013ece23c060db9b688d86d5fa411e1e43180147964344a4fa08
|
||||
SIZE (xpi/firefox-31.7.0/ff.xpi) = 400143
|
||||
SHA256 (xpi/firefox-31.7.0/fi.xpi) = a735827f8b51d44d2dbf06dc60694e5c495120d2cd30a06a141f265c6e2a5559
|
||||
SIZE (xpi/firefox-31.7.0/fi.xpi) = 392740
|
||||
SHA256 (xpi/firefox-31.7.0/fr.xpi) = c87f0a11b32b0d9232aebed8c8db11653b7a1f6e4cff349cd55605c984b5e353
|
||||
SIZE (xpi/firefox-31.7.0/fr.xpi) = 406462
|
||||
SHA256 (xpi/firefox-31.7.0/fy-NL.xpi) = 06f65abe1aad68faf55dffbe60b8cec4c6dbf9ed49a8e0b6e829bc35cdae668f
|
||||
SIZE (xpi/firefox-31.7.0/fy-NL.xpi) = 401930
|
||||
SHA256 (xpi/firefox-31.7.0/ga-IE.xpi) = c2d7f32ffa5f7a4eb0f9fd793c5ce2bd4dae08f7fba57b0bfc9f9a5c276db1b9
|
||||
SIZE (xpi/firefox-31.7.0/ga-IE.xpi) = 410077
|
||||
SHA256 (xpi/firefox-31.7.0/gd.xpi) = d6507eaefcf693abdf44df8ab8ff31af1453064543e41324fd535f77792fa3b8
|
||||
SIZE (xpi/firefox-31.7.0/gd.xpi) = 403014
|
||||
SHA256 (xpi/firefox-31.7.0/gl.xpi) = 7492fa58143cb2e31377165e0f62a31ba5a6d6b93f44dbea7a196c1fe6c35117
|
||||
SIZE (xpi/firefox-31.7.0/gl.xpi) = 390599
|
||||
SHA256 (xpi/firefox-31.7.0/gu-IN.xpi) = 09b503b94a67ee8b7f031375f6e3247544e6e58f47b1077931f6022117f12eca
|
||||
SIZE (xpi/firefox-31.7.0/gu-IN.xpi) = 423504
|
||||
SHA256 (xpi/firefox-31.7.0/he.xpi) = fc459d3c9b7c4989b78f9f9ef3f56b7a3130b04ddcf4af199e63f531ff3369ef
|
||||
SIZE (xpi/firefox-31.7.0/he.xpi) = 427629
|
||||
SHA256 (xpi/firefox-31.7.0/hi-IN.xpi) = 1fe8ffc2781376657a2190ce67c3cb0f8d661a941ff14d2a11360feb898963da
|
||||
SIZE (xpi/firefox-31.7.0/hi-IN.xpi) = 441402
|
||||
SHA256 (xpi/firefox-31.7.0/hr.xpi) = 7233b1981e2b4333c4d92fc1b354e29abd426b5c2cad8157ceae9836e874f0e7
|
||||
SIZE (xpi/firefox-31.7.0/hr.xpi) = 424371
|
||||
SHA256 (xpi/firefox-31.7.0/hsb.xpi) = 78f17b9699469f7aa33adb332e6a86865d78a4bb41e61aaaf9632de06d6c93fc
|
||||
SIZE (xpi/firefox-31.7.0/hsb.xpi) = 413076
|
||||
SHA256 (xpi/firefox-31.7.0/hu.xpi) = 98d7f3c03c8c0e25ac904edc9b7744adaf1b7001b887c496cf731b66e4da30f4
|
||||
SIZE (xpi/firefox-31.7.0/hu.xpi) = 398644
|
||||
SHA256 (xpi/firefox-31.7.0/hy-AM.xpi) = be183e444d88a9d84c7f7d9f8f39805036f90cbd33cdb1157cf0a620dc510d5f
|
||||
SIZE (xpi/firefox-31.7.0/hy-AM.xpi) = 478743
|
||||
SHA256 (xpi/firefox-31.7.0/id.xpi) = c059b5bca06f2073dc68f7068f99b6d3d52291f07bdb2a5527c62d64f787d40e
|
||||
SIZE (xpi/firefox-31.7.0/id.xpi) = 378301
|
||||
SHA256 (xpi/firefox-31.7.0/is.xpi) = ff432dd9cda5aa362806be2b93a44ae343860e56ad871c12b808eab3ce95e4b2
|
||||
SIZE (xpi/firefox-31.7.0/is.xpi) = 427327
|
||||
SHA256 (xpi/firefox-31.7.0/it.xpi) = 63b7031dc95cb7938f796f8273aca84959dc4c1b06457186d39d2314437135d9
|
||||
SIZE (xpi/firefox-31.7.0/it.xpi) = 330905
|
||||
SHA256 (xpi/firefox-31.7.0/ja.xpi) = c6e5d30f36831608bbb001a30dd20d36357a8f812208caef3b3672f15d03869d
|
||||
SIZE (xpi/firefox-31.7.0/ja.xpi) = 421664
|
||||
SHA256 (xpi/firefox-31.7.0/kk.xpi) = 4134807f0682c4e3b531050d6152c95a3cd207bbf6266ae668e40af5a404b44d
|
||||
SIZE (xpi/firefox-31.7.0/kk.xpi) = 439116
|
||||
SHA256 (xpi/firefox-31.7.0/km.xpi) = 425742f17f805c4fb8bcffe2f634687a4430e9a0a97af14e3e66d81930349d86
|
||||
SIZE (xpi/firefox-31.7.0/km.xpi) = 506476
|
||||
SHA256 (xpi/firefox-31.7.0/kn.xpi) = 21dde9bc0907a3f3d6eccb62209512c4e923e9578f99d3cfa38b9fc0f5749166
|
||||
SIZE (xpi/firefox-31.7.0/kn.xpi) = 458891
|
||||
SHA256 (xpi/firefox-31.7.0/ko.xpi) = d1815717ff979a4f4d752860d7584afddc8598c5870e9827866b0ab5ef8ec6c5
|
||||
SIZE (xpi/firefox-31.7.0/ko.xpi) = 402815
|
||||
SHA256 (xpi/firefox-31.7.0/ku.xpi) = fbae0d3034d27f604dadc2f1f9d47faa919429951ef0fddc3acb27cc54c761fb
|
||||
SIZE (xpi/firefox-31.7.0/ku.xpi) = 420260
|
||||
SHA256 (xpi/firefox-31.7.0/lij.xpi) = 64b6cbc1afed4d403e1dc138adb00ee5a0d9f510aeb0203ee5a55ae0c12a54df
|
||||
SIZE (xpi/firefox-31.7.0/lij.xpi) = 385864
|
||||
SHA256 (xpi/firefox-31.7.0/lt.xpi) = e427e278896af7049be1a2ba0921fe040a0f28ea6db88b9776e61c9aa1f7c1f2
|
||||
SIZE (xpi/firefox-31.7.0/lt.xpi) = 435431
|
||||
SHA256 (xpi/firefox-31.7.0/lv.xpi) = 808561e54dcbcfc2c5d4340b8981c26c32ffaaff41981c24987985b3e5237836
|
||||
SIZE (xpi/firefox-31.7.0/lv.xpi) = 398576
|
||||
SHA256 (xpi/firefox-31.7.0/mai.xpi) = c0028b9cb674795770485754d827e33d326c7b088faa07ae0533eedb4c4b0a98
|
||||
SIZE (xpi/firefox-31.7.0/mai.xpi) = 444885
|
||||
SHA256 (xpi/firefox-31.7.0/mk.xpi) = 9e2b8adbe49312fff3f4f4f466253c55ff475d77ee621ed1ec90d3f6db132f21
|
||||
SIZE (xpi/firefox-31.7.0/mk.xpi) = 475483
|
||||
SHA256 (xpi/firefox-31.7.0/ml.xpi) = 7c84d8089f4a191597ba04043f1ed06b495afa8493db7b9069b3b8e8431f1019
|
||||
SIZE (xpi/firefox-31.7.0/ml.xpi) = 466254
|
||||
SHA256 (xpi/firefox-31.7.0/mr.xpi) = 8fde662d065db623971f5ca3259edbda653b269a85089d7da61b59a2ac1028bf
|
||||
SIZE (xpi/firefox-31.7.0/mr.xpi) = 451292
|
||||
SHA256 (xpi/firefox-31.7.0/ms.xpi) = cf842b609e2c0196e38ef566cb6cd440d9d98aa406ee19e73ba9be199b3e5137
|
||||
SIZE (xpi/firefox-31.7.0/ms.xpi) = 436230
|
||||
SHA256 (xpi/firefox-31.7.0/nb-NO.xpi) = 614e4819e7542455d53f5fa1d477e7bbaca34f9a60f381f310f469f8eb7a6585
|
||||
SIZE (xpi/firefox-31.7.0/nb-NO.xpi) = 392006
|
||||
SHA256 (xpi/firefox-31.7.0/nl.xpi) = 25fa21b6f5b9226bc98b564c6ea4597def332bf45287245b946406901176c85c
|
||||
SIZE (xpi/firefox-31.7.0/nl.xpi) = 390885
|
||||
SHA256 (xpi/firefox-31.7.0/nn-NO.xpi) = 1da9ed892eef144fc24f36d8d357e909bebf1add25f39bc18d9eb3b3752676e6
|
||||
SIZE (xpi/firefox-31.7.0/nn-NO.xpi) = 386281
|
||||
SHA256 (xpi/firefox-31.7.0/or.xpi) = c6609d74a5ad5c26f47557431f284ec22218f6482a1da09e6a82a5be81ff6746
|
||||
SIZE (xpi/firefox-31.7.0/or.xpi) = 464749
|
||||
SHA256 (xpi/firefox-31.7.0/pa-IN.xpi) = b190e43dc00acb59269a64ef34871d326296b526b3ebc4efbdf6a7d2d9cd35ae
|
||||
SIZE (xpi/firefox-31.7.0/pa-IN.xpi) = 439326
|
||||
SHA256 (xpi/firefox-31.7.0/pl.xpi) = 594ad2d1bc2ad972da2e1b6a04cff08d31664293c766bfaeac5339efc85b57e3
|
||||
SIZE (xpi/firefox-31.7.0/pl.xpi) = 374747
|
||||
SHA256 (xpi/firefox-31.7.0/pt-BR.xpi) = b5713f2dfe91eee8eaa6628592165eaa134bfa0f61b741bfe31fd9b321d309b9
|
||||
SIZE (xpi/firefox-31.7.0/pt-BR.xpi) = 405565
|
||||
SHA256 (xpi/firefox-31.7.0/pt-PT.xpi) = abb6214eca83b79f83b042597d222e06474acc6252d389d5ba2c651a9e5ce03a
|
||||
SIZE (xpi/firefox-31.7.0/pt-PT.xpi) = 386344
|
||||
SHA256 (xpi/firefox-31.7.0/rm.xpi) = 14812365a8427dacc135cbedd51aa9f05cdeae79ae534e733c90156871bdce44
|
||||
SIZE (xpi/firefox-31.7.0/rm.xpi) = 399285
|
||||
SHA256 (xpi/firefox-31.7.0/ro.xpi) = 37101737210648a141e39bdd45b6a09d6bd1c7c91921fce6e18e06c960786a75
|
||||
SIZE (xpi/firefox-31.7.0/ro.xpi) = 439388
|
||||
SHA256 (xpi/firefox-31.7.0/ru.xpi) = f26cd9d88445e805ad9001e64c6fc090e4e2a9a38a6a1a3a4db16d4d2f86af85
|
||||
SIZE (xpi/firefox-31.7.0/ru.xpi) = 367898
|
||||
SHA256 (xpi/firefox-31.7.0/si.xpi) = 9b65abd0a84e28cd02fec01f57601dec37e62ee79364ee1e9afcf56c051e872f
|
||||
SIZE (xpi/firefox-31.7.0/si.xpi) = 463224
|
||||
SHA256 (xpi/firefox-31.7.0/sk.xpi) = 79af6394fb242a2381c22d530661c8e4aa49f79072547270d1666623cd234376
|
||||
SIZE (xpi/firefox-31.7.0/sk.xpi) = 413802
|
||||
SHA256 (xpi/firefox-31.7.0/sl.xpi) = 5adbabcf3f9df45ece596da1866551abd308f93a14d4c2d2872cb93b3d00a365
|
||||
SIZE (xpi/firefox-31.7.0/sl.xpi) = 387134
|
||||
SHA256 (xpi/firefox-31.7.0/son.xpi) = f6fe46997da6c63a2622df2ae8fcd162df761cc13f02f12e19a5827bd5b3d5d9
|
||||
SIZE (xpi/firefox-31.7.0/son.xpi) = 395144
|
||||
SHA256 (xpi/firefox-31.7.0/sq.xpi) = 4b11e3c0f1b709193df7ac617f09502224fa90891c64456bf3b09f64081f7366
|
||||
SIZE (xpi/firefox-31.7.0/sq.xpi) = 431136
|
||||
SHA256 (xpi/firefox-31.7.0/sr.xpi) = 7cec3903511642d0f18d681f9c8db88d7a515a0d4bc41c3b47b639f900888394
|
||||
SIZE (xpi/firefox-31.7.0/sr.xpi) = 425903
|
||||
SHA256 (xpi/firefox-31.7.0/sv-SE.xpi) = e90efaef588b44c2aa8ed7243930fe749c8804ac29f27505cdb4f16578c47ece
|
||||
SIZE (xpi/firefox-31.7.0/sv-SE.xpi) = 399026
|
||||
SHA256 (xpi/firefox-31.7.0/ta.xpi) = 1eb3703416367ca99e10779fc9cdbfd2b521c33d841cdc5e37a780c8995ffeab
|
||||
SIZE (xpi/firefox-31.7.0/ta.xpi) = 447685
|
||||
SHA256 (xpi/firefox-31.7.0/te.xpi) = 6e8b188de46947a0021db9bea2f559d00c2fed6c6fdd359d3c6ed43ae9e672c8
|
||||
SIZE (xpi/firefox-31.7.0/te.xpi) = 462591
|
||||
SHA256 (xpi/firefox-31.7.0/th.xpi) = c5f507998c17c120af9659fabdb0573e807784fb482c86d559cd3001cfb584c4
|
||||
SIZE (xpi/firefox-31.7.0/th.xpi) = 478126
|
||||
SHA256 (xpi/firefox-31.7.0/tr.xpi) = 846f9802aacfb0d6a873a9cfbc7854fce33b2f59311f1c85d91d7a929bab2255
|
||||
SIZE (xpi/firefox-31.7.0/tr.xpi) = 417370
|
||||
SHA256 (xpi/firefox-31.7.0/uk.xpi) = 5e988550f6722b30362f1e69675e18259e8bb20439747ce37a4fde9fd429a5d8
|
||||
SIZE (xpi/firefox-31.7.0/uk.xpi) = 428002
|
||||
SHA256 (xpi/firefox-31.7.0/vi.xpi) = 3e6aa2a99aef4613d6dcc5b912ebe2a017d2f7cae3494429484441a0d501b319
|
||||
SIZE (xpi/firefox-31.7.0/vi.xpi) = 413375
|
||||
SHA256 (xpi/firefox-31.7.0/xh.xpi) = fe7fbc65ab6d572a7bb9c3133ddd6ea1772171ac3e1ce43528c07ebc78a2f8b5
|
||||
SIZE (xpi/firefox-31.7.0/xh.xpi) = 397875
|
||||
SHA256 (xpi/firefox-31.7.0/zh-CN.xpi) = 20aa5d265b0d275c63fceea28257e100ce788598b4e18e448083ce02d50f8dff
|
||||
SIZE (xpi/firefox-31.7.0/zh-CN.xpi) = 419630
|
||||
SHA256 (xpi/firefox-31.7.0/zh-TW.xpi) = 5752bf1f8f6618bfd039cfd378d43a29d37270e4deb26474ee86b4cd4275e993
|
||||
SIZE (xpi/firefox-31.7.0/zh-TW.xpi) = 412520
|
||||
SHA256 (xpi/firefox-31.7.0/zu.xpi) = 012bb28adb83356fc8367556f8cc397c2d0fbcd552ff56c5e146cb48653c822b
|
||||
SIZE (xpi/firefox-31.7.0/zu.xpi) = 433216
|
||||
SHA256 (xpi/firefox-38.1.0/ach.xpi) = d8d0439db26597a0d869e5467bb849bc77c1786b0c2df3a16cf91801523cbebb
|
||||
SIZE (xpi/firefox-38.1.0/ach.xpi) = 477969
|
||||
SHA256 (xpi/firefox-38.1.0/af.xpi) = 1a4c6835db2ba384767f6ceddf021a30b61c1d29f17577cf2f7330e3358c9ff7
|
||||
SIZE (xpi/firefox-38.1.0/af.xpi) = 483325
|
||||
SHA256 (xpi/firefox-38.1.0/an.xpi) = dbecee3b6d22ff49680d412a338a8e94d6f759c62110cb55ed6aa21f11537a0a
|
||||
SIZE (xpi/firefox-38.1.0/an.xpi) = 461422
|
||||
SHA256 (xpi/firefox-38.1.0/ar.xpi) = 47eef2d1bfa6e5594cd8835bddca7bfd5019aac1553b54b05c1c749fad659dda
|
||||
SIZE (xpi/firefox-38.1.0/ar.xpi) = 516495
|
||||
SHA256 (xpi/firefox-38.1.0/as.xpi) = 1628e61d5bb7e7c4cbdff288ca2e6d8623578ccf12797e63b27864e68be21c1c
|
||||
SIZE (xpi/firefox-38.1.0/as.xpi) = 509574
|
||||
SHA256 (xpi/firefox-38.1.0/ast.xpi) = bfe8b26cffb80f7cc0824dc08546f31d54da190bf8fd342b12204ecdc85977e7
|
||||
SIZE (xpi/firefox-38.1.0/ast.xpi) = 397202
|
||||
SHA256 (xpi/firefox-38.1.0/az.xpi) = a29a1f0362aa53c7ea42e500478d2218e6e3e356c7305b249c65f078218fb272
|
||||
SIZE (xpi/firefox-38.1.0/az.xpi) = 489152
|
||||
SHA256 (xpi/firefox-38.1.0/be.xpi) = ff7583b04c4e57128f0165ecd94488bca77cf4a84bf0284f313f9aca2c885faf
|
||||
SIZE (xpi/firefox-38.1.0/be.xpi) = 441056
|
||||
SHA256 (xpi/firefox-38.1.0/bg.xpi) = 5096d0dc1ff5e547fb07906e0a3183b3117a6453311fb28afa991db5c34c95d1
|
||||
SIZE (xpi/firefox-38.1.0/bg.xpi) = 487819
|
||||
SHA256 (xpi/firefox-38.1.0/bn-BD.xpi) = 2ca791e8a573f76f60698b3b634cf9c0768eee657ba6e99f65c0f8979e152216
|
||||
SIZE (xpi/firefox-38.1.0/bn-BD.xpi) = 528688
|
||||
SHA256 (xpi/firefox-38.1.0/bn-IN.xpi) = b664469d76782fe549f582b79cb88d8350d439038ee1eaa7a7388fd5b3cb1eff
|
||||
SIZE (xpi/firefox-38.1.0/bn-IN.xpi) = 527927
|
||||
SHA256 (xpi/firefox-38.1.0/br.xpi) = 57ee679bb3532a0e9289827d4fb421598683ea8168656889edddcff1e21bb6b9
|
||||
SIZE (xpi/firefox-38.1.0/br.xpi) = 441962
|
||||
SHA256 (xpi/firefox-38.1.0/bs.xpi) = 92b42a21fdd59775f65f13316e875f93f7478695aa70ab02016f3145c79a3aea
|
||||
SIZE (xpi/firefox-38.1.0/bs.xpi) = 485305
|
||||
SHA256 (xpi/firefox-38.1.0/ca.xpi) = 53c42f1501f90ddd9259ca255baae8a7ea6a1055fa88acc0cd1de9d8a20db2b9
|
||||
SIZE (xpi/firefox-38.1.0/ca.xpi) = 458091
|
||||
SHA256 (xpi/firefox-38.1.0/cs.xpi) = a23e9ea357bd08c5029d31d6865516efc5ff3aa8504dae8dc316af5efc859fa9
|
||||
SIZE (xpi/firefox-38.1.0/cs.xpi) = 446725
|
||||
SHA256 (xpi/firefox-38.1.0/cy.xpi) = 464c9b57d03fbaff4a6241dfa492623a338018a609e2289defeba196ab454b95
|
||||
SIZE (xpi/firefox-38.1.0/cy.xpi) = 444384
|
||||
SHA256 (xpi/firefox-38.1.0/da.xpi) = 2b339c9a73067076f4ca8b28d9d8543064be5616dd4db50cf0bf1ed0e4cea3c2
|
||||
SIZE (xpi/firefox-38.1.0/da.xpi) = 450762
|
||||
SHA256 (xpi/firefox-38.1.0/de.xpi) = bb0aca584ae740caa4cd2adeab2de09670c38ec8dd0241512318201b3ed6d761
|
||||
SIZE (xpi/firefox-38.1.0/de.xpi) = 451628
|
||||
SHA256 (xpi/firefox-38.1.0/dsb.xpi) = 921ff1abd17da602be91dcd9ddf7f0655bb97231840ac72f964252bacfdcfcf9
|
||||
SIZE (xpi/firefox-38.1.0/dsb.xpi) = 470923
|
||||
SHA256 (xpi/firefox-38.1.0/el.xpi) = 96e8b36888ccadce8d576208a76ab6522c3148c501bc35549e25bce545c11a01
|
||||
SIZE (xpi/firefox-38.1.0/el.xpi) = 498369
|
||||
SHA256 (xpi/firefox-38.1.0/en-GB.xpi) = 3f80590f27a73d5cb50b56b7658c38f4378f0bb1b84d3da4c2e0cd9a7b8f4120
|
||||
SIZE (xpi/firefox-38.1.0/en-GB.xpi) = 437845
|
||||
SHA256 (xpi/firefox-38.1.0/en-US.xpi) = 36fe4e6fc9b319f65b81ab0f9f8eda2b185ff175b6d4999799489365154142e6
|
||||
SIZE (xpi/firefox-38.1.0/en-US.xpi) = 469718
|
||||
SHA256 (xpi/firefox-38.1.0/en-ZA.xpi) = 6d3a854cffcb9a6ff37a6ae4b2b9a91da3fd16914ea4cd70f69ad3039b960ceb
|
||||
SIZE (xpi/firefox-38.1.0/en-ZA.xpi) = 439925
|
||||
SHA256 (xpi/firefox-38.1.0/eo.xpi) = ac159c4a6b9dfb3b838dd757350cdfa92d7322c772e46bf79fbfce8d7e03b433
|
||||
SIZE (xpi/firefox-38.1.0/eo.xpi) = 488369
|
||||
SHA256 (xpi/firefox-38.1.0/es-AR.xpi) = 7410081864264d57267ffb4795aac402a72d30e369e4aa6ec2df6501c77ead8f
|
||||
SIZE (xpi/firefox-38.1.0/es-AR.xpi) = 453982
|
||||
SHA256 (xpi/firefox-38.1.0/es-CL.xpi) = f5979bcfc6576cd6796a555617966c4f7c42d90bba52dc281824d09f7ca2ba01
|
||||
SIZE (xpi/firefox-38.1.0/es-CL.xpi) = 384678
|
||||
SHA256 (xpi/firefox-38.1.0/es-ES.xpi) = 87e28415879608af646ab9a531108c74b18a8b94f7a472439841ed7b79240537
|
||||
SIZE (xpi/firefox-38.1.0/es-ES.xpi) = 374072
|
||||
SHA256 (xpi/firefox-38.1.0/es-MX.xpi) = aa8e47ac74821a900eac826459e9fefb0eb8c0de77ee1b5246a55e23a369f4b8
|
||||
SIZE (xpi/firefox-38.1.0/es-MX.xpi) = 457049
|
||||
SHA256 (xpi/firefox-38.1.0/et.xpi) = 76e0e0480e62cc5187e6cf97845d61d835a16b883582cd8a27ef2b6e74c3d69c
|
||||
SIZE (xpi/firefox-38.1.0/et.xpi) = 443228
|
||||
SHA256 (xpi/firefox-38.1.0/eu.xpi) = ecac2d452d2a4e4165970a1aed2a0ae6bff8212c0d6dc0687e5782758d5d72d9
|
||||
SIZE (xpi/firefox-38.1.0/eu.xpi) = 466554
|
||||
SHA256 (xpi/firefox-38.1.0/fa.xpi) = 90bbd088bff3a41dfc752f695f0184e68d5621ffdaa17536a989067bc2f4f7de
|
||||
SIZE (xpi/firefox-38.1.0/fa.xpi) = 518281
|
||||
SHA256 (xpi/firefox-38.1.0/ff.xpi) = cb840656488d9044aa2042805f95458720fbcbb19e6fbd8beca197a9101817d1
|
||||
SIZE (xpi/firefox-38.1.0/ff.xpi) = 454586
|
||||
SHA256 (xpi/firefox-38.1.0/fi.xpi) = 6d1a14149420b2d851673c58308cff8b5218a4e9835b60d5a5274d2edf367635
|
||||
SIZE (xpi/firefox-38.1.0/fi.xpi) = 444852
|
||||
SHA256 (xpi/firefox-38.1.0/fr.xpi) = 8e416c8c930e09adb020ede16d420fd94a4e0e169d3a40213e33db94dee44d6b
|
||||
SIZE (xpi/firefox-38.1.0/fr.xpi) = 461401
|
||||
SHA256 (xpi/firefox-38.1.0/fy-NL.xpi) = f6f06bac70b7edd570510deed989e3184d08a42a7e49a7e7960ed1f6a705e0a0
|
||||
SIZE (xpi/firefox-38.1.0/fy-NL.xpi) = 455537
|
||||
SHA256 (xpi/firefox-38.1.0/ga-IE.xpi) = 39ae1a583ac7be57fb3631e98734008823fe735ac679a173efe8729ef66e295c
|
||||
SIZE (xpi/firefox-38.1.0/ga-IE.xpi) = 469623
|
||||
SHA256 (xpi/firefox-38.1.0/gd.xpi) = c38b1152552c91e0531eb4536b2727bc72c1c9397679d8b42003dbf7dab1be7d
|
||||
SIZE (xpi/firefox-38.1.0/gd.xpi) = 454616
|
||||
SHA256 (xpi/firefox-38.1.0/gl.xpi) = d8ad198ce7afef708e7974384cac5b646efa58c1b914c0e58a0c19569276ac9d
|
||||
SIZE (xpi/firefox-38.1.0/gl.xpi) = 448924
|
||||
SHA256 (xpi/firefox-38.1.0/gu-IN.xpi) = dc03e9021e27b9c5d41be2c9e569da7165176f2139872fc5694500edd71e7102
|
||||
SIZE (xpi/firefox-38.1.0/gu-IN.xpi) = 477980
|
||||
SHA256 (xpi/firefox-38.1.0/he.xpi) = 4d67723435a899817745f8141c7671fd8c0ed899db6b9fc040a7cf77a997113a
|
||||
SIZE (xpi/firefox-38.1.0/he.xpi) = 486784
|
||||
SHA256 (xpi/firefox-38.1.0/hi-IN.xpi) = 3404e4a912049d583508619d92fb37663629cddc09f91f2c6f6e007fcbd1a281
|
||||
SIZE (xpi/firefox-38.1.0/hi-IN.xpi) = 508166
|
||||
SHA256 (xpi/firefox-38.1.0/hr.xpi) = 98487a75721efbb651b30d94fc00edac8962ca4aa0f356c714aae1761ed1650b
|
||||
SIZE (xpi/firefox-38.1.0/hr.xpi) = 478271
|
||||
SHA256 (xpi/firefox-38.1.0/hsb.xpi) = b36779a40c56839cb9b6a78eca688704dcc5c202921493726640805580b7bf6e
|
||||
SIZE (xpi/firefox-38.1.0/hsb.xpi) = 468719
|
||||
SHA256 (xpi/firefox-38.1.0/hu.xpi) = 93ace7ddee6b87c2a3cdfeedce151ced7354d3504d0d7e1aee8f2368094cabc0
|
||||
SIZE (xpi/firefox-38.1.0/hu.xpi) = 453554
|
||||
SHA256 (xpi/firefox-38.1.0/hy-AM.xpi) = 8c6a5918df7c1bdd36cdf9a5fe44400c53e2e8998dc910ad71ff29178299d63b
|
||||
SIZE (xpi/firefox-38.1.0/hy-AM.xpi) = 534264
|
||||
SHA256 (xpi/firefox-38.1.0/id.xpi) = f37f250ba26bdf7cdb1f3d47a6bf7f7feb90ebd82da1a55ff4f11932af1da1e5
|
||||
SIZE (xpi/firefox-38.1.0/id.xpi) = 431488
|
||||
SHA256 (xpi/firefox-38.1.0/is.xpi) = fa4eca6ec46e110683178b282f4bd3cc6b47b315e4ddbd34cd99b8c00676b297
|
||||
SIZE (xpi/firefox-38.1.0/is.xpi) = 485128
|
||||
SHA256 (xpi/firefox-38.1.0/it.xpi) = 42948d7424e1554ce71e34d34c63b1bd3b94bf067845b8826576591aeeba3bb9
|
||||
SIZE (xpi/firefox-38.1.0/it.xpi) = 368409
|
||||
SHA256 (xpi/firefox-38.1.0/ja.xpi) = 456e16ba61c0bb904cbfb3d05b184d6fc9d7cac7f346c7b38d9fe230af96e96d
|
||||
SIZE (xpi/firefox-38.1.0/ja.xpi) = 479113
|
||||
SHA256 (xpi/firefox-38.1.0/kk.xpi) = 0c10adeca506e653e464285b1feaf049d79dbcb45e1820dfe6cbb13198422c5a
|
||||
SIZE (xpi/firefox-38.1.0/kk.xpi) = 503567
|
||||
SHA256 (xpi/firefox-38.1.0/km.xpi) = b94aff6d6093856b1726b1aa8d6ffa0ad2db3a897ea9ad6a5589fbffac6580a9
|
||||
SIZE (xpi/firefox-38.1.0/km.xpi) = 565673
|
||||
SHA256 (xpi/firefox-38.1.0/kn.xpi) = 72d4b3da5a920975904ba4f17b55826685ec71ffc4e952a946142210e2ae95eb
|
||||
SIZE (xpi/firefox-38.1.0/kn.xpi) = 533464
|
||||
SHA256 (xpi/firefox-38.1.0/ko.xpi) = 4caa6c2e11b1c0d9184cc688fcb5f9534ab74a1d87c2d7624a83c0fc1ea4699d
|
||||
SIZE (xpi/firefox-38.1.0/ko.xpi) = 460853
|
||||
SHA256 (xpi/firefox-38.1.0/lij.xpi) = 75c704a30c99d4bd6b0a99945709dd88c86b8859ffe448ed59b0b9af51c76c7b
|
||||
SIZE (xpi/firefox-38.1.0/lij.xpi) = 444237
|
||||
SHA256 (xpi/firefox-38.1.0/lt.xpi) = 0a4c45516ba00ab84b2744690ff4e70ef624825238fa4c4cd6345db68be158e5
|
||||
SIZE (xpi/firefox-38.1.0/lt.xpi) = 486451
|
||||
SHA256 (xpi/firefox-38.1.0/lv.xpi) = 3f88098b580f7591a9a435ba93f06e73f6adb312d9a19ad4b756768b93bd3b1b
|
||||
SIZE (xpi/firefox-38.1.0/lv.xpi) = 467197
|
||||
SHA256 (xpi/firefox-38.1.0/mai.xpi) = 27473c24c7f66a9ed31ccda36d04bf98cc81f699bdfe4c5958de0abd9c5c6824
|
||||
SIZE (xpi/firefox-38.1.0/mai.xpi) = 514665
|
||||
SHA256 (xpi/firefox-38.1.0/mk.xpi) = 6e2d2ac3b859eedc499041e2961cc1bf4b92316dd59526f14ff694fb4c2067b4
|
||||
SIZE (xpi/firefox-38.1.0/mk.xpi) = 529204
|
||||
SHA256 (xpi/firefox-38.1.0/ml.xpi) = f4d488f0207854450945af1230b70db6773bd94bad6804fdba4215bba921734f
|
||||
SIZE (xpi/firefox-38.1.0/ml.xpi) = 528919
|
||||
SHA256 (xpi/firefox-38.1.0/mr.xpi) = dd9caa414cc4ba76ec4161b246612cb008585b5662b4c911d1ca7058e86a54a5
|
||||
SIZE (xpi/firefox-38.1.0/mr.xpi) = 505961
|
||||
SHA256 (xpi/firefox-38.1.0/ms.xpi) = 00c98155bc447385340e2c1b08ecfac7f4405b8b843c0603ab39a65b037f49e3
|
||||
SIZE (xpi/firefox-38.1.0/ms.xpi) = 489872
|
||||
SHA256 (xpi/firefox-38.1.0/nb-NO.xpi) = 9b17997524d839b610e60b42cae25c512ea93f3fedad473e723a91289f839ca5
|
||||
SIZE (xpi/firefox-38.1.0/nb-NO.xpi) = 444176
|
||||
SHA256 (xpi/firefox-38.1.0/nl.xpi) = 8d1532bbbb2a843babfd5b46909f0af1457fc8c9c14145b693ad0ff91b3e90ef
|
||||
SIZE (xpi/firefox-38.1.0/nl.xpi) = 443993
|
||||
SHA256 (xpi/firefox-38.1.0/nn-NO.xpi) = 732a5be1501711e2aed2a5073dd6a3726095b8d3940765e4b368c74c2ad32c59
|
||||
SIZE (xpi/firefox-38.1.0/nn-NO.xpi) = 438451
|
||||
SHA256 (xpi/firefox-38.1.0/or.xpi) = 1297c29d98f2b1952d05f50417ba383c28505dd316ab8fd7179be6f6805ba892
|
||||
SIZE (xpi/firefox-38.1.0/or.xpi) = 527048
|
||||
SHA256 (xpi/firefox-38.1.0/pa-IN.xpi) = d3ee939b7914194a87f5ea3b24e569c3c9486ca3d0b997e8303c2c9c42b3bf76
|
||||
SIZE (xpi/firefox-38.1.0/pa-IN.xpi) = 493722
|
||||
SHA256 (xpi/firefox-38.1.0/pl.xpi) = 8b88410da0376d2c14ccc3e3c0eb8a0031d60d048aebba176100854a17bc16b4
|
||||
SIZE (xpi/firefox-38.1.0/pl.xpi) = 406566
|
||||
SHA256 (xpi/firefox-38.1.0/pt-BR.xpi) = f1b89e40d210497e3a7ef45b7acbf42c9d0b0b7990efd35d94f04fd0247dfc53
|
||||
SIZE (xpi/firefox-38.1.0/pt-BR.xpi) = 459812
|
||||
SHA256 (xpi/firefox-38.1.0/pt-PT.xpi) = 23e456c3550b31d7596956dd9739ef317ae742137419d426a4326f277e1c0206
|
||||
SIZE (xpi/firefox-38.1.0/pt-PT.xpi) = 439974
|
||||
SHA256 (xpi/firefox-38.1.0/rm.xpi) = f305e7a119c349ec71d4000517f315867f8174147dbbf6178a715e27e9aca29b
|
||||
SIZE (xpi/firefox-38.1.0/rm.xpi) = 446286
|
||||
SHA256 (xpi/firefox-38.1.0/ro.xpi) = cd38ec29af9fbbc27ad61330d2804d57f999c98cebccf6333aa58d55c4e1db87
|
||||
SIZE (xpi/firefox-38.1.0/ro.xpi) = 494078
|
||||
SHA256 (xpi/firefox-38.1.0/ru.xpi) = b2c612a33a7e7126343644b3931749cd9de1421f8bb1aad283087f0ede074c31
|
||||
SIZE (xpi/firefox-38.1.0/ru.xpi) = 414418
|
||||
SHA256 (xpi/firefox-38.1.0/si.xpi) = 02de4fd1753d33e6b0c1d81dce2beec09dd01c1bff2c0e82864ec0700971bb68
|
||||
SIZE (xpi/firefox-38.1.0/si.xpi) = 537392
|
||||
SHA256 (xpi/firefox-38.1.0/sk.xpi) = 2fb1510e200824e455dee3492c8de7c0dd6bc4925307c5069d454fdc9513ca9b
|
||||
SIZE (xpi/firefox-38.1.0/sk.xpi) = 469436
|
||||
SHA256 (xpi/firefox-38.1.0/sl.xpi) = d5f5ae891561d7ea891f9eaeee4a417e76159f8ee2b6402580d71e155de5bf23
|
||||
SIZE (xpi/firefox-38.1.0/sl.xpi) = 441593
|
||||
SHA256 (xpi/firefox-38.1.0/son.xpi) = 9fa1b158b3ca08335ca6c9bcf70fd76e6b4baab6cfdb667475188aaacc2f2193
|
||||
SIZE (xpi/firefox-38.1.0/son.xpi) = 449266
|
||||
SHA256 (xpi/firefox-38.1.0/sq.xpi) = 94d82f9dcf552f6e696e14d17ea9da388de8f5231e72bed6a0eef8b7426f6097
|
||||
SIZE (xpi/firefox-38.1.0/sq.xpi) = 486075
|
||||
SHA256 (xpi/firefox-38.1.0/sr.xpi) = f63271245f4919db7b86e9740a5128f50db750fe747e98343b1641291e7be1d3
|
||||
SIZE (xpi/firefox-38.1.0/sr.xpi) = 479418
|
||||
SHA256 (xpi/firefox-38.1.0/sv-SE.xpi) = 724e6ed7ad69ea5a612185851d1bcc39eb46e9cdaaee9032609637516b2fb4fc
|
||||
SIZE (xpi/firefox-38.1.0/sv-SE.xpi) = 452631
|
||||
SHA256 (xpi/firefox-38.1.0/ta.xpi) = f0fc43a9cfde17cb71a3c1adef1ec4ae53201d0246528216f7c62fa93d5ca621
|
||||
SIZE (xpi/firefox-38.1.0/ta.xpi) = 506605
|
||||
SHA256 (xpi/firefox-38.1.0/te.xpi) = 47024b3c034826560b19281b5346d3c79b46b86c308d15c98acc5898545c47a5
|
||||
SIZE (xpi/firefox-38.1.0/te.xpi) = 526252
|
||||
SHA256 (xpi/firefox-38.1.0/th.xpi) = f99a2d738ee379bde70fc472626611365054eb25165c613824180d8ee7d53454
|
||||
SIZE (xpi/firefox-38.1.0/th.xpi) = 534269
|
||||
SHA256 (xpi/firefox-38.1.0/tr.xpi) = c7eac37f05b3a4afc073e85c9a065f343cc40b0cdba17fb8dd7219bc175c7723
|
||||
SIZE (xpi/firefox-38.1.0/tr.xpi) = 481075
|
||||
SHA256 (xpi/firefox-38.1.0/uk.xpi) = 6c68750ac5d4dab03b6c93d7694d8a8c430e95d9ad103a86c2477089fd678d99
|
||||
SIZE (xpi/firefox-38.1.0/uk.xpi) = 493312
|
||||
SHA256 (xpi/firefox-38.1.0/vi.xpi) = 874f22b8c19d7fe417496c6916b150c7d51a7021e5e73809a542799238c194fd
|
||||
SIZE (xpi/firefox-38.1.0/vi.xpi) = 467503
|
||||
SHA256 (xpi/firefox-38.1.0/xh.xpi) = 53aca9e35a77091be291a3d2246ada0110d71e0451018c20d9a8c1f40dd2b2ae
|
||||
SIZE (xpi/firefox-38.1.0/xh.xpi) = 450241
|
||||
SHA256 (xpi/firefox-38.1.0/zh-CN.xpi) = 0dbc3ac200290bdb5514c2076f5a1459442b4e3ee235ef29216384f2ad06d61f
|
||||
SIZE (xpi/firefox-38.1.0/zh-CN.xpi) = 488276
|
||||
SHA256 (xpi/firefox-38.1.0/zh-TW.xpi) = e3ec89fe112a80d424e25934d21de61efbde5e6680ce2aece0c37a04d96be91c
|
||||
SIZE (xpi/firefox-38.1.0/zh-TW.xpi) = 467843
|
||||
|
|
|
@ -2,42 +2,41 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox
|
||||
DISTVERSION= 31.7.0
|
||||
DISTVERSION= 38.1.0
|
||||
DISTVERSIONSUFFIX=esr.source
|
||||
PORTREVISION= 1
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= www ipv6
|
||||
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}esr/source \
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build2/source
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}esr-candidates/build1/source
|
||||
PKGNAMESUFFIX= -esr
|
||||
|
||||
MAINTAINER= gecko@FreeBSD.org
|
||||
COMMENT= Web browser based on the browser portion of Mozilla
|
||||
|
||||
BUILD_DEPENDS= nspr>=4.10.6:${PORTSDIR}/devel/nspr \
|
||||
nss>=3.16.2.3:${PORTSDIR}/security/nss \
|
||||
BUILD_DEPENDS= nspr>=4.10.8:${PORTSDIR}/devel/nspr \
|
||||
nss>=3.19.2:${PORTSDIR}/security/nss \
|
||||
libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \
|
||||
cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \
|
||||
soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \
|
||||
harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \
|
||||
graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \
|
||||
libvorbis>=1.3.5:${PORTSDIR}/audio/libvorbis \
|
||||
opus>=1.1:${PORTSDIR}/audio/opus \
|
||||
libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \
|
||||
libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \
|
||||
sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \
|
||||
sqlite3>=3.8.9:${PORTSDIR}/databases/sqlite3 \
|
||||
${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
|
||||
v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \
|
||||
autoconf-2.13:${PORTSDIR}/devel/autoconf213 \
|
||||
zip:${PORTSDIR}/archivers/zip \
|
||||
unzip:${PORTSDIR}/archivers/unzip
|
||||
# opus>=1.1:${PORTSDIR}/audio/opus \
|
||||
|
||||
LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
|
||||
|
||||
USE_GECKO= gecko
|
||||
CPE_PRODUCT= ${PORTNAME}_esr
|
||||
CONFLICTS= firefox-3[02-9].* firefox-2[0-35-9].*
|
||||
CONFLICTS_INSTALL= firefox-4[0-4].* firefox-3[02-9].* firefox-2[0-35-9].*
|
||||
MOZ_PKGCONFIG_FILES= # empty
|
||||
USE_MOZILLA= # empty
|
||||
USE_MOZILLA= -opus
|
||||
MOZILLA_NAME= Firefox
|
||||
|
||||
USE_QT5= # empty
|
||||
|
@ -52,10 +51,15 @@ MOZ_OPTIONS= --program-transform-name='s/firefox/${MOZILLA}/' \
|
|||
--enable-application=browser \
|
||||
--enable-official-branding
|
||||
|
||||
OPTIONS_DEFAULT= GTK2
|
||||
|
||||
OPTIONS_SINGLE+= TOOLKIT
|
||||
OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3
|
||||
|
||||
.include "${.CURDIR}/../../www/firefox/Makefile.options"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
WRKSRC:= ${WRKDIR}/mozilla-esr31
|
||||
WRKSRC:= ${WRKDIR}/mozilla-esr38
|
||||
|
||||
.if ${PORT_OPTIONS:MALSA}
|
||||
RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
|
||||
|
@ -65,6 +69,10 @@ RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
|
|||
RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MGTK3}
|
||||
BUILD_DEPENDS+= gtk3>=3.14.6:${PORTSDIR}/x11-toolkits/gtk30
|
||||
.endif
|
||||
|
||||
post-extract:
|
||||
@${SED} -e 's|@FIREFOX_ICON@|${FIREFOX_ICON}|' -e 's|@MOZILLA@|${MOZILLA}|' \
|
||||
-e 's|@MOZILLA_NAME@|${MOZILLA_NAME}|' \
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (firefox-31.7.0esr.source.tar.bz2) = 8523c10ecb318f278a251d90e2161c07c7431796d4387fe9091dfa4e633474b6
|
||||
SIZE (firefox-31.7.0esr.source.tar.bz2) = 147772244
|
||||
SHA256 (firefox-38.1.0esr.source.tar.bz2) = 85eb5f916aa47a92cf50803dcb35e7fa3a9da29abf5fc91cbb6a70bbbc2618ff
|
||||
SIZE (firefox-38.1.0esr.source.tar.bz2) = 180392775
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
|
||||
index 13a286f..293bd73 100644
|
||||
--- xpcom/base/nsDebugImpl.cpp
|
||||
+++ xpcom/base/nsDebugImpl.cpp
|
||||
@@ -45,12 +45,43 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-#if defined(XP_MACOSX)
|
||||
+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
|
||||
+ || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#include <stdbool.h>
|
||||
#include <unistd.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
+#if defined(__OpenBSD__)
|
||||
+#include <sys/proc.h>
|
||||
+#endif
|
||||
+
|
||||
+#if defined(__DragonFly__) || defined(__FreeBSD__)
|
||||
+#include <sys/user.h>
|
||||
+#endif
|
||||
+
|
||||
+#if defined(__NetBSD__)
|
||||
+#undef KERN_PROC
|
||||
+#define KERN_PROC KERN_PROC2
|
||||
+#define KINFO_PROC struct kinfo_proc2
|
||||
+#else
|
||||
+#define KINFO_PROC struct kinfo_proc
|
||||
+#endif
|
||||
+
|
||||
+#if defined(XP_MACOSX)
|
||||
+#define KP_FLAGS kp_proc.p_flag
|
||||
+#elif defined(__DragonFly__)
|
||||
+#define KP_FLAGS kp_flags
|
||||
+#elif defined(__FreeBSD__)
|
||||
+#define KP_FLAGS ki_flag
|
||||
+#elif defined(__OpenBSD__) && !defined(_P_TRACED)
|
||||
+#define KP_FLAGS p_psflags
|
||||
+#define P_TRACED PS_TRACED
|
||||
+#else
|
||||
+#define KP_FLAGS p_flag
|
||||
+#endif
|
||||
+
|
||||
#include "mozilla/mozalloc_abort.h"
|
||||
|
||||
static void
|
||||
@@ -144,16 +175,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
|
||||
|
||||
#if defined(XP_WIN)
|
||||
*aResult = ::IsDebuggerPresent();
|
||||
-#elif defined(XP_MACOSX)
|
||||
+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
|
||||
+ || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
// Specify the info we're looking for
|
||||
- int mib[4];
|
||||
- mib[0] = CTL_KERN;
|
||||
- mib[1] = KERN_PROC;
|
||||
- mib[2] = KERN_PROC_PID;
|
||||
- mib[3] = getpid();
|
||||
+ int mib[] = {
|
||||
+ CTL_KERN,
|
||||
+ KERN_PROC,
|
||||
+ KERN_PROC_PID,
|
||||
+ getpid(),
|
||||
+#if defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
+ sizeof(KINFO_PROC),
|
||||
+ 1,
|
||||
+#endif
|
||||
+ };
|
||||
size_t mibSize = sizeof(mib) / sizeof(int);
|
||||
|
||||
- struct kinfo_proc info;
|
||||
+ KINFO_PROC info;
|
||||
size_t infoSize = sizeof(info);
|
||||
memset(&info, 0, infoSize);
|
||||
|
||||
@@ -163,7 +200,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
- if (info.kp_proc.p_flag & P_TRACED) {
|
||||
+ if (info.KP_FLAGS & P_TRACED) {
|
||||
*aResult = true;
|
||||
}
|
||||
#endif
|
|
@ -30,14 +30,14 @@ diff --git browser/installer/package-manifest.in browser/installer/package-manif
|
|||
index b509fd4..195345c 100644
|
||||
--- browser/installer/package-manifest.in
|
||||
+++ browser/installer/package-manifest.in
|
||||
@@ -583,7 +583,7 @@
|
||||
@BINPATH@/components/MozKeyboard.js
|
||||
@BINPATH@/components/InputMethod.manifest
|
||||
@@ -608,7 +608,7 @@
|
||||
@RESPATH@/components/MozKeyboard.js
|
||||
@RESPATH@/components/InputMethod.manifest
|
||||
|
||||
-#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 mobile/android/installer/Makefile.in mobile/android/installer/Makefile.in
|
||||
index 96dceab..3528ad6 100644
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
diff --git configure.in configure.in
|
||||
index 7bed45f..053de17 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -2950,7 +2950,7 @@ dnl Checks for library functions.
|
||||
dnl ========================================================
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_FUNC_MEMCMP
|
||||
-AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r)
|
||||
+AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf)
|
||||
|
||||
dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
|
||||
AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
|
||||
diff --git xpcom/base/nsUUIDGenerator.cpp xpcom/base/nsUUIDGenerator.cpp
|
||||
index 0687344..ca3ff8b 100644
|
||||
--- xpcom/base/nsUUIDGenerator.cpp
|
||||
+++ xpcom/base/nsUUIDGenerator.cpp
|
||||
@@ -15,6 +15,10 @@
|
||||
|
||||
#include "nsUUIDGenerator.h"
|
||||
|
||||
+#ifdef ANDROID
|
||||
+extern "C" NS_EXPORT void arc4random_buf(void *, size_t);
|
||||
+#endif
|
||||
+
|
||||
using namespace mozilla;
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsUUIDGenerator, nsIUUIDGenerator)
|
||||
@@ -34,7 +38,7 @@ nsUUIDGenerator::Init()
|
||||
// We're a service, so we're guaranteed that Init() is not going
|
||||
// to be reentered while we're inside Init().
|
||||
|
||||
-#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
|
||||
+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
|
||||
/* initialize random number generator using NSPR random noise */
|
||||
unsigned int seed;
|
||||
|
||||
@@ -67,7 +71,7 @@ nsUUIDGenerator::Init()
|
||||
return NS_ERROR_FAILURE;
|
||||
#endif
|
||||
|
||||
-#endif /* non XP_WIN and non XP_MACOSX */
|
||||
+#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -114,13 +118,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
|
||||
* back to it; instead, we use the value returned when we called
|
||||
* initstate, since older glibc's have broken setstate() return values
|
||||
*/
|
||||
-#ifndef ANDROID
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
setstate(mState);
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_ARC4RANDOM_BUF
|
||||
+ arc4random_buf(id, sizeof(nsID));
|
||||
+#else /* HAVE_ARC4RANDOM_BUF */
|
||||
size_t bytesLeft = sizeof(nsID);
|
||||
while (bytesLeft > 0) {
|
||||
-#ifdef ANDROID
|
||||
+#ifdef HAVE_ARC4RANDOM
|
||||
long rval = arc4random();
|
||||
const size_t mRBytes = 4;
|
||||
#else
|
||||
@@ -141,6 +148,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
|
||||
|
||||
bytesLeft -= toWrite;
|
||||
}
|
||||
+#endif /* HAVE_ARC4RANDOM_BUF */
|
||||
|
||||
/* Put in the version */
|
||||
id->m2 &= 0x0fff;
|
||||
@@ -150,7 +158,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
|
||||
id->m3[0] &= 0x3f;
|
||||
id->m3[0] |= 0x80;
|
||||
|
||||
-#ifndef ANDROID
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
/* Restore the previous RNG state */
|
||||
setstate(mSavedState);
|
||||
#endif
|
||||
diff --git xpcom/base/nsUUIDGenerator.h xpcom/base/nsUUIDGenerator.h
|
||||
index 6a24212..68ed6f2 100644
|
||||
--- xpcom/base/nsUUIDGenerator.h
|
||||
+++ xpcom/base/nsUUIDGenerator.h
|
||||
@@ -27,7 +27,7 @@ private:
|
||||
protected:
|
||||
|
||||
mozilla::Mutex mLock;
|
||||
-#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
|
||||
+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
|
||||
char mState[128];
|
||||
char *mSavedState;
|
||||
uint8_t mRBytes;
|
|
@ -1,193 +0,0 @@
|
|||
commit dd19f59
|
||||
Author: Trevor Saunders <trev.saunders@gmail.com>
|
||||
Date: Fri Jun 6 15:31:30 2014 -0400
|
||||
|
||||
bug 1021171 - don't return nulllptr in functions returning bool r=bz,waldo
|
||||
---
|
||||
js/src/builtin/TypedObject.cpp | 32 ++++++++++++++++----------------
|
||||
js/src/frontend/BytecodeCompiler.cpp | 2 +-
|
||||
js/xpconnect/wrappers/XrayWrapper.cpp | 2 +-
|
||||
netwerk/ipc/NeckoParent.cpp | 2 +-
|
||||
4 files changed, 19 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git js/src/builtin/TypedObject.cpp js/src/builtin/TypedObject.cpp
|
||||
index 9e284b9..7a0a7fc 100644
|
||||
--- js/src/builtin/TypedObject.cpp
|
||||
+++ js/src/builtin/TypedObject.cpp
|
||||
@@ -710,12 +710,12 @@ ArrayMetaTypeDescr::construct(JSContext *cx, unsigned argc, Value *vp)
|
||||
contents.append(")");
|
||||
RootedAtom stringRepr(cx, contents.finishAtom());
|
||||
if (!stringRepr)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Extract ArrayType.prototype
|
||||
RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal));
|
||||
if (!arrayTypePrototype)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Create the instance of ArrayType
|
||||
Rooted<UnsizedArrayTypeDescr *> obj(cx);
|
||||
@@ -728,7 +728,7 @@ ArrayMetaTypeDescr::construct(JSContext *cx, unsigned argc, Value *vp)
|
||||
if (!JSObject::defineProperty(cx, obj, cx->names().length,
|
||||
UndefinedHandleValue, nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
args.rval().setObject(*obj);
|
||||
return true;
|
||||
@@ -762,7 +762,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
if (!size.isValid()) {
|
||||
JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr,
|
||||
JSMSG_TYPEDOBJECT_TOO_BIG);
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
// Construct a canonical string `new ArrayType(<elementType>).dimension(N)`:
|
||||
@@ -775,7 +775,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
contents.append(")");
|
||||
RootedAtom stringRepr(cx, contents.finishAtom());
|
||||
if (!stringRepr)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Create the sized type object.
|
||||
Rooted<SizedArrayTypeDescr*> obj(cx);
|
||||
@@ -793,7 +793,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
if (!JSObject::defineProperty(cx, obj, cx->names().length,
|
||||
lengthVal, nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Add `unsized` property, which is a link from the sized
|
||||
// array to the unsized array.
|
||||
@@ -801,7 +801,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
if (!JSObject::defineProperty(cx, obj, cx->names().unsized,
|
||||
unsizedTypeDescrValue, nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
args.rval().setObject(*obj);
|
||||
return true;
|
||||
@@ -1253,7 +1253,7 @@ DefineSimpleTypeDescr(JSContext *cx,
|
||||
Rooted<TypedProto*> proto(cx);
|
||||
proto = NewObjectWithProto<TypedProto>(cx, objProto, nullptr, TenuredObject);
|
||||
if (!proto)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
proto->initTypeDescrSlot(*descr);
|
||||
descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto));
|
||||
|
||||
@@ -1358,14 +1358,14 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
#define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \
|
||||
if (!DefineSimpleTypeDescr<ScalarTypeDescr>(cx, global, module, constant_, \
|
||||
cx->names().name_)) \
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE)
|
||||
#undef BINARYDATA_SCALAR_DEFINE
|
||||
|
||||
#define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \
|
||||
if (!DefineSimpleTypeDescr<ReferenceTypeDescr>(cx, global, module, constant_, \
|
||||
cx->names().name_)) \
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE)
|
||||
#undef BINARYDATA_REFERENCE_DEFINE
|
||||
|
||||
@@ -1375,14 +1375,14 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
arrayType = DefineMetaTypeDescr<ArrayMetaTypeDescr>(
|
||||
cx, global, module, TypedObjectModuleObject::ArrayTypePrototype);
|
||||
if (!arrayType)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
RootedValue arrayTypeValue(cx, ObjectValue(*arrayType));
|
||||
if (!JSObject::defineProperty(cx, module, cx->names().ArrayType,
|
||||
arrayTypeValue,
|
||||
nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// StructType.
|
||||
|
||||
@@ -1390,14 +1390,14 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
structType = DefineMetaTypeDescr<StructMetaTypeDescr>(
|
||||
cx, global, module, TypedObjectModuleObject::StructTypePrototype);
|
||||
if (!structType)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
RootedValue structTypeValue(cx, ObjectValue(*structType));
|
||||
if (!JSObject::defineProperty(cx, module, cx->names().StructType,
|
||||
structTypeValue,
|
||||
nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Everything is setup, install module on the global object:
|
||||
RootedValue moduleValue(cx, ObjectValue(*module));
|
||||
@@ -1407,7 +1407,7 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
nullptr, nullptr,
|
||||
0))
|
||||
{
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
return module;
|
||||
@@ -2449,7 +2449,7 @@ TypedObject::constructUnsized(JSContext *cx, unsigned int argc, Value *vp)
|
||||
if (length < 0) {
|
||||
JS_ReportErrorNumber(cx, js_GetErrorMessage,
|
||||
nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS);
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
Rooted<TypedObject*> obj(cx, createZeroed(cx, callee, length));
|
||||
if (!obj)
|
||||
diff --git js/src/frontend/BytecodeCompiler.cpp js/src/frontend/BytecodeCompiler.cpp
|
||||
index 5aacc23..aed45ca 100644
|
||||
--- js/src/frontend/BytecodeCompiler.cpp
|
||||
+++ js/src/frontend/BytecodeCompiler.cpp
|
||||
@@ -544,7 +544,7 @@ CompileFunctionBody(JSContext *cx, MutableHandleFunction fun, const ReadOnlyComp
|
||||
|
||||
RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options));
|
||||
if (!sourceObject)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
ScriptSource* ss = sourceObject->source();
|
||||
|
||||
SourceCompressionTask sct(cx);
|
||||
diff --git js/xpconnect/wrappers/XrayWrapper.cpp js/xpconnect/wrappers/XrayWrapper.cpp
|
||||
index fd6458b..ab48770 100644
|
||||
--- js/xpconnect/wrappers/XrayWrapper.cpp
|
||||
+++ js/xpconnect/wrappers/XrayWrapper.cpp
|
||||
@@ -363,7 +363,7 @@ public:
|
||||
{
|
||||
JSAutoCompartment ac(cx, target);
|
||||
if (!JS_GetClassPrototype(cx, key, protop))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
return JS_WrapObject(cx, protop);
|
||||
}
|
||||
diff --git netwerk/ipc/NeckoParent.cpp netwerk/ipc/NeckoParent.cpp
|
||||
index 96dbb1d..ef3293b 100644
|
||||
--- netwerk/ipc/NeckoParent.cpp
|
||||
+++ netwerk/ipc/NeckoParent.cpp
|
||||
@@ -365,7 +365,7 @@ NeckoParent::RecvPRtspChannelConstructor(
|
||||
RtspChannelParent* p = static_cast<RtspChannelParent*>(aActor);
|
||||
return p->Init(aConnectArgs);
|
||||
#else
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
#endif
|
||||
}
|
||||
|
|
@ -218,12 +218,12 @@ index a962553..1f780f4 100644
|
|||
assert(p);
|
||||
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
return ERROR;
|
||||
}
|
||||
if (got > 0) {
|
||||
- snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got);
|
||||
+ snd_pcm_sframes_t wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
@@ -327,10 +374,10 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
b[i] *= stm->volume;
|
||||
}
|
||||
}
|
||||
- wrote = snd_pcm_writei(stm->pcm, p, got);
|
||||
+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
if (wrote == -EPIPE) {
|
||||
- snd_pcm_recover(stm->pcm, wrote, 1);
|
||||
- wrote = snd_pcm_writei(stm->pcm, p, got);
|
||||
|
@ -533,42 +533,51 @@ index a962553..1f780f4 100644
|
|||
assert((nfds_t) r == stm->nfds);
|
||||
|
||||
r = pthread_cond_init(&stm->cond, NULL);
|
||||
@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
@@ -895,7 +1001,7 @@ alsa_stream_destroy(cubeb_stream * stm)
|
||||
pthread_mutex_lock(&stm->mutex);
|
||||
if (stm->pcm) {
|
||||
if (stm->state == DRAINING) {
|
||||
- snd_pcm_drain(stm->pcm);
|
||||
+ WRAP(snd_pcm_drain)(stm->pcm);
|
||||
}
|
||||
alsa_locked_pcm_close(stm->pcm);
|
||||
stm->pcm = NULL;
|
||||
@@ -938,12 +1044,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_any(stm->pcm, hw_params);
|
||||
+ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_any(stm->pcm, hw_params);
|
||||
+ r = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
|
||||
+ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
|
||||
+ r = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
@@ -962,34 +1068,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) {
|
||||
@@ -963,34 +1069,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) {
|
||||
|
||||
/* get a pcm, disabling resampling, so we get a rate the
|
||||
* hardware/dmix/pulse/etc. supports. */
|
||||
- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
|
||||
+ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
|
||||
if (rv < 0) {
|
||||
- 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);
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_any(pcm, hw_params);
|
||||
+ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_any(pcm, hw_params);
|
||||
+ r = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
|
||||
if (r < 0) {
|
||||
- snd_pcm_close(pcm);
|
||||
+ WRAP(snd_pcm_close)(pcm);
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
|
||||
+ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
|
||||
if (rv >= 0) {
|
||||
- r = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
|
||||
+ r = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
|
||||
if (r >= 0) {
|
||||
/* There is a default rate: use it. */
|
||||
- snd_pcm_close(pcm);
|
||||
+ WRAP(snd_pcm_close)(pcm);
|
||||
|
@ -578,9 +587,9 @@ index a962553..1f780f4 100644
|
|||
/* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */
|
||||
*rate = 44100;
|
||||
|
||||
- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
|
||||
+ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
|
||||
+ r = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
|
||||
if (r < 0) {
|
||||
- snd_pcm_close(pcm);
|
||||
+ WRAP(snd_pcm_close)(pcm);
|
||||
return CUBEB_ERROR;
|
||||
|
@ -634,7 +643,7 @@ new file mode 100644
|
|||
index 0000000..5e38e27
|
||||
--- /dev/null
|
||||
+++ media/libcubeb/src/cubeb_oss.c
|
||||
@@ -0,0 +1,397 @@
|
||||
@@ -0,0 +1,402 @@
|
||||
+/*
|
||||
+ * Copyright © 2014 Mozilla Foundation
|
||||
+ *
|
||||
|
@ -1030,7 +1039,12 @@ index 0000000..5e38e27
|
|||
+ .stream_start = oss_stream_start,
|
||||
+ .stream_stop = oss_stream_stop,
|
||||
+ .stream_get_position = oss_stream_get_position,
|
||||
+ .stream_get_latency = oss_stream_get_latency
|
||||
+ .stream_get_latency = oss_stream_get_latency,
|
||||
+ .stream_set_volume = oss_stream_set_volume,
|
||||
+ .stream_set_panning = oss_stream_set_panning,
|
||||
+ .stream_get_current_device = NULL,
|
||||
+ .stream_device_destroy = NULL,
|
||||
+ .stream_register_device_changed_callback = NULL
|
||||
+};
|
||||
diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build
|
||||
index 8b7a0dd..31212ce 100644
|
||||
|
@ -1056,36 +1070,33 @@ 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/Makefile.in media/webrtc/signaling/test/Makefile.in
|
||||
diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
|
||||
index 991f03f..3d99eb5 100644
|
||||
--- media/webrtc/signaling/test/Makefile.in
|
||||
+++ media/webrtc/signaling/test/Makefile.in
|
||||
@@ -26,9 +26,9 @@ ifdef JS_SHARED_LIBRARY
|
||||
LIBS += $(MOZ_JS_LIBS)
|
||||
endif
|
||||
--- media/webrtc/signaling/test/moz.build
|
||||
+++ media/webrtc/signaling/test/moz.build
|
||||
@@ -112,8 +112,8 @@ if CONFIG['JS_SHARED_LIBRARY']:
|
||||
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
||||
-ifdef MOZ_ALSA
|
||||
+ifdef MOZ_OSS
|
||||
LIBS += \
|
||||
- $(MOZ_ALSA_LIBS) \
|
||||
+ $(MOZ_OSS_LIBS) \
|
||||
$(NULL)
|
||||
endif
|
||||
-if CONFIG['MOZ_ALSA']:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
+if CONFIG['MOZ_OSS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
|
||||
if CONFIG['MOZ_NATIVE_JPEG']:
|
||||
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index e191f13..4fb268a 100644
|
||||
--- toolkit/library/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -146,9 +146,9 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32
|
||||
endif
|
||||
endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -234,8 +234,8 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
|
||||
if not CONFIG['MOZ_TREE_PIXMAN']:
|
||||
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
|
||||
|
||||
-ifdef MOZ_ALSA
|
||||
-EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)
|
||||
-endif
|
||||
+ifdef MOZ_OSS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_OSS_LIBS)
|
||||
+endif
|
||||
-if CONFIG['MOZ_ALSA']:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
+if CONFIG['MOZ_OSS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
ifdef HAVE_CLOCK_MONOTONIC
|
||||
EXTRA_DSO_LDOPTS += $(REALTIME_LIBS)
|
||||
if CONFIG['HAVE_CLOCK_MONOTONIC']:
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
diff --git storage/src/moz.build storage/src/moz.build
|
||||
index 4cd2551..5c40536 100644
|
||||
--- storage/src/moz.build
|
||||
+++ storage/src/moz.build
|
||||
@@ -50,11 +50,14 @@ FINAL_LIBRARY = 'storagecomps'
|
||||
# (such as NSS) might trigger an initialization of sqlite and allocation
|
||||
# of memory using the default allocator, prior to the storage service
|
||||
# registering its allocator, causing memory management failures (bug 938730).
|
||||
+# However, this is not an issue if both the jemalloc allocator and the default
|
||||
+# allocator are the same thing.
|
||||
#
|
||||
# Note: On Windows our sqlite build assumes we use jemalloc. If you disable
|
||||
# MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
|
||||
# MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
|
||||
-if CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_NATIVE_SQLITE']:
|
||||
+if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_NATIVE_SQLITE']
|
||||
+ or CONFIG['MOZ_NATIVE_JEMALLOC']):
|
||||
if CONFIG['OS_TARGET'] != 'Android':
|
||||
DEFINES['MOZ_STORAGE_MEMORY'] = True
|
||||
|
26
www/firefox-esr/files/patch-bug1041268
Normal file
26
www/firefox-esr/files/patch-bug1041268
Normal file
|
@ -0,0 +1,26 @@
|
|||
diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
|
||||
index 97f69d3..77a50b3 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
|
||||
+++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
|
||||
@@ -18,7 +18,7 @@ ScreenCapturer* ScreenCapturer::Create() {
|
||||
return Create(DesktopCaptureOptions::CreateDefault());
|
||||
}
|
||||
|
||||
-#if defined(WEBRTC_LINUX)
|
||||
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
|
||||
ScreenCapturer* ScreenCapturer::CreateWithXDamage(
|
||||
bool use_update_notifications) {
|
||||
DesktopCaptureOptions options;
|
||||
diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
|
||||
index a8d40a7..177a6c1 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
|
||||
+++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
|
||||
@@ -74,7 +74,7 @@ class ScreenCapturer : public DesktopCapturer {
|
||||
static ScreenCapturer* Create(const DesktopCaptureOptions& options);
|
||||
static ScreenCapturer* Create();
|
||||
|
||||
-#if defined(WEBRTC_LINUX)
|
||||
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
|
||||
// Creates platform-specific capturer and instructs it whether it should use
|
||||
// X DAMAGE support.
|
||||
static ScreenCapturer* CreateWithXDamage(bool use_x_damage);
|
|
@ -1,12 +0,0 @@
|
|||
diff --git config/rules.mk config/rules.mk
|
||||
index 1dee8c3..4d67eda 100644
|
||||
--- config/rules.mk
|
||||
+++ config/rules.mk
|
||||
@@ -822,6 +822,7 @@ endif
|
||||
ifdef DTRACE_PROBE_OBJ
|
||||
EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
|
||||
OBJS += $(DTRACE_PROBE_OBJ)
|
||||
+EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ)
|
||||
endif
|
||||
|
||||
$(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
|
|
@ -1,48 +0,0 @@
|
|||
diff --git config/rules.mk config/rules.mk
|
||||
index 4d67eda..783942f 100644
|
||||
--- config/rules.mk
|
||||
+++ config/rules.mk
|
||||
@@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ
|
||||
ifndef DTRACE_LIB_DEPENDENT
|
||||
NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS))
|
||||
$(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS)
|
||||
- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
|
||||
+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER
|
||||
endif
|
||||
ifdef DTRACE_LIB_DEPENDENT
|
||||
ifndef XP_MACOSX
|
||||
- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
|
||||
+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
|
||||
endif
|
||||
$(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
|
||||
@$(RM) $(DTRACE_PROBE_OBJ)
|
||||
diff --git js/src/Makefile.in js/src/Makefile.in
|
||||
index 28ca5e8..96793d7 100644
|
||||
--- js/src/Makefile.in
|
||||
+++ js/src/Makefile.in
|
||||
@@ -342,7 +342,7 @@ endif
|
||||
|
||||
ifdef HAVE_DTRACE
|
||||
$(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
|
||||
- dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
|
||||
+ dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
|
||||
sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
|
||||
-e '/const/!s/char \*/const char */g' \
|
||||
javascript-trace.h.in > javascript-trace.h
|
||||
diff --git probes/Makefile.in probes/Makefile.in
|
||||
index 6d18f34..deec83f 100644
|
||||
--- probes/Makefile.in
|
||||
+++ probes/Makefile.in
|
||||
@@ -7,7 +7,7 @@ export:: $(DIST)/include/mozilla-trace.h
|
||||
|
||||
# Replace _DTRACE_VERSION with INCLUDE_MOZILLA_DTRACE
|
||||
$(DIST)/include/mozilla-trace.h: mozilla-trace.d Makefile
|
||||
- dtrace -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
|
||||
+ dtrace -x nolibs -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
|
||||
sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
|
||||
mozilla-trace.h.tmp > $(DIST)/include/mozilla-trace.h
|
||||
rm mozilla-trace.h.tmp
|
|
@ -1,26 +0,0 @@
|
|||
diff --git configure.in configure.in
|
||||
index 1853029..559bd45 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -2651,7 +2651,7 @@ if test "$ac_cv_sockaddr_sa_len" = true ; then
|
||||
AC_DEFINE(HAVE_SA_LEN)
|
||||
fi
|
||||
|
||||
-AC_ARG_ENABLE(dtrace,
|
||||
+MOZ_ARG_ENABLE_BOOL(dtrace,
|
||||
[ --enable-dtrace build with dtrace support if available (default=no)],
|
||||
[enable_dtrace="yes"],)
|
||||
if test "x$enable_dtrace" = "xyes"; then
|
||||
diff --git js/src/configure.in js/src/configure.in
|
||||
index 134dfd3..682c1fb 100644
|
||||
--- js/src/configure.in
|
||||
+++ js/src/configure.in
|
||||
@@ -2153,7 +2153,7 @@ dnl Quota support
|
||||
MOZ_CHECK_HEADERS(sys/quota.h)
|
||||
MOZ_CHECK_HEADERS(linux/quota.h)
|
||||
|
||||
-AC_ARG_ENABLE(dtrace,
|
||||
+MOZ_ARG_ENABLE_BOOL(dtrace,
|
||||
[ --enable-dtrace build with dtrace support if available (default=no)],
|
||||
[enable_dtrace="yes"],)
|
||||
if test "x$enable_dtrace" = "xyes"; then
|
File diff suppressed because one or more lines are too long
|
@ -1,78 +0,0 @@
|
|||
diff --git content/media/encoder/VP8TrackEncoder.cpp content/media/encoder/VP8TrackEncoder.cpp
|
||||
index 452821c..ede21c5 100644
|
||||
--- content/media/encoder/VP8TrackEncoder.cpp
|
||||
+++ content/media/encoder/VP8TrackEncoder.cpp
|
||||
@@ -84,7 +84,7 @@ VP8TrackEncoder::Init(int32_t aWidth, int32_t aHeight, int32_t aDisplayWidth,
|
||||
// Creating a wrapper to the image - setting image data to NULL. Actual
|
||||
// pointer will be set in encode. Setting align to 1, as it is meaningless
|
||||
// (actual memory is not allocated).
|
||||
- vpx_img_wrap(mVPXImageWrapper, IMG_FMT_I420,
|
||||
+ vpx_img_wrap(mVPXImageWrapper, VPX_IMG_FMT_I420,
|
||||
mFrameWidth, mFrameHeight, 1, nullptr);
|
||||
|
||||
config.g_w = mFrameWidth;
|
||||
@@ -239,9 +239,9 @@ void VP8TrackEncoder::PrepareMutedFrame()
|
||||
uint8_t *cb = mMuteFrame.Elements() + yPlaneSize;
|
||||
uint8_t *cr = mMuteFrame.Elements() + yPlaneSize + uvPlaneSize;
|
||||
|
||||
- mVPXImageWrapper->planes[PLANE_Y] = y;
|
||||
- mVPXImageWrapper->planes[PLANE_U] = cb;
|
||||
- mVPXImageWrapper->planes[PLANE_V] = cr;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = y;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = cb;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = cr;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = mFrameWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_U] = halfWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_V] = halfWidth;
|
||||
@@ -297,9 +297,9 @@ nsresult VP8TrackEncoder::PrepareRawFrame(VideoChunk &aChunk)
|
||||
const PlanarYCbCrImage::Data *data = yuv->GetData();
|
||||
|
||||
if (isYUV420(data) && !data->mCbSkip) { // 420 planar
|
||||
- mVPXImageWrapper->planes[PLANE_Y] = data->mYChannel;
|
||||
- mVPXImageWrapper->planes[PLANE_U] = data->mCbChannel;
|
||||
- mVPXImageWrapper->planes[PLANE_V] = data->mCrChannel;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = data->mYChannel;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = data->mCbChannel;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = data->mCrChannel;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = data->mYStride;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_U] = data->mCbCrStride;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_V] = data->mCbCrStride;
|
||||
@@ -355,9 +355,9 @@ nsresult VP8TrackEncoder::PrepareRawFrame(VideoChunk &aChunk)
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
- mVPXImageWrapper->planes[PLANE_Y] = y;
|
||||
- mVPXImageWrapper->planes[PLANE_U] = cb;
|
||||
- mVPXImageWrapper->planes[PLANE_V] = cr;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = y;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = cb;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = cr;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = mFrameWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_U] = halfWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_V] = halfWidth;
|
||||
diff --git media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
||||
index d9c3a22..75195ae 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
||||
+++ media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
||||
@@ -180,7 +180,7 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
|
||||
// Creating a wrapper to the image - setting image data to NULL. Actual
|
||||
// pointer will be set in encode. Setting align to 1, as it is meaningless
|
||||
// (actual memory is not allocated).
|
||||
- raw_ = vpx_img_wrap(NULL, IMG_FMT_I420, codec_.width, codec_.height,
|
||||
+ raw_ = vpx_img_wrap(NULL, VPX_IMG_FMT_I420, codec_.width, codec_.height,
|
||||
1, NULL);
|
||||
// populate encoder configuration with default values
|
||||
if (vpx_codec_enc_config_default(vpx_codec_vp8_cx(), config_, 0)) {
|
||||
@@ -349,9 +349,9 @@ int VP8EncoderImpl::Encode(const I420VideoFrame& input_image,
|
||||
}
|
||||
// Image in vpx_image_t format.
|
||||
// Input image is const. VP8's raw image is not defined as const.
|
||||
- raw_->planes[PLANE_Y] = const_cast<uint8_t*>(input_image.buffer(kYPlane));
|
||||
- raw_->planes[PLANE_U] = const_cast<uint8_t*>(input_image.buffer(kUPlane));
|
||||
- raw_->planes[PLANE_V] = const_cast<uint8_t*>(input_image.buffer(kVPlane));
|
||||
+ raw_->planes[VPX_PLANE_Y] = const_cast<uint8_t*>(input_image.buffer(kYPlane));
|
||||
+ raw_->planes[VPX_PLANE_U] = const_cast<uint8_t*>(input_image.buffer(kUPlane));
|
||||
+ raw_->planes[VPX_PLANE_V] = const_cast<uint8_t*>(input_image.buffer(kVPlane));
|
||||
// TODO(mikhal): Stride should be set in initialization.
|
||||
raw_->stride[VPX_PLANE_Y] = input_image.stride(kYPlane);
|
||||
raw_->stride[VPX_PLANE_U] = input_image.stride(kUPlane);
|
877
www/firefox-esr/files/patch-bug1073117
Normal file
877
www/firefox-esr/files/patch-bug1073117
Normal file
|
@ -0,0 +1,877 @@
|
|||
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", ¬ebook_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)
|
|
@ -1,18 +0,0 @@
|
|||
diff --git mfbt/Atomics.h mfbt/Atomics.h
|
||||
index 495a9d3..c7f7601 100644
|
||||
--- mfbt/Atomics.h
|
||||
+++ mfbt/Atomics.h
|
||||
@@ -34,10 +34,12 @@
|
||||
* loose typing of the atomic builtins. GCC 4.5 and 4.6 lacks inline
|
||||
* definitions for unspecialized std::atomic and causes linking errors.
|
||||
* Therefore, we require at least 4.7.0 for using libstdc++.
|
||||
+ *
|
||||
+ * libc++ <atomic> is only functional with clang.
|
||||
*/
|
||||
# if MOZ_USING_LIBSTDCXX && MOZ_LIBSTDCXX_VERSION_AT_LEAST(4, 7, 0)
|
||||
# define MOZ_HAVE_CXX11_ATOMICS
|
||||
-# elif MOZ_USING_LIBCXX
|
||||
+# elif MOZ_USING_LIBCXX && defined(__clang__)
|
||||
# define MOZ_HAVE_CXX11_ATOMICS
|
||||
# endif
|
||||
/*
|
|
@ -1,26 +0,0 @@
|
|||
commit 258ec90
|
||||
Author: Guilherme Goncalves <guilherme.p.gonc@gmail.com>
|
||||
Date: Fri Oct 17 15:55:00 2014 +0200
|
||||
|
||||
Bug 1082199 - Recompute stats in jemalloc_stats when using jemalloc3. r=glandium
|
||||
---
|
||||
memory/build/mozjemalloc_compat.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git memory/build/mozjemalloc_compat.c memory/build/mozjemalloc_compat.c
|
||||
index 78bb13a..70265a7 100644
|
||||
--- memory/build/mozjemalloc_compat.c
|
||||
+++ memory/build/mozjemalloc_compat.c
|
||||
@@ -68,6 +68,12 @@ jemalloc_stats_impl(jemalloc_stats_t *stats)
|
||||
size_t active, allocated, mapped, page, pdirty;
|
||||
size_t lg_chunk;
|
||||
|
||||
+ // Refresh jemalloc's stats by updating its epoch, see ctl_refresh in
|
||||
+ // src/ctl.c
|
||||
+ uint64_t epoch = 0;
|
||||
+ size_t esz = sizeof(epoch);
|
||||
+ int ret = je_(mallctl)("epoch", &epoch, &esz, &epoch, esz);
|
||||
+
|
||||
CTL_GET("arenas.narenas", narenas);
|
||||
CTL_GET("arenas.page", page);
|
||||
CTL_GET("stats.active", active);
|
|
@ -1,42 +0,0 @@
|
|||
diff --git configure.in configure.in
|
||||
index b2b45e7..dcfdfb7 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -8346,7 +8346,7 @@ case "$OS_TARGET" in
|
||||
NECKO_WIFI=1
|
||||
fi
|
||||
;;
|
||||
- Darwin|FreeBSD|SunOS|WINNT)
|
||||
+ Darwin|DragonFly|FreeBSD|SunOS|WINNT)
|
||||
NECKO_WIFI=1
|
||||
;;
|
||||
Linux)
|
||||
diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build
|
||||
index d4de063..3949380 100644
|
||||
--- netwerk/wifi/moz.build
|
||||
+++ netwerk/wifi/moz.build
|
||||
@@ -35,7 +35,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
|
||||
UNIFIED_SOURCES += [
|
||||
'osx_corewlan.mm',
|
||||
]
|
||||
-elif CONFIG['OS_ARCH'] == 'FreeBSD':
|
||||
+elif CONFIG['OS_ARCH'] in ('DragonFly', 'FreeBSD'):
|
||||
UNIFIED_SOURCES += [
|
||||
'nsWifiScannerFreeBSD.cpp',
|
||||
]
|
||||
diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp
|
||||
index bdf171e..4185d69 100644
|
||||
--- netwerk/wifi/nsWifiScannerFreeBSD.cpp
|
||||
+++ netwerk/wifi/nsWifiScannerFreeBSD.cpp
|
||||
@@ -13,7 +13,11 @@
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_media.h>
|
||||
+#ifdef __DragonFly__
|
||||
+#include <netproto/802_11/ieee80211_ioctl.h>
|
||||
+#else
|
||||
#include <net80211/ieee80211_ioctl.h>
|
||||
+#endif
|
||||
|
||||
#include <ifaddrs.h>
|
||||
#include <string.h>
|
|
@ -1,14 +0,0 @@
|
|||
--- js/src/assembler/jit/ExecutableAllocator.h~
|
||||
+++ js/src/assembler/jit/ExecutableAllocator.h
|
||||
@@ -454,6 +454,11 @@ public:
|
||||
{
|
||||
User::IMB_Range(code, static_cast<char*>(code) + size);
|
||||
}
|
||||
+#elif WTF_CPU_ARM_TRADITIONAL && (WTF_OS_FREEBSD || WTF_OS_NETBSD)
|
||||
+ static void cacheFlush(void* code, size_t size)
|
||||
+ {
|
||||
+ __clear_cache(code, reinterpret_cast<char*>(code) + size);
|
||||
+ }
|
||||
#elif WTF_CPU_ARM_TRADITIONAL && WTF_OS_LINUX && WTF_COMPILER_RVCT
|
||||
static __asm void cacheFlush(void* code, size_t size);
|
||||
#elif WTF_CPU_ARM_TRADITIONAL && (WTF_OS_LINUX || WTF_OS_ANDROID) && WTF_COMPILER_GCC
|
|
@ -1,11 +0,0 @@
|
|||
--- js/src/jit/arm/Architecture-arm.cpp~
|
||||
+++ js/src/jit/arm/Architecture-arm.cpp
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#define HWCAP_USE_HARDFP_ABI (1 << 28)
|
||||
|
||||
-#if !(defined(ANDROID) || defined(MOZ_B2G)) && !defined(JS_ARM_SIMULATOR)
|
||||
+#if defined(__linux__) && !defined(ANDROID) && !defined(MOZ_B2G) && !defined(JS_ARM_SIMULATOR)
|
||||
#define HWCAP_ARMv7 (1 << 29)
|
||||
#include <asm/hwcap.h>
|
||||
#else
|
|
@ -82,7 +82,7 @@ index 9bbc129..e72944a 100644
|
|||
|
||||
/* This should never happen. */
|
||||
if ((unsigned int) avail > stm->buffer_size) {
|
||||
@@ -355,17 +361,67 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
@@ -359,10 +365,11 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
if (got < 0) {
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
|
||||
|
@ -90,15 +90,19 @@ index 9bbc129..e72944a 100644
|
|||
return ERROR;
|
||||
}
|
||||
if (got > 0) {
|
||||
- snd_pcm_sframes_t wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
- snd_pcm_sframes_t wrote;
|
||||
+ snd_pcm_sframes_t wrote, towrite = got;
|
||||
|
||||
if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) {
|
||||
float * b = (float *) p;
|
||||
@@ -375,14 +382,62 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
b[i] *= stm->volume;
|
||||
}
|
||||
}
|
||||
- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
- if (wrote == -EPIPE) {
|
||||
- WRAP(snd_pcm_recover)(stm->pcm, wrote, 1);
|
||||
- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
- }
|
||||
- assert(wrote >= 0 && wrote == got);
|
||||
- stm->write_position += wrote;
|
||||
- gettimeofday(&stm->last_activity, NULL);
|
||||
+ snd_pcm_sframes_t wrote, towrite = got;
|
||||
+ for (;;) {
|
||||
+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p,
|
||||
+ towrite > avail ? avail : towrite);
|
||||
|
@ -154,7 +158,10 @@ index 9bbc129..e72944a 100644
|
|||
+ if (towrite == wrote)
|
||||
+ break;
|
||||
+ towrite -= wrote;
|
||||
+ }
|
||||
}
|
||||
- assert(wrote >= 0 && wrote == got);
|
||||
- stm->write_position += wrote;
|
||||
- gettimeofday(&stm->last_activity, NULL);
|
||||
}
|
||||
if (got != avail) {
|
||||
long buffer_fill = stm->buffer_size - (avail - got);
|
||||
|
|
|
@ -4,33 +4,21 @@ Date: Wed Nov 30 07:23:46 2011 +0800
|
|||
|
||||
Bug 702179 dtrace probes are not installed on Solaris with static js lib r=glandium
|
||||
---
|
||||
configure.in | 2 +-
|
||||
js/src/Makefile.in | 2 --
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
js/src/Makefile.in | 3 ---
|
||||
toolkit/library/moz.build | 5 -----
|
||||
2 files changed, 8 deletions(-)
|
||||
|
||||
diff --git configure.in configure.in
|
||||
index 66549c1..75b848d 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -966,7 +966,7 @@ MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
|
||||
MOZ_PNG_CFLAGS="-I$_objdir/dist/include" # needed for freetype compilation
|
||||
MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
|
||||
|
||||
-MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
|
||||
+MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src)'
|
||||
MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
|
||||
MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
|
||||
XPCOM_FROZEN_LDOPTS='$(call EXPAND_LIBNAME_PATH,xul mozalloc,$(LIBXUL_DIST)/bin)'
|
||||
diff --git js/src/Makefile.in js/src/Makefile.in
|
||||
index e28160a..28ca5e8 100644
|
||||
index 62bbfa0..90400cb 100644
|
||||
--- js/src/Makefile.in
|
||||
+++ js/src/Makefile.in
|
||||
@@ -18,8 +18,6 @@ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
|
||||
STATIC_LIBRARY_NAME = js_static
|
||||
LIBS = $(NSPR_LIBS)
|
||||
@@ -17,9 +17,6 @@ TOPLEVEL_BUILD := 1
|
||||
run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
|
||||
EXTRA_LIBS += $(NSPR_LIBS)
|
||||
|
||||
-DIST_INSTALL = 1
|
||||
-NO_EXPAND_LIBS = 1
|
||||
-
|
||||
ifdef JS_STANDALONE
|
||||
SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt)
|
||||
ifndef MOZ_NATIVE_ZLIB
|
||||
ifdef JS_HAS_CTYPES
|
||||
ifdef MOZ_NATIVE_FFI
|
||||
LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS)
|
||||
|
|
|
@ -47,7 +47,15 @@ diff --git mfbt/Attributes.h mfbt/Attributes.h
|
|||
index d317766..ddb13da 100644
|
||||
--- mfbt/Attributes.h
|
||||
+++ mfbt/Attributes.h
|
||||
@@ -54,6 +54,9 @@
|
||||
@@ -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
|
||||
|
@ -57,21 +65,13 @@ index d317766..ddb13da 100644
|
|||
# if __has_extension(cxx_constexpr)
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR
|
||||
# endif
|
||||
@@ -75,6 +78,9 @@
|
||||
@@ -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
|
||||
# if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
|
||||
# define MOZ_HAVE_CXX11_OVERRIDE
|
||||
# define MOZ_HAVE_CXX11_FINAL final
|
||||
@@ -96,6 +102,7 @@
|
||||
# define MOZ_HAVE_NORETURN __attribute__((noreturn))
|
||||
#elif defined(_MSC_VER)
|
||||
# if _MSC_VER >= 1800
|
||||
+# define MOZ_HAVE_CXX11_ALIGNAS
|
||||
# define MOZ_HAVE_CXX11_DELETE
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR
|
||||
# define MOZ_HAVE_EXPLICIT_CONVERSION
|
||||
# endif
|
||||
# if _MSC_VER >= 1700
|
||||
|
|
|
@ -51,18 +51,18 @@ index b483cd1..f1dd1f0 100644
|
|||
# basic stuff for everything
|
||||
'include_internal_video_render': 0,
|
||||
'clang_use_chrome_plugins': 0,
|
||||
diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in
|
||||
diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
|
||||
index b483cd1..f1dd1f0 100644
|
||||
--- media/webrtc/signaling/test/Makefile.in
|
||||
+++ media/webrtc/signaling/test/Makefile.in
|
||||
@@ -7,6 +7,7 @@ LIBS = \
|
||||
$(NSPR_LIBS) \
|
||||
$(NSS_LIBS) \
|
||||
$(REALTIME_LIBS) \
|
||||
+ $(MOZ_LIBV4L2_LIBS) \
|
||||
$(DEPTH)/xpcom/glue/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \
|
||||
$(DEPTH)/media/mtransport/standalone/$(LIB_PREFIX)mtransport_s.$(LIB_SUFFIX) \
|
||||
$(DEPTH)/media/webrtc/signalingtest/signaling_ecc/$(LIB_PREFIX)ecc.$(LIB_SUFFIX) \
|
||||
--- media/webrtc/signaling/test/moz.build
|
||||
+++ media/webrtc/signaling/test/moz.build
|
||||
@@ -122,6 +122,7 @@ if CONFIG['JS_SHARED_LIBRARY']:
|
||||
'js',
|
||||
]
|
||||
|
||||
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
||||
diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
|
||||
index 239a292..bab496c 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
|
||||
|
@ -145,35 +145,35 @@ index d46b5aa..e452223 100644
|
|||
'targets': [
|
||||
{
|
||||
'target_name': 'video_capture_module',
|
||||
@@ -49,6 +52,16 @@
|
||||
}, { # include_internal_video_capture == 1
|
||||
'conditions': [
|
||||
['include_v4l2_video_capture==1', {
|
||||
+ 'conditions': [
|
||||
+ ['use_libv4l2==1', {
|
||||
+ 'defines': [
|
||||
+ 'HAVE_LIBV4L2',
|
||||
+ ],
|
||||
+ 'libraries': [
|
||||
+ '-lv4l2',
|
||||
+ ],
|
||||
+ }],
|
||||
@@ -69,6 +72,19 @@
|
||||
'linux/video_capture_linux.cc',
|
||||
'linux/video_capture_linux.h',
|
||||
],
|
||||
+ 'conditions': [
|
||||
+ ['use_libv4l2==1', {
|
||||
+ 'defines': [
|
||||
+ 'HAVE_LIBV4L2',
|
||||
+ ],
|
||||
'include_dirs': [
|
||||
'linux',
|
||||
],
|
||||
diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
|
||||
+ 'cflags_mozilla': [
|
||||
+ '$(MOZ_LIBV4L2_CFLAGS)',
|
||||
+ ],
|
||||
+ 'libraries': [
|
||||
+ '-lv4l2',
|
||||
+ ],
|
||||
+ }],
|
||||
+ ],
|
||||
}], # linux
|
||||
['OS=="mac"', {
|
||||
'sources': [
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index 9c16ffa..1db3794 100644
|
||||
--- toolkit/library/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -182,6 +182,10 @@ endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -163,6 +163,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
|
||||
]
|
||||
|
||||
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
|
||||
OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
|
||||
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_APP_EXTRA_LIBS']
|
||||
|
||||
+ifdef MOZ_LIBV4L2_LIBS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS)
|
||||
+endif
|
||||
+
|
||||
ifdef MOZ_WEBRTC
|
||||
ifeq (WINNT,$(OS_TARGET))
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
|
|
|
@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
|
|||
index 14bfc0d..5383399 100644
|
||||
--- config/Makefile.in
|
||||
+++ config/Makefile.in
|
||||
@@ -77,6 +77,8 @@ export:: $(export-preqs)
|
||||
@@ -75,6 +75,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
|
||||
@@ -1145,3 +1145,11 @@ unicode/utypes.h
|
||||
@@ -1357,3 +1357,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
|
||||
@@ -8032,6 +8032,52 @@ if test "$USE_FC_FREETYPE"; then
|
||||
@@ -7986,6 +7986,49 @@ if test "$USE_FC_FREETYPE"; then
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
|
@ -46,16 +46,15 @@ index ac38f40..87536b7 100644
|
|||
+MOZ_NATIVE_HARFBUZZ=)
|
||||
+
|
||||
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
|
||||
+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.25)
|
||||
+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
|
||||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
|
||||
+AC_SUBST(MOZ_HARFBUZZ_CFLAGS)
|
||||
+AC_SUBST(MOZ_HARFBUZZ_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for graphite2
|
||||
+dnl ========================================================
|
||||
+
|
||||
+MOZ_ARG_WITH_BOOL(system-graphite2,
|
||||
+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)],
|
||||
+MOZ_NATIVE_GRAPHITE2=1,
|
||||
|
@ -79,27 +78,58 @@ index ac38f40..87536b7 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_GRAPHITE2)
|
||||
+AC_SUBST(MOZ_GRAPHITE2_CFLAGS)
|
||||
+AC_SUBST(MOZ_GRAPHITE2_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
dnl Check for pixman and cairo
|
||||
dnl ========================================================
|
||||
|
||||
diff --git content/base/src/moz.build content/base/src/moz.build
|
||||
index d4f6380..0ee55df 100644
|
||||
--- content/base/src/moz.build
|
||||
+++ content/base/src/moz.build
|
||||
@@ -179,6 +179,9 @@ SOURCES += [
|
||||
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',
|
||||
]
|
||||
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']]
|
||||
+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
EXTRA_COMPONENTS += [
|
||||
'contentAreaDropListener.js',
|
||||
'contentAreaDropListener.manifest',
|
||||
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
|
||||
@@ -23,8 +23,14 @@ echo "\nSee" $0 "for update procedure.\n" >> gfx/graphite2/README.mozilla
|
||||
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/;" {} \;
|
||||
|
||||
+# closest tag/release to require for system version
|
||||
+TAG=$(cd ../graphitedev/ && hg parents --template {latesttag})
|
||||
+
|
||||
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$TAG/ and tr/./,/ \
|
||||
+ if /GR2_VERSION_REQUIRE/" configure.in
|
||||
+
|
||||
# summarize what's been touched
|
||||
-echo Updated to $CHANGESET.
|
||||
+echo Updated to $CHANGESET \($TAG for --with-system-graphite2\)
|
||||
echo Here is what changed in the gfx/graphite2 directory:
|
||||
echo
|
||||
|
||||
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
|
||||
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.
|
||||
+
|
||||
+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
|
||||
+with checkout version or increment latest tag by one if it's not based
|
||||
+on upstream release.
|
||||
diff --git gfx/moz.build gfx/moz.build
|
||||
index 519aa46..6929751 100644
|
||||
--- gfx/moz.build
|
||||
|
@ -126,83 +156,87 @@ index 519aa46..6929751 100644
|
|||
'ots/src',
|
||||
'thebes',
|
||||
'ipc',
|
||||
diff --git gfx/skia/Makefile.in gfx/skia/Makefile.in
|
||||
index ee0efb2..98e169d6f 100644
|
||||
--- gfx/skia/Makefile.in
|
||||
+++ gfx/skia/Makefile.in
|
||||
@@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
|
||||
OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS)
|
||||
endif
|
||||
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']
|
||||
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
|
||||
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||
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']
|
||||
|
||||
ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1)
|
||||
diff --git gfx/thebes/Makefile.in gfx/thebes/Makefile.in
|
||||
index 45c36ae..79d32cf 100644
|
||||
--- gfx/thebes/Makefile.in
|
||||
+++ gfx/thebes/Makefile.in
|
||||
@@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFINES))
|
||||
CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
|
||||
CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
|
||||
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||
diff --git gfx/thebes/moz.build gfx/thebes/moz.build
|
||||
index d5852fa..aeeab25 100644
|
||||
--- gfx/thebes/moz.build
|
||||
+++ gfx/thebes/moz.build
|
||||
@@ -278,6 +278,12 @@ CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||
CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||
CFLAGS += CONFIG['TK_CFLAGS']
|
||||
|
||||
+ifdef MOZ_NATIVE_GRAPHITE2
|
||||
+CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_GRAPHITE2']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
|
||||
+
|
||||
ifeq ($(MOZ_WIDGET_TOOLKIT),android)
|
||||
CXXFLAGS += $(CAIRO_FT_CFLAGS)
|
||||
endif
|
||||
diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in
|
||||
index f6b9f7c..60863f4 100644
|
||||
--- intl/unicharutil/util/Makefile.in
|
||||
+++ intl/unicharutil/util/Makefile.in
|
||||
@@ -21,3 +21,7 @@ ifdef _MSC_VER
|
||||
OS_COMPILE_CXXFLAGS += -Zl
|
||||
OS_COMPILE_CFLAGS += -Zl
|
||||
endif
|
||||
+
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in
|
||||
index 1cacbd7..f5d72bb 100644
|
||||
--- netwerk/dns/Makefile.in
|
||||
+++ netwerk/dns/Makefile.in
|
||||
@@ -5,6 +5,10 @@
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk', 'qt'):
|
||||
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build
|
||||
index d736943..41a931f 100644
|
||||
--- intl/unicharutil/util/moz.build
|
||||
+++ intl/unicharutil/util/moz.build
|
||||
@@ -37,3 +37,6 @@ if CONFIG['_MSC_VER']:
|
||||
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
if CONFIG['ENABLE_INTL_API']:
|
||||
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
|
||||
+
|
||||
# Generate the include file containing compact, static definitions
|
||||
# for effective TLD data.
|
||||
etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
|
||||
diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
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 += [
|
||||
'/netwerk/base',
|
||||
]
|
||||
+
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index 67f0db9..d42137a 100644
|
||||
--- toolkit/library/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
|
||||
endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -187,6 +187,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
|
||||
if not CONFIG['MOZ_TREE_PIXMAN']:
|
||||
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
|
||||
|
||||
+ifdef MOZ_NATIVE_GRAPHITE2
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_GRAPHITE2']:
|
||||
+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
|
||||
+
|
||||
ifdef MOZ_DMD
|
||||
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib)
|
||||
endif
|
||||
if CONFIG['MOZ_OSS']:
|
||||
OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
|
|
|
@ -1,391 +0,0 @@
|
|||
commit a33d4f7
|
||||
Author: Martin Stransky <stransky@redhat.com>
|
||||
Date: Fri Nov 14 04:04:00 2014 +0100
|
||||
|
||||
Bug 858919 - Add support for libnotify calls which was removed for new notification API. r=karlt
|
||||
---
|
||||
toolkit/components/alerts/nsAlertsService.cpp | 10 +--
|
||||
toolkit/system/gnome/moz.build | 2 +
|
||||
toolkit/system/gnome/nsAlertsIconListener.cpp | 64 ++++++++++++------
|
||||
toolkit/system/gnome/nsAlertsIconListener.h | 89 ++++++++++++++++++++++++++
|
||||
toolkit/system/gnome/nsGnomeModule.cpp | 5 ++
|
||||
toolkit/system/gnome/nsSystemAlertsService.cpp | 54 ++++++++++++++++
|
||||
toolkit/system/gnome/nsSystemAlertsService.h | 27 ++++++++
|
||||
7 files changed, 226 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git toolkit/components/alerts/nsAlertsService.cpp toolkit/components/alerts/nsAlertsService.cpp
|
||||
index 93f4536..f8b5e07 100644
|
||||
--- toolkit/components/alerts/nsAlertsService.cpp
|
||||
+++ toolkit/components/alerts/nsAlertsService.cpp
|
||||
@@ -100,9 +100,11 @@ NS_IMETHODIMP nsAlertsService::ShowAlertNotification(const nsAString & aImageUrl
|
||||
nsCOMPtr<nsIAlertsService> sysAlerts(do_GetService(NS_SYSTEMALERTSERVICE_CONTRACTID));
|
||||
nsresult rv;
|
||||
if (sysAlerts) {
|
||||
- return sysAlerts->ShowAlertNotification(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable,
|
||||
- aAlertCookie, aAlertListener, aAlertName,
|
||||
- aBidi, aLang, IPC::Principal(aPrincipal));
|
||||
+ rv = sysAlerts->ShowAlertNotification(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable,
|
||||
+ aAlertCookie, aAlertListener, aAlertName,
|
||||
+ aBidi, aLang, IPC::Principal(aPrincipal));
|
||||
+ if (NS_SUCCEEDED(rv))
|
||||
+ return NS_OK;
|
||||
}
|
||||
|
||||
if (!ShouldShowAlert()) {
|
||||
diff --git toolkit/system/gnome/moz.build toolkit/system/gnome/moz.build
|
||||
index c033f8b..9242209 100644
|
||||
--- toolkit/system/gnome/moz.build
|
||||
+++ toolkit/system/gnome/moz.build
|
||||
@@ -5,7 +5,9 @@
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
SOURCES += [
|
||||
+ 'nsAlertsIconListener.cpp',
|
||||
'nsGnomeModule.cpp',
|
||||
+ 'nsSystemAlertsService.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_ENABLE_GCONF']:
|
||||
diff --git toolkit/system/gnome/nsAlertsIconListener.cpp toolkit/system/gnome/nsAlertsIconListener.cpp
|
||||
index f39335e..55f4356 100644
|
||||
--- toolkit/system/gnome/nsAlertsIconListener.cpp
|
||||
+++ toolkit/system/gnome/nsAlertsIconListener.cpp
|
||||
@@ -51,6 +51,21 @@ static void notify_closed_marshal(GClosure* closure,
|
||||
NS_RELEASE(alert);
|
||||
}
|
||||
|
||||
+static GdkPixbuf*
|
||||
+GetPixbufFromImgRequest(imgIRequest* aRequest)
|
||||
+{
|
||||
+ nsCOMPtr<imgIContainer> image;
|
||||
+ nsresult rv = aRequest->GetImage(getter_AddRefs(image));
|
||||
+ if (NS_FAILED(rv)) {
|
||||
+ return nullptr;
|
||||
+ }
|
||||
+
|
||||
+ nsCOMPtr<nsIImageToPixbuf> imgToPixbuf =
|
||||
+ do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1");
|
||||
+
|
||||
+ return imgToPixbuf->ConvertImageToPixbuf(image);
|
||||
+}
|
||||
+
|
||||
NS_IMPL_ISUPPORTS(nsAlertsIconListener, imgINotificationObserver,
|
||||
nsIObserver, nsISupportsWeakReference)
|
||||
|
||||
@@ -106,47 +121,45 @@ nsAlertsIconListener::Notify(imgIRequest *aRequest, int32_t aType, const nsIntRe
|
||||
nsresult
|
||||
nsAlertsIconListener::OnStopRequest(imgIRequest* aRequest)
|
||||
{
|
||||
+ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!");
|
||||
+
|
||||
uint32_t imgStatus = imgIRequest::STATUS_ERROR;
|
||||
nsresult rv = aRequest->GetImageStatus(&imgStatus);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
if (imgStatus == imgIRequest::STATUS_ERROR && !mLoadedFrame) {
|
||||
// We have an error getting the image. Display the notification with no icon.
|
||||
ShowAlert(nullptr);
|
||||
- }
|
||||
|
||||
- if (mIconRequest) {
|
||||
+ // Cancel any pending request
|
||||
mIconRequest->Cancel(NS_BINDING_ABORTED);
|
||||
mIconRequest = nullptr;
|
||||
}
|
||||
+
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsAlertsIconListener::OnStopFrame(imgIRequest* aRequest)
|
||||
{
|
||||
- if (aRequest != mIconRequest)
|
||||
- return NS_ERROR_FAILURE;
|
||||
+ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!");
|
||||
|
||||
if (mLoadedFrame)
|
||||
return NS_OK; // only use one frame
|
||||
|
||||
- nsCOMPtr<imgIContainer> image;
|
||||
- nsresult rv = aRequest->GetImage(getter_AddRefs(image));
|
||||
- if (NS_FAILED(rv))
|
||||
- return rv;
|
||||
-
|
||||
- nsCOMPtr<nsIImageToPixbuf> imgToPixbuf =
|
||||
- do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1");
|
||||
-
|
||||
- GdkPixbuf* imagePixbuf = imgToPixbuf->ConvertImageToPixbuf(image);
|
||||
- if (!imagePixbuf)
|
||||
- return NS_ERROR_FAILURE;
|
||||
+ GdkPixbuf* imagePixbuf = GetPixbufFromImgRequest(aRequest);
|
||||
+ if (!imagePixbuf) {
|
||||
+ ShowAlert(nullptr);
|
||||
+ } else {
|
||||
+ ShowAlert(imagePixbuf);
|
||||
+ g_object_unref(imagePixbuf);
|
||||
+ }
|
||||
|
||||
- ShowAlert(imagePixbuf);
|
||||
+ mLoadedFrame = true;
|
||||
|
||||
- g_object_unref(imagePixbuf);
|
||||
+ // Cancel any pending request (multipart image loading/decoding for instance)
|
||||
+ mIconRequest->Cancel(NS_BINDING_ABORTED);
|
||||
+ mIconRequest = nullptr;
|
||||
|
||||
- mLoadedFrame = true;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -180,6 +193,9 @@ nsAlertsIconListener::ShowAlert(GdkPixbuf* aPixbuf)
|
||||
mClosureHandler = g_signal_connect_closure(mNotification, "closed", closure, FALSE);
|
||||
gboolean result = notify_notification_show(mNotification, nullptr);
|
||||
|
||||
+ if (result && mAlertListener)
|
||||
+ mAlertListener->Observe(nullptr, "alertshow", mAlertCookie.get());
|
||||
+
|
||||
return result ? NS_OK : NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
@@ -201,9 +217,15 @@ nsAlertsIconListener::StartRequest(const nsAString & aImageUrl)
|
||||
if (!il)
|
||||
return ShowAlert(nullptr);
|
||||
|
||||
- return il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr,
|
||||
- this, nullptr, nsIRequest::LOAD_NORMAL, nullptr,
|
||||
- nullptr, getter_AddRefs(mIconRequest));
|
||||
+ nsresult rv = il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr,
|
||||
+ this, nullptr, nsIRequest::LOAD_NORMAL, nullptr,
|
||||
+ 0 /* use default */, getter_AddRefs(mIconRequest));
|
||||
+ if (NS_FAILED(rv))
|
||||
+ return rv;
|
||||
+
|
||||
+ mIconRequest->StartDecoding();
|
||||
+
|
||||
+ return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
diff --git toolkit/system/gnome/nsAlertsIconListener.h toolkit/system/gnome/nsAlertsIconListener.h
|
||||
new file mode 100644
|
||||
index 0000000..ac96db9
|
||||
--- /dev/null
|
||||
+++ toolkit/system/gnome/nsAlertsIconListener.h
|
||||
@@ -0,0 +1,89 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef nsAlertsIconListener_h__
|
||||
+#define nsAlertsIconListener_h__
|
||||
+
|
||||
+#include "nsCOMPtr.h"
|
||||
+#include "imgINotificationObserver.h"
|
||||
+#include "nsStringAPI.h"
|
||||
+#include "nsIObserver.h"
|
||||
+#include "nsWeakReference.h"
|
||||
+
|
||||
+#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
+
|
||||
+class imgIRequest;
|
||||
+
|
||||
+struct NotifyNotification;
|
||||
+
|
||||
+class nsAlertsIconListener : public imgINotificationObserver,
|
||||
+ public nsIObserver,
|
||||
+ public nsSupportsWeakReference
|
||||
+{
|
||||
+public:
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+ NS_DECL_IMGINOTIFICATIONOBSERVER
|
||||
+ NS_DECL_NSIOBSERVER
|
||||
+
|
||||
+ nsAlertsIconListener();
|
||||
+
|
||||
+ nsresult InitAlertAsync(const nsAString & aImageUrl,
|
||||
+ const nsAString & aAlertTitle,
|
||||
+ const nsAString & aAlertText,
|
||||
+ bool aAlertTextClickable,
|
||||
+ const nsAString & aAlertCookie,
|
||||
+ nsIObserver * aAlertListener);
|
||||
+
|
||||
+ void SendCallback();
|
||||
+ void SendClosed();
|
||||
+
|
||||
+protected:
|
||||
+ virtual ~nsAlertsIconListener();
|
||||
+
|
||||
+ nsresult OnStopRequest(imgIRequest* aRequest);
|
||||
+ nsresult OnStopFrame(imgIRequest* aRequest);
|
||||
+
|
||||
+ /**
|
||||
+ * The only difference between libnotify.so.4 and libnotify.so.1 for these symbols
|
||||
+ * is that notify_notification_new takes three arguments in libnotify.so.4 and
|
||||
+ * four in libnotify.so.1.
|
||||
+ * Passing the fourth argument as NULL is binary compatible.
|
||||
+ */
|
||||
+ typedef void (*NotifyActionCallback)(NotifyNotification*, char*, gpointer);
|
||||
+ typedef bool (*notify_is_initted_t)(void);
|
||||
+ typedef bool (*notify_init_t)(const char*);
|
||||
+ typedef GList* (*notify_get_server_caps_t)(void);
|
||||
+ typedef NotifyNotification* (*notify_notification_new_t)(const char*, const char*, const char*, const char*);
|
||||
+ typedef bool (*notify_notification_show_t)(void*, char*);
|
||||
+ typedef void (*notify_notification_set_icon_from_pixbuf_t)(void*, GdkPixbuf*);
|
||||
+ typedef void (*notify_notification_add_action_t)(void*, const char*, const char*, NotifyActionCallback, gpointer, GFreeFunc);
|
||||
+
|
||||
+ nsCOMPtr<imgIRequest> mIconRequest;
|
||||
+ nsCString mAlertTitle;
|
||||
+ nsCString mAlertText;
|
||||
+
|
||||
+ nsCOMPtr<nsIObserver> mAlertListener;
|
||||
+ nsString mAlertCookie;
|
||||
+
|
||||
+ bool mLoadedFrame;
|
||||
+ bool mAlertHasAction;
|
||||
+
|
||||
+ static void* libNotifyHandle;
|
||||
+ static bool libNotifyNotAvail;
|
||||
+ static notify_is_initted_t notify_is_initted;
|
||||
+ static notify_init_t notify_init;
|
||||
+ static notify_get_server_caps_t notify_get_server_caps;
|
||||
+ static notify_notification_new_t notify_notification_new;
|
||||
+ static notify_notification_show_t notify_notification_show;
|
||||
+ static notify_notification_set_icon_from_pixbuf_t notify_notification_set_icon_from_pixbuf;
|
||||
+ static notify_notification_add_action_t notify_notification_add_action;
|
||||
+ NotifyNotification* mNotification;
|
||||
+ gulong mClosureHandler;
|
||||
+
|
||||
+ nsresult StartRequest(const nsAString & aImageUrl);
|
||||
+ nsresult ShowAlert(GdkPixbuf* aPixbuf);
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
diff --git toolkit/system/gnome/nsGnomeModule.cpp toolkit/system/gnome/nsGnomeModule.cpp
|
||||
index 5ccc8e5..f893893 100644
|
||||
--- toolkit/system/gnome/nsGnomeModule.cpp
|
||||
+++ toolkit/system/gnome/nsGnomeModule.cpp
|
||||
@@ -22,6 +22,8 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGnomeVFSService, Init)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsGIOService)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGSettingsService, Init)
|
||||
#endif
|
||||
+#include "nsSystemAlertsService.h"
|
||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSystemAlertsService, Init)
|
||||
|
||||
#ifdef MOZ_ENABLE_GCONF
|
||||
NS_DEFINE_NAMED_CID(NS_GCONFSERVICE_CID);
|
||||
@@ -33,6 +35,7 @@ NS_DEFINE_NAMED_CID(NS_GNOMEVFSSERVICE_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_GIOSERVICE_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_GSETTINGSSERVICE_CID);
|
||||
#endif
|
||||
+NS_DEFINE_NAMED_CID(NS_SYSTEMALERTSSERVICE_CID);
|
||||
|
||||
static const mozilla::Module::CIDEntry kGnomeCIDs[] = {
|
||||
#ifdef MOZ_ENABLE_GCONF
|
||||
@@ -45,6 +48,7 @@ static const mozilla::Module::CIDEntry kGnomeCIDs[] = {
|
||||
{ &kNS_GIOSERVICE_CID, false, nullptr, nsGIOServiceConstructor },
|
||||
{ &kNS_GSETTINGSSERVICE_CID, false, nullptr, nsGSettingsServiceConstructor },
|
||||
#endif
|
||||
+ { &kNS_SYSTEMALERTSSERVICE_CID, false, nullptr, nsSystemAlertsServiceConstructor },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
@@ -59,6 +63,7 @@ static const mozilla::Module::ContractIDEntry kGnomeContracts[] = {
|
||||
{ NS_GIOSERVICE_CONTRACTID, &kNS_GIOSERVICE_CID },
|
||||
{ NS_GSETTINGSSERVICE_CONTRACTID, &kNS_GSETTINGSSERVICE_CID },
|
||||
#endif
|
||||
+ { NS_SYSTEMALERTSERVICE_CONTRACTID, &kNS_SYSTEMALERTSSERVICE_CID },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
diff --git toolkit/system/gnome/nsSystemAlertsService.cpp toolkit/system/gnome/nsSystemAlertsService.cpp
|
||||
new file mode 100644
|
||||
index 0000000..b91b402
|
||||
--- /dev/null
|
||||
+++ toolkit/system/gnome/nsSystemAlertsService.cpp
|
||||
@@ -0,0 +1,53 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "nsXULAppAPI.h"
|
||||
+#include "nsSystemAlertsService.h"
|
||||
+#include "nsAlertsIconListener.h"
|
||||
+#include "nsAutoPtr.h"
|
||||
+
|
||||
+NS_IMPL_ADDREF(nsSystemAlertsService)
|
||||
+NS_IMPL_RELEASE(nsSystemAlertsService)
|
||||
+
|
||||
+NS_INTERFACE_MAP_BEGIN(nsSystemAlertsService)
|
||||
+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAlertsService)
|
||||
+ NS_INTERFACE_MAP_ENTRY(nsIAlertsService)
|
||||
+NS_INTERFACE_MAP_END_THREADSAFE
|
||||
+
|
||||
+nsSystemAlertsService::nsSystemAlertsService()
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+nsSystemAlertsService::~nsSystemAlertsService()
|
||||
+{}
|
||||
+
|
||||
+nsresult
|
||||
+nsSystemAlertsService::Init()
|
||||
+{
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP nsSystemAlertsService::ShowAlertNotification(const nsAString & aImageUrl, const nsAString & aAlertTitle,
|
||||
+ const nsAString & aAlertText, bool aAlertTextClickable,
|
||||
+ const nsAString & aAlertCookie,
|
||||
+ nsIObserver * aAlertListener,
|
||||
+ const nsAString & aAlertName,
|
||||
+ const nsAString & aBidi,
|
||||
+ const nsAString & aLang,
|
||||
+ nsIPrincipal * aPrincipal)
|
||||
+{
|
||||
+ nsRefPtr<nsAlertsIconListener> alertListener = new nsAlertsIconListener();
|
||||
+ if (!alertListener)
|
||||
+ return NS_ERROR_OUT_OF_MEMORY;
|
||||
+
|
||||
+ return alertListener->InitAlertAsync(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable,
|
||||
+ aAlertCookie, aAlertListener);
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP nsSystemAlertsService::CloseAlert(const nsAString& aAlertName,
|
||||
+ nsIPrincipal* aPrincipal)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
diff --git toolkit/system/gnome/nsSystemAlertsService.h toolkit/system/gnome/nsSystemAlertsService.h
|
||||
new file mode 100644
|
||||
index 0000000..b0bd625
|
||||
--- /dev/null
|
||||
+++ toolkit/system/gnome/nsSystemAlertsService.h
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef nsSystemAlertsService_h__
|
||||
+#define nsSystemAlertsService_h__
|
||||
+
|
||||
+#include "nsIAlertsService.h"
|
||||
+#include "nsCOMPtr.h"
|
||||
+
|
||||
+class nsSystemAlertsService : public nsIAlertsService
|
||||
+{
|
||||
+public:
|
||||
+ NS_DECL_NSIALERTSSERVICE
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+
|
||||
+ nsSystemAlertsService();
|
||||
+
|
||||
+ nsresult Init();
|
||||
+
|
||||
+protected:
|
||||
+ virtual ~nsSystemAlertsService();
|
||||
+
|
||||
+};
|
||||
+
|
||||
+#endif /* nsSystemAlertsService_h__ */
|
|
@ -1,266 +0,0 @@
|
|||
commit d099acd
|
||||
Author: Trevor Saunders <trev.saunders@gmail.com>
|
||||
Date: Fri Jan 17 15:08:00 2014 -0800
|
||||
|
||||
Bug 961264 - Remove obsolete checks for gcc visibility stuff.
|
||||
---
|
||||
configure.in | 115 +++-------------------------------------------------
|
||||
js/src/configure.in | 111 ++------------------------------------------------
|
||||
2 files changed, 8 insertions(+), 218 deletions(-)
|
||||
|
||||
diff --git configure.in configure.in
|
||||
index dfb8193..33d71b3 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -2507,118 +2507,15 @@ MOZ_CXX11
|
||||
|
||||
AC_LANG_C
|
||||
|
||||
-dnl Check for .hidden assembler directive and visibility attribute.
|
||||
-dnl Borrowed from glibc configure.in
|
||||
+dnl Setup default hidden visibility and wrapped system headers.
|
||||
dnl ===============================================================
|
||||
if test "$GNU_CC"; then
|
||||
- AC_CACHE_CHECK(for visibility(hidden) attribute,
|
||||
- ac_cv_visibility_hidden,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("hidden"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_hidden=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_hidden=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_hidden" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility(default) attribute,
|
||||
- ac_cv_visibility_default,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("default"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_default=no
|
||||
- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_default=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_default" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility pragma support,
|
||||
- ac_cv_visibility_pragma,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
- int foo_hidden = 1;
|
||||
-#pragma GCC visibility push(default)
|
||||
- int foo_default = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_pragma=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
|
||||
- ac_cv_visibility_pragma=yes
|
||||
- fi
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_pragma" = "yes"; then
|
||||
- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
|
||||
- ac_cv_have_visibility_class_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-struct __attribute__ ((visibility ("default"))) TestStruct {
|
||||
- static void Init();
|
||||
-};
|
||||
-__attribute__ ((visibility ("default"))) void TestFunc() {
|
||||
- TestStruct::Init();
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_class_bug=no
|
||||
- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- else
|
||||
- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -rf conftest.{c,S}
|
||||
- ])
|
||||
-
|
||||
- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
|
||||
- ac_cv_have_visibility_builtin_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-#pragma GCC visibility push(default)
|
||||
-#include <string.h>
|
||||
-#pragma GCC visibility pop
|
||||
-
|
||||
-__attribute__ ((visibility ("default"))) void Func() {
|
||||
- char c[[100]];
|
||||
- memset(c, 0, sizeof(c));
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_builtin_bug=no
|
||||
- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_builtin_bug=yes
|
||||
- else
|
||||
- if test `grep -c "@PLT" conftest.S` = 0; then
|
||||
- ac_cv_visibility_builtin_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.{c,S}
|
||||
- ])
|
||||
- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
|
||||
- "$ac_cv_have_visibility_class_bug" = "no"; then
|
||||
- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
- WRAP_SYSTEM_INCLUDES=1
|
||||
- STL_FLAGS='-I$(DIST)/stl_wrappers'
|
||||
- WRAP_STL_INCLUDES=1
|
||||
- else
|
||||
- VISIBILITY_FLAGS='-fvisibility=hidden'
|
||||
- fi # have visibility pragma bug
|
||||
- fi # have visibility pragma
|
||||
- fi # have visibility(default) attribute
|
||||
- fi # have visibility(hidden) attribute
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
+ WRAP_SYSTEM_INCLUDES=1
|
||||
+ STL_FLAGS='-I$(DIST)/stl_wrappers'
|
||||
+ WRAP_STL_INCLUDES=1
|
||||
fi # GNU_CC
|
||||
|
||||
# visibility hidden flag for Sun Studio on Solaris
|
||||
diff --git js/src/configure.in js/src/configure.in
|
||||
index bddd46d..d4b522e 100644
|
||||
--- js/src/configure.in
|
||||
+++ js/src/configure.in
|
||||
@@ -2077,116 +2077,13 @@ AC_LANG_CPLUSPLUS
|
||||
|
||||
MOZ_CXX11
|
||||
|
||||
-dnl Check for .hidden assembler directive and visibility attribute.
|
||||
-dnl Borrowed from glibc configure.in
|
||||
+dnl Setup default hidden visibility and wrapped system headers.
|
||||
dnl ===============================================================
|
||||
if test "$GNU_CC"; then
|
||||
- AC_CACHE_CHECK(for visibility(hidden) attribute,
|
||||
- ac_cv_visibility_hidden,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("hidden"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_hidden=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_hidden=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_hidden" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility(default) attribute,
|
||||
- ac_cv_visibility_default,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("default"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_default=no
|
||||
- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_default=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_default" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility pragma support,
|
||||
- ac_cv_visibility_pragma,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
- int foo_hidden = 1;
|
||||
-#pragma GCC visibility push(default)
|
||||
- int foo_default = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_pragma=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
|
||||
- ac_cv_visibility_pragma=yes
|
||||
- fi
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_pragma" = "yes"; then
|
||||
- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
|
||||
- ac_cv_have_visibility_class_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-struct __attribute__ ((visibility ("default"))) TestStruct {
|
||||
- static void Init();
|
||||
-};
|
||||
-__attribute__ ((visibility ("default"))) void TestFunc() {
|
||||
- TestStruct::Init();
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_class_bug=no
|
||||
- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- else
|
||||
- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -rf conftest.{c,S}
|
||||
- ])
|
||||
-
|
||||
- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
|
||||
- ac_cv_have_visibility_builtin_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-#pragma GCC visibility push(default)
|
||||
-#include <string.h>
|
||||
-#pragma GCC visibility pop
|
||||
-
|
||||
-__attribute__ ((visibility ("default"))) void Func() {
|
||||
- char c[[100]];
|
||||
- memset(c, 0, sizeof(c));
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_builtin_bug=no
|
||||
- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_builtin_bug=yes
|
||||
- else
|
||||
- if test `grep -c "@PLT" conftest.S` = 0; then
|
||||
- ac_cv_visibility_builtin_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.{c,S}
|
||||
- ])
|
||||
- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
|
||||
- "$ac_cv_have_visibility_class_bug" = "no"; then
|
||||
- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
- WRAP_SYSTEM_INCLUDES=1
|
||||
- else
|
||||
- VISIBILITY_FLAGS='-fvisibility=hidden'
|
||||
- fi # have visibility pragma bug
|
||||
- fi # have visibility pragma
|
||||
- fi # have visibility(default) attribute
|
||||
- fi # have visibility(hidden) attribute
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
+ WRAP_SYSTEM_INCLUDES=1
|
||||
fi # GNU_CC
|
||||
|
||||
# visibility hidden flag for Sun Studio on Solaris
|
|
@ -28,7 +28,7 @@ index 8fa8200..1d2a259 100644
|
|||
-}
|
||||
|
||||
+#ifdef JCS_EXTENSIONS
|
||||
#if defined(IS_BIG_ENDIAN)
|
||||
#if MOZ_BIG_ENDIAN
|
||||
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
|
||||
#else
|
||||
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
|
||||
|
@ -51,26 +51,26 @@ index 8fa8200..1d2a259 100644
|
|||
|
||||
static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
|
||||
|
||||
@@ -324,6 +340,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount)
|
||||
case JCS_GRAYSCALE:
|
||||
case JCS_RGB:
|
||||
case JCS_YCbCr:
|
||||
@@ -367,6 +382,7 @@ nsJPEGDecoder::WriteInternal(const char*
|
||||
case JCS_GRAYSCALE:
|
||||
case JCS_RGB:
|
||||
case JCS_YCbCr:
|
||||
+#ifdef JCS_EXTENSIONS
|
||||
// if we're not color managing we can decode directly to
|
||||
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
|
||||
if (mCMSMode != eCMSMode_All) {
|
||||
@@ -332,6 +349,9 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount)
|
||||
} else {
|
||||
mInfo.out_color_space = JCS_RGB;
|
||||
}
|
||||
// if we're not color managing we can decode directly to
|
||||
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
|
||||
if (mCMSMode != eCMSMode_All) {
|
||||
@@ -375,6 +391,9 @@ nsJPEGDecoder::WriteInternal(const char*
|
||||
} else {
|
||||
mInfo.out_color_space = JCS_RGB;
|
||||
}
|
||||
+#else
|
||||
+ mInfo.out_color_space = JCS_RGB;
|
||||
+ mInfo.out_color_space = JCS_RGB;
|
||||
+#endif
|
||||
break;
|
||||
case JCS_CMYK:
|
||||
case JCS_YCCK:
|
||||
@@ -399,6 +419,15 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount)
|
||||
return; /* I/O suspension */
|
||||
break;
|
||||
case JCS_CMYK:
|
||||
case JCS_YCCK:
|
||||
@@ -433,6 +452,15 @@ nsJPEGDecoder::WriteInternal(const char*
|
||||
return; // I/O suspension
|
||||
}
|
||||
|
||||
+#ifndef JCS_EXTENSIONS
|
||||
|
@ -83,10 +83,10 @@ index 8fa8200..1d2a259 100644
|
|||
+ }
|
||||
+#endif
|
||||
|
||||
/* If this is a progressive JPEG ... */
|
||||
mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
|
||||
@@ -544,7 +573,11 @@ nsJPEGDecoder::OutputScanlines(bool* suspend)
|
||||
uint32_t *imageRow = ((uint32_t*)mImageData) +
|
||||
// If this is a progressive JPEG ...
|
||||
mState = mInfo.buffered_image ?
|
||||
@@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
|
||||
uint32_t* imageRow = ((uint32_t*)mImageData) +
|
||||
(mInfo.output_scanline * mInfo.output_width);
|
||||
|
||||
+#ifdef JCS_EXTENSIONS
|
||||
|
@ -94,10 +94,10 @@ index 8fa8200..1d2a259 100644
|
|||
+#else
|
||||
+ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
|
||||
+#endif
|
||||
/* Special case: scanline will be directly converted into packed ARGB */
|
||||
// Special case: scanline will be directly converted into packed ARGB
|
||||
if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
|
||||
*suspend = true; /* suspend */
|
||||
@@ -854,6 +887,282 @@ term_source (j_decompress_ptr jd)
|
||||
*suspend = true; // suspend
|
||||
@@ -920,6 +952,282 @@ term_source (j_decompress_ptr jd)
|
||||
} // namespace mozilla
|
||||
|
||||
|
||||
|
@ -377,6 +377,6 @@ index 8fa8200..1d2a259 100644
|
|||
+#endif
|
||||
+
|
||||
+
|
||||
/**************** Inverted CMYK -> RGB conversion **************/
|
||||
/*
|
||||
* Input is (Inverted) CMYK stored as 4 bytes per pixel.
|
||||
///*************** Inverted CMYK -> RGB conversion *************************
|
||||
/// Input is (Inverted) CMYK stored as 4 bytes per pixel.
|
||||
/// Output is RGB stored as 3 bytes per pixel.
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
--- media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp~
|
||||
+++ media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp
|
||||
@@ -23,6 +23,13 @@
|
||||
#include "ADebug.h"
|
||||
#include "AString.h"
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+# include <osreldate.h>
|
||||
+# if __FreeBSD_version < 900506
|
||||
+# undef tolower
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
namespace stagefright {
|
||||
|
||||
// static
|
239
www/firefox-esr/files/patch-system-openh264
Normal file
239
www/firefox-esr/files/patch-system-openh264
Normal file
|
@ -0,0 +1,239 @@
|
|||
# Revert bug 1045209 to allow using absolute path
|
||||
|
||||
diff --git dom/media/gmp/GMPChild.cpp dom/media/gmp/GMPChild.cpp
|
||||
index 1dde3ac..12c88cf 100644
|
||||
--- dom/media/gmp/GMPChild.cpp
|
||||
+++ dom/media/gmp/GMPChild.cpp
|
||||
@@ -76,21 +76,14 @@ GetFileBase(const std::string& aPluginPa
|
||||
}
|
||||
#endif
|
||||
|
||||
- nsCOMPtr<nsIFile> parent;
|
||||
- rv = aFileBase->GetParent(getter_AddRefs(parent));
|
||||
- if (NS_FAILED(rv)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- nsAutoString parentLeafName;
|
||||
- rv = parent->GetLeafName(parentLeafName);
|
||||
- if (NS_FAILED(rv)) {
|
||||
+ nsAutoString leafName;
|
||||
+ if (NS_FAILED(aFileBase->GetLeafName(leafName))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
- aBaseName = Substring(parentLeafName,
|
||||
+ aBaseName = Substring(leafName,
|
||||
4,
|
||||
- parentLeafName.Length() - 1);
|
||||
+ leafName.Length() - 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
diff --git dom/media/gmp/GMPParent.cpp dom/media/gmp/GMPParent.cpp
|
||||
index aa60acf..90878ca 100644
|
||||
--- dom/media/gmp/GMPParent.cpp
|
||||
+++ dom/media/gmp/GMPParent.cpp
|
||||
@@ -90,23 +90,16 @@
|
||||
mService = aService;
|
||||
mDirectory = aPluginDir;
|
||||
|
||||
- // aPluginDir is <profile-dir>/<gmp-plugin-id>/<version>
|
||||
- // where <gmp-plugin-id> should be gmp-gmpopenh264
|
||||
- nsCOMPtr<nsIFile> parent;
|
||||
- nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent));
|
||||
- if (NS_FAILED(rv)) {
|
||||
- return rv;
|
||||
- }
|
||||
- nsAutoString parentLeafName;
|
||||
- rv = parent->GetLeafName(parentLeafName);
|
||||
+ nsAutoString leafname;
|
||||
+ nsresult rv = aPluginDir->GetLeafName(leafname);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
LOGD(("%s::%s: %p for %s", __CLASS__, __FUNCTION__, this,
|
||||
- NS_LossyConvertUTF16toASCII(parentLeafName).get()));
|
||||
+ NS_LossyConvertUTF16toASCII(leafname).get()));
|
||||
|
||||
- MOZ_ASSERT(parentLeafName.Length() > 4);
|
||||
- mName = Substring(parentLeafName, 4);
|
||||
+ MOZ_ASSERT(leafname.Length() > 4);
|
||||
+ mName = Substring(leafname, 4);
|
||||
|
||||
return ReadGMPMetaData();
|
||||
}
|
||||
diff --git toolkit/modules/GMPInstallManager.jsm toolkit/modules/GMPInstallManager.jsm
|
||||
index 9593492..470384b 100644
|
||||
--- toolkit/modules/GMPInstallManager.jsm
|
||||
+++ toolkit/modules/GMPInstallManager.jsm
|
||||
@@ -888,9 +889,7 @@
|
||||
let gmpAddon = this._gmpAddon;
|
||||
let installToDirPath = Cc["@mozilla.org/file/local;1"].
|
||||
createInstance(Ci.nsIFile);
|
||||
- let path = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- gmpAddon.id,
|
||||
- gmpAddon.version);
|
||||
+ let path = OS.Path.join(OS.Constants.Path.profileDir, gmpAddon.id);
|
||||
installToDirPath.initWithPath(path);
|
||||
log.info("install to directory path: " + installToDirPath.path);
|
||||
let gmpInstaller = new GMPExtractor(zipPath, installToDirPath.path);
|
||||
@@ -885,10 +883,12 @@
|
||||
// Success, set the prefs
|
||||
let now = Math.round(Date.now() / 1000);
|
||||
GMPPrefs.set(GMPPrefs.KEY_PLUGIN_LAST_UPDATE, now, gmpAddon.id);
|
||||
- // Setting the version pref signals installation completion to consumers,
|
||||
- // if you need to set other prefs etc. do it before this.
|
||||
+ // Setting the path pref signals installation completion to consumers,
|
||||
+ // so set the version and potential other information they use first.
|
||||
GMPPrefs.set(GMPPrefs.KEY_PLUGIN_VERSION, gmpAddon.version,
|
||||
gmpAddon.id);
|
||||
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
+ installToDirPath.path, gmpAddon.id);
|
||||
this._deferred.resolve(extractedPaths);
|
||||
}, err => {
|
||||
this._deferred.reject(err);
|
||||
diff --git toolkit/modules/GMPUtils.jsm toolkit/modules/GMPUtils.jsm
|
||||
index 1f3a0b1..93517be 100644
|
||||
--- toolkit/modules/GMPUtils.jsm
|
||||
+++ toolkit/modules/GMPUtils.jsm
|
||||
@@ -70,6 +70,7 @@ this.GMPPrefs = {
|
||||
KEY_EME_ENABLED: "media.eme.enabled",
|
||||
KEY_PLUGIN_ENABLED: "media.{0}.enabled",
|
||||
KEY_PLUGIN_LAST_UPDATE: "media.{0}.lastUpdate",
|
||||
+ KEY_PLUGIN_PATH: "media.{0}.path",
|
||||
KEY_PLUGIN_VERSION: "media.{0}.version",
|
||||
KEY_PLUGIN_AUTOUPDATE: "media.{0}.autoupdate",
|
||||
KEY_PLUGIN_FORCEVISIBLE: "media.{0}.forcevisible",
|
||||
diff --git toolkit/mozapps/extensions/internal/GMPProvider.jsm toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
||||
index 1f3a0b1..93517be 100644
|
||||
--- toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
||||
+++ toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
||||
@@ -100,12 +100,11 @@
|
||||
Log.repository.getLoggerWithMessagePrefix("Toolkit.GMP",
|
||||
"GMPWrapper(" +
|
||||
this._plugin.id + ") ");
|
||||
- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
|
||||
- this._plugin.id),
|
||||
+ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED, this._plugin.id),
|
||||
this.onPrefEnabledChanged, this);
|
||||
- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
+ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
this._plugin.id),
|
||||
- this.onPrefVersionChanged, this);
|
||||
+ this.onPrefPathChanged, this);
|
||||
if (this._plugin.isEME) {
|
||||
Preferences.observe(GMPPrefs.KEY_EME_ENABLED,
|
||||
this.onPrefEMEGlobalEnabledChanged, this);
|
||||
@@ -120,17 +119,14 @@
|
||||
optionsType: AddonManager.OPTIONS_TYPE_INLINE,
|
||||
get optionsURL() { return this._plugin.optionsURL; },
|
||||
|
||||
+
|
||||
set gmpPath(aPath) { this._gmpPath = aPath; },
|
||||
get gmpPath() {
|
||||
- if (!this._gmpPath && this.isInstalled) {
|
||||
- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- this._plugin.id,
|
||||
- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
- null, this._plugin.id));
|
||||
+ if (!this._gmpPath) {
|
||||
+ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
}
|
||||
return this._gmpPath;
|
||||
},
|
||||
-
|
||||
get id() { return this._plugin.id; },
|
||||
get type() { return "plugin"; },
|
||||
get isGMPlugin() { return true; },
|
||||
@@ -141,8 +137,13 @@
|
||||
get description() { return this._plugin.description; },
|
||||
get fullDescription() { return this._plugin.fullDescription; },
|
||||
|
||||
- get version() { return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
|
||||
- this._plugin.id); },
|
||||
+ get version() {
|
||||
+ if (this.isInstalled) {
|
||||
+ return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
|
||||
+ this._plugin.id);
|
||||
+ }
|
||||
+ return null;
|
||||
+ },
|
||||
|
||||
get isActive() { return !this.appDisabled && !this.userDisabled; },
|
||||
get appDisabled() {
|
||||
@@ -289,24 +290,17 @@
|
||||
|
||||
get pluginMimeTypes() { return []; },
|
||||
get pluginLibraries() {
|
||||
- if (this.isInstalled) {
|
||||
- let path = this.version;
|
||||
- return [path];
|
||||
- }
|
||||
- return [];
|
||||
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
+ return path && path.length ? [OS.Path.basename(path)] : [];
|
||||
},
|
||||
get pluginFullpath() {
|
||||
- if (this.isInstalled) {
|
||||
- let path = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- this._plugin.id,
|
||||
- this.version);
|
||||
- return [path];
|
||||
- }
|
||||
- return [];
|
||||
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
+ return path && path.length ? [path] : [];
|
||||
},
|
||||
|
||||
get isInstalled() {
|
||||
- return this.version && this.version.length > 0;
|
||||
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
+ return path && path.length > 0;
|
||||
},
|
||||
|
||||
_handleEnabledChanged: function() {
|
||||
@@ -362,10 +356,10 @@
|
||||
}
|
||||
},
|
||||
|
||||
- onPrefVersionChanged: function() {
|
||||
+ onPrefPathChanged: function() {
|
||||
AddonManagerPrivate.callAddonListeners("onUninstalling", this, false);
|
||||
if (this._gmpPath) {
|
||||
- this._log.info("onPrefVersionChanged() - unregistering gmp directory " +
|
||||
+ this._log.info("onPrefPathChanged() - unregistering gmp directory " +
|
||||
this._gmpPath);
|
||||
gmpService.removePluginDirectory(this._gmpPath);
|
||||
}
|
||||
@@ -374,15 +368,10 @@
|
||||
AddonManagerPrivate.callInstallListeners("onExternalInstall", null, this,
|
||||
null, false);
|
||||
AddonManagerPrivate.callAddonListeners("onInstalling", this, false);
|
||||
- this._gmpPath = null;
|
||||
- if (this.isInstalled) {
|
||||
- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- this._plugin.id,
|
||||
- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
- null, this._plugin.id));
|
||||
- }
|
||||
+ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
+ null, this._plugin.id);
|
||||
if (this._gmpPath && this.isActive) {
|
||||
- this._log.info("onPrefVersionChanged() - registering gmp directory " +
|
||||
+ this._log.info("onPrefPathChanged() - registering gmp directory " +
|
||||
this._gmpPath);
|
||||
gmpService.addPluginDirectory(this._gmpPath);
|
||||
}
|
||||
@@ -393,9 +382,9 @@
|
||||
Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
|
||||
this._plugin.id),
|
||||
this.onPrefEnabledChanged, this);
|
||||
- Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
+ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
this._plugin.id),
|
||||
- this.onPrefVersionChanged, this);
|
||||
+ this.onPrefPathChanged, this);
|
||||
if (this._plugin.isEME) {
|
||||
Preferences.ignore(GMPPrefs.KEY_EME_ENABLED,
|
||||
this.onPrefEMEGlobalEnabledChanged, this);
|
|
@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
|
|||
index 5383399..0410004 100644
|
||||
--- config/Makefile.in
|
||||
+++ config/Makefile.in
|
||||
@@ -79,6 +79,13 @@ export:: $(export-preqs)
|
||||
@@ -77,6 +77,14 @@ export:: $(export-preqs)
|
||||
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
|
||||
-DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
|
||||
-DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
|
||||
|
@ -12,6 +12,7 @@ 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) \
|
||||
|
@ -22,14 +23,17 @@ diff --git config/external/moz.build config/external/moz.build
|
|||
index f67c5c7..eb909ce 100644
|
||||
--- config/external/moz.build
|
||||
+++ config/external/moz.build
|
||||
@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']:
|
||||
if not CONFIG['MOZ_NATIVE_BZ2']:
|
||||
external_dirs += ['modules/libbz2']
|
||||
@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
|
||||
# There's no "native brotli" yet, but probably in the future...
|
||||
external_dirs += ['modules/brotli']
|
||||
|
||||
-if CONFIG['MOZ_VORBIS']:
|
||||
+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']
|
||||
+
|
||||
|
@ -40,12 +44,8 @@ index f67c5c7..eb909ce 100644
|
|||
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
|
||||
external_dirs += ['media/libtremor']
|
||||
|
||||
-if CONFIG['MOZ_OPUS']:
|
||||
+if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']:
|
||||
external_dirs += ['media/libopus']
|
||||
|
||||
if CONFIG['MOZ_WEBM']:
|
||||
@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
|
||||
@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
|
||||
if not CONFIG['MOZ_NATIVE_PNG']:
|
||||
external_dirs += ['media/libpng']
|
||||
|
||||
|
@ -59,35 +59,35 @@ index f67c5c7..eb909ce 100644
|
|||
'media/kiss_fft',
|
||||
'media/libcubeb',
|
||||
- 'media/libogg',
|
||||
- 'media/libopus',
|
||||
- 'media/libtheora',
|
||||
- 'media/libspeex_resampler',
|
||||
'media/libstagefright',
|
||||
- 'media/libsoundtouch',
|
||||
]
|
||||
|
||||
PARALLEL_DIRS += ['../../' + i for i in external_dirs]
|
||||
DIRS += ['../../' + i for i in external_dirs]
|
||||
diff --git config/system-headers config/system-headers
|
||||
index bef567c..9807c29 100644
|
||||
--- config/system-headers
|
||||
+++ config/system-headers
|
||||
@@ -1050,8 +1050,6 @@ X11/Xutil.h
|
||||
xpt_struct.h
|
||||
xpt_xdr.h
|
||||
@@ -1263,7 +1263,6 @@ X11/Xlocale.h
|
||||
X11/Xos.h
|
||||
X11/Xutil.h
|
||||
zmouse.h
|
||||
-speex/speex_resampler.h
|
||||
-soundtouch/SoundTouch.h
|
||||
#if MOZ_NATIVE_PNG==1
|
||||
png.h
|
||||
#endif
|
||||
@@ -1119,6 +1117,8 @@ ogg/ogg.h
|
||||
@@ -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
|
||||
cubeb/cubeb.h
|
||||
+speex/speex_resampler.h
|
||||
+soundtouch/SoundTouch.h
|
||||
#endif
|
||||
gst/gst.h
|
||||
gst/app/gstappsink.h
|
||||
@@ -1155,3 +1155,29 @@ graphite2/Segment.h
|
||||
@@ -1365,3 +1365,35 @@ graphite2/Segment.h
|
||||
harfbuzz/hb-ot.h
|
||||
harfbuzz/hb.h
|
||||
#endif
|
||||
|
@ -105,6 +105,12 @@ 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
|
||||
|
@ -121,7 +127,7 @@ diff --git configure.in configure.in
|
|||
index 87db361..7947626 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -5211,6 +5211,63 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then
|
||||
@@ -5223,6 +5223,157 @@ if test "${ac_cv_c_attribute_aligned}" !
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
|
@ -144,8 +150,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_OGG)
|
||||
+AC_SUBST(MOZ_OGG_CFLAGS)
|
||||
+AC_SUBST(MOZ_OGG_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libvorbis
|
||||
|
@ -161,8 +165,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_VORBIS)
|
||||
+AC_SUBST(MOZ_VORBIS_CFLAGS)
|
||||
+AC_SUBST(MOZ_VORBIS_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for integer-only libvorbis aka tremor
|
||||
|
@ -178,17 +180,25 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_TREMOR)
|
||||
+AC_SUBST(MOZ_TREMOR_CFLAGS)
|
||||
+AC_SUBST(MOZ_TREMOR_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
dnl = Disable Opus audio codec support
|
||||
dnl ========================================================
|
||||
MOZ_ARG_DISABLE_BOOL(opus,
|
||||
@@ -5219,6 +5274,97 @@ MOZ_ARG_DISABLE_BOOL(opus,
|
||||
MOZ_OPUS=1)
|
||||
|
||||
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 ========================================================
|
||||
+
|
||||
|
@ -204,8 +214,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_OPUS)
|
||||
+AC_SUBST(MOZ_OPUS_CFLAGS)
|
||||
+AC_SUBST(MOZ_OPUS_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libtheora
|
||||
|
@ -221,8 +229,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_THEORA)
|
||||
+AC_SUBST(MOZ_THEORA_CFLAGS)
|
||||
+AC_SUBST(MOZ_THEORA_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libspeex resampler
|
||||
|
@ -238,8 +244,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_SPEEX)
|
||||
+AC_SUBST(MOZ_SPEEX_CFLAGS)
|
||||
+AC_SUBST(MOZ_SPEEX_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libsoundtouch
|
||||
|
@ -276,19 +280,17 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
|
||||
+AC_SUBST(MOZ_SOUNDTOUCH_CFLAGS)
|
||||
+AC_SUBST(MOZ_SOUNDTOUCH_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
dnl = Disable VP8 decoder support
|
||||
dnl ========================================================
|
||||
MOZ_ARG_DISABLE_BOOL(webm,
|
||||
diff --git content/media/AudioStream.h content/media/AudioStream.h
|
||||
diff --git dom/media/AudioStream.h dom/media/AudioStream.h
|
||||
index 085676d..00c54fb 100644
|
||||
--- content/media/AudioStream.h
|
||||
+++ content/media/AudioStream.h
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
};
|
||||
--- dom/media/AudioStream.h
|
||||
+++ dom/media/AudioStream.h
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "CubebUtils.h"
|
||||
|
||||
namespace soundtouch {
|
||||
-class SoundTouch;
|
||||
|
@ -296,177 +298,265 @@ index 085676d..00c54fb 100644
|
|||
}
|
||||
|
||||
namespace mozilla {
|
||||
diff --git content/media/Makefile.in content/media/Makefile.in
|
||||
index fd34449..c6c42c8 100644
|
||||
--- content/media/Makefile.in
|
||||
+++ content/media/Makefile.in
|
||||
@@ -6,3 +6,31 @@ include $(topsrcdir)/config/rules.mk
|
||||
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':
|
||||
|
||||
CFLAGS += $(GSTREAMER_CFLAGS)
|
||||
CXXFLAGS += $(GSTREAMER_CFLAGS)
|
||||
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
|
||||
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CXXFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_THEORA
|
||||
+CXXFLAGS += $(MOZ_THEORA_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_THEORA']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_VORBIS
|
||||
+CXXFLAGS += $(MOZ_VORBIS_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_VORBIS']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_TREMOR
|
||||
+CXXFLAGS += $(MOZ_TREMOR_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_TREMOR']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OPUS
|
||||
+CXXFLAGS += $(MOZ_OPUS_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OPUS']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SPEEX
|
||||
+CXXFLAGS += $(MOZ_SPEEX_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_SPEEX']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SOUNDTOUCH
|
||||
+CXXFLAGS += $(MOZ_SOUNDTOUCH_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in
|
||||
index 4c14494..1cb98e2 100644
|
||||
--- media/libcubeb/src/Makefile.in
|
||||
+++ media/libcubeb/src/Makefile.in
|
||||
@@ -9,3 +9,7 @@ CFLAGS += \
|
||||
$(MOZ_ALSA_CFLAGS) \
|
||||
$(MOZ_PULSEAUDIO_CFLAGS) \
|
||||
$(NULL)
|
||||
+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']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SPEEX
|
||||
+CFLAGS += $(MOZ_SPEEX_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libtheora/Makefile.in media/libtheora/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..1f02dc0
|
||||
--- /dev/null
|
||||
+++ media/libtheora/Makefile.in
|
||||
@@ -0,0 +1,9 @@
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
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
|
||||
+++ media/libogg/README_MOZILLA
|
||||
@@ -6,3 +6,6 @@ The svn revision number used was r17287.
|
||||
The int-types.patch address a bug that config_types.h generated from
|
||||
Linux platform can't be used on OpenSolaris directly see Mozilla bug
|
||||
449754
|
||||
+
|
||||
+include $(topsrcdir)/config/rules.mk
|
||||
+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.
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libtremor/Makefile.in media/libtremor/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..1f02dc0
|
||||
--- /dev/null
|
||||
+++ media/libtremor/Makefile.in
|
||||
@@ -0,0 +1,9 @@
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+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
|
||||
+++ media/libsoundtouch/README_MOZILLA
|
||||
@@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree,
|
||||
using the script `update.sh`. Some changes have been made to the files, using
|
||||
the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h.
|
||||
|
||||
+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
|
||||
|
||||
It consists in the audio resampling code (resampler.c) and its header files
|
||||
dependancies, imported into the tree using the update.sh script.
|
||||
+
|
||||
+include $(topsrcdir)/config/rules.mk
|
||||
+The in-tree copy may be omitted during build by --with-system-speex.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA
|
||||
index d48dbfa..f08a2ed 100644
|
||||
--- media/libtheora/README_MOZILLA
|
||||
+++ media/libtheora/README_MOZILLA
|
||||
@@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh,
|
||||
the addition/update of Makefile.in files for the Mozilla build system.
|
||||
|
||||
The subversion revision used was r17578.
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libvorbis/Makefile.in media/libvorbis/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..1f02dc0
|
||||
--- /dev/null
|
||||
+++ media/libvorbis/Makefile.in
|
||||
@@ -0,0 +1,9 @@
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+The in-tree copy may be omitted during build by --with-system-theora.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
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
|
||||
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||
diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA
|
||||
index ee67b53..3f34a09 100644
|
||||
--- media/libtremor/README_MOZILLA
|
||||
+++ media/libtremor/README_MOZILLA
|
||||
@@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system.
|
||||
|
||||
The upstream release used was http://svn.xiph.org/trunk/Tremor/
|
||||
The subversion revision used was r17547.
|
||||
+
|
||||
+include $(topsrcdir)/config/rules.mk
|
||||
+The in-tree copy may be omitted during build by --with-system-tremor.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
diff --git media/libtremor/moz.build media/libtremor/moz.build
|
||||
index 31831ba..a03d576 100644
|
||||
--- media/libtremor/moz.build
|
||||
+++ media/libtremor/moz.build
|
||||
@@ -6,3 +6,5 @@
|
||||
|
||||
DIRS += ['include/tremor', 'lib']
|
||||
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||
diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA
|
||||
index 7c7454c..55baedd 100644
|
||||
--- media/libvorbis/README_MOZILLA
|
||||
+++ media/libvorbis/README_MOZILLA
|
||||
@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059
|
||||
|
||||
Some files are renamed during the copy to prevent clashes with object
|
||||
file names with other Mozilla libraries.
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in
|
||||
+The in-tree copy may be omitted during build by --with-system-vorbis.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
diff --git media/libvorbis/moz.build media/libvorbis/moz.build
|
||||
index 919b99e..cc776f7 100644
|
||||
--- media/libvorbis/moz.build
|
||||
+++ media/libvorbis/moz.build
|
||||
@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias'
|
||||
# Suppress warnings in third-party code.
|
||||
if CONFIG['GNU_CC']:
|
||||
CFLAGS += ['-Wno-uninitialized']
|
||||
+
|
||||
+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/Makefile.in
|
||||
+++ media/webrtc/signaling/test/Makefile.in
|
||||
@@ -48,6 +48,12 @@ LIBS += \
|
||||
$(NULL)
|
||||
endif
|
||||
--- 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']
|
||||
|
||||
+ifdef MOZ_NATIVE_OPUS
|
||||
+LIBS += \
|
||||
+ $(MOZ_OPUS_LIBS) \
|
||||
+ $(NULL)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OPUS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
|
||||
+
|
||||
ifdef MOZ_NATIVE_LIBVPX
|
||||
LIBS += \
|
||||
$(MOZ_LIBVPX_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
|
||||
@@ -14,9 +14,9 @@
|
||||
@@ -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 toolkit/library/libxul.mk toolkit/library/libxul.mk
|
||||
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/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
|
||||
endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -178,6 +178,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
|
||||
if CONFIG['MOZ_NATIVE_HUNSPELL']:
|
||||
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
|
||||
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_OGG_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_THEORA
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_THEORA_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_THEORA']:
|
||||
+ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_VORBIS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_VORBIS_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_VORBIS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_TREMOR
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_TREMOR_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_TREMOR']:
|
||||
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OPUS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_OPUS_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_CELT']:
|
||||
+ OS_LIBS += CONFIG['MOZ_CELT_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SPEEX
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_SPEEX_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OPUS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SOUNDTOUCH
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_SOUNDTOUCH_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_SPEEX']:
|
||||
+ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS']
|
||||
+
|
||||
ifdef MOZ_NATIVE_LIBEVENT
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS)
|
||||
endif
|
||||
diff --git xpcom/build/nsXPComInit.cpp xpcom/build/nsXPComInit.cpp
|
||||
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
|
||||
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
|
||||
+
|
||||
if CONFIG['MOZ_NATIVE_LIBEVENT']:
|
||||
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
|
||||
|
||||
diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp
|
||||
index 2cf281e..6d7af0e 100644
|
||||
--- xpcom/build/nsXPComInit.cpp
|
||||
+++ xpcom/build/nsXPComInit.cpp
|
||||
@@ -130,7 +130,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports *, REFNSIID, void **)
|
||||
--- xpcom/build/XPCOMInit.cpp
|
||||
+++ xpcom/build/XPCOMInit.cpp
|
||||
@@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**);
|
||||
#include "mozilla/VisualEventTracer.h"
|
||||
#endif
|
||||
|
||||
|
@ -476,17 +566,17 @@ index 2cf281e..6d7af0e 100644
|
|||
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#endif
|
||||
@@ -571,11 +573,13 @@ NS_InitXPCOM2(nsIServiceManager* *result,
|
||||
// this oddness.
|
||||
mozilla::SetICUMemoryFunctions();
|
||||
@@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult,
|
||||
// this oddness.
|
||||
mozilla::SetICUMemoryFunctions();
|
||||
|
||||
+#ifndef MOZ_OGG_NO_MEM_REPORTING
|
||||
// Do the same for libogg.
|
||||
ogg_set_mem_functions(OggReporter::CountingMalloc,
|
||||
OggReporter::CountingCalloc,
|
||||
OggReporter::CountingRealloc,
|
||||
OggReporter::CountingFree);
|
||||
// Do the same for libogg.
|
||||
ogg_set_mem_functions(OggReporter::CountingMalloc,
|
||||
OggReporter::CountingCalloc,
|
||||
OggReporter::CountingRealloc,
|
||||
OggReporter::CountingFree);
|
||||
+#endif
|
||||
|
||||
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
||||
// And for VPX.
|
||||
// And for VPX.
|
||||
|
|
|
@ -2,10 +2,10 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox-i18n
|
||||
PORTVERSION= 38.0.6
|
||||
PORTVERSION= 39.0
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \
|
||||
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/linux-i686/xpi
|
||||
MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build6/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:${PORTSDIR}/archivers/zip
|
||||
|
||||
USES= zip:infozip gecko:firefox,38,build
|
||||
USES= zip:infozip gecko:firefox,39,build
|
||||
USE_XPI= firefox linux-firefox
|
||||
|
||||
NO_ARCH= yes
|
||||
|
|
|
@ -1,176 +1,176 @@
|
|||
SHA256 (xpi/firefox-i18n-38.0.6/ach.xpi) = ad03bf377edcae7b45510eb16a558d18f217ab7d13f11c1f4aeef436952ebfa4
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ach.xpi) = 477966
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/af.xpi) = 4a67a99198d01a1a35f57840826d331d4712e0dec4c9e990e9111d9301353130
|
||||
SIZE (xpi/firefox-i18n-38.0.6/af.xpi) = 483325
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/an.xpi) = 986abe42419028e34b72b40ca2ffc04b43d649603c9be41ff08b29ad60f4c759
|
||||
SIZE (xpi/firefox-i18n-38.0.6/an.xpi) = 461421
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ar.xpi) = 6ce1cdb6d9f36569f8116dc02af552ecfdc5cdcd16a982ea3cf55f072db9a2d0
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ar.xpi) = 516494
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/as.xpi) = 3236019f46171baa694cdc8a51eb254ade7b9a258b9e62476b6ff4f356e9af0b
|
||||
SIZE (xpi/firefox-i18n-38.0.6/as.xpi) = 509573
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ast.xpi) = 00f59397ebd0cb4e2156e003d4cb60b27b78e9566f1bab35df44138f1b23d2f2
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ast.xpi) = 397199
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/az.xpi) = 5c2087ab6c45e2c0389d1536ec6a1754dbfa0eebb5b861acc813728b17b29ac9
|
||||
SIZE (xpi/firefox-i18n-38.0.6/az.xpi) = 489151
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/be.xpi) = 61d28f0411eb230eb54aef1bb3c6f7ffe08328bf2e741f05287351119e9b39ec
|
||||
SIZE (xpi/firefox-i18n-38.0.6/be.xpi) = 441055
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/bg.xpi) = 96c7741513bb4b8642282bb4decf14b658c774d578d904d07b58a8d57aab3612
|
||||
SIZE (xpi/firefox-i18n-38.0.6/bg.xpi) = 487818
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/bn-BD.xpi) = 8c3110a71f7ceaea205893c0b288b136eeda4549911055a22d0c888d43ff1534
|
||||
SIZE (xpi/firefox-i18n-38.0.6/bn-BD.xpi) = 528687
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/bn-IN.xpi) = 335c583bec0972452df86fca36cbb849fc4f46cb760440973c6344e8a4ee8b3e
|
||||
SIZE (xpi/firefox-i18n-38.0.6/bn-IN.xpi) = 527925
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/br.xpi) = b570b15f0f18b17a490597a94e23bb2bb7c03fb1dd70aa871c64ef1c05336392
|
||||
SIZE (xpi/firefox-i18n-38.0.6/br.xpi) = 441959
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/bs.xpi) = 991ba341335f56ab353410845c07177ce3eadbfdef0e10cb7c58f2d9f1930d96
|
||||
SIZE (xpi/firefox-i18n-38.0.6/bs.xpi) = 485304
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ca.xpi) = e02c04afea8d98fc8ded6f42903111d5a901fb33f6288819f91b77f7fad7abca
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ca.xpi) = 458090
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/cs.xpi) = cc320e6c1509064da1b8cc434b2bf9bc4612fdb08007350f5678e6998f5aac95
|
||||
SIZE (xpi/firefox-i18n-38.0.6/cs.xpi) = 446723
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/cy.xpi) = f65d940cda171f64a0866f4752ae8f9b18e4476b03ab113897eb9ba0247cfcca
|
||||
SIZE (xpi/firefox-i18n-38.0.6/cy.xpi) = 444384
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/da.xpi) = 3ab38b1b89c518f86538ab4d712bad207fe7626283447591bd1585b6b28520f3
|
||||
SIZE (xpi/firefox-i18n-38.0.6/da.xpi) = 450760
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/de.xpi) = bc504b1e20bf363bf3986893b01010bb3219683ee7a388cb507f5fe484ca55bf
|
||||
SIZE (xpi/firefox-i18n-38.0.6/de.xpi) = 451627
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/dsb.xpi) = fd7299b58486b248f202c18c60b58ac66fcc799dc04d2909fff1ee2321439d35
|
||||
SIZE (xpi/firefox-i18n-38.0.6/dsb.xpi) = 470920
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/el.xpi) = 77fd49c032ec0ca8ac2f5f69b9fb2b16c5f81c94cace7454d7715328a6d77fb8
|
||||
SIZE (xpi/firefox-i18n-38.0.6/el.xpi) = 498368
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/en-GB.xpi) = 08ac16196ad9457775ffeb9922cf9e999add5d166f77f14e1f17a393d5a77583
|
||||
SIZE (xpi/firefox-i18n-38.0.6/en-GB.xpi) = 437843
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/en-US.xpi) = 0d12db115fd157afa712d7598543b843fcca54df6f5af1e802058d87b3d3f289
|
||||
SIZE (xpi/firefox-i18n-38.0.6/en-US.xpi) = 469717
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/en-ZA.xpi) = 50453a3cdb2d35ff221d02c6d8c09e942dab3f26bc87d0c6f0754c8a38ae3822
|
||||
SIZE (xpi/firefox-i18n-38.0.6/en-ZA.xpi) = 439924
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/eo.xpi) = b65484b22a62daea5add7b1aae6c623387d9dfde5b4d53b65005bfb6856c4923
|
||||
SIZE (xpi/firefox-i18n-38.0.6/eo.xpi) = 488369
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/es-AR.xpi) = 7210a8fbce905a45dcb89900c12c5299a8c084474ca6373afc880e313a54ec65
|
||||
SIZE (xpi/firefox-i18n-38.0.6/es-AR.xpi) = 453982
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/es-CL.xpi) = c9620fb8854c65d7f6c2f5786f4a16bbc0d587ea54f6599a12415396f6abf345
|
||||
SIZE (xpi/firefox-i18n-38.0.6/es-CL.xpi) = 384677
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/es-ES.xpi) = c9f0499f5648eac4c130e2e199cf179eccae9825d787cf7b66c6e7e8ff2d1586
|
||||
SIZE (xpi/firefox-i18n-38.0.6/es-ES.xpi) = 374071
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/es-MX.xpi) = be9bbd645ecbab53dd983ac5937758681ec290888eb58e321220ceb6e4f70699
|
||||
SIZE (xpi/firefox-i18n-38.0.6/es-MX.xpi) = 457048
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/et.xpi) = 744e3f241869017b49dcd11143707989f206dbf20280da0c32b3069985e1f528
|
||||
SIZE (xpi/firefox-i18n-38.0.6/et.xpi) = 443227
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/eu.xpi) = e25df9b0f74169e3875ef0ff1a4c44c6b99ab6f7c0a434f62fe84a3fa56daa1d
|
||||
SIZE (xpi/firefox-i18n-38.0.6/eu.xpi) = 466554
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/fa.xpi) = 9149cfb8348a2ef24fa03e8df38eef85b823a064c0b12d0a9b0178b67928a1c0
|
||||
SIZE (xpi/firefox-i18n-38.0.6/fa.xpi) = 518281
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ff.xpi) = 5b83491ea0808483da19e1b72fea76be33eb0ba30bb96d2e087b880d26eb1642
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ff.xpi) = 454586
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/fi.xpi) = 4f96df107967f4c86680ff578114ff579a255e8819942ce10889b6575d75e37b
|
||||
SIZE (xpi/firefox-i18n-38.0.6/fi.xpi) = 444851
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/fr.xpi) = 08409d4f3f9c0d5939baed76b280e56cd34293d5b43ac41b5349f3e097907125
|
||||
SIZE (xpi/firefox-i18n-38.0.6/fr.xpi) = 461400
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/fy-NL.xpi) = 38e15ac51c475dc9d9e2920ee32d73f0c4ddfde3ad60918ad14b88f92605a543
|
||||
SIZE (xpi/firefox-i18n-38.0.6/fy-NL.xpi) = 455539
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ga-IE.xpi) = 5ce5484701d0a385e1bc788c7cd868371af34d6463c8de8d4a7b9775fc5cbd35
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ga-IE.xpi) = 469621
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/gd.xpi) = 11395a42abd6e115814d6a32e52378ee5b527ed4c24fb62b9e5f2e4f073864f7
|
||||
SIZE (xpi/firefox-i18n-38.0.6/gd.xpi) = 454614
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/gl.xpi) = d1b26401fbb17762a077bd81f92ca5f43dbaa6a404c346c17ef171ec43758f58
|
||||
SIZE (xpi/firefox-i18n-38.0.6/gl.xpi) = 448923
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/gu-IN.xpi) = b9e250ed62ee139dc793df6f5f29af4dba7492fe4d83ed07c95f6c8e1e0296bd
|
||||
SIZE (xpi/firefox-i18n-38.0.6/gu-IN.xpi) = 477978
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/he.xpi) = 98fd16c813a98f7096b78867699b8620093154005d129c0d2e11817643b1baec
|
||||
SIZE (xpi/firefox-i18n-38.0.6/he.xpi) = 486784
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/hi-IN.xpi) = 0cd3ccba2eb3c9dd6661e7f3232c66aac5a323aec72a8e15e942f3e9e949a57d
|
||||
SIZE (xpi/firefox-i18n-38.0.6/hi-IN.xpi) = 508165
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/hr.xpi) = 5fea5c7a4ba74e21d4332ff8daeeaaef51886778bc404c8bfadc61220fd65fba
|
||||
SIZE (xpi/firefox-i18n-38.0.6/hr.xpi) = 478269
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/hsb.xpi) = 99c285afb9db815cbda1f2a5a9cae9df769a36e268e7cf69806ed78fa9ff63f1
|
||||
SIZE (xpi/firefox-i18n-38.0.6/hsb.xpi) = 468716
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/hu.xpi) = cb78a15e8cfcd7d280aff17bdf20d04ea103211045fc994e20cc9811a5cfc045
|
||||
SIZE (xpi/firefox-i18n-38.0.6/hu.xpi) = 453553
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/hy-AM.xpi) = aeea11527c732548ea4b5b07ca9ef17aa97348dc60e25cfad6bd398459e75bd7
|
||||
SIZE (xpi/firefox-i18n-38.0.6/hy-AM.xpi) = 534262
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/id.xpi) = c58a8f7246c9548f756b5c5567178a4fa8a9e56f201735cc60e4693dbd05ee19
|
||||
SIZE (xpi/firefox-i18n-38.0.6/id.xpi) = 431487
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/is.xpi) = c99dd4ea2ecbea8ce28fa5abe5124fdf4f857bf6af614e9174978d8359c9244a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/is.xpi) = 485131
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/it.xpi) = 27636262046d9b27c3d4222d4bab4c6700bc728be1770ff5f3d067d83e22b6e7
|
||||
SIZE (xpi/firefox-i18n-38.0.6/it.xpi) = 368408
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ja.xpi) = 62051b473ee82ef5a9460ee4ce6045efe1b96cbc67bdee9747d6a642f724736a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ja.xpi) = 479113
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/kk.xpi) = 9e47fc85b769d46b51d69c6baefc15f78263e3941e414f2513ccabe05fabd634
|
||||
SIZE (xpi/firefox-i18n-38.0.6/kk.xpi) = 503567
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/km.xpi) = 5f174f400458fc099e0680e02ac70048fecd2ef5472cd9dba0f77c2ff1e8cda1
|
||||
SIZE (xpi/firefox-i18n-38.0.6/km.xpi) = 565672
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/kn.xpi) = 067ebc125f3d970d1f058b5e6a4296e3382bde2ff045bacc39f96607591b3f66
|
||||
SIZE (xpi/firefox-i18n-38.0.6/kn.xpi) = 533463
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ko.xpi) = d2b04bc71e665511c5ad889ba1237a67c916bff88628a605d8522323973e3b62
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ko.xpi) = 460853
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/lij.xpi) = d1b0d22c8fc623971ff83c6041b33148ffc451504698f5300798805ede2e1f68
|
||||
SIZE (xpi/firefox-i18n-38.0.6/lij.xpi) = 444240
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/lt.xpi) = 6c2a8b2b7960f17342ba9eb006bf72d30193e258e9e891a59ec5cd9bae98d1e6
|
||||
SIZE (xpi/firefox-i18n-38.0.6/lt.xpi) = 486450
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/lv.xpi) = b6d7bd3f6461aa94b2f05dea855f4ea93e8cdce385b496da159348d97b6f9083
|
||||
SIZE (xpi/firefox-i18n-38.0.6/lv.xpi) = 467197
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/mai.xpi) = 7aa1e27a38f970ce42a6f676d4b2f111fba7e1394ce4f09d8b8c72bf9a0b182e
|
||||
SIZE (xpi/firefox-i18n-38.0.6/mai.xpi) = 514662
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/mk.xpi) = 1cdbbb79e8da9da9e6c340e3a03bf38a4ddb44a29d9eb5990b5838abc4748c3a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/mk.xpi) = 529204
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ml.xpi) = 6c34207509307dd721fd117029062c63fee3dbf06d4dee46709a4aca3937a49a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ml.xpi) = 528918
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/mr.xpi) = eea26382b292dd8c53f1a84b3f78c675ae8240f96f61d00b250cb4863b4e70af
|
||||
SIZE (xpi/firefox-i18n-38.0.6/mr.xpi) = 505960
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ms.xpi) = 36d29a890bff94d7a6940e386568b9ef6ad92d5d7f0cafe271983a8c7960fee0
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ms.xpi) = 489871
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/nb-NO.xpi) = 16a1180df801e875aa095b6d0daaf027b5673ba288f24d6f8775b1c16d153813
|
||||
SIZE (xpi/firefox-i18n-38.0.6/nb-NO.xpi) = 444174
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/nl.xpi) = e867e26f49a49080b3fac318d99417d1ad6b208f56f60884e88db5e19a11b7a1
|
||||
SIZE (xpi/firefox-i18n-38.0.6/nl.xpi) = 443993
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/nn-NO.xpi) = 2abffbac72b1b6e59d97caaa042ef3f91d4a1a3f91ecaf2d892228797c5b710a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/nn-NO.xpi) = 438450
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/or.xpi) = f73f7eaaf55a82f339acc2233c229dd9f0455b29ece08d6038b50f88dcfc6956
|
||||
SIZE (xpi/firefox-i18n-38.0.6/or.xpi) = 527047
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/pa-IN.xpi) = aa5e54b73218401ea0270a1327d02abd78ea6e69f9ac035238cd0a604769ec88
|
||||
SIZE (xpi/firefox-i18n-38.0.6/pa-IN.xpi) = 493720
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/pl.xpi) = 21c31bbe1c470d03b397449ba7398179699ec1eccaccc626802f858106526f2b
|
||||
SIZE (xpi/firefox-i18n-38.0.6/pl.xpi) = 406565
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/pt-BR.xpi) = c2205e1e4df75550693da64b550a82ad1005f598b1dcd48067299358d6e94562
|
||||
SIZE (xpi/firefox-i18n-38.0.6/pt-BR.xpi) = 459808
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/pt-PT.xpi) = 61b5d42ca06d79750d46206b6e30ace3d5044f32b330aa9167bd6c5732b43bfd
|
||||
SIZE (xpi/firefox-i18n-38.0.6/pt-PT.xpi) = 439973
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/rm.xpi) = 30d2be77260bf38a2309b40998dd6e32221b680e7dd0ff7d0862c941fd2b026a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/rm.xpi) = 446286
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ro.xpi) = 251fae3b096a4432a2d88cfe15d5b74a9228ffb5772c240fb0ea6555ff671b13
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ro.xpi) = 494078
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ru.xpi) = 103c44712b30992296109adf2b0bdf192ed574a311b0f5ffcb688f78ac2e576e
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ru.xpi) = 414416
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/si.xpi) = eec65f71f9b13c5ceb7cd64bab48e840533ce4f26e4342b132a1e0874e695c79
|
||||
SIZE (xpi/firefox-i18n-38.0.6/si.xpi) = 537393
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/sk.xpi) = 00ae369f2f03c1664e06a52f9b199252ff960d5ec7f1306a3e5d5978bc315e35
|
||||
SIZE (xpi/firefox-i18n-38.0.6/sk.xpi) = 469435
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/sl.xpi) = cc82c94bb39d60062f33f97a6bf9a93f39f0c37a92cb3b9bf79d82481fd9b8d5
|
||||
SIZE (xpi/firefox-i18n-38.0.6/sl.xpi) = 441592
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/son.xpi) = 30def4ba3ffa1fa527fb47049d340a0023f06fc7840816fdf6486d2525ff67d1
|
||||
SIZE (xpi/firefox-i18n-38.0.6/son.xpi) = 449266
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/sq.xpi) = 67e5c36cf9b0f65b275f61e8c0195e554f2cb4238fbd23799d06cc2bb76f9c47
|
||||
SIZE (xpi/firefox-i18n-38.0.6/sq.xpi) = 486074
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/sr.xpi) = 23e8175609b8bb888070fe021f0c9a8f11047116a09c3ab5e5977e39e99f2ec3
|
||||
SIZE (xpi/firefox-i18n-38.0.6/sr.xpi) = 479418
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/sv-SE.xpi) = bb656fd49de6588498c13efa5f669d8f1cfdbf1fb8b9897d19bacfbca27c7ec4
|
||||
SIZE (xpi/firefox-i18n-38.0.6/sv-SE.xpi) = 452629
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/ta.xpi) = 2ab44c9b48febe2ad0de250b14ced4eb6ab8048e1258e4fb3c026a31ebb3700d
|
||||
SIZE (xpi/firefox-i18n-38.0.6/ta.xpi) = 506606
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/te.xpi) = 042e377434bf2d963973b35bb0ee0d0ad289129a1a18f66dfe25dc8b5666b10e
|
||||
SIZE (xpi/firefox-i18n-38.0.6/te.xpi) = 526249
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/th.xpi) = e08aabc3c902acd5c760d17973f626e09333e9fbf1f29ab7af52fc357badccf9
|
||||
SIZE (xpi/firefox-i18n-38.0.6/th.xpi) = 534269
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/tr.xpi) = e2df78f1a82a4bd93da352494f12148112f8bb0c499c7d4df7f000d1f41161ae
|
||||
SIZE (xpi/firefox-i18n-38.0.6/tr.xpi) = 481074
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/uk.xpi) = 925aa49d1a9c3512c50b1d7034a805117b71c015b82a2e8430bae91f147f47bb
|
||||
SIZE (xpi/firefox-i18n-38.0.6/uk.xpi) = 493312
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/vi.xpi) = 64e870c9f44263d0d76563602c70ed6ae714cdca10d6c42279f8a1d0b5845c4a
|
||||
SIZE (xpi/firefox-i18n-38.0.6/vi.xpi) = 467503
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/xh.xpi) = a14fd8ae6cdaf3221ce90f9e4a91dc3b6081aa74a303ada92d8d60afc3d3c3dc
|
||||
SIZE (xpi/firefox-i18n-38.0.6/xh.xpi) = 450241
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/zh-CN.xpi) = 98206ef4ef8b1da1894dfcc9fba6be38137132fece48ada1f6666082ed7dc563
|
||||
SIZE (xpi/firefox-i18n-38.0.6/zh-CN.xpi) = 488274
|
||||
SHA256 (xpi/firefox-i18n-38.0.6/zh-TW.xpi) = 43e5c886de9ee6c2a5a3e83e0cfac404b76583eaac634b04c2652e92ae81dc5d
|
||||
SIZE (xpi/firefox-i18n-38.0.6/zh-TW.xpi) = 467843
|
||||
SHA256 (xpi/firefox-i18n-39.0/ach.xpi) = c922e238ef7201cb0b0c2a9da00164c350b440a3d02c838daa45b17713bf3eab
|
||||
SIZE (xpi/firefox-i18n-39.0/ach.xpi) = 483041
|
||||
SHA256 (xpi/firefox-i18n-39.0/af.xpi) = 3653816368acb76e6773826db81c6473bdd923f7d61ca5ef24e9144d38c3752e
|
||||
SIZE (xpi/firefox-i18n-39.0/af.xpi) = 487310
|
||||
SHA256 (xpi/firefox-i18n-39.0/an.xpi) = c0bf2029255947a5c1fcb681fdb4ad0522a0b9941f5862046c45a70d04b68609
|
||||
SIZE (xpi/firefox-i18n-39.0/an.xpi) = 465359
|
||||
SHA256 (xpi/firefox-i18n-39.0/ar.xpi) = 1607562dafe4274ed7eb74e8d993baa70162c91de265bb2ac1dd8a63bdc1a3b3
|
||||
SIZE (xpi/firefox-i18n-39.0/ar.xpi) = 520323
|
||||
SHA256 (xpi/firefox-i18n-39.0/as.xpi) = 653ee076f738a7365dd75da4899032f31ac73451e9a2b26a1ec5e4621547f443
|
||||
SIZE (xpi/firefox-i18n-39.0/as.xpi) = 514544
|
||||
SHA256 (xpi/firefox-i18n-39.0/ast.xpi) = 1fde38dbd96c86bc523d8524472c0de157d58d07e963a1a9bb6794fb6db484d4
|
||||
SIZE (xpi/firefox-i18n-39.0/ast.xpi) = 387702
|
||||
SHA256 (xpi/firefox-i18n-39.0/az.xpi) = 6bdd0663efa56eebaa67edabee1630147b051181ad993c14241ba7a7b4ccaad0
|
||||
SIZE (xpi/firefox-i18n-39.0/az.xpi) = 494213
|
||||
SHA256 (xpi/firefox-i18n-39.0/be.xpi) = 8a2278c789a06cc5b27ccfff3731ed8c534529d67e9c5cc42a2e3b6d8613c858
|
||||
SIZE (xpi/firefox-i18n-39.0/be.xpi) = 445945
|
||||
SHA256 (xpi/firefox-i18n-39.0/bg.xpi) = 24d6285a03ee495b928be4f221f49af8a1f9a07f4ce5be14beff6ebc531f7687
|
||||
SIZE (xpi/firefox-i18n-39.0/bg.xpi) = 491422
|
||||
SHA256 (xpi/firefox-i18n-39.0/bn-BD.xpi) = 67d9759ac8d22b976ede194fd4c03b72411aa8bb7f733d13ea034119b0a086e5
|
||||
SIZE (xpi/firefox-i18n-39.0/bn-BD.xpi) = 533076
|
||||
SHA256 (xpi/firefox-i18n-39.0/bn-IN.xpi) = ec20ec3b29b5c7c8827fdbe78e7081ba20ae7d840ed7181b80bd983e19e26dc0
|
||||
SIZE (xpi/firefox-i18n-39.0/bn-IN.xpi) = 532548
|
||||
SHA256 (xpi/firefox-i18n-39.0/br.xpi) = b2cb99df9e051e3f625b99f8e929a2cddfea5252e41be0064d6ca3d782b1f592
|
||||
SIZE (xpi/firefox-i18n-39.0/br.xpi) = 445830
|
||||
SHA256 (xpi/firefox-i18n-39.0/bs.xpi) = 9b85eb51785eafdd7467baba89fec2ad72596e56ca7c955f809b23076467853e
|
||||
SIZE (xpi/firefox-i18n-39.0/bs.xpi) = 489604
|
||||
SHA256 (xpi/firefox-i18n-39.0/ca.xpi) = e4302b4babac9b90600ef142bf9d1060a596ac64f91481b23c4884d10f69183f
|
||||
SIZE (xpi/firefox-i18n-39.0/ca.xpi) = 461923
|
||||
SHA256 (xpi/firefox-i18n-39.0/cs.xpi) = 26de879be7e96d6c8020a46ba73049ed13344c1943ea0128ffdcce356cd02f95
|
||||
SIZE (xpi/firefox-i18n-39.0/cs.xpi) = 450723
|
||||
SHA256 (xpi/firefox-i18n-39.0/cy.xpi) = 91cb0a9d93c5214e0e42ec9fa19c318209635975f7da6849e0b3ccd3a95c5951
|
||||
SIZE (xpi/firefox-i18n-39.0/cy.xpi) = 448065
|
||||
SHA256 (xpi/firefox-i18n-39.0/da.xpi) = 64748e6b957775bb3ac42bb35f227c88092afb11afce62b425b4c0747fbe285f
|
||||
SIZE (xpi/firefox-i18n-39.0/da.xpi) = 454611
|
||||
SHA256 (xpi/firefox-i18n-39.0/de.xpi) = 56bb69de98fc46442e3aa2c09f95ebd0723f3c73fd890a013450c88225f9a80f
|
||||
SIZE (xpi/firefox-i18n-39.0/de.xpi) = 456189
|
||||
SHA256 (xpi/firefox-i18n-39.0/dsb.xpi) = 802fcc3a4a30b7b899bdceb5a45878b48da89a9048e4a295784c07b45198cd7a
|
||||
SIZE (xpi/firefox-i18n-39.0/dsb.xpi) = 474911
|
||||
SHA256 (xpi/firefox-i18n-39.0/el.xpi) = 22f7185683d08b186ca0022663f1c822b865683f913e8411ebd50408dc91bd2f
|
||||
SIZE (xpi/firefox-i18n-39.0/el.xpi) = 502653
|
||||
SHA256 (xpi/firefox-i18n-39.0/en-GB.xpi) = 2cf069f9da826329c5e5a22aadc4ea5a08ab0e25470b43c358e4ea14edebe88a
|
||||
SIZE (xpi/firefox-i18n-39.0/en-GB.xpi) = 441232
|
||||
SHA256 (xpi/firefox-i18n-39.0/en-US.xpi) = 0e89eb7cbe1fb84203d0217200dcea154a7422d1a7e6049f564796576a732762
|
||||
SIZE (xpi/firefox-i18n-39.0/en-US.xpi) = 473134
|
||||
SHA256 (xpi/firefox-i18n-39.0/en-ZA.xpi) = 73a7c02e116e86db894266147770124e6627a82c8a3cfe8e336526215fd50444
|
||||
SIZE (xpi/firefox-i18n-39.0/en-ZA.xpi) = 444467
|
||||
SHA256 (xpi/firefox-i18n-39.0/eo.xpi) = 972ddf4c1acffd1f46b7fe3d7926994a8be0bfccc8589466c26490cc97d06a3d
|
||||
SIZE (xpi/firefox-i18n-39.0/eo.xpi) = 489005
|
||||
SHA256 (xpi/firefox-i18n-39.0/es-AR.xpi) = 1f6fefebe9901763b950de6bbe6aa85bb948673d976f47814b907507274f0766
|
||||
SIZE (xpi/firefox-i18n-39.0/es-AR.xpi) = 457407
|
||||
SHA256 (xpi/firefox-i18n-39.0/es-CL.xpi) = 03bd03f60a298295a975252629c8ff9362430d15b650f5bcd82ce6604d0cf514
|
||||
SIZE (xpi/firefox-i18n-39.0/es-CL.xpi) = 386702
|
||||
SHA256 (xpi/firefox-i18n-39.0/es-ES.xpi) = a096fc6c58a2959bf8471830040351feddfac0555150af9409540cec10685afe
|
||||
SIZE (xpi/firefox-i18n-39.0/es-ES.xpi) = 376299
|
||||
SHA256 (xpi/firefox-i18n-39.0/es-MX.xpi) = 56793b19b75c7c1e9692f3b3d415e572439800e288f8e0227bcf690466a064fa
|
||||
SIZE (xpi/firefox-i18n-39.0/es-MX.xpi) = 462390
|
||||
SHA256 (xpi/firefox-i18n-39.0/et.xpi) = 0aaa0ccc0568456adbc0401acceb97983a7045405f4972058b60606fedc19c79
|
||||
SIZE (xpi/firefox-i18n-39.0/et.xpi) = 446725
|
||||
SHA256 (xpi/firefox-i18n-39.0/eu.xpi) = 7d04e5b11906f474d4096cb496514f8f370eada489739d31742128c7aaebcc91
|
||||
SIZE (xpi/firefox-i18n-39.0/eu.xpi) = 470410
|
||||
SHA256 (xpi/firefox-i18n-39.0/fa.xpi) = 605d95815fe0c77a4fc5df46d670d4e8e5b35924729a3a640210a0581d3330a1
|
||||
SIZE (xpi/firefox-i18n-39.0/fa.xpi) = 520579
|
||||
SHA256 (xpi/firefox-i18n-39.0/ff.xpi) = 30e3f30a775f38cb5663a707a1a85ee59f91007fbc229e47401a753702772d89
|
||||
SIZE (xpi/firefox-i18n-39.0/ff.xpi) = 459433
|
||||
SHA256 (xpi/firefox-i18n-39.0/fi.xpi) = 59d56595435d52e334cb3f388f711ced61075cf0026ba7d4e2cd04527d689ca7
|
||||
SIZE (xpi/firefox-i18n-39.0/fi.xpi) = 448585
|
||||
SHA256 (xpi/firefox-i18n-39.0/fr.xpi) = 59f1fc070ab7b7f65bab0c475f8fe894fa5c4e924d4f78b97cec8268d2359c41
|
||||
SIZE (xpi/firefox-i18n-39.0/fr.xpi) = 465588
|
||||
SHA256 (xpi/firefox-i18n-39.0/fy-NL.xpi) = 4812b3fae6bd6083fc0520487403c95f6104d7838e7edc450f05bce495832e3c
|
||||
SIZE (xpi/firefox-i18n-39.0/fy-NL.xpi) = 459611
|
||||
SHA256 (xpi/firefox-i18n-39.0/ga-IE.xpi) = 75f737af71ef7cb19ef4bcd99fa63c6c5d5b77b2d2b96c526b46faa375c2c6db
|
||||
SIZE (xpi/firefox-i18n-39.0/ga-IE.xpi) = 473547
|
||||
SHA256 (xpi/firefox-i18n-39.0/gd.xpi) = 792a7907e5eeb1486a404b9a3a8d88d7eecca87d87a2646d9a11cdaefe01a78c
|
||||
SIZE (xpi/firefox-i18n-39.0/gd.xpi) = 458521
|
||||
SHA256 (xpi/firefox-i18n-39.0/gl.xpi) = fa21c7bcc4989c6c0c0c459f46f7bd716cb7d19ad37861d57389177e7b1e143a
|
||||
SIZE (xpi/firefox-i18n-39.0/gl.xpi) = 453846
|
||||
SHA256 (xpi/firefox-i18n-39.0/gu-IN.xpi) = 189995f89fa441a743354e708d9e8a87d346625881ffaad7bff528de90ba1206
|
||||
SIZE (xpi/firefox-i18n-39.0/gu-IN.xpi) = 482866
|
||||
SHA256 (xpi/firefox-i18n-39.0/he.xpi) = 70984a01b309959bcbe1d693cba3d92b51a65c3e71535ec015c4b3f950a53f62
|
||||
SIZE (xpi/firefox-i18n-39.0/he.xpi) = 486474
|
||||
SHA256 (xpi/firefox-i18n-39.0/hi-IN.xpi) = a340651af88b6437a9c04e0c7186f928b730475550a383ac8387714f7a40f1a9
|
||||
SIZE (xpi/firefox-i18n-39.0/hi-IN.xpi) = 513451
|
||||
SHA256 (xpi/firefox-i18n-39.0/hr.xpi) = 48ab8729d65620b8ccb3e866a4d3eb57bb4e9d4e363491a0c61f1eea122e0c24
|
||||
SIZE (xpi/firefox-i18n-39.0/hr.xpi) = 482071
|
||||
SHA256 (xpi/firefox-i18n-39.0/hsb.xpi) = f87894bd9d003e9a62548ac82608dbb4b24f36eea8d776872c490a576b4c80e7
|
||||
SIZE (xpi/firefox-i18n-39.0/hsb.xpi) = 472665
|
||||
SHA256 (xpi/firefox-i18n-39.0/hu.xpi) = e1388ec88077f8a3111d8011b7e8e8773580a1e2b71d6432baff09fa08ee54a8
|
||||
SIZE (xpi/firefox-i18n-39.0/hu.xpi) = 457441
|
||||
SHA256 (xpi/firefox-i18n-39.0/hy-AM.xpi) = 1ab7dbb561103d9ac32e55c273ebf738480567a9882c9957f9e29829814dc766
|
||||
SIZE (xpi/firefox-i18n-39.0/hy-AM.xpi) = 538192
|
||||
SHA256 (xpi/firefox-i18n-39.0/id.xpi) = 41ec6c7ea5015d879600675359a21e160a6fc940e1ff634949c759a076da9c06
|
||||
SIZE (xpi/firefox-i18n-39.0/id.xpi) = 435240
|
||||
SHA256 (xpi/firefox-i18n-39.0/is.xpi) = 68651c22d74e0133a82eab94e8734bfded3bc219b1de7489180835573cb81ba6
|
||||
SIZE (xpi/firefox-i18n-39.0/is.xpi) = 488859
|
||||
SHA256 (xpi/firefox-i18n-39.0/it.xpi) = 7a681ca2928e3e2154ca190cc06d015144afffd9669b938410e8d48980a1c959
|
||||
SIZE (xpi/firefox-i18n-39.0/it.xpi) = 370614
|
||||
SHA256 (xpi/firefox-i18n-39.0/ja.xpi) = e510ba604a63b8cb6caf1e24500cb5cfb6a07a90ff22f111b501e847523ff2d0
|
||||
SIZE (xpi/firefox-i18n-39.0/ja.xpi) = 483150
|
||||
SHA256 (xpi/firefox-i18n-39.0/kk.xpi) = 5ff684dc2245de82a8edda2d02ee20dfbef7db6165060b20e6e3d229437968ef
|
||||
SIZE (xpi/firefox-i18n-39.0/kk.xpi) = 507527
|
||||
SHA256 (xpi/firefox-i18n-39.0/km.xpi) = 27d62503232240cd92508ce3d724f351d5ff8ad99a52d3cf962cf948829a9162
|
||||
SIZE (xpi/firefox-i18n-39.0/km.xpi) = 571219
|
||||
SHA256 (xpi/firefox-i18n-39.0/kn.xpi) = 342165fe3c5060bb15f6a889e4be80653731012be8d694e8ef817b447230cc46
|
||||
SIZE (xpi/firefox-i18n-39.0/kn.xpi) = 537653
|
||||
SHA256 (xpi/firefox-i18n-39.0/ko.xpi) = 348a8c4cd0f26b244fc2bc8467a8e6a8285bb7228e6deb6288fc7b464152ebe5
|
||||
SIZE (xpi/firefox-i18n-39.0/ko.xpi) = 465013
|
||||
SHA256 (xpi/firefox-i18n-39.0/lij.xpi) = 1870af5218e7223a83f935bbe58415e95a278dd1191db1c7b9f2e3446ae12285
|
||||
SIZE (xpi/firefox-i18n-39.0/lij.xpi) = 448691
|
||||
SHA256 (xpi/firefox-i18n-39.0/lt.xpi) = c49a0538443d77e1fbaf6660fdc15bc76181723af2f8b07af6579b408bc24370
|
||||
SIZE (xpi/firefox-i18n-39.0/lt.xpi) = 490579
|
||||
SHA256 (xpi/firefox-i18n-39.0/lv.xpi) = 8ac08b4ac3ae70dd7bbe090f0b0f984ebefef03c6d1d20cc4ba3527605c921be
|
||||
SIZE (xpi/firefox-i18n-39.0/lv.xpi) = 471166
|
||||
SHA256 (xpi/firefox-i18n-39.0/mai.xpi) = 561890d80e0162a7e2f3ba5e46ecc07f2ea681005f6f3bae6810fb8acf9408e0
|
||||
SIZE (xpi/firefox-i18n-39.0/mai.xpi) = 520123
|
||||
SHA256 (xpi/firefox-i18n-39.0/mk.xpi) = e91f81eb8b68e7a2af87d5c82577bc713e4c163a0a64b9a80a99ee6b0830dc56
|
||||
SIZE (xpi/firefox-i18n-39.0/mk.xpi) = 533582
|
||||
SHA256 (xpi/firefox-i18n-39.0/ml.xpi) = 9fecda84807976d1b320c0070b4f87eff5813f4965aec60e27df8f64e0f08622
|
||||
SIZE (xpi/firefox-i18n-39.0/ml.xpi) = 533592
|
||||
SHA256 (xpi/firefox-i18n-39.0/mr.xpi) = 511dcdbdb0d0fa919acf81879544d32e066e435bdda14a991f86d0c4999aae4c
|
||||
SIZE (xpi/firefox-i18n-39.0/mr.xpi) = 510890
|
||||
SHA256 (xpi/firefox-i18n-39.0/ms.xpi) = 29494a97c34ed72ca533bec56481eb1baf75d48cc956e13030ff573d4434476e
|
||||
SIZE (xpi/firefox-i18n-39.0/ms.xpi) = 494765
|
||||
SHA256 (xpi/firefox-i18n-39.0/nb-NO.xpi) = 4070b2df0eec4f1f2176c382759c1be4742a12313c01c3bd77ff80bfad0f7100
|
||||
SIZE (xpi/firefox-i18n-39.0/nb-NO.xpi) = 447825
|
||||
SHA256 (xpi/firefox-i18n-39.0/nl.xpi) = a99f7645bfb669f3a1e6d70ed6401f6492d1ac426757ca8c40683ecb3166ab19
|
||||
SIZE (xpi/firefox-i18n-39.0/nl.xpi) = 447540
|
||||
SHA256 (xpi/firefox-i18n-39.0/nn-NO.xpi) = 3481260f436473f8b4fa4116faece6a12472b022bd59e477bdec5d85edf211bd
|
||||
SIZE (xpi/firefox-i18n-39.0/nn-NO.xpi) = 442076
|
||||
SHA256 (xpi/firefox-i18n-39.0/or.xpi) = 0a0fdb72e6ee2481fd0f6057021a03dd8c150b428cce05029649f72c8c308cc1
|
||||
SIZE (xpi/firefox-i18n-39.0/or.xpi) = 532004
|
||||
SHA256 (xpi/firefox-i18n-39.0/pa-IN.xpi) = 4f1359b27b7131ddc944b5746adb2af2b5c319d19151447075db512359f7f084
|
||||
SIZE (xpi/firefox-i18n-39.0/pa-IN.xpi) = 497420
|
||||
SHA256 (xpi/firefox-i18n-39.0/pl.xpi) = ca291faf583e5b53d5ac607d6e0a6eec13fdedddbf1a003158edf75d475c007d
|
||||
SIZE (xpi/firefox-i18n-39.0/pl.xpi) = 408063
|
||||
SHA256 (xpi/firefox-i18n-39.0/pt-BR.xpi) = 55fbd2f5e4081394fa79b51935f809b5d5ed283f3c5d08597eb8aafdf1f012b4
|
||||
SIZE (xpi/firefox-i18n-39.0/pt-BR.xpi) = 463600
|
||||
SHA256 (xpi/firefox-i18n-39.0/pt-PT.xpi) = a41b6fc5b5791a596184b5226e3bb8d6185ad97a58bedcb8589afae849a6c40e
|
||||
SIZE (xpi/firefox-i18n-39.0/pt-PT.xpi) = 444720
|
||||
SHA256 (xpi/firefox-i18n-39.0/rm.xpi) = 451394fad795daae087c5bd2d80d9afdc1b0eae52b73a66f97cb3bae61e1419d
|
||||
SIZE (xpi/firefox-i18n-39.0/rm.xpi) = 449713
|
||||
SHA256 (xpi/firefox-i18n-39.0/ro.xpi) = a81a237f50f2aed3186029a1a63556d2ca6ed5c6b6b95c5b9137c94a88a1496c
|
||||
SIZE (xpi/firefox-i18n-39.0/ro.xpi) = 497997
|
||||
SHA256 (xpi/firefox-i18n-39.0/ru.xpi) = 5b3ccfb721175424e567da7071ad3a3fd4f7ac1aaddea5106cd57f306014e1c4
|
||||
SIZE (xpi/firefox-i18n-39.0/ru.xpi) = 417166
|
||||
SHA256 (xpi/firefox-i18n-39.0/si.xpi) = bc0f7a5bdd857cc7bccec42aeaa87ebb50f3e6be515b91c1465de602ec4ba907
|
||||
SIZE (xpi/firefox-i18n-39.0/si.xpi) = 542367
|
||||
SHA256 (xpi/firefox-i18n-39.0/sk.xpi) = 749217670c0ab1bc40c5cf19380185ad77a9ab95b130a7d47bd71f5110303073
|
||||
SIZE (xpi/firefox-i18n-39.0/sk.xpi) = 473458
|
||||
SHA256 (xpi/firefox-i18n-39.0/sl.xpi) = 3c5807b2e4a150dcd625e227fa09414ac6e35f81c02984727681ce70158fdc35
|
||||
SIZE (xpi/firefox-i18n-39.0/sl.xpi) = 445483
|
||||
SHA256 (xpi/firefox-i18n-39.0/son.xpi) = c23ee1f72b1bdbaa2e9ead73dd8513413ed775d1f10ff3d73d17f10e0eba8267
|
||||
SIZE (xpi/firefox-i18n-39.0/son.xpi) = 453638
|
||||
SHA256 (xpi/firefox-i18n-39.0/sq.xpi) = 570609619b1850037303663b9bc27e1670b1248bd054a93d9d671e32dc9e037a
|
||||
SIZE (xpi/firefox-i18n-39.0/sq.xpi) = 489758
|
||||
SHA256 (xpi/firefox-i18n-39.0/sr.xpi) = 0c559cc85f990b2759baf9cec96554e3e8c062ee5a0ab571e408aa888e6495b7
|
||||
SIZE (xpi/firefox-i18n-39.0/sr.xpi) = 483401
|
||||
SHA256 (xpi/firefox-i18n-39.0/sv-SE.xpi) = 88fa20f03e1c9f9ec7b8db45c1fbe3fd4eb89c10f52f0352b6e922352e986fa6
|
||||
SIZE (xpi/firefox-i18n-39.0/sv-SE.xpi) = 456397
|
||||
SHA256 (xpi/firefox-i18n-39.0/ta.xpi) = b1c71f7c30456bd20cc670cc976ca419257f15b01776be7095276d42e39f78ba
|
||||
SIZE (xpi/firefox-i18n-39.0/ta.xpi) = 511678
|
||||
SHA256 (xpi/firefox-i18n-39.0/te.xpi) = 245cbea46dbbe581a728262a3bff4bdad410fc447c1dfcfc5ab68825f0685d6b
|
||||
SIZE (xpi/firefox-i18n-39.0/te.xpi) = 531784
|
||||
SHA256 (xpi/firefox-i18n-39.0/th.xpi) = 1222f9eebb48c02abcac8e0f064e23bdb7b4c5288211816a51e598d2135aee90
|
||||
SIZE (xpi/firefox-i18n-39.0/th.xpi) = 539248
|
||||
SHA256 (xpi/firefox-i18n-39.0/tr.xpi) = 712b98ad2a0cf4b059554fe76d798a76ec3aa10ce2e95af0796dd9d46fa120b0
|
||||
SIZE (xpi/firefox-i18n-39.0/tr.xpi) = 484956
|
||||
SHA256 (xpi/firefox-i18n-39.0/uk.xpi) = 5b06984dc2d539dab5d3b83ec915b02a498d41185a2d3bfb7e465ef139fd605b
|
||||
SIZE (xpi/firefox-i18n-39.0/uk.xpi) = 498395
|
||||
SHA256 (xpi/firefox-i18n-39.0/vi.xpi) = a44f0486939c81e86e2aaf255cfe70d17e2ec42b8cc400ec2d699c3a1a951044
|
||||
SIZE (xpi/firefox-i18n-39.0/vi.xpi) = 471789
|
||||
SHA256 (xpi/firefox-i18n-39.0/xh.xpi) = 8d66c08160c6a2e3860bca6cc7d9c87b653c97c70994beb45bfc8fad9afb4f03
|
||||
SIZE (xpi/firefox-i18n-39.0/xh.xpi) = 454916
|
||||
SHA256 (xpi/firefox-i18n-39.0/zh-CN.xpi) = a7e959d6aba6f67b880b9ebcc1d1c2e253f01e079475191dc3eef978a9d9b2b5
|
||||
SIZE (xpi/firefox-i18n-39.0/zh-CN.xpi) = 492380
|
||||
SHA256 (xpi/firefox-i18n-39.0/zh-TW.xpi) = ec30c554c57aa27835723253f4c0dfc4fc75ca591f9a64fbd65f7622d7b212dd
|
||||
SIZE (xpi/firefox-i18n-39.0/zh-TW.xpi) = 471887
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox
|
||||
DISTVERSION= 38.0.6
|
||||
DISTVERSION= 39.0
|
||||
DISTVERSIONSUFFIX=.source
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= www ipv6
|
||||
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build6/source
|
||||
|
||||
MAINTAINER= gecko@FreeBSD.org
|
||||
COMMENT= Web browser based on the browser portion of Mozilla
|
||||
|
||||
BUILD_DEPENDS= nspr>=4.10.8:${PORTSDIR}/devel/nspr \
|
||||
nss>=3.18.1:${PORTSDIR}/security/nss \
|
||||
nss>=3.19.2:${PORTSDIR}/security/nss \
|
||||
libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \
|
||||
cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \
|
||||
soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \
|
||||
|
@ -32,7 +32,7 @@ BUILD_DEPENDS= nspr>=4.10.8:${PORTSDIR}/devel/nspr \
|
|||
LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
|
||||
|
||||
USE_GECKO= gecko
|
||||
CONFLICTS= firefox-esr-31.* firefox-esr-24.* firefox-esr-17.*
|
||||
CONFLICTS_INSTALL= firefox-esr-31.* firefox-esr-24.* firefox-esr-17.*
|
||||
MOZ_PKGCONFIG_FILES= # empty
|
||||
USE_MOZILLA= -opus
|
||||
MOZILLA_NAME= Firefox
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (firefox-38.0.6.source.tar.bz2) = 379a83c45c606aa046bf543a95f806024089e8794ee3001efd1ba2f7067e2c4d
|
||||
SIZE (firefox-38.0.6.source.tar.bz2) = 180322743
|
||||
SHA256 (firefox-39.0.source.tar.bz2) = 7e25014deb926df9220c3ab40ac6816c13a04c4cf7bd89b08fc1743307df1096
|
||||
SIZE (firefox-39.0.source.tar.bz2) = 182881881
|
||||
|
|
|
@ -17,14 +17,14 @@ 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
|
||||
|
|
|
@ -1,27 +1,18 @@
|
|||
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 };
|
||||
commit 27ead4e
|
||||
Author: Martin Stransky <stransky@redhat.com>
|
||||
Date: Thu Apr 30 01:31:00 2015 -0400
|
||||
|
||||
Bug 1073117 - Add support for has_tab_gap notebook style. r=karlt
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 1755623794079eb9fa8b4c7a17bd07f6f10a0dfe
|
||||
---
|
||||
widget/gtk/gtk3drawing.c | 289 +++++++++++++++++++++-------------------
|
||||
widget/gtk/nsNativeThemeGTK.cpp | 2 +
|
||||
2 files changed, 153 insertions(+), 138 deletions(-)
|
||||
|
||||
diff --git widget/gtk/gtk3drawing.c widget/gtk/gtk3drawing.c
|
||||
index 08a58d6..7fef6fa 100644
|
||||
index 7fef6fa..a691316 100644
|
||||
--- widget/gtk/gtk3drawing.c
|
||||
+++ widget/gtk/gtk3drawing.c
|
||||
@@ -65,6 +65,7 @@ static GtkWidget* gScrolledWindowWidget;
|
||||
|
@ -47,263 +38,7 @@ index 08a58d6..7fef6fa 100644
|
|||
/* 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)
|
||||
@@ -2012,6 +2021,9 @@ moz_gtk_get_tab_thickness(void)
|
||||
GtkStyleContext * style;
|
||||
|
||||
ensure_tab_widget();
|
||||
|
@ -313,7 +48,7 @@ index 08a58d6..7fef6fa 100644
|
|||
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,
|
||||
@@ -2057,7 +2069,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectangle* rect,
|
||||
ensure_tab_widget();
|
||||
gtk_widget_set_direction(gTabWidget, direction);
|
||||
|
||||
|
@ -322,7 +57,7 @@ index 08a58d6..7fef6fa 100644
|
|||
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,
|
||||
@@ -2074,143 +2086,155 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectangle* rect,
|
||||
|
||||
focusRect = backRect = tabRect;
|
||||
|
||||
|
@ -577,14 +312,14 @@ index 08a58d6..7fef6fa 100644
|
|||
- 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_save(style);
|
||||
+ moz_gtk_tab_prepare_style_context(style, flags);
|
||||
+
|
||||
+ gtk_style_context_get_padding(style, GetStateFlagsFromGtkWidgetState(state), &padding);
|
||||
+
|
||||
+ focusRect.x += padding.left;
|
||||
|
@ -602,195 +337,7 @@ index 08a58d6..7fef6fa 100644
|
|||
|
||||
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,
|
||||
@@ -2831,11 +2855,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);
|
||||
|
||||
|
@ -802,7 +349,7 @@ index 08a58d6..7fef6fa 100644
|
|||
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,
|
||||
@@ -2846,16 +2866,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)
|
||||
|
@ -821,52 +368,11 @@ index 08a58d6..7fef6fa 100644
|
|||
}
|
||||
|
||||
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
|
||||
index 9dedd76..779eceb 100644
|
||||
--- widget/gtk/nsNativeThemeGTK.cpp
|
||||
+++ widget/gtk/nsNativeThemeGTK.cpp
|
||||
@@ -761,6 +761,8 @@ nsNativeThemeGTK::GetExtraSizeForWidget(nsIFrame* aFrame, uint8_t aWidgetType,
|
||||
@@ -765,6 +765,8 @@ nsNativeThemeGTK::GetExtraSizeForWidget(nsIFrame* aFrame, uint8_t aWidgetType,
|
||||
return false;
|
||||
|
||||
gint gap_height = moz_gtk_get_tab_thickness();
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
https://bugzilla.mozilla.org/show_bug.cgi?id=1143411
|
||||
|
||||
diff --git a/config/system-headers b/config/system-headers
|
||||
--- config/system-headers
|
||||
+++ config/system-headers
|
||||
@@ -465,16 +465,17 @@ freetype/tttables.h
|
||||
freetype/t1tables.h
|
||||
freetype/ftlcdfil.h
|
||||
freetype/ftsizes.h
|
||||
freetype/ftadvanc.h
|
||||
freetype/ftbitmap.h
|
||||
freetype/ftxf86.h
|
||||
freetype.h
|
||||
ftcache.h
|
||||
+ftfntfmt.h
|
||||
ftglyph.h
|
||||
ftsynth.h
|
||||
ftoutln.h
|
||||
ttnameid.h
|
||||
tttables.h
|
||||
t1tables.h
|
||||
ftlcdfil.h
|
||||
ftsizes.h
|
||||
|
||||
|
||||
|
||||
|
|
@ -65,13 +65,11 @@ index d317766..ddb13da 100644
|
|||
# if __has_extension(cxx_constexpr)
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR
|
||||
# endif
|
||||
@@ -84,6 +88,9 @@
|
||||
# endif
|
||||
#elif defined(__GNUC__)
|
||||
@@ -86,6 +90,7 @@
|
||||
# if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
|
||||
+# if MOZ_GCC_VERSION_AT_LEAST(4, 8, 0)
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR
|
||||
# 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
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR_IN_TEMPLATES
|
||||
# endif
|
||||
# define MOZ_HAVE_EXPLICIT_CONVERSION
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -34,7 +34,7 @@ diff --git dom/media/gmp/GMPParent.cpp dom/media/gmp/GMPParent.cpp
|
|||
index aa60acf..90878ca 100644
|
||||
--- dom/media/gmp/GMPParent.cpp
|
||||
+++ dom/media/gmp/GMPParent.cpp
|
||||
@@ -90,23 +90,16 @@
|
||||
@@ -93,22 +93,15 @@
|
||||
mService = aService;
|
||||
mDirectory = aPluginDir;
|
||||
|
||||
|
@ -42,19 +42,18 @@ index aa60acf..90878ca 100644
|
|||
- // where <gmp-plugin-id> should be gmp-gmpopenh264
|
||||
- nsCOMPtr<nsIFile> parent;
|
||||
- nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent));
|
||||
- if (NS_FAILED(rv)) {
|
||||
- return rv;
|
||||
- }
|
||||
- nsAutoString parentLeafName;
|
||||
- rv = parent->GetLeafName(parentLeafName);
|
||||
+ nsAutoString leafname;
|
||||
+ nsresult rv = aPluginDir->GetLeafName(leafname);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
LOGD(("%s::%s: %p for %s", __CLASS__, __FUNCTION__, this,
|
||||
- NS_LossyConvertUTF16toASCII(parentLeafName).get()));
|
||||
+ NS_LossyConvertUTF16toASCII(leafname).get()));
|
||||
- nsAutoString parentLeafName;
|
||||
- rv = parent->GetLeafName(parentLeafName);
|
||||
- if (NS_FAILED(rv)) {
|
||||
- return rv;
|
||||
- }
|
||||
- LOGD("%s: for %s", __FUNCTION__, NS_LossyConvertUTF16toASCII(parentLeafName).get());
|
||||
+ LOGD("%s: for %s", __FUNCTION__, NS_LossyConvertUTF16toASCII(leafname).get());
|
||||
|
||||
- MOZ_ASSERT(parentLeafName.Length() > 4);
|
||||
- mName = Substring(parentLeafName, 4);
|
||||
|
@ -125,7 +124,7 @@ index 1f3a0b1..93517be 100644
|
|||
if (this._plugin.isEME) {
|
||||
Preferences.observe(GMPPrefs.KEY_EME_ENABLED,
|
||||
this.onPrefEMEGlobalEnabledChanged, this);
|
||||
@@ -120,17 +119,14 @@
|
||||
@@ -134,17 +133,14 @@
|
||||
optionsType: AddonManager.OPTIONS_TYPE_INLINE,
|
||||
get optionsURL() { return this._plugin.optionsURL; },
|
||||
|
||||
|
@ -143,9 +142,9 @@ index 1f3a0b1..93517be 100644
|
|||
return this._gmpPath;
|
||||
},
|
||||
-
|
||||
get id() { return this._plugin.id; },
|
||||
get type() { return "plugin"; },
|
||||
get isGMPlugin() { return true; },
|
||||
get missingKey() {
|
||||
return this._plugin.missingKey;
|
||||
},
|
||||
@@ -141,8 +137,13 @@
|
||||
get description() { return this._plugin.description; },
|
||||
get fullDescription() { return this._plugin.fullDescription; },
|
||||
|
|
|
@ -2,37 +2,36 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= libxul
|
||||
DISTVERSION= 31.7.0
|
||||
PORTREVISION= 1
|
||||
DISTVERSION= 38.1.0
|
||||
CATEGORIES?= www devel
|
||||
MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source \
|
||||
MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build2/source
|
||||
MOZILLA/firefox/candidates/${DISTVERSION}esr-candidates/build1/source
|
||||
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.6:${PORTSDIR}/devel/nspr \
|
||||
nss>=3.16.2.3:${PORTSDIR}/security/nss \
|
||||
BUILD_DEPENDS= nspr>=4.10.8:${PORTSDIR}/devel/nspr \
|
||||
nss>=3.19.2:${PORTSDIR}/security/nss \
|
||||
libevent2>=2.0.21_2:${PORTSDIR}/devel/libevent2 \
|
||||
cairo>=1.12.16_1,2:${PORTSDIR}/graphics/cairo \
|
||||
soundtouch>=1.8.0:${PORTSDIR}/audio/soundtouch \
|
||||
harfbuzz>=0.9.25:${PORTSDIR}/print/harfbuzz \
|
||||
graphite2>=1.2.4:${PORTSDIR}/graphics/graphite2 \
|
||||
libvorbis>=1.3.5:${PORTSDIR}/audio/libvorbis \
|
||||
opus>=1.1:${PORTSDIR}/audio/opus \
|
||||
libvorbis>=1.3.4:${PORTSDIR}/audio/libvorbis \
|
||||
libvpx>=1.3.0:${PORTSDIR}/multimedia/libvpx \
|
||||
sqlite3>=3.8.4.2:${PORTSDIR}/databases/sqlite3 \
|
||||
sqlite3>=3.8.9:${PORTSDIR}/databases/sqlite3 \
|
||||
${PYTHON_PKGNAMEPREFIX}sqlite3>0:${PORTSDIR}/databases/py-sqlite3 \
|
||||
v4l_compat>0:${PORTSDIR}/multimedia/v4l_compat \
|
||||
autoconf-2.13:${PORTSDIR}/devel/autoconf213 \
|
||||
zip:${PORTSDIR}/archivers/zip \
|
||||
unzip:${PORTSDIR}/archivers/unzip
|
||||
# opus>=1.1:${PORTSDIR}/audio/opus \
|
||||
|
||||
LIB_DEPENDS= libv4l2.so:${PORTSDIR}/multimedia/libv4l
|
||||
|
||||
WRKSRC= ${WRKDIR}/mozilla-esr31
|
||||
CONFLICTS= libxul-1.9.*
|
||||
WRKSRC= ${WRKDIR}/mozilla-esr38
|
||||
CONFLICTS_INSTALL= libxul-1.9.*
|
||||
|
||||
USE_QT5= # empty
|
||||
QT_NONSTANDARD= yes
|
||||
|
@ -47,11 +46,16 @@ MOZ_OPTIONS?= --enable-application=xulrunner
|
|||
USE_GECKO= gecko
|
||||
CPE_PRODUCT= firefox_esr
|
||||
MOZILLA_EXEC_NAME=xulrunner
|
||||
USE_MOZILLA= # empty
|
||||
USE_MOZILLA= -opus
|
||||
MOZILLA_PLIST_DIRS= bin include lib share/idl libdata
|
||||
MOZ_PKGCONFIG_FILES= libxul-embedding libxul mozilla-js \
|
||||
mozilla-plugin
|
||||
|
||||
OPTIONS_DEFAULT= GTK2
|
||||
|
||||
OPTIONS_SINGLE+= TOOLKIT
|
||||
OPTIONS_SINGLE_TOOLKIT= GTK2 GTK3
|
||||
|
||||
.include "${.CURDIR}/../../www/firefox/Makefile.options"
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
|
@ -67,6 +71,10 @@ RUN_DEPENDS+= alsa-lib>=1.0.27.2_1:${PORTSDIR}/audio/alsa-lib
|
|||
RUN_DEPENDS+= gstreamer1-libav>=1.2.4_1:${PORTSDIR}/multimedia/gstreamer1-libav
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MGTK3}
|
||||
BUILD_DEPENDS+= gtk3>=3.14.6:${PORTSDIR}/x11-toolkits/gtk30
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MTEST}
|
||||
BROKEN= stage-package fails with ValueError: no path specified
|
||||
.endif
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
SHA256 (firefox-31.7.0esr.source.tar.bz2) = 8523c10ecb318f278a251d90e2161c07c7431796d4387fe9091dfa4e633474b6
|
||||
SIZE (firefox-31.7.0esr.source.tar.bz2) = 147772244
|
||||
SHA256 (firefox-38.1.0esr.source.tar.bz2) = 85eb5f916aa47a92cf50803dcb35e7fa3a9da29abf5fc91cbb6a70bbbc2618ff
|
||||
SIZE (firefox-38.1.0esr.source.tar.bz2) = 180392775
|
||||
|
|
|
@ -1,88 +0,0 @@
|
|||
diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
|
||||
index 13a286f..293bd73 100644
|
||||
--- xpcom/base/nsDebugImpl.cpp
|
||||
+++ xpcom/base/nsDebugImpl.cpp
|
||||
@@ -45,12 +45,43 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-#if defined(XP_MACOSX)
|
||||
+#if defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
|
||||
+ || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
#include <stdbool.h>
|
||||
#include <unistd.h>
|
||||
+#include <sys/param.h>
|
||||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
+#if defined(__OpenBSD__)
|
||||
+#include <sys/proc.h>
|
||||
+#endif
|
||||
+
|
||||
+#if defined(__DragonFly__) || defined(__FreeBSD__)
|
||||
+#include <sys/user.h>
|
||||
+#endif
|
||||
+
|
||||
+#if defined(__NetBSD__)
|
||||
+#undef KERN_PROC
|
||||
+#define KERN_PROC KERN_PROC2
|
||||
+#define KINFO_PROC struct kinfo_proc2
|
||||
+#else
|
||||
+#define KINFO_PROC struct kinfo_proc
|
||||
+#endif
|
||||
+
|
||||
+#if defined(XP_MACOSX)
|
||||
+#define KP_FLAGS kp_proc.p_flag
|
||||
+#elif defined(__DragonFly__)
|
||||
+#define KP_FLAGS kp_flags
|
||||
+#elif defined(__FreeBSD__)
|
||||
+#define KP_FLAGS ki_flag
|
||||
+#elif defined(__OpenBSD__) && !defined(_P_TRACED)
|
||||
+#define KP_FLAGS p_psflags
|
||||
+#define P_TRACED PS_TRACED
|
||||
+#else
|
||||
+#define KP_FLAGS p_flag
|
||||
+#endif
|
||||
+
|
||||
#include "mozilla/mozalloc_abort.h"
|
||||
|
||||
static void
|
||||
@@ -144,16 +175,22 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
|
||||
|
||||
#if defined(XP_WIN)
|
||||
*aResult = ::IsDebuggerPresent();
|
||||
-#elif defined(XP_MACOSX)
|
||||
+#elif defined(XP_MACOSX) || defined(__DragonFly__) || defined(__FreeBSD__) \
|
||||
+ || defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
// Specify the info we're looking for
|
||||
- int mib[4];
|
||||
- mib[0] = CTL_KERN;
|
||||
- mib[1] = KERN_PROC;
|
||||
- mib[2] = KERN_PROC_PID;
|
||||
- mib[3] = getpid();
|
||||
+ int mib[] = {
|
||||
+ CTL_KERN,
|
||||
+ KERN_PROC,
|
||||
+ KERN_PROC_PID,
|
||||
+ getpid(),
|
||||
+#if defined(__NetBSD__) || defined(__OpenBSD__)
|
||||
+ sizeof(KINFO_PROC),
|
||||
+ 1,
|
||||
+#endif
|
||||
+ };
|
||||
size_t mibSize = sizeof(mib) / sizeof(int);
|
||||
|
||||
- struct kinfo_proc info;
|
||||
+ KINFO_PROC info;
|
||||
size_t infoSize = sizeof(info);
|
||||
memset(&info, 0, infoSize);
|
||||
|
||||
@@ -163,7 +200,7 @@ nsDebugImpl::GetIsDebuggerAttached(bool* aResult)
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
- if (info.kp_proc.p_flag & P_TRACED) {
|
||||
+ if (info.KP_FLAGS & P_TRACED) {
|
||||
*aResult = true;
|
||||
}
|
||||
#endif
|
|
@ -30,14 +30,14 @@ diff --git browser/installer/package-manifest.in browser/installer/package-manif
|
|||
index b509fd4..195345c 100644
|
||||
--- browser/installer/package-manifest.in
|
||||
+++ browser/installer/package-manifest.in
|
||||
@@ -583,7 +583,7 @@
|
||||
@BINPATH@/components/MozKeyboard.js
|
||||
@BINPATH@/components/InputMethod.manifest
|
||||
@@ -608,7 +608,7 @@
|
||||
@RESPATH@/components/MozKeyboard.js
|
||||
@RESPATH@/components/InputMethod.manifest
|
||||
|
||||
-#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 mobile/android/installer/Makefile.in mobile/android/installer/Makefile.in
|
||||
index 96dceab..3528ad6 100644
|
||||
|
|
|
@ -1,95 +0,0 @@
|
|||
diff --git configure.in configure.in
|
||||
index 7bed45f..053de17 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -2950,7 +2950,7 @@ dnl Checks for library functions.
|
||||
dnl ========================================================
|
||||
AC_PROG_GCC_TRADITIONAL
|
||||
AC_FUNC_MEMCMP
|
||||
-AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r)
|
||||
+AC_CHECK_FUNCS(stat64 lstat64 truncate64 statvfs64 statvfs statfs64 statfs getpagesize localtime_r arc4random arc4random_buf)
|
||||
|
||||
dnl check for clock_gettime(), the CLOCK_MONOTONIC clock
|
||||
AC_CACHE_CHECK(for clock_gettime(CLOCK_MONOTONIC),
|
||||
diff --git xpcom/base/nsUUIDGenerator.cpp xpcom/base/nsUUIDGenerator.cpp
|
||||
index 0687344..ca3ff8b 100644
|
||||
--- xpcom/base/nsUUIDGenerator.cpp
|
||||
+++ xpcom/base/nsUUIDGenerator.cpp
|
||||
@@ -15,6 +15,10 @@
|
||||
|
||||
#include "nsUUIDGenerator.h"
|
||||
|
||||
+#ifdef ANDROID
|
||||
+extern "C" NS_EXPORT void arc4random_buf(void *, size_t);
|
||||
+#endif
|
||||
+
|
||||
using namespace mozilla;
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsUUIDGenerator, nsIUUIDGenerator)
|
||||
@@ -34,7 +38,7 @@ nsUUIDGenerator::Init()
|
||||
// We're a service, so we're guaranteed that Init() is not going
|
||||
// to be reentered while we're inside Init().
|
||||
|
||||
-#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
|
||||
+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
|
||||
/* initialize random number generator using NSPR random noise */
|
||||
unsigned int seed;
|
||||
|
||||
@@ -67,7 +71,7 @@ nsUUIDGenerator::Init()
|
||||
return NS_ERROR_FAILURE;
|
||||
#endif
|
||||
|
||||
-#endif /* non XP_WIN and non XP_MACOSX */
|
||||
+#endif /* non XP_WIN and non XP_MACOSX and non ARC4RANDOM */
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
@@ -114,13 +118,16 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
|
||||
* back to it; instead, we use the value returned when we called
|
||||
* initstate, since older glibc's have broken setstate() return values
|
||||
*/
|
||||
-#ifndef ANDROID
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
setstate(mState);
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_ARC4RANDOM_BUF
|
||||
+ arc4random_buf(id, sizeof(nsID));
|
||||
+#else /* HAVE_ARC4RANDOM_BUF */
|
||||
size_t bytesLeft = sizeof(nsID);
|
||||
while (bytesLeft > 0) {
|
||||
-#ifdef ANDROID
|
||||
+#ifdef HAVE_ARC4RANDOM
|
||||
long rval = arc4random();
|
||||
const size_t mRBytes = 4;
|
||||
#else
|
||||
@@ -141,6 +148,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
|
||||
|
||||
bytesLeft -= toWrite;
|
||||
}
|
||||
+#endif /* HAVE_ARC4RANDOM_BUF */
|
||||
|
||||
/* Put in the version */
|
||||
id->m2 &= 0x0fff;
|
||||
@@ -150,7 +158,7 @@ nsUUIDGenerator::GenerateUUIDInPlace(nsID* id)
|
||||
id->m3[0] &= 0x3f;
|
||||
id->m3[0] |= 0x80;
|
||||
|
||||
-#ifndef ANDROID
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
/* Restore the previous RNG state */
|
||||
setstate(mSavedState);
|
||||
#endif
|
||||
diff --git xpcom/base/nsUUIDGenerator.h xpcom/base/nsUUIDGenerator.h
|
||||
index 6a24212..68ed6f2 100644
|
||||
--- xpcom/base/nsUUIDGenerator.h
|
||||
+++ xpcom/base/nsUUIDGenerator.h
|
||||
@@ -27,7 +27,7 @@ private:
|
||||
protected:
|
||||
|
||||
mozilla::Mutex mLock;
|
||||
-#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(ANDROID)
|
||||
+#if !defined(XP_WIN) && !defined(XP_MACOSX) && !defined(HAVE_ARC4RANDOM)
|
||||
char mState[128];
|
||||
char *mSavedState;
|
||||
uint8_t mRBytes;
|
|
@ -1,193 +0,0 @@
|
|||
commit dd19f59
|
||||
Author: Trevor Saunders <trev.saunders@gmail.com>
|
||||
Date: Fri Jun 6 15:31:30 2014 -0400
|
||||
|
||||
bug 1021171 - don't return nulllptr in functions returning bool r=bz,waldo
|
||||
---
|
||||
js/src/builtin/TypedObject.cpp | 32 ++++++++++++++++----------------
|
||||
js/src/frontend/BytecodeCompiler.cpp | 2 +-
|
||||
js/xpconnect/wrappers/XrayWrapper.cpp | 2 +-
|
||||
netwerk/ipc/NeckoParent.cpp | 2 +-
|
||||
4 files changed, 19 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git js/src/builtin/TypedObject.cpp js/src/builtin/TypedObject.cpp
|
||||
index 9e284b9..7a0a7fc 100644
|
||||
--- js/src/builtin/TypedObject.cpp
|
||||
+++ js/src/builtin/TypedObject.cpp
|
||||
@@ -710,12 +710,12 @@ ArrayMetaTypeDescr::construct(JSContext *cx, unsigned argc, Value *vp)
|
||||
contents.append(")");
|
||||
RootedAtom stringRepr(cx, contents.finishAtom());
|
||||
if (!stringRepr)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Extract ArrayType.prototype
|
||||
RootedObject arrayTypePrototype(cx, GetPrototype(cx, arrayTypeGlobal));
|
||||
if (!arrayTypePrototype)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Create the instance of ArrayType
|
||||
Rooted<UnsizedArrayTypeDescr *> obj(cx);
|
||||
@@ -728,7 +728,7 @@ ArrayMetaTypeDescr::construct(JSContext *cx, unsigned argc, Value *vp)
|
||||
if (!JSObject::defineProperty(cx, obj, cx->names().length,
|
||||
UndefinedHandleValue, nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
args.rval().setObject(*obj);
|
||||
return true;
|
||||
@@ -762,7 +762,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
if (!size.isValid()) {
|
||||
JS_ReportErrorNumber(cx, js_GetErrorMessage, nullptr,
|
||||
JSMSG_TYPEDOBJECT_TOO_BIG);
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
// Construct a canonical string `new ArrayType(<elementType>).dimension(N)`:
|
||||
@@ -775,7 +775,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
contents.append(")");
|
||||
RootedAtom stringRepr(cx, contents.finishAtom());
|
||||
if (!stringRepr)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Create the sized type object.
|
||||
Rooted<SizedArrayTypeDescr*> obj(cx);
|
||||
@@ -793,7 +793,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
if (!JSObject::defineProperty(cx, obj, cx->names().length,
|
||||
lengthVal, nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Add `unsized` property, which is a link from the sized
|
||||
// array to the unsized array.
|
||||
@@ -801,7 +801,7 @@ UnsizedArrayTypeDescr::dimension(JSContext *cx, unsigned int argc, jsval *vp)
|
||||
if (!JSObject::defineProperty(cx, obj, cx->names().unsized,
|
||||
unsizedTypeDescrValue, nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
args.rval().setObject(*obj);
|
||||
return true;
|
||||
@@ -1253,7 +1253,7 @@ DefineSimpleTypeDescr(JSContext *cx,
|
||||
Rooted<TypedProto*> proto(cx);
|
||||
proto = NewObjectWithProto<TypedProto>(cx, objProto, nullptr, TenuredObject);
|
||||
if (!proto)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
proto->initTypeDescrSlot(*descr);
|
||||
descr->initReservedSlot(JS_DESCR_SLOT_TYPROTO, ObjectValue(*proto));
|
||||
|
||||
@@ -1358,14 +1358,14 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
#define BINARYDATA_SCALAR_DEFINE(constant_, type_, name_) \
|
||||
if (!DefineSimpleTypeDescr<ScalarTypeDescr>(cx, global, module, constant_, \
|
||||
cx->names().name_)) \
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
JS_FOR_EACH_SCALAR_TYPE_REPR(BINARYDATA_SCALAR_DEFINE)
|
||||
#undef BINARYDATA_SCALAR_DEFINE
|
||||
|
||||
#define BINARYDATA_REFERENCE_DEFINE(constant_, type_, name_) \
|
||||
if (!DefineSimpleTypeDescr<ReferenceTypeDescr>(cx, global, module, constant_, \
|
||||
cx->names().name_)) \
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
JS_FOR_EACH_REFERENCE_TYPE_REPR(BINARYDATA_REFERENCE_DEFINE)
|
||||
#undef BINARYDATA_REFERENCE_DEFINE
|
||||
|
||||
@@ -1375,14 +1375,14 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
arrayType = DefineMetaTypeDescr<ArrayMetaTypeDescr>(
|
||||
cx, global, module, TypedObjectModuleObject::ArrayTypePrototype);
|
||||
if (!arrayType)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
RootedValue arrayTypeValue(cx, ObjectValue(*arrayType));
|
||||
if (!JSObject::defineProperty(cx, module, cx->names().ArrayType,
|
||||
arrayTypeValue,
|
||||
nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// StructType.
|
||||
|
||||
@@ -1390,14 +1390,14 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
structType = DefineMetaTypeDescr<StructMetaTypeDescr>(
|
||||
cx, global, module, TypedObjectModuleObject::StructTypePrototype);
|
||||
if (!structType)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
RootedValue structTypeValue(cx, ObjectValue(*structType));
|
||||
if (!JSObject::defineProperty(cx, module, cx->names().StructType,
|
||||
structTypeValue,
|
||||
nullptr, nullptr,
|
||||
JSPROP_READONLY | JSPROP_PERMANENT))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
|
||||
// Everything is setup, install module on the global object:
|
||||
RootedValue moduleValue(cx, ObjectValue(*module));
|
||||
@@ -1407,7 +1407,7 @@ GlobalObject::initTypedObjectModule(JSContext *cx, Handle<GlobalObject*> global)
|
||||
nullptr, nullptr,
|
||||
0))
|
||||
{
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
return module;
|
||||
@@ -2449,7 +2449,7 @@ TypedObject::constructUnsized(JSContext *cx, unsigned int argc, Value *vp)
|
||||
if (length < 0) {
|
||||
JS_ReportErrorNumber(cx, js_GetErrorMessage,
|
||||
nullptr, JSMSG_TYPEDOBJECT_BAD_ARGS);
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
Rooted<TypedObject*> obj(cx, createZeroed(cx, callee, length));
|
||||
if (!obj)
|
||||
diff --git js/src/frontend/BytecodeCompiler.cpp js/src/frontend/BytecodeCompiler.cpp
|
||||
index 5aacc23..aed45ca 100644
|
||||
--- js/src/frontend/BytecodeCompiler.cpp
|
||||
+++ js/src/frontend/BytecodeCompiler.cpp
|
||||
@@ -544,7 +544,7 @@ CompileFunctionBody(JSContext *cx, MutableHandleFunction fun, const ReadOnlyComp
|
||||
|
||||
RootedScriptSource sourceObject(cx, CreateScriptSourceObject(cx, options));
|
||||
if (!sourceObject)
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
ScriptSource* ss = sourceObject->source();
|
||||
|
||||
SourceCompressionTask sct(cx);
|
||||
diff --git js/xpconnect/wrappers/XrayWrapper.cpp js/xpconnect/wrappers/XrayWrapper.cpp
|
||||
index fd6458b..ab48770 100644
|
||||
--- js/xpconnect/wrappers/XrayWrapper.cpp
|
||||
+++ js/xpconnect/wrappers/XrayWrapper.cpp
|
||||
@@ -363,7 +363,7 @@ public:
|
||||
{
|
||||
JSAutoCompartment ac(cx, target);
|
||||
if (!JS_GetClassPrototype(cx, key, protop))
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
return JS_WrapObject(cx, protop);
|
||||
}
|
||||
diff --git netwerk/ipc/NeckoParent.cpp netwerk/ipc/NeckoParent.cpp
|
||||
index 96dbb1d..ef3293b 100644
|
||||
--- netwerk/ipc/NeckoParent.cpp
|
||||
+++ netwerk/ipc/NeckoParent.cpp
|
||||
@@ -365,7 +365,7 @@ NeckoParent::RecvPRtspChannelConstructor(
|
||||
RtspChannelParent* p = static_cast<RtspChannelParent*>(aActor);
|
||||
return p->Init(aConnectArgs);
|
||||
#else
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
#endif
|
||||
}
|
||||
|
|
@ -218,12 +218,12 @@ index a962553..1f780f4 100644
|
|||
assert(p);
|
||||
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
@@ -313,10 +360,10 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
return ERROR;
|
||||
}
|
||||
if (got > 0) {
|
||||
- snd_pcm_sframes_t wrote = snd_pcm_writei(stm->pcm, p, got);
|
||||
+ snd_pcm_sframes_t wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
@@ -327,10 +374,10 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
b[i] *= stm->volume;
|
||||
}
|
||||
}
|
||||
- wrote = snd_pcm_writei(stm->pcm, p, got);
|
||||
+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
if (wrote == -EPIPE) {
|
||||
- snd_pcm_recover(stm->pcm, wrote, 1);
|
||||
- wrote = snd_pcm_writei(stm->pcm, p, got);
|
||||
|
@ -533,42 +533,51 @@ index a962553..1f780f4 100644
|
|||
assert((nfds_t) r == stm->nfds);
|
||||
|
||||
r = pthread_cond_init(&stm->cond, NULL);
|
||||
@@ -937,12 +1043,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
@@ -895,7 +1001,7 @@ alsa_stream_destroy(cubeb_stream * stm)
|
||||
pthread_mutex_lock(&stm->mutex);
|
||||
if (stm->pcm) {
|
||||
if (stm->state == DRAINING) {
|
||||
- snd_pcm_drain(stm->pcm);
|
||||
+ WRAP(snd_pcm_drain)(stm->pcm);
|
||||
}
|
||||
alsa_locked_pcm_close(stm->pcm);
|
||||
stm->pcm = NULL;
|
||||
@@ -938,12 +1044,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_any(stm->pcm, hw_params);
|
||||
+ rv = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_any(stm->pcm, hw_params);
|
||||
+ r = WRAP(snd_pcm_hw_params_any)(stm->pcm, hw_params);
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
|
||||
+ rv = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_get_channels_max(hw_params, max_channels);
|
||||
+ r = WRAP(snd_pcm_hw_params_get_channels_max)(hw_params, max_channels);
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
@@ -962,34 +1068,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) {
|
||||
@@ -963,34 +1069,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) {
|
||||
|
||||
/* get a pcm, disabling resampling, so we get a rate the
|
||||
* hardware/dmix/pulse/etc. supports. */
|
||||
- rv = snd_pcm_open(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
|
||||
+ rv = WRAP(snd_pcm_open)(&pcm, "", SND_PCM_STREAM_PLAYBACK | SND_PCM_NO_AUTO_RESAMPLE, 0);
|
||||
if (rv < 0) {
|
||||
- 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);
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_any(pcm, hw_params);
|
||||
+ rv = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_any(pcm, hw_params);
|
||||
+ r = WRAP(snd_pcm_hw_params_any)(pcm, hw_params);
|
||||
if (r < 0) {
|
||||
- snd_pcm_close(pcm);
|
||||
+ WRAP(snd_pcm_close)(pcm);
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
- rv = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
|
||||
+ rv = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
|
||||
if (rv >= 0) {
|
||||
- r = snd_pcm_hw_params_get_rate(hw_params, rate, &dir);
|
||||
+ r = WRAP(snd_pcm_hw_params_get_rate)(hw_params, rate, &dir);
|
||||
if (r >= 0) {
|
||||
/* There is a default rate: use it. */
|
||||
- snd_pcm_close(pcm);
|
||||
+ WRAP(snd_pcm_close)(pcm);
|
||||
|
@ -578,9 +587,9 @@ index a962553..1f780f4 100644
|
|||
/* Use a common rate, alsa may adjust it based on hw/etc. capabilities. */
|
||||
*rate = 44100;
|
||||
|
||||
- rv = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
|
||||
+ rv = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
|
||||
if (rv < 0) {
|
||||
- r = snd_pcm_hw_params_set_rate_near(pcm, hw_params, rate, NULL);
|
||||
+ r = WRAP(snd_pcm_hw_params_set_rate_near)(pcm, hw_params, rate, NULL);
|
||||
if (r < 0) {
|
||||
- snd_pcm_close(pcm);
|
||||
+ WRAP(snd_pcm_close)(pcm);
|
||||
return CUBEB_ERROR;
|
||||
|
@ -634,7 +643,7 @@ new file mode 100644
|
|||
index 0000000..5e38e27
|
||||
--- /dev/null
|
||||
+++ media/libcubeb/src/cubeb_oss.c
|
||||
@@ -0,0 +1,397 @@
|
||||
@@ -0,0 +1,402 @@
|
||||
+/*
|
||||
+ * Copyright © 2014 Mozilla Foundation
|
||||
+ *
|
||||
|
@ -1030,7 +1039,12 @@ index 0000000..5e38e27
|
|||
+ .stream_start = oss_stream_start,
|
||||
+ .stream_stop = oss_stream_stop,
|
||||
+ .stream_get_position = oss_stream_get_position,
|
||||
+ .stream_get_latency = oss_stream_get_latency
|
||||
+ .stream_get_latency = oss_stream_get_latency,
|
||||
+ .stream_set_volume = oss_stream_set_volume,
|
||||
+ .stream_set_panning = oss_stream_set_panning,
|
||||
+ .stream_get_current_device = NULL,
|
||||
+ .stream_device_destroy = NULL,
|
||||
+ .stream_register_device_changed_callback = NULL
|
||||
+};
|
||||
diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build
|
||||
index 8b7a0dd..31212ce 100644
|
||||
|
@ -1056,36 +1070,33 @@ 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/Makefile.in media/webrtc/signaling/test/Makefile.in
|
||||
diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
|
||||
index 991f03f..3d99eb5 100644
|
||||
--- media/webrtc/signaling/test/Makefile.in
|
||||
+++ media/webrtc/signaling/test/Makefile.in
|
||||
@@ -26,9 +26,9 @@ ifdef JS_SHARED_LIBRARY
|
||||
LIBS += $(MOZ_JS_LIBS)
|
||||
endif
|
||||
--- media/webrtc/signaling/test/moz.build
|
||||
+++ media/webrtc/signaling/test/moz.build
|
||||
@@ -112,8 +112,8 @@ if CONFIG['JS_SHARED_LIBRARY']:
|
||||
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
||||
-ifdef MOZ_ALSA
|
||||
+ifdef MOZ_OSS
|
||||
LIBS += \
|
||||
- $(MOZ_ALSA_LIBS) \
|
||||
+ $(MOZ_OSS_LIBS) \
|
||||
$(NULL)
|
||||
endif
|
||||
-if CONFIG['MOZ_ALSA']:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
+if CONFIG['MOZ_OSS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
|
||||
if CONFIG['MOZ_NATIVE_JPEG']:
|
||||
OS_LIBS += CONFIG['MOZ_JPEG_LIBS']
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index e191f13..4fb268a 100644
|
||||
--- toolkit/library/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -146,9 +146,9 @@ OS_LIBS += $(call EXPAND_LIBNAME,secur32
|
||||
endif
|
||||
endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -234,8 +234,8 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
|
||||
if not CONFIG['MOZ_TREE_PIXMAN']:
|
||||
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
|
||||
|
||||
-ifdef MOZ_ALSA
|
||||
-EXTRA_DSO_LDOPTS += $(MOZ_ALSA_LIBS)
|
||||
-endif
|
||||
+ifdef MOZ_OSS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_OSS_LIBS)
|
||||
+endif
|
||||
-if CONFIG['MOZ_ALSA']:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
+if CONFIG['MOZ_OSS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
ifdef HAVE_CLOCK_MONOTONIC
|
||||
EXTRA_DSO_LDOPTS += $(REALTIME_LIBS)
|
||||
if CONFIG['HAVE_CLOCK_MONOTONIC']:
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
diff --git storage/src/moz.build storage/src/moz.build
|
||||
index 4cd2551..5c40536 100644
|
||||
--- storage/src/moz.build
|
||||
+++ storage/src/moz.build
|
||||
@@ -50,11 +50,14 @@ FINAL_LIBRARY = 'storagecomps'
|
||||
# (such as NSS) might trigger an initialization of sqlite and allocation
|
||||
# of memory using the default allocator, prior to the storage service
|
||||
# registering its allocator, causing memory management failures (bug 938730).
|
||||
+# However, this is not an issue if both the jemalloc allocator and the default
|
||||
+# allocator are the same thing.
|
||||
#
|
||||
# Note: On Windows our sqlite build assumes we use jemalloc. If you disable
|
||||
# MOZ_STORAGE_MEMORY on Windows, you will also need to change the "ifdef
|
||||
# MOZ_MEMORY" options in db/sqlite3/src/Makefile.in.
|
||||
-if CONFIG['MOZ_MEMORY'] and not CONFIG['MOZ_NATIVE_SQLITE']:
|
||||
+if CONFIG['MOZ_MEMORY'] and (not CONFIG['MOZ_NATIVE_SQLITE']
|
||||
+ or CONFIG['MOZ_NATIVE_JEMALLOC']):
|
||||
if CONFIG['OS_TARGET'] != 'Android':
|
||||
DEFINES['MOZ_STORAGE_MEMORY'] = True
|
||||
|
26
www/libxul/files/patch-bug1041268
Normal file
26
www/libxul/files/patch-bug1041268
Normal file
|
@ -0,0 +1,26 @@
|
|||
diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
|
||||
index 97f69d3..77a50b3 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
|
||||
+++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.cc
|
||||
@@ -18,7 +18,7 @@ ScreenCapturer* ScreenCapturer::Create() {
|
||||
return Create(DesktopCaptureOptions::CreateDefault());
|
||||
}
|
||||
|
||||
-#if defined(WEBRTC_LINUX)
|
||||
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
|
||||
ScreenCapturer* ScreenCapturer::CreateWithXDamage(
|
||||
bool use_update_notifications) {
|
||||
DesktopCaptureOptions options;
|
||||
diff --git media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
|
||||
index a8d40a7..177a6c1 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
|
||||
+++ media/webrtc/trunk/webrtc/modules/desktop_capture/screen_capturer.h
|
||||
@@ -74,7 +74,7 @@ class ScreenCapturer : public DesktopCapturer {
|
||||
static ScreenCapturer* Create(const DesktopCaptureOptions& options);
|
||||
static ScreenCapturer* Create();
|
||||
|
||||
-#if defined(WEBRTC_LINUX)
|
||||
+#if defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
|
||||
// Creates platform-specific capturer and instructs it whether it should use
|
||||
// X DAMAGE support.
|
||||
static ScreenCapturer* CreateWithXDamage(bool use_x_damage);
|
|
@ -1,12 +0,0 @@
|
|||
diff --git config/rules.mk config/rules.mk
|
||||
index 1dee8c3..4d67eda 100644
|
||||
--- config/rules.mk
|
||||
+++ config/rules.mk
|
||||
@@ -822,6 +822,7 @@ endif
|
||||
ifdef DTRACE_PROBE_OBJ
|
||||
EXTRA_DEPS += $(DTRACE_PROBE_OBJ)
|
||||
OBJS += $(DTRACE_PROBE_OBJ)
|
||||
+EXCLUDED_OBJS += $(DTRACE_PROBE_OBJ)
|
||||
endif
|
||||
|
||||
$(filter %.$(LIB_SUFFIX),$(LIBRARY)): $(OBJS) $(EXTRA_DEPS) $(GLOBAL_DEPS)
|
|
@ -1,48 +0,0 @@
|
|||
diff --git config/rules.mk config/rules.mk
|
||||
index 4d67eda..783942f 100644
|
||||
--- config/rules.mk
|
||||
+++ config/rules.mk
|
||||
@@ -858,7 +858,7 @@ ifdef DTRACE_PROBE_OBJ
|
||||
ifndef DTRACE_LIB_DEPENDENT
|
||||
NON_DTRACE_OBJS := $(filter-out $(DTRACE_PROBE_OBJ),$(OBJS))
|
||||
$(DTRACE_PROBE_OBJ): $(NON_DTRACE_OBJS)
|
||||
- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
|
||||
+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(NON_DTRACE_OBJS)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -876,7 +876,7 @@ ifndef INCREMENTAL_LINKER
|
||||
endif
|
||||
ifdef DTRACE_LIB_DEPENDENT
|
||||
ifndef XP_MACOSX
|
||||
- dtrace -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
|
||||
+ dtrace -x nolibs -G -C -s $(MOZILLA_DTRACE_SRC) -o $(DTRACE_PROBE_OBJ) $(shell $(EXPAND_LIBS) $(MOZILLA_PROBE_LIBS))
|
||||
endif
|
||||
$(EXPAND_MKSHLIB) $(SHLIB_LDSTARTFILE) $(OBJS) $(SUB_SHLOBJS) $(DTRACE_PROBE_OBJ) $(MOZILLA_PROBE_LIBS) $(RESFILE) $(LDFLAGS) $(WRAP_LDFLAGS) $(SHARED_LIBRARY_LIBS) $(EXTRA_DSO_LDOPTS) $(MOZ_GLUE_LDFLAGS) $(OS_LIBS) $(EXTRA_LIBS) $(DEF_FILE) $(SHLIB_LDENDFILE) $(if $(LIB_IS_C_ONLY),,$(STLPORT_LIBS))
|
||||
@$(RM) $(DTRACE_PROBE_OBJ)
|
||||
diff --git js/src/Makefile.in js/src/Makefile.in
|
||||
index 28ca5e8..96793d7 100644
|
||||
--- js/src/Makefile.in
|
||||
+++ js/src/Makefile.in
|
||||
@@ -342,7 +342,7 @@ endif
|
||||
|
||||
ifdef HAVE_DTRACE
|
||||
$(CURDIR)/javascript-trace.h: $(srcdir)/devtools/javascript-trace.d
|
||||
- dtrace -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
|
||||
+ dtrace -x nolibs -h -s $(srcdir)/devtools/javascript-trace.d -o javascript-trace.h.in
|
||||
sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
|
||||
-e '/const/!s/char \*/const char */g' \
|
||||
javascript-trace.h.in > javascript-trace.h
|
||||
diff --git probes/Makefile.in probes/Makefile.in
|
||||
index 6d18f34..deec83f 100644
|
||||
--- probes/Makefile.in
|
||||
+++ probes/Makefile.in
|
||||
@@ -7,7 +7,7 @@ export:: $(DIST)/include/mozilla-trace.h
|
||||
|
||||
# Replace _DTRACE_VERSION with INCLUDE_MOZILLA_DTRACE
|
||||
$(DIST)/include/mozilla-trace.h: mozilla-trace.d Makefile
|
||||
- dtrace -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
|
||||
+ dtrace -x nolibs -h -s $(srcdir)/mozilla-trace.d -o mozilla-trace.h.tmp
|
||||
sed -e 's/if _DTRACE_VERSION/ifdef INCLUDE_MOZILLA_DTRACE/' \
|
||||
mozilla-trace.h.tmp > $(DIST)/include/mozilla-trace.h
|
||||
rm mozilla-trace.h.tmp
|
|
@ -1,26 +0,0 @@
|
|||
diff --git configure.in configure.in
|
||||
index 1853029..559bd45 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -2651,7 +2651,7 @@ if test "$ac_cv_sockaddr_sa_len" = true ; then
|
||||
AC_DEFINE(HAVE_SA_LEN)
|
||||
fi
|
||||
|
||||
-AC_ARG_ENABLE(dtrace,
|
||||
+MOZ_ARG_ENABLE_BOOL(dtrace,
|
||||
[ --enable-dtrace build with dtrace support if available (default=no)],
|
||||
[enable_dtrace="yes"],)
|
||||
if test "x$enable_dtrace" = "xyes"; then
|
||||
diff --git js/src/configure.in js/src/configure.in
|
||||
index 134dfd3..682c1fb 100644
|
||||
--- js/src/configure.in
|
||||
+++ js/src/configure.in
|
||||
@@ -2153,7 +2153,7 @@ dnl Quota support
|
||||
MOZ_CHECK_HEADERS(sys/quota.h)
|
||||
MOZ_CHECK_HEADERS(linux/quota.h)
|
||||
|
||||
-AC_ARG_ENABLE(dtrace,
|
||||
+MOZ_ARG_ENABLE_BOOL(dtrace,
|
||||
[ --enable-dtrace build with dtrace support if available (default=no)],
|
||||
[enable_dtrace="yes"],)
|
||||
if test "x$enable_dtrace" = "xyes"; then
|
File diff suppressed because one or more lines are too long
|
@ -1,78 +0,0 @@
|
|||
diff --git content/media/encoder/VP8TrackEncoder.cpp content/media/encoder/VP8TrackEncoder.cpp
|
||||
index 452821c..ede21c5 100644
|
||||
--- content/media/encoder/VP8TrackEncoder.cpp
|
||||
+++ content/media/encoder/VP8TrackEncoder.cpp
|
||||
@@ -84,7 +84,7 @@ VP8TrackEncoder::Init(int32_t aWidth, int32_t aHeight, int32_t aDisplayWidth,
|
||||
// Creating a wrapper to the image - setting image data to NULL. Actual
|
||||
// pointer will be set in encode. Setting align to 1, as it is meaningless
|
||||
// (actual memory is not allocated).
|
||||
- vpx_img_wrap(mVPXImageWrapper, IMG_FMT_I420,
|
||||
+ vpx_img_wrap(mVPXImageWrapper, VPX_IMG_FMT_I420,
|
||||
mFrameWidth, mFrameHeight, 1, nullptr);
|
||||
|
||||
config.g_w = mFrameWidth;
|
||||
@@ -239,9 +239,9 @@ void VP8TrackEncoder::PrepareMutedFrame()
|
||||
uint8_t *cb = mMuteFrame.Elements() + yPlaneSize;
|
||||
uint8_t *cr = mMuteFrame.Elements() + yPlaneSize + uvPlaneSize;
|
||||
|
||||
- mVPXImageWrapper->planes[PLANE_Y] = y;
|
||||
- mVPXImageWrapper->planes[PLANE_U] = cb;
|
||||
- mVPXImageWrapper->planes[PLANE_V] = cr;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = y;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = cb;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = cr;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = mFrameWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_U] = halfWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_V] = halfWidth;
|
||||
@@ -297,9 +297,9 @@ nsresult VP8TrackEncoder::PrepareRawFrame(VideoChunk &aChunk)
|
||||
const PlanarYCbCrImage::Data *data = yuv->GetData();
|
||||
|
||||
if (isYUV420(data) && !data->mCbSkip) { // 420 planar
|
||||
- mVPXImageWrapper->planes[PLANE_Y] = data->mYChannel;
|
||||
- mVPXImageWrapper->planes[PLANE_U] = data->mCbChannel;
|
||||
- mVPXImageWrapper->planes[PLANE_V] = data->mCrChannel;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = data->mYChannel;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = data->mCbChannel;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = data->mCrChannel;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = data->mYStride;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_U] = data->mCbCrStride;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_V] = data->mCbCrStride;
|
||||
@@ -355,9 +355,9 @@ nsresult VP8TrackEncoder::PrepareRawFrame(VideoChunk &aChunk)
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
- mVPXImageWrapper->planes[PLANE_Y] = y;
|
||||
- mVPXImageWrapper->planes[PLANE_U] = cb;
|
||||
- mVPXImageWrapper->planes[PLANE_V] = cr;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_Y] = y;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_U] = cb;
|
||||
+ mVPXImageWrapper->planes[VPX_PLANE_V] = cr;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_Y] = mFrameWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_U] = halfWidth;
|
||||
mVPXImageWrapper->stride[VPX_PLANE_V] = halfWidth;
|
||||
diff --git media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
||||
index d9c3a22..75195ae 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
||||
+++ media/webrtc/trunk/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc
|
||||
@@ -180,7 +180,7 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
|
||||
// Creating a wrapper to the image - setting image data to NULL. Actual
|
||||
// pointer will be set in encode. Setting align to 1, as it is meaningless
|
||||
// (actual memory is not allocated).
|
||||
- raw_ = vpx_img_wrap(NULL, IMG_FMT_I420, codec_.width, codec_.height,
|
||||
+ raw_ = vpx_img_wrap(NULL, VPX_IMG_FMT_I420, codec_.width, codec_.height,
|
||||
1, NULL);
|
||||
// populate encoder configuration with default values
|
||||
if (vpx_codec_enc_config_default(vpx_codec_vp8_cx(), config_, 0)) {
|
||||
@@ -349,9 +349,9 @@ int VP8EncoderImpl::Encode(const I420VideoFrame& input_image,
|
||||
}
|
||||
// Image in vpx_image_t format.
|
||||
// Input image is const. VP8's raw image is not defined as const.
|
||||
- raw_->planes[PLANE_Y] = const_cast<uint8_t*>(input_image.buffer(kYPlane));
|
||||
- raw_->planes[PLANE_U] = const_cast<uint8_t*>(input_image.buffer(kUPlane));
|
||||
- raw_->planes[PLANE_V] = const_cast<uint8_t*>(input_image.buffer(kVPlane));
|
||||
+ raw_->planes[VPX_PLANE_Y] = const_cast<uint8_t*>(input_image.buffer(kYPlane));
|
||||
+ raw_->planes[VPX_PLANE_U] = const_cast<uint8_t*>(input_image.buffer(kUPlane));
|
||||
+ raw_->planes[VPX_PLANE_V] = const_cast<uint8_t*>(input_image.buffer(kVPlane));
|
||||
// TODO(mikhal): Stride should be set in initialization.
|
||||
raw_->stride[VPX_PLANE_Y] = input_image.stride(kYPlane);
|
||||
raw_->stride[VPX_PLANE_U] = input_image.stride(kUPlane);
|
877
www/libxul/files/patch-bug1073117
Normal file
877
www/libxul/files/patch-bug1073117
Normal file
|
@ -0,0 +1,877 @@
|
|||
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", ¬ebook_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)
|
|
@ -1,18 +0,0 @@
|
|||
diff --git mfbt/Atomics.h mfbt/Atomics.h
|
||||
index 495a9d3..c7f7601 100644
|
||||
--- mfbt/Atomics.h
|
||||
+++ mfbt/Atomics.h
|
||||
@@ -34,10 +34,12 @@
|
||||
* loose typing of the atomic builtins. GCC 4.5 and 4.6 lacks inline
|
||||
* definitions for unspecialized std::atomic and causes linking errors.
|
||||
* Therefore, we require at least 4.7.0 for using libstdc++.
|
||||
+ *
|
||||
+ * libc++ <atomic> is only functional with clang.
|
||||
*/
|
||||
# if MOZ_USING_LIBSTDCXX && MOZ_LIBSTDCXX_VERSION_AT_LEAST(4, 7, 0)
|
||||
# define MOZ_HAVE_CXX11_ATOMICS
|
||||
-# elif MOZ_USING_LIBCXX
|
||||
+# elif MOZ_USING_LIBCXX && defined(__clang__)
|
||||
# define MOZ_HAVE_CXX11_ATOMICS
|
||||
# endif
|
||||
/*
|
|
@ -1,26 +0,0 @@
|
|||
commit 258ec90
|
||||
Author: Guilherme Goncalves <guilherme.p.gonc@gmail.com>
|
||||
Date: Fri Oct 17 15:55:00 2014 +0200
|
||||
|
||||
Bug 1082199 - Recompute stats in jemalloc_stats when using jemalloc3. r=glandium
|
||||
---
|
||||
memory/build/mozjemalloc_compat.c | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git memory/build/mozjemalloc_compat.c memory/build/mozjemalloc_compat.c
|
||||
index 78bb13a..70265a7 100644
|
||||
--- memory/build/mozjemalloc_compat.c
|
||||
+++ memory/build/mozjemalloc_compat.c
|
||||
@@ -68,6 +68,12 @@ jemalloc_stats_impl(jemalloc_stats_t *stats)
|
||||
size_t active, allocated, mapped, page, pdirty;
|
||||
size_t lg_chunk;
|
||||
|
||||
+ // Refresh jemalloc's stats by updating its epoch, see ctl_refresh in
|
||||
+ // src/ctl.c
|
||||
+ uint64_t epoch = 0;
|
||||
+ size_t esz = sizeof(epoch);
|
||||
+ int ret = je_(mallctl)("epoch", &epoch, &esz, &epoch, esz);
|
||||
+
|
||||
CTL_GET("arenas.narenas", narenas);
|
||||
CTL_GET("arenas.page", page);
|
||||
CTL_GET("stats.active", active);
|
|
@ -1,42 +0,0 @@
|
|||
diff --git configure.in configure.in
|
||||
index b2b45e7..dcfdfb7 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -8346,7 +8346,7 @@ case "$OS_TARGET" in
|
||||
NECKO_WIFI=1
|
||||
fi
|
||||
;;
|
||||
- Darwin|FreeBSD|SunOS|WINNT)
|
||||
+ Darwin|DragonFly|FreeBSD|SunOS|WINNT)
|
||||
NECKO_WIFI=1
|
||||
;;
|
||||
Linux)
|
||||
diff --git netwerk/wifi/moz.build netwerk/wifi/moz.build
|
||||
index d4de063..3949380 100644
|
||||
--- netwerk/wifi/moz.build
|
||||
+++ netwerk/wifi/moz.build
|
||||
@@ -35,7 +35,7 @@ if CONFIG['OS_ARCH'] == 'Darwin':
|
||||
UNIFIED_SOURCES += [
|
||||
'osx_corewlan.mm',
|
||||
]
|
||||
-elif CONFIG['OS_ARCH'] == 'FreeBSD':
|
||||
+elif CONFIG['OS_ARCH'] in ('DragonFly', 'FreeBSD'):
|
||||
UNIFIED_SOURCES += [
|
||||
'nsWifiScannerFreeBSD.cpp',
|
||||
]
|
||||
diff --git netwerk/wifi/nsWifiScannerFreeBSD.cpp netwerk/wifi/nsWifiScannerFreeBSD.cpp
|
||||
index bdf171e..4185d69 100644
|
||||
--- netwerk/wifi/nsWifiScannerFreeBSD.cpp
|
||||
+++ netwerk/wifi/nsWifiScannerFreeBSD.cpp
|
||||
@@ -13,7 +13,11 @@
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
#include <net/if_media.h>
|
||||
+#ifdef __DragonFly__
|
||||
+#include <netproto/802_11/ieee80211_ioctl.h>
|
||||
+#else
|
||||
#include <net80211/ieee80211_ioctl.h>
|
||||
+#endif
|
||||
|
||||
#include <ifaddrs.h>
|
||||
#include <string.h>
|
|
@ -1,14 +0,0 @@
|
|||
--- js/src/assembler/jit/ExecutableAllocator.h~
|
||||
+++ js/src/assembler/jit/ExecutableAllocator.h
|
||||
@@ -454,6 +454,11 @@ public:
|
||||
{
|
||||
User::IMB_Range(code, static_cast<char*>(code) + size);
|
||||
}
|
||||
+#elif WTF_CPU_ARM_TRADITIONAL && (WTF_OS_FREEBSD || WTF_OS_NETBSD)
|
||||
+ static void cacheFlush(void* code, size_t size)
|
||||
+ {
|
||||
+ __clear_cache(code, reinterpret_cast<char*>(code) + size);
|
||||
+ }
|
||||
#elif WTF_CPU_ARM_TRADITIONAL && WTF_OS_LINUX && WTF_COMPILER_RVCT
|
||||
static __asm void cacheFlush(void* code, size_t size);
|
||||
#elif WTF_CPU_ARM_TRADITIONAL && (WTF_OS_LINUX || WTF_OS_ANDROID) && WTF_COMPILER_GCC
|
|
@ -1,11 +0,0 @@
|
|||
--- js/src/jit/arm/Architecture-arm.cpp~
|
||||
+++ js/src/jit/arm/Architecture-arm.cpp
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
#define HWCAP_USE_HARDFP_ABI (1 << 28)
|
||||
|
||||
-#if !(defined(ANDROID) || defined(MOZ_B2G)) && !defined(JS_ARM_SIMULATOR)
|
||||
+#if defined(__linux__) && !defined(ANDROID) && !defined(MOZ_B2G) && !defined(JS_ARM_SIMULATOR)
|
||||
#define HWCAP_ARMv7 (1 << 29)
|
||||
#include <asm/hwcap.h>
|
||||
#else
|
|
@ -82,7 +82,7 @@ index 9bbc129..e72944a 100644
|
|||
|
||||
/* This should never happen. */
|
||||
if ((unsigned int) avail > stm->buffer_size) {
|
||||
@@ -355,17 +361,67 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
@@ -359,10 +365,11 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
if (got < 0) {
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_ERROR);
|
||||
|
@ -90,15 +90,19 @@ index 9bbc129..e72944a 100644
|
|||
return ERROR;
|
||||
}
|
||||
if (got > 0) {
|
||||
- snd_pcm_sframes_t wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
- snd_pcm_sframes_t wrote;
|
||||
+ snd_pcm_sframes_t wrote, towrite = got;
|
||||
|
||||
if (stm->params.format == CUBEB_SAMPLE_FLOAT32NE) {
|
||||
float * b = (float *) p;
|
||||
@@ -375,14 +382,62 @@ alsa_refill_stream(cubeb_stream * stm)
|
||||
b[i] *= stm->volume;
|
||||
}
|
||||
}
|
||||
- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
- if (wrote == -EPIPE) {
|
||||
- WRAP(snd_pcm_recover)(stm->pcm, wrote, 1);
|
||||
- wrote = WRAP(snd_pcm_writei)(stm->pcm, p, got);
|
||||
- }
|
||||
- assert(wrote >= 0 && wrote == got);
|
||||
- stm->write_position += wrote;
|
||||
- gettimeofday(&stm->last_activity, NULL);
|
||||
+ snd_pcm_sframes_t wrote, towrite = got;
|
||||
+ for (;;) {
|
||||
+ wrote = WRAP(snd_pcm_writei)(stm->pcm, p,
|
||||
+ towrite > avail ? avail : towrite);
|
||||
|
@ -154,7 +158,10 @@ index 9bbc129..e72944a 100644
|
|||
+ if (towrite == wrote)
|
||||
+ break;
|
||||
+ towrite -= wrote;
|
||||
+ }
|
||||
}
|
||||
- assert(wrote >= 0 && wrote == got);
|
||||
- stm->write_position += wrote;
|
||||
- gettimeofday(&stm->last_activity, NULL);
|
||||
}
|
||||
if (got != avail) {
|
||||
long buffer_fill = stm->buffer_size - (avail - got);
|
||||
|
|
134
www/libxul/files/patch-bug1138845
Normal file
134
www/libxul/files/patch-bug1138845
Normal file
|
@ -0,0 +1,134 @@
|
|||
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
|
46
www/libxul/files/patch-bug1143686
Normal file
46
www/libxul/files/patch-bug1143686
Normal file
|
@ -0,0 +1,46 @@
|
|||
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);
|
||||
|
33
www/libxul/files/patch-bug1144643
Normal file
33
www/libxul/files/patch-bug1144643
Normal file
|
@ -0,0 +1,33 @@
|
|||
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;
|
|
@ -4,33 +4,21 @@ Date: Wed Nov 30 07:23:46 2011 +0800
|
|||
|
||||
Bug 702179 dtrace probes are not installed on Solaris with static js lib r=glandium
|
||||
---
|
||||
configure.in | 2 +-
|
||||
js/src/Makefile.in | 2 --
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
js/src/Makefile.in | 3 ---
|
||||
toolkit/library/moz.build | 5 -----
|
||||
2 files changed, 8 deletions(-)
|
||||
|
||||
diff --git configure.in configure.in
|
||||
index 66549c1..75b848d 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -966,7 +966,7 @@ MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
|
||||
MOZ_PNG_CFLAGS="-I$_objdir/dist/include" # needed for freetype compilation
|
||||
MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/media/libpng)'
|
||||
|
||||
-MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(LIBXUL_DIST)/lib)'
|
||||
+MOZ_JS_STATIC_LIBS='$(call EXPAND_LIBNAME_PATH,js_static,$(DEPTH)/js/src)'
|
||||
MOZ_JS_SHARED_LIBS='$(call EXPAND_LIBNAME_PATH,mozjs,$(LIBXUL_DIST)/lib)'
|
||||
MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
|
||||
XPCOM_FROZEN_LDOPTS='$(call EXPAND_LIBNAME_PATH,xul mozalloc,$(LIBXUL_DIST)/bin)'
|
||||
diff --git js/src/Makefile.in js/src/Makefile.in
|
||||
index e28160a..28ca5e8 100644
|
||||
index 62bbfa0..90400cb 100644
|
||||
--- js/src/Makefile.in
|
||||
+++ js/src/Makefile.in
|
||||
@@ -18,8 +18,6 @@ run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
|
||||
STATIC_LIBRARY_NAME = js_static
|
||||
LIBS = $(NSPR_LIBS)
|
||||
@@ -17,9 +17,6 @@ TOPLEVEL_BUILD := 1
|
||||
run_for_side_effects := $(shell echo 'MAKE: $(MAKE)')
|
||||
EXTRA_LIBS += $(NSPR_LIBS)
|
||||
|
||||
-DIST_INSTALL = 1
|
||||
-NO_EXPAND_LIBS = 1
|
||||
-
|
||||
ifdef JS_STANDALONE
|
||||
SHARED_LIBRARY_LIBS += $(call EXPAND_LIBNAME_PATH,mfbt,$(DEPTH)/mfbt)
|
||||
ifndef MOZ_NATIVE_ZLIB
|
||||
ifdef JS_HAS_CTYPES
|
||||
ifdef MOZ_NATIVE_FFI
|
||||
LOCAL_INCLUDES = $(MOZ_FFI_CFLAGS)
|
||||
|
|
|
@ -47,7 +47,15 @@ diff --git mfbt/Attributes.h mfbt/Attributes.h
|
|||
index d317766..ddb13da 100644
|
||||
--- mfbt/Attributes.h
|
||||
+++ mfbt/Attributes.h
|
||||
@@ -54,6 +54,9 @@
|
||||
@@ -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
|
||||
|
@ -57,21 +65,13 @@ index d317766..ddb13da 100644
|
|||
# if __has_extension(cxx_constexpr)
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR
|
||||
# endif
|
||||
@@ -75,6 +78,9 @@
|
||||
@@ -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
|
||||
# if MOZ_GCC_VERSION_AT_LEAST(4, 7, 0)
|
||||
# define MOZ_HAVE_CXX11_OVERRIDE
|
||||
# define MOZ_HAVE_CXX11_FINAL final
|
||||
@@ -96,6 +102,7 @@
|
||||
# define MOZ_HAVE_NORETURN __attribute__((noreturn))
|
||||
#elif defined(_MSC_VER)
|
||||
# if _MSC_VER >= 1800
|
||||
+# define MOZ_HAVE_CXX11_ALIGNAS
|
||||
# define MOZ_HAVE_CXX11_DELETE
|
||||
# define MOZ_HAVE_CXX11_CONSTEXPR
|
||||
# define MOZ_HAVE_EXPLICIT_CONVERSION
|
||||
# endif
|
||||
# if _MSC_VER >= 1700
|
||||
|
|
|
@ -51,18 +51,18 @@ index b483cd1..f1dd1f0 100644
|
|||
# basic stuff for everything
|
||||
'include_internal_video_render': 0,
|
||||
'clang_use_chrome_plugins': 0,
|
||||
diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in
|
||||
diff --git media/webrtc/signaling/test/moz.build media/webrtc/signaling/test/moz.build
|
||||
index b483cd1..f1dd1f0 100644
|
||||
--- media/webrtc/signaling/test/Makefile.in
|
||||
+++ media/webrtc/signaling/test/Makefile.in
|
||||
@@ -7,6 +7,7 @@ LIBS = \
|
||||
$(NSPR_LIBS) \
|
||||
$(NSS_LIBS) \
|
||||
$(REALTIME_LIBS) \
|
||||
+ $(MOZ_LIBV4L2_LIBS) \
|
||||
$(DEPTH)/xpcom/glue/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) \
|
||||
$(DEPTH)/media/mtransport/standalone/$(LIB_PREFIX)mtransport_s.$(LIB_SUFFIX) \
|
||||
$(DEPTH)/media/webrtc/signalingtest/signaling_ecc/$(LIB_PREFIX)ecc.$(LIB_SUFFIX) \
|
||||
--- media/webrtc/signaling/test/moz.build
|
||||
+++ media/webrtc/signaling/test/moz.build
|
||||
@@ -122,6 +122,7 @@ if CONFIG['JS_SHARED_LIBRARY']:
|
||||
'js',
|
||||
]
|
||||
|
||||
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
||||
diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
|
||||
index 239a292..bab496c 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
|
||||
|
@ -145,35 +145,35 @@ index d46b5aa..e452223 100644
|
|||
'targets': [
|
||||
{
|
||||
'target_name': 'video_capture_module',
|
||||
@@ -49,6 +52,16 @@
|
||||
}, { # include_internal_video_capture == 1
|
||||
'conditions': [
|
||||
['include_v4l2_video_capture==1', {
|
||||
+ 'conditions': [
|
||||
+ ['use_libv4l2==1', {
|
||||
+ 'defines': [
|
||||
+ 'HAVE_LIBV4L2',
|
||||
+ ],
|
||||
+ 'libraries': [
|
||||
+ '-lv4l2',
|
||||
+ ],
|
||||
+ }],
|
||||
@@ -69,6 +72,19 @@
|
||||
'linux/video_capture_linux.cc',
|
||||
'linux/video_capture_linux.h',
|
||||
],
|
||||
+ 'conditions': [
|
||||
+ ['use_libv4l2==1', {
|
||||
+ 'defines': [
|
||||
+ 'HAVE_LIBV4L2',
|
||||
+ ],
|
||||
'include_dirs': [
|
||||
'linux',
|
||||
],
|
||||
diff --git toolkit/library/Makefile.in toolkit/library/Makefile.in
|
||||
+ 'cflags_mozilla': [
|
||||
+ '$(MOZ_LIBV4L2_CFLAGS)',
|
||||
+ ],
|
||||
+ 'libraries': [
|
||||
+ '-lv4l2',
|
||||
+ ],
|
||||
+ }],
|
||||
+ ],
|
||||
}], # linux
|
||||
['OS=="mac"', {
|
||||
'sources': [
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index 9c16ffa..1db3794 100644
|
||||
--- toolkit/library/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -182,6 +182,10 @@ endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -163,6 +163,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
|
||||
]
|
||||
|
||||
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,gkmedias,$(DIST)/lib)
|
||||
OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
|
||||
+OS_LIBS += CONFIG['MOZ_LIBV4L2_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_APP_EXTRA_LIBS']
|
||||
|
||||
+ifdef MOZ_LIBV4L2_LIBS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_LIBV4L2_LIBS)
|
||||
+endif
|
||||
+
|
||||
ifdef MOZ_WEBRTC
|
||||
ifeq (WINNT,$(OS_TARGET))
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
|
|
|
@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
|
|||
index 14bfc0d..5383399 100644
|
||||
--- config/Makefile.in
|
||||
+++ config/Makefile.in
|
||||
@@ -77,6 +77,8 @@ export:: $(export-preqs)
|
||||
@@ -75,6 +75,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
|
||||
@@ -1145,3 +1145,11 @@ unicode/utypes.h
|
||||
@@ -1357,3 +1357,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
|
||||
@@ -8032,6 +8032,52 @@ if test "$USE_FC_FREETYPE"; then
|
||||
@@ -7986,6 +7986,49 @@ if test "$USE_FC_FREETYPE"; then
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
|
@ -46,16 +46,15 @@ index ac38f40..87536b7 100644
|
|||
+MOZ_NATIVE_HARFBUZZ=)
|
||||
+
|
||||
+if test -n "$MOZ_NATIVE_HARFBUZZ"; then
|
||||
+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.25)
|
||||
+ PKG_CHECK_MODULES(MOZ_HARFBUZZ, harfbuzz >= 0.9.34)
|
||||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_HARFBUZZ)
|
||||
+AC_SUBST(MOZ_HARFBUZZ_CFLAGS)
|
||||
+AC_SUBST(MOZ_HARFBUZZ_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for graphite2
|
||||
+dnl ========================================================
|
||||
+
|
||||
+MOZ_ARG_WITH_BOOL(system-graphite2,
|
||||
+[ --with-system-graphite2 Use system graphite2 (located with pkgconfig)],
|
||||
+MOZ_NATIVE_GRAPHITE2=1,
|
||||
|
@ -79,27 +78,58 @@ index ac38f40..87536b7 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_GRAPHITE2)
|
||||
+AC_SUBST(MOZ_GRAPHITE2_CFLAGS)
|
||||
+AC_SUBST(MOZ_GRAPHITE2_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
dnl Check for pixman and cairo
|
||||
dnl ========================================================
|
||||
|
||||
diff --git content/base/src/moz.build content/base/src/moz.build
|
||||
index d4f6380..0ee55df 100644
|
||||
--- content/base/src/moz.build
|
||||
+++ content/base/src/moz.build
|
||||
@@ -179,6 +179,9 @@ SOURCES += [
|
||||
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',
|
||||
]
|
||||
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ SOURCES['nsContentUtils.cpp'].flags += [CONFIG['MOZ_HARFBUZZ_CFLAGS']]
|
||||
+ SOURCES['nsContentUtils.cpp'].flags += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
EXTRA_COMPONENTS += [
|
||||
'contentAreaDropListener.js',
|
||||
'contentAreaDropListener.manifest',
|
||||
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
|
||||
@@ -23,8 +23,14 @@ echo "\nSee" $0 "for update procedure.\n" >> gfx/graphite2/README.mozilla
|
||||
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/;" {} \;
|
||||
|
||||
+# closest tag/release to require for system version
|
||||
+TAG=$(cd ../graphitedev/ && hg parents --template {latesttag})
|
||||
+
|
||||
+perl -p -i -e "s/[0-9]+\,[0-9]+\,[0-9]+/$TAG/ and tr/./,/ \
|
||||
+ if /GR2_VERSION_REQUIRE/" configure.in
|
||||
+
|
||||
# summarize what's been touched
|
||||
-echo Updated to $CHANGESET.
|
||||
+echo Updated to $CHANGESET \($TAG for --with-system-graphite2\)
|
||||
echo Here is what changed in the gfx/graphite2 directory:
|
||||
echo
|
||||
|
||||
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
|
||||
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.
|
||||
+
|
||||
+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
|
||||
+with checkout version or increment latest tag by one if it's not based
|
||||
+on upstream release.
|
||||
diff --git gfx/moz.build gfx/moz.build
|
||||
index 519aa46..6929751 100644
|
||||
--- gfx/moz.build
|
||||
|
@ -126,83 +156,87 @@ index 519aa46..6929751 100644
|
|||
'ots/src',
|
||||
'thebes',
|
||||
'ipc',
|
||||
diff --git gfx/skia/Makefile.in gfx/skia/Makefile.in
|
||||
index ee0efb2..98e169d6f 100644
|
||||
--- gfx/skia/Makefile.in
|
||||
+++ gfx/skia/Makefile.in
|
||||
@@ -15,6 +15,10 @@ ifeq (qt,$(MOZ_WIDGET_TOOLKIT))
|
||||
OS_CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PANGO_CFLAGS) $(CAIRO_FT_CFLAGS)
|
||||
endif
|
||||
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']
|
||||
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+OS_CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
|
||||
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||
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']
|
||||
|
||||
ifeq ($(CPU_ARCH)_$(GNU_CC),arm_1)
|
||||
diff --git gfx/thebes/Makefile.in gfx/thebes/Makefile.in
|
||||
index 45c36ae..79d32cf 100644
|
||||
--- gfx/thebes/Makefile.in
|
||||
+++ gfx/thebes/Makefile.in
|
||||
@@ -13,6 +13,14 @@ DEFINES := $(filter-out -DUNICODE,$(DEFINES))
|
||||
CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
|
||||
CFLAGS += $(MOZ_CAIRO_CFLAGS) $(TK_CFLAGS)
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('gtk2', 'gtk3', 'android', 'gonk', 'qt'):
|
||||
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||
diff --git gfx/thebes/moz.build gfx/thebes/moz.build
|
||||
index d5852fa..aeeab25 100644
|
||||
--- gfx/thebes/moz.build
|
||||
+++ gfx/thebes/moz.build
|
||||
@@ -278,6 +278,12 @@ CXXFLAGS += CONFIG['TK_CFLAGS']
|
||||
CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
|
||||
CFLAGS += CONFIG['TK_CFLAGS']
|
||||
|
||||
+ifdef MOZ_NATIVE_GRAPHITE2
|
||||
+CXXFLAGS += $(MOZ_GRAPHITE2_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_GRAPHITE2']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_GRAPHITE2_CFLAGS']
|
||||
+
|
||||
ifeq ($(MOZ_WIDGET_TOOLKIT),android)
|
||||
CXXFLAGS += $(CAIRO_FT_CFLAGS)
|
||||
endif
|
||||
diff --git intl/unicharutil/util/Makefile.in intl/unicharutil/util/Makefile.in
|
||||
index f6b9f7c..60863f4 100644
|
||||
--- intl/unicharutil/util/Makefile.in
|
||||
+++ intl/unicharutil/util/Makefile.in
|
||||
@@ -21,3 +21,7 @@ ifdef _MSC_VER
|
||||
OS_COMPILE_CXXFLAGS += -Zl
|
||||
OS_COMPILE_CFLAGS += -Zl
|
||||
endif
|
||||
+
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
diff --git netwerk/dns/Makefile.in netwerk/dns/Makefile.in
|
||||
index 1cacbd7..f5d72bb 100644
|
||||
--- netwerk/dns/Makefile.in
|
||||
+++ netwerk/dns/Makefile.in
|
||||
@@ -5,6 +5,10 @@
|
||||
if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk', 'qt'):
|
||||
CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
diff --git intl/unicharutil/util/moz.build intl/unicharutil/util/moz.build
|
||||
index d736943..41a931f 100644
|
||||
--- intl/unicharutil/util/moz.build
|
||||
+++ intl/unicharutil/util/moz.build
|
||||
@@ -37,3 +37,6 @@ if CONFIG['_MSC_VER']:
|
||||
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+CXXFLAGS += $(MOZ_HARFBUZZ_CFLAGS)
|
||||
+endif
|
||||
if CONFIG['ENABLE_INTL_API']:
|
||||
CXXFLAGS += CONFIG['MOZ_ICU_CFLAGS']
|
||||
+
|
||||
# Generate the include file containing compact, static definitions
|
||||
# for effective TLD data.
|
||||
etld_data.inc: $(srcdir)/prepare_tlds.py $(srcdir)/effective_tld_names.dat
|
||||
diff --git toolkit/library/libxul.mk toolkit/library/libxul.mk
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
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 += [
|
||||
'/netwerk/base',
|
||||
]
|
||||
+
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_HARFBUZZ_CFLAGS']
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index 67f0db9..d42137a 100644
|
||||
--- toolkit/library/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -89,6 +89,14 @@ ifndef MOZ_TREE_PIXMAN
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_PIXMAN_LIBS)
|
||||
endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -187,6 +187,12 @@ if CONFIG['MOZ_NATIVE_LIBVPX']:
|
||||
if not CONFIG['MOZ_TREE_PIXMAN']:
|
||||
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
|
||||
|
||||
+ifdef MOZ_NATIVE_GRAPHITE2
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_GRAPHITE2_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_GRAPHITE2']:
|
||||
+ OS_LIBS += CONFIG['MOZ_GRAPHITE2_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_HARFBUZZ
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_HARFBUZZ_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_HARFBUZZ']:
|
||||
+ OS_LIBS += CONFIG['MOZ_HARFBUZZ_LIBS']
|
||||
+
|
||||
ifdef MOZ_DMD
|
||||
EXTRA_DSO_LDOPTS += $(call EXPAND_LIBNAME_PATH,dmd,$(DIST)/lib)
|
||||
endif
|
||||
if CONFIG['MOZ_OSS']:
|
||||
OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
|
|
|
@ -1,391 +0,0 @@
|
|||
commit a33d4f7
|
||||
Author: Martin Stransky <stransky@redhat.com>
|
||||
Date: Fri Nov 14 04:04:00 2014 +0100
|
||||
|
||||
Bug 858919 - Add support for libnotify calls which was removed for new notification API. r=karlt
|
||||
---
|
||||
toolkit/components/alerts/nsAlertsService.cpp | 10 +--
|
||||
toolkit/system/gnome/moz.build | 2 +
|
||||
toolkit/system/gnome/nsAlertsIconListener.cpp | 64 ++++++++++++------
|
||||
toolkit/system/gnome/nsAlertsIconListener.h | 89 ++++++++++++++++++++++++++
|
||||
toolkit/system/gnome/nsGnomeModule.cpp | 5 ++
|
||||
toolkit/system/gnome/nsSystemAlertsService.cpp | 54 ++++++++++++++++
|
||||
toolkit/system/gnome/nsSystemAlertsService.h | 27 ++++++++
|
||||
7 files changed, 226 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git toolkit/components/alerts/nsAlertsService.cpp toolkit/components/alerts/nsAlertsService.cpp
|
||||
index 93f4536..f8b5e07 100644
|
||||
--- toolkit/components/alerts/nsAlertsService.cpp
|
||||
+++ toolkit/components/alerts/nsAlertsService.cpp
|
||||
@@ -100,9 +100,11 @@ NS_IMETHODIMP nsAlertsService::ShowAlertNotification(const nsAString & aImageUrl
|
||||
nsCOMPtr<nsIAlertsService> sysAlerts(do_GetService(NS_SYSTEMALERTSERVICE_CONTRACTID));
|
||||
nsresult rv;
|
||||
if (sysAlerts) {
|
||||
- return sysAlerts->ShowAlertNotification(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable,
|
||||
- aAlertCookie, aAlertListener, aAlertName,
|
||||
- aBidi, aLang, IPC::Principal(aPrincipal));
|
||||
+ rv = sysAlerts->ShowAlertNotification(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable,
|
||||
+ aAlertCookie, aAlertListener, aAlertName,
|
||||
+ aBidi, aLang, IPC::Principal(aPrincipal));
|
||||
+ if (NS_SUCCEEDED(rv))
|
||||
+ return NS_OK;
|
||||
}
|
||||
|
||||
if (!ShouldShowAlert()) {
|
||||
diff --git toolkit/system/gnome/moz.build toolkit/system/gnome/moz.build
|
||||
index c033f8b..9242209 100644
|
||||
--- toolkit/system/gnome/moz.build
|
||||
+++ toolkit/system/gnome/moz.build
|
||||
@@ -5,7 +5,9 @@
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
SOURCES += [
|
||||
+ 'nsAlertsIconListener.cpp',
|
||||
'nsGnomeModule.cpp',
|
||||
+ 'nsSystemAlertsService.cpp',
|
||||
]
|
||||
|
||||
if CONFIG['MOZ_ENABLE_GCONF']:
|
||||
diff --git toolkit/system/gnome/nsAlertsIconListener.cpp toolkit/system/gnome/nsAlertsIconListener.cpp
|
||||
index f39335e..55f4356 100644
|
||||
--- toolkit/system/gnome/nsAlertsIconListener.cpp
|
||||
+++ toolkit/system/gnome/nsAlertsIconListener.cpp
|
||||
@@ -51,6 +51,21 @@ static void notify_closed_marshal(GClosure* closure,
|
||||
NS_RELEASE(alert);
|
||||
}
|
||||
|
||||
+static GdkPixbuf*
|
||||
+GetPixbufFromImgRequest(imgIRequest* aRequest)
|
||||
+{
|
||||
+ nsCOMPtr<imgIContainer> image;
|
||||
+ nsresult rv = aRequest->GetImage(getter_AddRefs(image));
|
||||
+ if (NS_FAILED(rv)) {
|
||||
+ return nullptr;
|
||||
+ }
|
||||
+
|
||||
+ nsCOMPtr<nsIImageToPixbuf> imgToPixbuf =
|
||||
+ do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1");
|
||||
+
|
||||
+ return imgToPixbuf->ConvertImageToPixbuf(image);
|
||||
+}
|
||||
+
|
||||
NS_IMPL_ISUPPORTS(nsAlertsIconListener, imgINotificationObserver,
|
||||
nsIObserver, nsISupportsWeakReference)
|
||||
|
||||
@@ -106,47 +121,45 @@ nsAlertsIconListener::Notify(imgIRequest *aRequest, int32_t aType, const nsIntRe
|
||||
nsresult
|
||||
nsAlertsIconListener::OnStopRequest(imgIRequest* aRequest)
|
||||
{
|
||||
+ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!");
|
||||
+
|
||||
uint32_t imgStatus = imgIRequest::STATUS_ERROR;
|
||||
nsresult rv = aRequest->GetImageStatus(&imgStatus);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
if (imgStatus == imgIRequest::STATUS_ERROR && !mLoadedFrame) {
|
||||
// We have an error getting the image. Display the notification with no icon.
|
||||
ShowAlert(nullptr);
|
||||
- }
|
||||
|
||||
- if (mIconRequest) {
|
||||
+ // Cancel any pending request
|
||||
mIconRequest->Cancel(NS_BINDING_ABORTED);
|
||||
mIconRequest = nullptr;
|
||||
}
|
||||
+
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsAlertsIconListener::OnStopFrame(imgIRequest* aRequest)
|
||||
{
|
||||
- if (aRequest != mIconRequest)
|
||||
- return NS_ERROR_FAILURE;
|
||||
+ NS_ASSERTION(mIconRequest == aRequest, "aRequest does not match!");
|
||||
|
||||
if (mLoadedFrame)
|
||||
return NS_OK; // only use one frame
|
||||
|
||||
- nsCOMPtr<imgIContainer> image;
|
||||
- nsresult rv = aRequest->GetImage(getter_AddRefs(image));
|
||||
- if (NS_FAILED(rv))
|
||||
- return rv;
|
||||
-
|
||||
- nsCOMPtr<nsIImageToPixbuf> imgToPixbuf =
|
||||
- do_GetService("@mozilla.org/widget/image-to-gdk-pixbuf;1");
|
||||
-
|
||||
- GdkPixbuf* imagePixbuf = imgToPixbuf->ConvertImageToPixbuf(image);
|
||||
- if (!imagePixbuf)
|
||||
- return NS_ERROR_FAILURE;
|
||||
+ GdkPixbuf* imagePixbuf = GetPixbufFromImgRequest(aRequest);
|
||||
+ if (!imagePixbuf) {
|
||||
+ ShowAlert(nullptr);
|
||||
+ } else {
|
||||
+ ShowAlert(imagePixbuf);
|
||||
+ g_object_unref(imagePixbuf);
|
||||
+ }
|
||||
|
||||
- ShowAlert(imagePixbuf);
|
||||
+ mLoadedFrame = true;
|
||||
|
||||
- g_object_unref(imagePixbuf);
|
||||
+ // Cancel any pending request (multipart image loading/decoding for instance)
|
||||
+ mIconRequest->Cancel(NS_BINDING_ABORTED);
|
||||
+ mIconRequest = nullptr;
|
||||
|
||||
- mLoadedFrame = true;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -180,6 +193,9 @@ nsAlertsIconListener::ShowAlert(GdkPixbuf* aPixbuf)
|
||||
mClosureHandler = g_signal_connect_closure(mNotification, "closed", closure, FALSE);
|
||||
gboolean result = notify_notification_show(mNotification, nullptr);
|
||||
|
||||
+ if (result && mAlertListener)
|
||||
+ mAlertListener->Observe(nullptr, "alertshow", mAlertCookie.get());
|
||||
+
|
||||
return result ? NS_OK : NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
@@ -201,9 +217,15 @@ nsAlertsIconListener::StartRequest(const nsAString & aImageUrl)
|
||||
if (!il)
|
||||
return ShowAlert(nullptr);
|
||||
|
||||
- return il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr,
|
||||
- this, nullptr, nsIRequest::LOAD_NORMAL, nullptr,
|
||||
- nullptr, getter_AddRefs(mIconRequest));
|
||||
+ nsresult rv = il->LoadImageXPCOM(imageUri, nullptr, nullptr, nullptr, nullptr,
|
||||
+ this, nullptr, nsIRequest::LOAD_NORMAL, nullptr,
|
||||
+ 0 /* use default */, getter_AddRefs(mIconRequest));
|
||||
+ if (NS_FAILED(rv))
|
||||
+ return rv;
|
||||
+
|
||||
+ mIconRequest->StartDecoding();
|
||||
+
|
||||
+ return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
diff --git toolkit/system/gnome/nsAlertsIconListener.h toolkit/system/gnome/nsAlertsIconListener.h
|
||||
new file mode 100644
|
||||
index 0000000..ac96db9
|
||||
--- /dev/null
|
||||
+++ toolkit/system/gnome/nsAlertsIconListener.h
|
||||
@@ -0,0 +1,89 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef nsAlertsIconListener_h__
|
||||
+#define nsAlertsIconListener_h__
|
||||
+
|
||||
+#include "nsCOMPtr.h"
|
||||
+#include "imgINotificationObserver.h"
|
||||
+#include "nsStringAPI.h"
|
||||
+#include "nsIObserver.h"
|
||||
+#include "nsWeakReference.h"
|
||||
+
|
||||
+#include <gdk-pixbuf/gdk-pixbuf.h>
|
||||
+
|
||||
+class imgIRequest;
|
||||
+
|
||||
+struct NotifyNotification;
|
||||
+
|
||||
+class nsAlertsIconListener : public imgINotificationObserver,
|
||||
+ public nsIObserver,
|
||||
+ public nsSupportsWeakReference
|
||||
+{
|
||||
+public:
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+ NS_DECL_IMGINOTIFICATIONOBSERVER
|
||||
+ NS_DECL_NSIOBSERVER
|
||||
+
|
||||
+ nsAlertsIconListener();
|
||||
+
|
||||
+ nsresult InitAlertAsync(const nsAString & aImageUrl,
|
||||
+ const nsAString & aAlertTitle,
|
||||
+ const nsAString & aAlertText,
|
||||
+ bool aAlertTextClickable,
|
||||
+ const nsAString & aAlertCookie,
|
||||
+ nsIObserver * aAlertListener);
|
||||
+
|
||||
+ void SendCallback();
|
||||
+ void SendClosed();
|
||||
+
|
||||
+protected:
|
||||
+ virtual ~nsAlertsIconListener();
|
||||
+
|
||||
+ nsresult OnStopRequest(imgIRequest* aRequest);
|
||||
+ nsresult OnStopFrame(imgIRequest* aRequest);
|
||||
+
|
||||
+ /**
|
||||
+ * The only difference between libnotify.so.4 and libnotify.so.1 for these symbols
|
||||
+ * is that notify_notification_new takes three arguments in libnotify.so.4 and
|
||||
+ * four in libnotify.so.1.
|
||||
+ * Passing the fourth argument as NULL is binary compatible.
|
||||
+ */
|
||||
+ typedef void (*NotifyActionCallback)(NotifyNotification*, char*, gpointer);
|
||||
+ typedef bool (*notify_is_initted_t)(void);
|
||||
+ typedef bool (*notify_init_t)(const char*);
|
||||
+ typedef GList* (*notify_get_server_caps_t)(void);
|
||||
+ typedef NotifyNotification* (*notify_notification_new_t)(const char*, const char*, const char*, const char*);
|
||||
+ typedef bool (*notify_notification_show_t)(void*, char*);
|
||||
+ typedef void (*notify_notification_set_icon_from_pixbuf_t)(void*, GdkPixbuf*);
|
||||
+ typedef void (*notify_notification_add_action_t)(void*, const char*, const char*, NotifyActionCallback, gpointer, GFreeFunc);
|
||||
+
|
||||
+ nsCOMPtr<imgIRequest> mIconRequest;
|
||||
+ nsCString mAlertTitle;
|
||||
+ nsCString mAlertText;
|
||||
+
|
||||
+ nsCOMPtr<nsIObserver> mAlertListener;
|
||||
+ nsString mAlertCookie;
|
||||
+
|
||||
+ bool mLoadedFrame;
|
||||
+ bool mAlertHasAction;
|
||||
+
|
||||
+ static void* libNotifyHandle;
|
||||
+ static bool libNotifyNotAvail;
|
||||
+ static notify_is_initted_t notify_is_initted;
|
||||
+ static notify_init_t notify_init;
|
||||
+ static notify_get_server_caps_t notify_get_server_caps;
|
||||
+ static notify_notification_new_t notify_notification_new;
|
||||
+ static notify_notification_show_t notify_notification_show;
|
||||
+ static notify_notification_set_icon_from_pixbuf_t notify_notification_set_icon_from_pixbuf;
|
||||
+ static notify_notification_add_action_t notify_notification_add_action;
|
||||
+ NotifyNotification* mNotification;
|
||||
+ gulong mClosureHandler;
|
||||
+
|
||||
+ nsresult StartRequest(const nsAString & aImageUrl);
|
||||
+ nsresult ShowAlert(GdkPixbuf* aPixbuf);
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
diff --git toolkit/system/gnome/nsGnomeModule.cpp toolkit/system/gnome/nsGnomeModule.cpp
|
||||
index 5ccc8e5..f893893 100644
|
||||
--- toolkit/system/gnome/nsGnomeModule.cpp
|
||||
+++ toolkit/system/gnome/nsGnomeModule.cpp
|
||||
@@ -22,6 +22,8 @@ NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGnomeVFSService, Init)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsGIOService)
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGSettingsService, Init)
|
||||
#endif
|
||||
+#include "nsSystemAlertsService.h"
|
||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsSystemAlertsService, Init)
|
||||
|
||||
#ifdef MOZ_ENABLE_GCONF
|
||||
NS_DEFINE_NAMED_CID(NS_GCONFSERVICE_CID);
|
||||
@@ -33,6 +35,7 @@ NS_DEFINE_NAMED_CID(NS_GNOMEVFSSERVICE_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_GIOSERVICE_CID);
|
||||
NS_DEFINE_NAMED_CID(NS_GSETTINGSSERVICE_CID);
|
||||
#endif
|
||||
+NS_DEFINE_NAMED_CID(NS_SYSTEMALERTSSERVICE_CID);
|
||||
|
||||
static const mozilla::Module::CIDEntry kGnomeCIDs[] = {
|
||||
#ifdef MOZ_ENABLE_GCONF
|
||||
@@ -45,6 +48,7 @@ static const mozilla::Module::CIDEntry kGnomeCIDs[] = {
|
||||
{ &kNS_GIOSERVICE_CID, false, nullptr, nsGIOServiceConstructor },
|
||||
{ &kNS_GSETTINGSSERVICE_CID, false, nullptr, nsGSettingsServiceConstructor },
|
||||
#endif
|
||||
+ { &kNS_SYSTEMALERTSSERVICE_CID, false, nullptr, nsSystemAlertsServiceConstructor },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
@@ -59,6 +63,7 @@ static const mozilla::Module::ContractIDEntry kGnomeContracts[] = {
|
||||
{ NS_GIOSERVICE_CONTRACTID, &kNS_GIOSERVICE_CID },
|
||||
{ NS_GSETTINGSSERVICE_CONTRACTID, &kNS_GSETTINGSSERVICE_CID },
|
||||
#endif
|
||||
+ { NS_SYSTEMALERTSERVICE_CONTRACTID, &kNS_SYSTEMALERTSSERVICE_CID },
|
||||
{ nullptr }
|
||||
};
|
||||
|
||||
diff --git toolkit/system/gnome/nsSystemAlertsService.cpp toolkit/system/gnome/nsSystemAlertsService.cpp
|
||||
new file mode 100644
|
||||
index 0000000..b91b402
|
||||
--- /dev/null
|
||||
+++ toolkit/system/gnome/nsSystemAlertsService.cpp
|
||||
@@ -0,0 +1,53 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode:nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "nsXULAppAPI.h"
|
||||
+#include "nsSystemAlertsService.h"
|
||||
+#include "nsAlertsIconListener.h"
|
||||
+#include "nsAutoPtr.h"
|
||||
+
|
||||
+NS_IMPL_ADDREF(nsSystemAlertsService)
|
||||
+NS_IMPL_RELEASE(nsSystemAlertsService)
|
||||
+
|
||||
+NS_INTERFACE_MAP_BEGIN(nsSystemAlertsService)
|
||||
+ NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAlertsService)
|
||||
+ NS_INTERFACE_MAP_ENTRY(nsIAlertsService)
|
||||
+NS_INTERFACE_MAP_END_THREADSAFE
|
||||
+
|
||||
+nsSystemAlertsService::nsSystemAlertsService()
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+nsSystemAlertsService::~nsSystemAlertsService()
|
||||
+{}
|
||||
+
|
||||
+nsresult
|
||||
+nsSystemAlertsService::Init()
|
||||
+{
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP nsSystemAlertsService::ShowAlertNotification(const nsAString & aImageUrl, const nsAString & aAlertTitle,
|
||||
+ const nsAString & aAlertText, bool aAlertTextClickable,
|
||||
+ const nsAString & aAlertCookie,
|
||||
+ nsIObserver * aAlertListener,
|
||||
+ const nsAString & aAlertName,
|
||||
+ const nsAString & aBidi,
|
||||
+ const nsAString & aLang,
|
||||
+ nsIPrincipal * aPrincipal)
|
||||
+{
|
||||
+ nsRefPtr<nsAlertsIconListener> alertListener = new nsAlertsIconListener();
|
||||
+ if (!alertListener)
|
||||
+ return NS_ERROR_OUT_OF_MEMORY;
|
||||
+
|
||||
+ return alertListener->InitAlertAsync(aImageUrl, aAlertTitle, aAlertText, aAlertTextClickable,
|
||||
+ aAlertCookie, aAlertListener);
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP nsSystemAlertsService::CloseAlert(const nsAString& aAlertName,
|
||||
+ nsIPrincipal* aPrincipal)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
diff --git toolkit/system/gnome/nsSystemAlertsService.h toolkit/system/gnome/nsSystemAlertsService.h
|
||||
new file mode 100644
|
||||
index 0000000..b0bd625
|
||||
--- /dev/null
|
||||
+++ toolkit/system/gnome/nsSystemAlertsService.h
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef nsSystemAlertsService_h__
|
||||
+#define nsSystemAlertsService_h__
|
||||
+
|
||||
+#include "nsIAlertsService.h"
|
||||
+#include "nsCOMPtr.h"
|
||||
+
|
||||
+class nsSystemAlertsService : public nsIAlertsService
|
||||
+{
|
||||
+public:
|
||||
+ NS_DECL_NSIALERTSSERVICE
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+
|
||||
+ nsSystemAlertsService();
|
||||
+
|
||||
+ nsresult Init();
|
||||
+
|
||||
+protected:
|
||||
+ virtual ~nsSystemAlertsService();
|
||||
+
|
||||
+};
|
||||
+
|
||||
+#endif /* nsSystemAlertsService_h__ */
|
|
@ -1,266 +0,0 @@
|
|||
commit d099acd
|
||||
Author: Trevor Saunders <trev.saunders@gmail.com>
|
||||
Date: Fri Jan 17 15:08:00 2014 -0800
|
||||
|
||||
Bug 961264 - Remove obsolete checks for gcc visibility stuff.
|
||||
---
|
||||
configure.in | 115 +++-------------------------------------------------
|
||||
js/src/configure.in | 111 ++------------------------------------------------
|
||||
2 files changed, 8 insertions(+), 218 deletions(-)
|
||||
|
||||
diff --git configure.in configure.in
|
||||
index dfb8193..33d71b3 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -2507,118 +2507,15 @@ MOZ_CXX11
|
||||
|
||||
AC_LANG_C
|
||||
|
||||
-dnl Check for .hidden assembler directive and visibility attribute.
|
||||
-dnl Borrowed from glibc configure.in
|
||||
+dnl Setup default hidden visibility and wrapped system headers.
|
||||
dnl ===============================================================
|
||||
if test "$GNU_CC"; then
|
||||
- AC_CACHE_CHECK(for visibility(hidden) attribute,
|
||||
- ac_cv_visibility_hidden,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("hidden"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_hidden=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_hidden=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_hidden" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility(default) attribute,
|
||||
- ac_cv_visibility_default,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("default"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_default=no
|
||||
- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_default=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_default" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility pragma support,
|
||||
- ac_cv_visibility_pragma,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
- int foo_hidden = 1;
|
||||
-#pragma GCC visibility push(default)
|
||||
- int foo_default = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_pragma=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
|
||||
- ac_cv_visibility_pragma=yes
|
||||
- fi
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_pragma" = "yes"; then
|
||||
- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
|
||||
- ac_cv_have_visibility_class_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-struct __attribute__ ((visibility ("default"))) TestStruct {
|
||||
- static void Init();
|
||||
-};
|
||||
-__attribute__ ((visibility ("default"))) void TestFunc() {
|
||||
- TestStruct::Init();
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_class_bug=no
|
||||
- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- else
|
||||
- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -rf conftest.{c,S}
|
||||
- ])
|
||||
-
|
||||
- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
|
||||
- ac_cv_have_visibility_builtin_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-#pragma GCC visibility push(default)
|
||||
-#include <string.h>
|
||||
-#pragma GCC visibility pop
|
||||
-
|
||||
-__attribute__ ((visibility ("default"))) void Func() {
|
||||
- char c[[100]];
|
||||
- memset(c, 0, sizeof(c));
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_builtin_bug=no
|
||||
- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_builtin_bug=yes
|
||||
- else
|
||||
- if test `grep -c "@PLT" conftest.S` = 0; then
|
||||
- ac_cv_visibility_builtin_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.{c,S}
|
||||
- ])
|
||||
- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
|
||||
- "$ac_cv_have_visibility_class_bug" = "no"; then
|
||||
- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
- WRAP_SYSTEM_INCLUDES=1
|
||||
- STL_FLAGS='-I$(DIST)/stl_wrappers'
|
||||
- WRAP_STL_INCLUDES=1
|
||||
- else
|
||||
- VISIBILITY_FLAGS='-fvisibility=hidden'
|
||||
- fi # have visibility pragma bug
|
||||
- fi # have visibility pragma
|
||||
- fi # have visibility(default) attribute
|
||||
- fi # have visibility(hidden) attribute
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
+ WRAP_SYSTEM_INCLUDES=1
|
||||
+ STL_FLAGS='-I$(DIST)/stl_wrappers'
|
||||
+ WRAP_STL_INCLUDES=1
|
||||
fi # GNU_CC
|
||||
|
||||
# visibility hidden flag for Sun Studio on Solaris
|
||||
diff --git js/src/configure.in js/src/configure.in
|
||||
index bddd46d..d4b522e 100644
|
||||
--- js/src/configure.in
|
||||
+++ js/src/configure.in
|
||||
@@ -2077,116 +2077,13 @@ AC_LANG_CPLUSPLUS
|
||||
|
||||
MOZ_CXX11
|
||||
|
||||
-dnl Check for .hidden assembler directive and visibility attribute.
|
||||
-dnl Borrowed from glibc configure.in
|
||||
+dnl Setup default hidden visibility and wrapped system headers.
|
||||
dnl ===============================================================
|
||||
if test "$GNU_CC"; then
|
||||
- AC_CACHE_CHECK(for visibility(hidden) attribute,
|
||||
- ac_cv_visibility_hidden,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("hidden"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_hidden=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_hidden=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_hidden" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility(default) attribute,
|
||||
- ac_cv_visibility_default,
|
||||
- [cat > conftest.c <<EOF
|
||||
- int foo __attribute__ ((visibility ("default"))) = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_default=no
|
||||
- if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
|
||||
- ac_cv_visibility_default=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_default" = "yes"; then
|
||||
- AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
-
|
||||
- AC_CACHE_CHECK(for visibility pragma support,
|
||||
- ac_cv_visibility_pragma,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
- int foo_hidden = 1;
|
||||
-#pragma GCC visibility push(default)
|
||||
- int foo_default = 1;
|
||||
-EOF
|
||||
- ac_cv_visibility_pragma=no
|
||||
- if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
|
||||
- if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
|
||||
- if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
|
||||
- ac_cv_visibility_pragma=yes
|
||||
- fi
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.[cs]
|
||||
- ])
|
||||
- if test "$ac_cv_visibility_pragma" = "yes"; then
|
||||
- AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
|
||||
- ac_cv_have_visibility_class_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-struct __attribute__ ((visibility ("default"))) TestStruct {
|
||||
- static void Init();
|
||||
-};
|
||||
-__attribute__ ((visibility ("default"))) void TestFunc() {
|
||||
- TestStruct::Init();
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_class_bug=no
|
||||
- if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- else
|
||||
- if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
|
||||
- ac_cv_have_visibility_class_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -rf conftest.{c,S}
|
||||
- ])
|
||||
-
|
||||
- AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
|
||||
- ac_cv_have_visibility_builtin_bug,
|
||||
- [cat > conftest.c <<EOF
|
||||
-#pragma GCC visibility push(hidden)
|
||||
-#pragma GCC visibility push(default)
|
||||
-#include <string.h>
|
||||
-#pragma GCC visibility pop
|
||||
-
|
||||
-__attribute__ ((visibility ("default"))) void Func() {
|
||||
- char c[[100]];
|
||||
- memset(c, 0, sizeof(c));
|
||||
-}
|
||||
-EOF
|
||||
- ac_cv_have_visibility_builtin_bug=no
|
||||
- if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
|
||||
- ac_cv_have_visibility_builtin_bug=yes
|
||||
- else
|
||||
- if test `grep -c "@PLT" conftest.S` = 0; then
|
||||
- ac_cv_visibility_builtin_bug=yes
|
||||
- fi
|
||||
- fi
|
||||
- rm -f conftest.{c,S}
|
||||
- ])
|
||||
- if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
|
||||
- "$ac_cv_have_visibility_class_bug" = "no"; then
|
||||
- VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
- WRAP_SYSTEM_INCLUDES=1
|
||||
- else
|
||||
- VISIBILITY_FLAGS='-fvisibility=hidden'
|
||||
- fi # have visibility pragma bug
|
||||
- fi # have visibility pragma
|
||||
- fi # have visibility(default) attribute
|
||||
- fi # have visibility(hidden) attribute
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
|
||||
+ AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
|
||||
+ VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
|
||||
+ WRAP_SYSTEM_INCLUDES=1
|
||||
fi # GNU_CC
|
||||
|
||||
# visibility hidden flag for Sun Studio on Solaris
|
|
@ -28,7 +28,7 @@ index 8fa8200..1d2a259 100644
|
|||
-}
|
||||
|
||||
+#ifdef JCS_EXTENSIONS
|
||||
#if defined(IS_BIG_ENDIAN)
|
||||
#if MOZ_BIG_ENDIAN
|
||||
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_XRGB
|
||||
#else
|
||||
#define MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB JCS_EXT_BGRX
|
||||
|
@ -51,26 +51,26 @@ index 8fa8200..1d2a259 100644
|
|||
|
||||
static void cmyk_convert_rgb(JSAMPROW row, JDIMENSION width);
|
||||
|
||||
@@ -324,6 +340,7 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount)
|
||||
case JCS_GRAYSCALE:
|
||||
case JCS_RGB:
|
||||
case JCS_YCbCr:
|
||||
@@ -367,6 +382,7 @@ nsJPEGDecoder::WriteInternal(const char*
|
||||
case JCS_GRAYSCALE:
|
||||
case JCS_RGB:
|
||||
case JCS_YCbCr:
|
||||
+#ifdef JCS_EXTENSIONS
|
||||
// if we're not color managing we can decode directly to
|
||||
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
|
||||
if (mCMSMode != eCMSMode_All) {
|
||||
@@ -332,6 +349,9 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount)
|
||||
} else {
|
||||
mInfo.out_color_space = JCS_RGB;
|
||||
}
|
||||
// if we're not color managing we can decode directly to
|
||||
// MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB
|
||||
if (mCMSMode != eCMSMode_All) {
|
||||
@@ -375,6 +391,9 @@ nsJPEGDecoder::WriteInternal(const char*
|
||||
} else {
|
||||
mInfo.out_color_space = JCS_RGB;
|
||||
}
|
||||
+#else
|
||||
+ mInfo.out_color_space = JCS_RGB;
|
||||
+ mInfo.out_color_space = JCS_RGB;
|
||||
+#endif
|
||||
break;
|
||||
case JCS_CMYK:
|
||||
case JCS_YCCK:
|
||||
@@ -399,6 +419,15 @@ nsJPEGDecoder::WriteInternal(const char *aBuffer, uint32_t aCount)
|
||||
return; /* I/O suspension */
|
||||
break;
|
||||
case JCS_CMYK:
|
||||
case JCS_YCCK:
|
||||
@@ -433,6 +452,15 @@ nsJPEGDecoder::WriteInternal(const char*
|
||||
return; // I/O suspension
|
||||
}
|
||||
|
||||
+#ifndef JCS_EXTENSIONS
|
||||
|
@ -83,10 +83,10 @@ index 8fa8200..1d2a259 100644
|
|||
+ }
|
||||
+#endif
|
||||
|
||||
/* If this is a progressive JPEG ... */
|
||||
mState = mInfo.buffered_image ? JPEG_DECOMPRESS_PROGRESSIVE : JPEG_DECOMPRESS_SEQUENTIAL;
|
||||
@@ -544,7 +573,11 @@ nsJPEGDecoder::OutputScanlines(bool* suspend)
|
||||
uint32_t *imageRow = ((uint32_t*)mImageData) +
|
||||
// If this is a progressive JPEG ...
|
||||
mState = mInfo.buffered_image ?
|
||||
@@ -605,7 +633,11 @@ nsJPEGDecoder::OutputScanlines(bool* sus
|
||||
uint32_t* imageRow = ((uint32_t*)mImageData) +
|
||||
(mInfo.output_scanline * mInfo.output_width);
|
||||
|
||||
+#ifdef JCS_EXTENSIONS
|
||||
|
@ -94,10 +94,10 @@ index 8fa8200..1d2a259 100644
|
|||
+#else
|
||||
+ if (mInfo.cconvert->color_convert == ycc_rgb_convert_argb) {
|
||||
+#endif
|
||||
/* Special case: scanline will be directly converted into packed ARGB */
|
||||
// Special case: scanline will be directly converted into packed ARGB
|
||||
if (jpeg_read_scanlines(&mInfo, (JSAMPARRAY)&imageRow, 1) != 1) {
|
||||
*suspend = true; /* suspend */
|
||||
@@ -854,6 +887,282 @@ term_source (j_decompress_ptr jd)
|
||||
*suspend = true; // suspend
|
||||
@@ -920,6 +952,282 @@ term_source (j_decompress_ptr jd)
|
||||
} // namespace mozilla
|
||||
|
||||
|
||||
|
@ -377,6 +377,6 @@ index 8fa8200..1d2a259 100644
|
|||
+#endif
|
||||
+
|
||||
+
|
||||
/**************** Inverted CMYK -> RGB conversion **************/
|
||||
/*
|
||||
* Input is (Inverted) CMYK stored as 4 bytes per pixel.
|
||||
///*************** Inverted CMYK -> RGB conversion *************************
|
||||
/// Input is (Inverted) CMYK stored as 4 bytes per pixel.
|
||||
/// Output is RGB stored as 3 bytes per pixel.
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
--- media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp~
|
||||
+++ media/libstagefright/frameworks/av/media/libstagefright/foundation/AString.cpp
|
||||
@@ -23,6 +23,13 @@
|
||||
#include "ADebug.h"
|
||||
#include "AString.h"
|
||||
|
||||
+#ifdef __FreeBSD__
|
||||
+# include <osreldate.h>
|
||||
+# if __FreeBSD_version < 900506
|
||||
+# undef tolower
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
namespace stagefright {
|
||||
|
||||
// static
|
239
www/libxul/files/patch-system-openh264
Normal file
239
www/libxul/files/patch-system-openh264
Normal file
|
@ -0,0 +1,239 @@
|
|||
# Revert bug 1045209 to allow using absolute path
|
||||
|
||||
diff --git dom/media/gmp/GMPChild.cpp dom/media/gmp/GMPChild.cpp
|
||||
index 1dde3ac..12c88cf 100644
|
||||
--- dom/media/gmp/GMPChild.cpp
|
||||
+++ dom/media/gmp/GMPChild.cpp
|
||||
@@ -76,21 +76,14 @@ GetFileBase(const std::string& aPluginPa
|
||||
}
|
||||
#endif
|
||||
|
||||
- nsCOMPtr<nsIFile> parent;
|
||||
- rv = aFileBase->GetParent(getter_AddRefs(parent));
|
||||
- if (NS_FAILED(rv)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- nsAutoString parentLeafName;
|
||||
- rv = parent->GetLeafName(parentLeafName);
|
||||
- if (NS_FAILED(rv)) {
|
||||
+ nsAutoString leafName;
|
||||
+ if (NS_FAILED(aFileBase->GetLeafName(leafName))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
- aBaseName = Substring(parentLeafName,
|
||||
+ aBaseName = Substring(leafName,
|
||||
4,
|
||||
- parentLeafName.Length() - 1);
|
||||
+ leafName.Length() - 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
diff --git dom/media/gmp/GMPParent.cpp dom/media/gmp/GMPParent.cpp
|
||||
index aa60acf..90878ca 100644
|
||||
--- dom/media/gmp/GMPParent.cpp
|
||||
+++ dom/media/gmp/GMPParent.cpp
|
||||
@@ -90,23 +90,16 @@
|
||||
mService = aService;
|
||||
mDirectory = aPluginDir;
|
||||
|
||||
- // aPluginDir is <profile-dir>/<gmp-plugin-id>/<version>
|
||||
- // where <gmp-plugin-id> should be gmp-gmpopenh264
|
||||
- nsCOMPtr<nsIFile> parent;
|
||||
- nsresult rv = aPluginDir->GetParent(getter_AddRefs(parent));
|
||||
- if (NS_FAILED(rv)) {
|
||||
- return rv;
|
||||
- }
|
||||
- nsAutoString parentLeafName;
|
||||
- rv = parent->GetLeafName(parentLeafName);
|
||||
+ nsAutoString leafname;
|
||||
+ nsresult rv = aPluginDir->GetLeafName(leafname);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
LOGD(("%s::%s: %p for %s", __CLASS__, __FUNCTION__, this,
|
||||
- NS_LossyConvertUTF16toASCII(parentLeafName).get()));
|
||||
+ NS_LossyConvertUTF16toASCII(leafname).get()));
|
||||
|
||||
- MOZ_ASSERT(parentLeafName.Length() > 4);
|
||||
- mName = Substring(parentLeafName, 4);
|
||||
+ MOZ_ASSERT(leafname.Length() > 4);
|
||||
+ mName = Substring(leafname, 4);
|
||||
|
||||
return ReadGMPMetaData();
|
||||
}
|
||||
diff --git toolkit/modules/GMPInstallManager.jsm toolkit/modules/GMPInstallManager.jsm
|
||||
index 9593492..470384b 100644
|
||||
--- toolkit/modules/GMPInstallManager.jsm
|
||||
+++ toolkit/modules/GMPInstallManager.jsm
|
||||
@@ -888,9 +889,7 @@
|
||||
let gmpAddon = this._gmpAddon;
|
||||
let installToDirPath = Cc["@mozilla.org/file/local;1"].
|
||||
createInstance(Ci.nsIFile);
|
||||
- let path = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- gmpAddon.id,
|
||||
- gmpAddon.version);
|
||||
+ let path = OS.Path.join(OS.Constants.Path.profileDir, gmpAddon.id);
|
||||
installToDirPath.initWithPath(path);
|
||||
log.info("install to directory path: " + installToDirPath.path);
|
||||
let gmpInstaller = new GMPExtractor(zipPath, installToDirPath.path);
|
||||
@@ -885,10 +883,12 @@
|
||||
// Success, set the prefs
|
||||
let now = Math.round(Date.now() / 1000);
|
||||
GMPPrefs.set(GMPPrefs.KEY_PLUGIN_LAST_UPDATE, now, gmpAddon.id);
|
||||
- // Setting the version pref signals installation completion to consumers,
|
||||
- // if you need to set other prefs etc. do it before this.
|
||||
+ // Setting the path pref signals installation completion to consumers,
|
||||
+ // so set the version and potential other information they use first.
|
||||
GMPPrefs.set(GMPPrefs.KEY_PLUGIN_VERSION, gmpAddon.version,
|
||||
gmpAddon.id);
|
||||
+ GMPPrefs.set(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
+ installToDirPath.path, gmpAddon.id);
|
||||
this._deferred.resolve(extractedPaths);
|
||||
}, err => {
|
||||
this._deferred.reject(err);
|
||||
diff --git toolkit/modules/GMPUtils.jsm toolkit/modules/GMPUtils.jsm
|
||||
index 1f3a0b1..93517be 100644
|
||||
--- toolkit/modules/GMPUtils.jsm
|
||||
+++ toolkit/modules/GMPUtils.jsm
|
||||
@@ -70,6 +70,7 @@ this.GMPPrefs = {
|
||||
KEY_EME_ENABLED: "media.eme.enabled",
|
||||
KEY_PLUGIN_ENABLED: "media.{0}.enabled",
|
||||
KEY_PLUGIN_LAST_UPDATE: "media.{0}.lastUpdate",
|
||||
+ KEY_PLUGIN_PATH: "media.{0}.path",
|
||||
KEY_PLUGIN_VERSION: "media.{0}.version",
|
||||
KEY_PLUGIN_AUTOUPDATE: "media.{0}.autoupdate",
|
||||
KEY_PLUGIN_FORCEVISIBLE: "media.{0}.forcevisible",
|
||||
diff --git toolkit/mozapps/extensions/internal/GMPProvider.jsm toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
||||
index 1f3a0b1..93517be 100644
|
||||
--- toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
||||
+++ toolkit/mozapps/extensions/internal/GMPProvider.jsm
|
||||
@@ -100,12 +100,11 @@
|
||||
Log.repository.getLoggerWithMessagePrefix("Toolkit.GMP",
|
||||
"GMPWrapper(" +
|
||||
this._plugin.id + ") ");
|
||||
- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
|
||||
- this._plugin.id),
|
||||
+ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED, this._plugin.id),
|
||||
this.onPrefEnabledChanged, this);
|
||||
- Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
+ Preferences.observe(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
this._plugin.id),
|
||||
- this.onPrefVersionChanged, this);
|
||||
+ this.onPrefPathChanged, this);
|
||||
if (this._plugin.isEME) {
|
||||
Preferences.observe(GMPPrefs.KEY_EME_ENABLED,
|
||||
this.onPrefEMEGlobalEnabledChanged, this);
|
||||
@@ -120,17 +119,14 @@
|
||||
optionsType: AddonManager.OPTIONS_TYPE_INLINE,
|
||||
get optionsURL() { return this._plugin.optionsURL; },
|
||||
|
||||
+
|
||||
set gmpPath(aPath) { this._gmpPath = aPath; },
|
||||
get gmpPath() {
|
||||
- if (!this._gmpPath && this.isInstalled) {
|
||||
- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- this._plugin.id,
|
||||
- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
- null, this._plugin.id));
|
||||
+ if (!this._gmpPath) {
|
||||
+ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
}
|
||||
return this._gmpPath;
|
||||
},
|
||||
-
|
||||
get id() { return this._plugin.id; },
|
||||
get type() { return "plugin"; },
|
||||
get isGMPlugin() { return true; },
|
||||
@@ -141,8 +137,13 @@
|
||||
get description() { return this._plugin.description; },
|
||||
get fullDescription() { return this._plugin.fullDescription; },
|
||||
|
||||
- get version() { return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
|
||||
- this._plugin.id); },
|
||||
+ get version() {
|
||||
+ if (this.isInstalled) {
|
||||
+ return GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION, null,
|
||||
+ this._plugin.id);
|
||||
+ }
|
||||
+ return null;
|
||||
+ },
|
||||
|
||||
get isActive() { return !this.appDisabled && !this.userDisabled; },
|
||||
get appDisabled() {
|
||||
@@ -289,24 +290,17 @@
|
||||
|
||||
get pluginMimeTypes() { return []; },
|
||||
get pluginLibraries() {
|
||||
- if (this.isInstalled) {
|
||||
- let path = this.version;
|
||||
- return [path];
|
||||
- }
|
||||
- return [];
|
||||
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
+ return path && path.length ? [OS.Path.basename(path)] : [];
|
||||
},
|
||||
get pluginFullpath() {
|
||||
- if (this.isInstalled) {
|
||||
- let path = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- this._plugin.id,
|
||||
- this.version);
|
||||
- return [path];
|
||||
- }
|
||||
- return [];
|
||||
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
+ return path && path.length ? [path] : [];
|
||||
},
|
||||
|
||||
get isInstalled() {
|
||||
- return this.version && this.version.length > 0;
|
||||
+ let path = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH, null, this._plugin.id);
|
||||
+ return path && path.length > 0;
|
||||
},
|
||||
|
||||
_handleEnabledChanged: function() {
|
||||
@@ -362,10 +356,10 @@
|
||||
}
|
||||
},
|
||||
|
||||
- onPrefVersionChanged: function() {
|
||||
+ onPrefPathChanged: function() {
|
||||
AddonManagerPrivate.callAddonListeners("onUninstalling", this, false);
|
||||
if (this._gmpPath) {
|
||||
- this._log.info("onPrefVersionChanged() - unregistering gmp directory " +
|
||||
+ this._log.info("onPrefPathChanged() - unregistering gmp directory " +
|
||||
this._gmpPath);
|
||||
gmpService.removePluginDirectory(this._gmpPath);
|
||||
}
|
||||
@@ -374,15 +368,10 @@
|
||||
AddonManagerPrivate.callInstallListeners("onExternalInstall", null, this,
|
||||
null, false);
|
||||
AddonManagerPrivate.callAddonListeners("onInstalling", this, false);
|
||||
- this._gmpPath = null;
|
||||
- if (this.isInstalled) {
|
||||
- this._gmpPath = OS.Path.join(OS.Constants.Path.profileDir,
|
||||
- this._plugin.id,
|
||||
- GMPPrefs.get(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
- null, this._plugin.id));
|
||||
- }
|
||||
+ this._gmpPath = GMPPrefs.get(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
+ null, this._plugin.id);
|
||||
if (this._gmpPath && this.isActive) {
|
||||
- this._log.info("onPrefVersionChanged() - registering gmp directory " +
|
||||
+ this._log.info("onPrefPathChanged() - registering gmp directory " +
|
||||
this._gmpPath);
|
||||
gmpService.addPluginDirectory(this._gmpPath);
|
||||
}
|
||||
@@ -393,9 +382,9 @@
|
||||
Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_ENABLED,
|
||||
this._plugin.id),
|
||||
this.onPrefEnabledChanged, this);
|
||||
- Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_VERSION,
|
||||
+ Preferences.ignore(GMPPrefs.getPrefKey(GMPPrefs.KEY_PLUGIN_PATH,
|
||||
this._plugin.id),
|
||||
- this.onPrefVersionChanged, this);
|
||||
+ this.onPrefPathChanged, this);
|
||||
if (this._plugin.isEME) {
|
||||
Preferences.ignore(GMPPrefs.KEY_EME_ENABLED,
|
||||
this.onPrefEMEGlobalEnabledChanged, this);
|
|
@ -4,7 +4,7 @@ diff --git config/Makefile.in config/Makefile.in
|
|||
index 5383399..0410004 100644
|
||||
--- config/Makefile.in
|
||||
+++ config/Makefile.in
|
||||
@@ -79,6 +79,13 @@ export:: $(export-preqs)
|
||||
@@ -77,6 +77,14 @@ export:: $(export-preqs)
|
||||
-DMOZ_NATIVE_ICU=$(MOZ_NATIVE_ICU) \
|
||||
-DMOZ_NATIVE_GRAPHITE2=$(MOZ_NATIVE_GRAPHITE2) \
|
||||
-DMOZ_NATIVE_HARFBUZZ=$(MOZ_NATIVE_HARFBUZZ) \
|
||||
|
@ -12,6 +12,7 @@ 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) \
|
||||
|
@ -22,14 +23,17 @@ diff --git config/external/moz.build config/external/moz.build
|
|||
index f67c5c7..eb909ce 100644
|
||||
--- config/external/moz.build
|
||||
+++ config/external/moz.build
|
||||
@@ -15,13 +15,19 @@ if CONFIG['MOZ_UPDATER']:
|
||||
if not CONFIG['MOZ_NATIVE_BZ2']:
|
||||
external_dirs += ['modules/libbz2']
|
||||
@@ -19,10 +19,19 @@ if CONFIG['MOZ_UPDATER']:
|
||||
# There's no "native brotli" yet, but probably in the future...
|
||||
external_dirs += ['modules/brotli']
|
||||
|
||||
-if CONFIG['MOZ_VORBIS']:
|
||||
+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']
|
||||
+
|
||||
|
@ -40,12 +44,8 @@ index f67c5c7..eb909ce 100644
|
|||
+if CONFIG['MOZ_TREMOR'] and not CONFIG['MOZ_NATIVE_TREMOR']:
|
||||
external_dirs += ['media/libtremor']
|
||||
|
||||
-if CONFIG['MOZ_OPUS']:
|
||||
+if CONFIG['MOZ_OPUS'] and not CONFIG['MOZ_NATIVE_OPUS']:
|
||||
external_dirs += ['media/libopus']
|
||||
|
||||
if CONFIG['MOZ_WEBM']:
|
||||
@@ -36,13 +42,15 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ_NATIVE_LIBVPX']:
|
||||
@@ -37,15 +46,16 @@ if CONFIG['MOZ_VPX'] and not CONFIG['MOZ
|
||||
if not CONFIG['MOZ_NATIVE_PNG']:
|
||||
external_dirs += ['media/libpng']
|
||||
|
||||
|
@ -59,35 +59,35 @@ index f67c5c7..eb909ce 100644
|
|||
'media/kiss_fft',
|
||||
'media/libcubeb',
|
||||
- 'media/libogg',
|
||||
- 'media/libopus',
|
||||
- 'media/libtheora',
|
||||
- 'media/libspeex_resampler',
|
||||
'media/libstagefright',
|
||||
- 'media/libsoundtouch',
|
||||
]
|
||||
|
||||
PARALLEL_DIRS += ['../../' + i for i in external_dirs]
|
||||
DIRS += ['../../' + i for i in external_dirs]
|
||||
diff --git config/system-headers config/system-headers
|
||||
index bef567c..9807c29 100644
|
||||
--- config/system-headers
|
||||
+++ config/system-headers
|
||||
@@ -1050,8 +1050,6 @@ X11/Xutil.h
|
||||
xpt_struct.h
|
||||
xpt_xdr.h
|
||||
@@ -1263,7 +1263,6 @@ X11/Xlocale.h
|
||||
X11/Xos.h
|
||||
X11/Xutil.h
|
||||
zmouse.h
|
||||
-speex/speex_resampler.h
|
||||
-soundtouch/SoundTouch.h
|
||||
#if MOZ_NATIVE_PNG==1
|
||||
png.h
|
||||
#endif
|
||||
@@ -1119,6 +1117,8 @@ ogg/ogg.h
|
||||
@@ -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
|
||||
cubeb/cubeb.h
|
||||
+speex/speex_resampler.h
|
||||
+soundtouch/SoundTouch.h
|
||||
#endif
|
||||
gst/gst.h
|
||||
gst/app/gstappsink.h
|
||||
@@ -1155,3 +1155,29 @@ graphite2/Segment.h
|
||||
@@ -1365,3 +1365,35 @@ graphite2/Segment.h
|
||||
harfbuzz/hb-ot.h
|
||||
harfbuzz/hb.h
|
||||
#endif
|
||||
|
@ -105,6 +105,12 @@ 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
|
||||
|
@ -121,7 +127,7 @@ diff --git configure.in configure.in
|
|||
index 87db361..7947626 100644
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -5211,6 +5211,63 @@ if test "${ac_cv_c_attribute_aligned}" != "0"; then
|
||||
@@ -5223,6 +5223,157 @@ if test "${ac_cv_c_attribute_aligned}" !
|
||||
fi
|
||||
|
||||
dnl ========================================================
|
||||
|
@ -144,8 +150,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_OGG)
|
||||
+AC_SUBST(MOZ_OGG_CFLAGS)
|
||||
+AC_SUBST(MOZ_OGG_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libvorbis
|
||||
|
@ -161,8 +165,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_VORBIS)
|
||||
+AC_SUBST(MOZ_VORBIS_CFLAGS)
|
||||
+AC_SUBST(MOZ_VORBIS_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for integer-only libvorbis aka tremor
|
||||
|
@ -178,17 +180,25 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_TREMOR)
|
||||
+AC_SUBST(MOZ_TREMOR_CFLAGS)
|
||||
+AC_SUBST(MOZ_TREMOR_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
dnl = Disable Opus audio codec support
|
||||
dnl ========================================================
|
||||
MOZ_ARG_DISABLE_BOOL(opus,
|
||||
@@ -5219,6 +5274,97 @@ MOZ_ARG_DISABLE_BOOL(opus,
|
||||
MOZ_OPUS=1)
|
||||
|
||||
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 ========================================================
|
||||
+
|
||||
|
@ -204,8 +214,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_OPUS)
|
||||
+AC_SUBST(MOZ_OPUS_CFLAGS)
|
||||
+AC_SUBST(MOZ_OPUS_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libtheora
|
||||
|
@ -221,8 +229,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_THEORA)
|
||||
+AC_SUBST(MOZ_THEORA_CFLAGS)
|
||||
+AC_SUBST(MOZ_THEORA_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libspeex resampler
|
||||
|
@ -238,8 +244,6 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_SPEEX)
|
||||
+AC_SUBST(MOZ_SPEEX_CFLAGS)
|
||||
+AC_SUBST(MOZ_SPEEX_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
+dnl Check for libsoundtouch
|
||||
|
@ -276,19 +280,17 @@ index 87db361..7947626 100644
|
|||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_NATIVE_SOUNDTOUCH)
|
||||
+AC_SUBST(MOZ_SOUNDTOUCH_CFLAGS)
|
||||
+AC_SUBST(MOZ_SOUNDTOUCH_LIBS)
|
||||
+
|
||||
+dnl ========================================================
|
||||
dnl = Disable VP8 decoder support
|
||||
dnl ========================================================
|
||||
MOZ_ARG_DISABLE_BOOL(webm,
|
||||
diff --git content/media/AudioStream.h content/media/AudioStream.h
|
||||
diff --git dom/media/AudioStream.h dom/media/AudioStream.h
|
||||
index 085676d..00c54fb 100644
|
||||
--- content/media/AudioStream.h
|
||||
+++ content/media/AudioStream.h
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
};
|
||||
--- dom/media/AudioStream.h
|
||||
+++ dom/media/AudioStream.h
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "CubebUtils.h"
|
||||
|
||||
namespace soundtouch {
|
||||
-class SoundTouch;
|
||||
|
@ -296,177 +298,265 @@ index 085676d..00c54fb 100644
|
|||
}
|
||||
|
||||
namespace mozilla {
|
||||
diff --git content/media/Makefile.in content/media/Makefile.in
|
||||
index fd34449..c6c42c8 100644
|
||||
--- content/media/Makefile.in
|
||||
+++ content/media/Makefile.in
|
||||
@@ -6,3 +6,31 @@ include $(topsrcdir)/config/rules.mk
|
||||
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':
|
||||
|
||||
CFLAGS += $(GSTREAMER_CFLAGS)
|
||||
CXXFLAGS += $(GSTREAMER_CFLAGS)
|
||||
CFLAGS += CONFIG['GSTREAMER_CFLAGS']
|
||||
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CXXFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_THEORA
|
||||
+CXXFLAGS += $(MOZ_THEORA_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_THEORA']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_THEORA_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_VORBIS
|
||||
+CXXFLAGS += $(MOZ_VORBIS_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_VORBIS']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_VORBIS_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_TREMOR
|
||||
+CXXFLAGS += $(MOZ_TREMOR_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_TREMOR']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_TREMOR_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OPUS
|
||||
+CXXFLAGS += $(MOZ_OPUS_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OPUS']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_OPUS_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SPEEX
|
||||
+CXXFLAGS += $(MOZ_SPEEX_CFLAGS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_SPEEX']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_SPEEX_CFLAGS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SOUNDTOUCH
|
||||
+CXXFLAGS += $(MOZ_SOUNDTOUCH_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libcubeb/src/Makefile.in media/libcubeb/src/Makefile.in
|
||||
index 4c14494..1cb98e2 100644
|
||||
--- media/libcubeb/src/Makefile.in
|
||||
+++ media/libcubeb/src/Makefile.in
|
||||
@@ -9,3 +9,7 @@ CFLAGS += \
|
||||
$(MOZ_ALSA_CFLAGS) \
|
||||
$(MOZ_PULSEAUDIO_CFLAGS) \
|
||||
$(NULL)
|
||||
+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']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SPEEX
|
||||
+CFLAGS += $(MOZ_SPEEX_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libtheora/Makefile.in media/libtheora/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..1f02dc0
|
||||
--- /dev/null
|
||||
+++ media/libtheora/Makefile.in
|
||||
@@ -0,0 +1,9 @@
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
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
|
||||
+++ media/libogg/README_MOZILLA
|
||||
@@ -6,3 +6,6 @@ The svn revision number used was r17287.
|
||||
The int-types.patch address a bug that config_types.h generated from
|
||||
Linux platform can't be used on OpenSolaris directly see Mozilla bug
|
||||
449754
|
||||
+
|
||||
+include $(topsrcdir)/config/rules.mk
|
||||
+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.
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libtremor/Makefile.in media/libtremor/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..1f02dc0
|
||||
--- /dev/null
|
||||
+++ media/libtremor/Makefile.in
|
||||
@@ -0,0 +1,9 @@
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+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
|
||||
+++ media/libsoundtouch/README_MOZILLA
|
||||
@@ -6,3 +6,5 @@ The whole library is not used, only the relevant files are imported in the tree,
|
||||
using the script `update.sh`. Some changes have been made to the files, using
|
||||
the patch `moz-libsoundtouch.patch`. We also use a custom soundtouch_config.h.
|
||||
|
||||
+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
|
||||
|
||||
It consists in the audio resampling code (resampler.c) and its header files
|
||||
dependancies, imported into the tree using the update.sh script.
|
||||
+
|
||||
+include $(topsrcdir)/config/rules.mk
|
||||
+The in-tree copy may be omitted during build by --with-system-speex.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
diff --git media/libtheora/README_MOZILLA media/libtheora/README_MOZILLA
|
||||
index d48dbfa..f08a2ed 100644
|
||||
--- media/libtheora/README_MOZILLA
|
||||
+++ media/libtheora/README_MOZILLA
|
||||
@@ -3,3 +3,6 @@ using the update.sh script. The changes made were those applied by update.sh,
|
||||
the addition/update of Makefile.in files for the Mozilla build system.
|
||||
|
||||
The subversion revision used was r17578.
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
diff --git media/libvorbis/Makefile.in media/libvorbis/Makefile.in
|
||||
new file mode 100644
|
||||
index 0000000..1f02dc0
|
||||
--- /dev/null
|
||||
+++ media/libvorbis/Makefile.in
|
||||
@@ -0,0 +1,9 @@
|
||||
+# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
+The in-tree copy may be omitted during build by --with-system-theora.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
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
|
||||
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||
diff --git media/libtremor/README_MOZILLA media/libtremor/README_MOZILLA
|
||||
index ee67b53..3f34a09 100644
|
||||
--- media/libtremor/README_MOZILLA
|
||||
+++ media/libtremor/README_MOZILLA
|
||||
@@ -5,3 +5,6 @@ Makefile.in files for the Mozilla build system.
|
||||
|
||||
The upstream release used was http://svn.xiph.org/trunk/Tremor/
|
||||
The subversion revision used was r17547.
|
||||
+
|
||||
+include $(topsrcdir)/config/rules.mk
|
||||
+The in-tree copy may be omitted during build by --with-system-tremor.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
diff --git media/libtremor/moz.build media/libtremor/moz.build
|
||||
index 31831ba..a03d576 100644
|
||||
--- media/libtremor/moz.build
|
||||
+++ media/libtremor/moz.build
|
||||
@@ -6,3 +6,5 @@
|
||||
|
||||
DIRS += ['include/tremor', 'lib']
|
||||
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ CFLAGS += CONFIG['MOZ_OGG_CFLAGS']
|
||||
diff --git media/libvorbis/README_MOZILLA media/libvorbis/README_MOZILLA
|
||||
index 7c7454c..55baedd 100644
|
||||
--- media/libvorbis/README_MOZILLA
|
||||
+++ media/libvorbis/README_MOZILLA
|
||||
@@ -8,3 +8,6 @@ https://svn.xiph.org/tags/vorbis/libvorbis-1.3.4@19059
|
||||
|
||||
Some files are renamed during the copy to prevent clashes with object
|
||||
file names with other Mozilla libraries.
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+CFLAGS += $(MOZ_OGG_CFLAGS)
|
||||
+endif
|
||||
diff --git media/webrtc/signaling/test/Makefile.in media/webrtc/signaling/test/Makefile.in
|
||||
+The in-tree copy may be omitted during build by --with-system-vorbis.
|
||||
+Keep version in configure.in in sync on updates.
|
||||
diff --git media/libvorbis/moz.build media/libvorbis/moz.build
|
||||
index 919b99e..cc776f7 100644
|
||||
--- media/libvorbis/moz.build
|
||||
+++ media/libvorbis/moz.build
|
||||
@@ -55,3 +55,6 @@ FINAL_LIBRARY = 'gkmedias'
|
||||
# Suppress warnings in third-party code.
|
||||
if CONFIG['GNU_CC']:
|
||||
CFLAGS += ['-Wno-uninitialized']
|
||||
+
|
||||
+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/Makefile.in
|
||||
+++ media/webrtc/signaling/test/Makefile.in
|
||||
@@ -48,6 +48,12 @@ LIBS += \
|
||||
$(NULL)
|
||||
endif
|
||||
--- 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']
|
||||
|
||||
+ifdef MOZ_NATIVE_OPUS
|
||||
+LIBS += \
|
||||
+ $(MOZ_OPUS_LIBS) \
|
||||
+ $(NULL)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OPUS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
|
||||
+
|
||||
ifdef MOZ_NATIVE_LIBVPX
|
||||
LIBS += \
|
||||
$(MOZ_LIBVPX_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
|
||||
@@ -14,9 +14,9 @@
|
||||
@@ -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 toolkit/library/libxul.mk toolkit/library/libxul.mk
|
||||
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/libxul.mk
|
||||
+++ toolkit/library/libxul.mk
|
||||
@@ -77,6 +77,34 @@ ifdef MOZ_NATIVE_HUNSPELL
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_HUNSPELL_LIBS)
|
||||
endif
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -178,6 +178,30 @@ if CONFIG['MOZ_NATIVE_PNG']:
|
||||
if CONFIG['MOZ_NATIVE_HUNSPELL']:
|
||||
OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']
|
||||
|
||||
+ifdef MOZ_NATIVE_OGG
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_OGG_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OGG']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OGG_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_THEORA
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_THEORA_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_THEORA']:
|
||||
+ OS_LIBS += CONFIG['MOZ_THEORA_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_VORBIS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_VORBIS_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_VORBIS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_VORBIS_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_TREMOR
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_TREMOR_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_TREMOR']:
|
||||
+ OS_LIBS += CONFIG['MOZ_TREMOR_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_OPUS
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_OPUS_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_CELT']:
|
||||
+ OS_LIBS += CONFIG['MOZ_CELT_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SPEEX
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_SPEEX_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_OPUS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OPUS_LIBS']
|
||||
+
|
||||
+ifdef MOZ_NATIVE_SOUNDTOUCH
|
||||
+EXTRA_DSO_LDOPTS += $(MOZ_SOUNDTOUCH_LIBS)
|
||||
+endif
|
||||
+if CONFIG['MOZ_NATIVE_SPEEX']:
|
||||
+ OS_LIBS += CONFIG['MOZ_SPEEX_LIBS']
|
||||
+
|
||||
ifdef MOZ_NATIVE_LIBEVENT
|
||||
EXTRA_DSO_LDOPTS += $(MOZ_LIBEVENT_LIBS)
|
||||
endif
|
||||
diff --git xpcom/build/nsXPComInit.cpp xpcom/build/nsXPComInit.cpp
|
||||
+if CONFIG['MOZ_NATIVE_SOUNDTOUCH']:
|
||||
+ OS_LIBS += CONFIG['MOZ_SOUNDTOUCH_LIBS']
|
||||
+
|
||||
if CONFIG['MOZ_NATIVE_LIBEVENT']:
|
||||
OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']
|
||||
|
||||
diff --git xpcom/build/XPCOMInit.cpp xpcom/build/XPCOMInit.cpp
|
||||
index 2cf281e..6d7af0e 100644
|
||||
--- xpcom/build/nsXPComInit.cpp
|
||||
+++ xpcom/build/nsXPComInit.cpp
|
||||
@@ -130,7 +130,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports *, REFNSIID, void **)
|
||||
--- xpcom/build/XPCOMInit.cpp
|
||||
+++ xpcom/build/XPCOMInit.cpp
|
||||
@@ -138,7 +138,9 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**);
|
||||
#include "mozilla/VisualEventTracer.h"
|
||||
#endif
|
||||
|
||||
|
@ -476,17 +566,17 @@ index 2cf281e..6d7af0e 100644
|
|||
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#endif
|
||||
@@ -571,11 +573,13 @@ NS_InitXPCOM2(nsIServiceManager* *result,
|
||||
// this oddness.
|
||||
mozilla::SetICUMemoryFunctions();
|
||||
@@ -651,11 +653,13 @@ NS_InitXPCOM2(nsIServiceManager** aResult,
|
||||
// this oddness.
|
||||
mozilla::SetICUMemoryFunctions();
|
||||
|
||||
+#ifndef MOZ_OGG_NO_MEM_REPORTING
|
||||
// Do the same for libogg.
|
||||
ogg_set_mem_functions(OggReporter::CountingMalloc,
|
||||
OggReporter::CountingCalloc,
|
||||
OggReporter::CountingRealloc,
|
||||
OggReporter::CountingFree);
|
||||
// Do the same for libogg.
|
||||
ogg_set_mem_functions(OggReporter::CountingMalloc,
|
||||
OggReporter::CountingCalloc,
|
||||
OggReporter::CountingRealloc,
|
||||
OggReporter::CountingFree);
|
||||
+#endif
|
||||
|
||||
#if defined(MOZ_VPX) && !defined(MOZ_VPX_NO_MEM_REPORTING)
|
||||
// And for VPX.
|
||||
// And for VPX.
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox
|
||||
DISTVERSION= 38.0.6
|
||||
DISTVERSION= 39.0
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= www ipv6
|
||||
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/linux-i686/en-US \
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/linux-i686/en-US
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build6/linux-i686/en-US
|
||||
|
||||
MAINTAINER= gecko@FreeBSD.org
|
||||
COMMENT= Web browser based on the browser portion of Mozilla
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
SHA256 (firefox-38.0.6.tar.bz2) = b4a61d14618514678279ebdeec148e6d99dd2557cb47d0a387d42bbe7711dc51
|
||||
SIZE (firefox-38.0.6.tar.bz2) = 47706918
|
||||
SHA256 (firefox-39.0.tar.bz2) = b612185276ec1e3f60165ee274854c0244611b27076a29ca899d6e84a93e0983
|
||||
SIZE (firefox-39.0.tar.bz2) = 48620957
|
||||
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
|
||||
|
|
|
@ -45,7 +45,6 @@ lib/%%APP_NAME%%/libfreebl3.so
|
|||
%%GTK218%%lib/%%APP_NAME%%/libgio-2.0.so.0
|
||||
%%GTK218%%lib/%%APP_NAME%%/libglib-2.0.so.0
|
||||
%%GTK218%%lib/%%APP_NAME%%/libgtk-x11-2.0.so.0
|
||||
lib/%%APP_NAME%%/libmozalloc.so
|
||||
lib/%%APP_NAME%%/libmozsqlite3.so
|
||||
lib/%%APP_NAME%%/libnspr4.so
|
||||
lib/%%APP_NAME%%/libnss3.so
|
||||
|
|
Loading…
Add table
Reference in a new issue