MFH: r468751 r468754 r468985 r469332
www/firefox: update to 60.0 - Add U2F support, required by Web Authentication [1] - Drop libv4l support to reduce maintenance Changes: https://www.mozilla.org/firefox/60.0/releasenotes/ PR: 226476 Tested by: tobik, jrm, D. Ebdrup, lwhsu Submitted by: Greg V [1] Security: 5aefc41e-d304-4ec8-8c82-824f84f08244 Approved by: ports-secteam blanket Differential Revision: https://reviews.freebsd.org/D15186
This commit is contained in:
parent
80869ac870
commit
b218d110e2
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/branches/2018Q2/; revision=469334
@ -37,12 +37,12 @@ RUN_DEPENDS+= libxul>=45:www/libxul
|
||||
.elif ${gecko_ARGS:Mfirefox}
|
||||
|
||||
_GECKO_DEFAULT_VERSION= 52
|
||||
_GECKO_VERSIONS= 52 59
|
||||
_GECKO_VERSIONS= 52 60
|
||||
_GECKO_TYPE= firefox
|
||||
|
||||
# Dependence lines for different Firefox versions
|
||||
52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
|
||||
59_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox
|
||||
60_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox
|
||||
|
||||
.if exists(${LOCALBASE}/bin/firefox)
|
||||
_GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null
|
||||
|
@ -379,7 +379,7 @@ post-patch-SNDIO-on:
|
||||
.endif
|
||||
|
||||
.if ${PORT_OPTIONS:MRUST} || ${MOZILLA_VER:R:R} >= 54
|
||||
BUILD_DEPENDS+= ${RUST_PORT:T}>=1.22.1:${RUST_PORT}
|
||||
BUILD_DEPENDS+= ${RUST_PORT:T}>=1.24:${RUST_PORT}
|
||||
RUST_PORT?= lang/rust
|
||||
. if ${MOZILLA_VER:R:R} < 54
|
||||
MOZ_OPTIONS+= --enable-rust
|
||||
|
@ -2,10 +2,11 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox-i18n
|
||||
PORTVERSION= 59.0.3
|
||||
PORTVERSION= 60.0
|
||||
PORTREVISION= 1
|
||||
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/build2/linux-i686/xpi
|
||||
PKGNAMEPREFIX=
|
||||
DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/}
|
||||
DIST_SUBDIR= xpi/${DISTNAME}
|
||||
@ -15,7 +16,7 @@ COMMENT= Localized interface for Firefox
|
||||
|
||||
EXTRACT_DEPENDS= zip:archivers/zip
|
||||
|
||||
USES= zip:infozip gecko:firefox,59,build
|
||||
USES= zip:infozip gecko:firefox,60,build
|
||||
USE_XPI= firefox
|
||||
|
||||
NO_ARCH= yes
|
||||
|
@ -6,7 +6,7 @@ FIREFOX_I18N_ALL_= ach af an ar as ast az be bg bn-BD bn-IN br bs ca cak \
|
||||
es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn \
|
||||
gu-IN he hi-IN hr hsb hu hy-AM ia id is it ja ka kab \
|
||||
kk km kn ko lij lt lv mai mk ml mr ms my nb-NO ne-NP nl \
|
||||
nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son \
|
||||
nn-NO oc or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son \
|
||||
sq sr sv-SE ta te th tr uk ur uz vi xh zh-CN zh-TW
|
||||
|
||||
.if defined(FIREFOX_I18N_ALL) || defined(PACKAGE_BUILDING) || target(package)
|
||||
@ -225,6 +225,9 @@ FIREFOX_I18N+= nl
|
||||
.if ${PORT_OPTIONS:MLANG_NN}
|
||||
FIREFOX_I18N+= nn-NO
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLANG_OC}
|
||||
FIREFOX_I18N+= oc
|
||||
.endif
|
||||
.if ${PORT_OPTIONS:MLANG_OR}
|
||||
FIREFOX_I18N+= or
|
||||
.endif
|
||||
|
@ -73,6 +73,7 @@ OPTIONS_DEFINE= LANG_ACH \
|
||||
LANG_NE \
|
||||
LANG_NL \
|
||||
LANG_NN \
|
||||
LANG_OC \
|
||||
LANG_OR \
|
||||
LANG_PA \
|
||||
LANG_PL \
|
||||
@ -122,6 +123,7 @@ LANG_LIJ_DESC?= Ligurian (Genoa) language support
|
||||
LANG_MS_DESC?= Malay language support
|
||||
LANG_MY_DESC?= Burmese language support
|
||||
LANG_NE_DESC?= Nepali language support
|
||||
LANG_OC_DESC?= Occitan (lengadocian) language support
|
||||
LANG_SW_DESC?= Swahili language support
|
||||
LANG_UR_DESC?= Urdu (Pakistan) language support
|
||||
LANG_UZ_DESC?= Uzbek language support
|
||||
|
@ -1,195 +1,197 @@
|
||||
TIMESTAMP = 1523300563
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ach.xpi) = 06dd753f88bf6be664f5a5dc4de06a8df27848c054477655c33a9fe2dd280353
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ach.xpi) = 439227
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/af.xpi) = 68a33f07bb31865fa37240eea364b483e9810055263bdb8e042e601f1dca81dd
|
||||
SIZE (xpi/firefox-i18n-59.0.3/af.xpi) = 436731
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/an.xpi) = f83f8613fd4d1de4a2e43781f26319b875a25c453d92fc7c45ab9f8ac5dd334e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/an.xpi) = 463405
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ar.xpi) = a52c055d47e2b9a82f839afb92d3e08999ac7b1dd0811c685ded4ec1f9cdf8b9
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ar.xpi) = 486633
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/as.xpi) = 257b2ae2d7e184e1a32bc50f329b723281513c8bbefb0ff377cec9d1384e6e55
|
||||
SIZE (xpi/firefox-i18n-59.0.3/as.xpi) = 483301
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ast.xpi) = c4d019603fd3ce9f54e6be434b6899956f4638e7421eb871cae40581e2a2b0f5
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ast.xpi) = 454343
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/az.xpi) = 8ad6d99cc19af9aa30edcc8f82d0d3996c2eef084174f273c5b4aecc231fe676
|
||||
SIZE (xpi/firefox-i18n-59.0.3/az.xpi) = 464270
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/be.xpi) = 6cbc8c62d376f9aa19481ef9c2e910ade525f0a9e4e49e129be26561b980627d
|
||||
SIZE (xpi/firefox-i18n-59.0.3/be.xpi) = 517059
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/bg.xpi) = 63d4200f9c90a00aaa8bdf8f9344e89aade1c7fbf2a896a5f0bc886f1de488a9
|
||||
SIZE (xpi/firefox-i18n-59.0.3/bg.xpi) = 508613
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/bn-BD.xpi) = 64106dc208f0c6101c8674f3745f950a18c6e9cbf0a558b871bbcef56bea931f
|
||||
SIZE (xpi/firefox-i18n-59.0.3/bn-BD.xpi) = 526352
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/bn-IN.xpi) = 644eea832e118992cf7f1d80534222840056693bc76c181a825bbb3d2afc642b
|
||||
SIZE (xpi/firefox-i18n-59.0.3/bn-IN.xpi) = 510797
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/br.xpi) = 013a5fcbc73528684b740d57b6da6960f6c340f74f6d942cdcef0b9f3d719562
|
||||
SIZE (xpi/firefox-i18n-59.0.3/br.xpi) = 451719
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/bs.xpi) = bd7ea4447a8f58954fc560390085ae5ef706b97c9fbb8d502664322173adde7c
|
||||
SIZE (xpi/firefox-i18n-59.0.3/bs.xpi) = 457859
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ca.xpi) = e75450e9d595cc4bbccd42e9b667f11f52b3e2a68f3a1640d29bec22c34eee02
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ca.xpi) = 464912
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/cak.xpi) = d46b1c72a8e235649ba7c084fff07f647912220aa39e2294e1bda8062b38b2fc
|
||||
SIZE (xpi/firefox-i18n-59.0.3/cak.xpi) = 475234
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/cs.xpi) = 8d3f598dd3202ac83e248f57d698d9984b4505c7dc8626416557999519ac28ca
|
||||
SIZE (xpi/firefox-i18n-59.0.3/cs.xpi) = 471575
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/cy.xpi) = d4428b881f7065f7620857e8bdd5ac7939b655d725db33b2d5130b116595d650
|
||||
SIZE (xpi/firefox-i18n-59.0.3/cy.xpi) = 454433
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/da.xpi) = 6ab8ffc013234f75a9ee3e07a8637c167ba270d899e943ee2a11b732353da72c
|
||||
SIZE (xpi/firefox-i18n-59.0.3/da.xpi) = 446949
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/de.xpi) = db7755056efbdba6389e21b27a5d073773a21d5bccc2a84a2cad2a69304548bf
|
||||
SIZE (xpi/firefox-i18n-59.0.3/de.xpi) = 466273
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/dsb.xpi) = 6b1beb2d308760c144db97907b6aa82520cbf57c6758724237fb667672ae202f
|
||||
SIZE (xpi/firefox-i18n-59.0.3/dsb.xpi) = 478975
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/el.xpi) = a5924bcc22cab458fadf536d3b3e98722e334258b2dabfad361e5cfdd3841efa
|
||||
SIZE (xpi/firefox-i18n-59.0.3/el.xpi) = 531408
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/en-GB.xpi) = 6e158b8913687702e5dd5c2c5eeed87fddb05bfecc5532abdae746d0f5ca7cfd
|
||||
SIZE (xpi/firefox-i18n-59.0.3/en-GB.xpi) = 434300
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/en-US.xpi) = 6689da05ad8576f85451123cd830d417259fab9d95900b10da196264df94fec3
|
||||
SIZE (xpi/firefox-i18n-59.0.3/en-US.xpi) = 432750
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/en-ZA.xpi) = ff13ae647fd1008a4b75417186c11c4f745786c943523cd5033453f172e3795e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/en-ZA.xpi) = 427366
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/eo.xpi) = e653e6a9da80065bc14141e7b0aa222d08024ace9569a4dcdefd6f40fe0af01c
|
||||
SIZE (xpi/firefox-i18n-59.0.3/eo.xpi) = 453366
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/es-AR.xpi) = a2f3f188a13f48cee71f07da1c293cc8a0d8afdfdccce5278333eb41cb84b0a2
|
||||
SIZE (xpi/firefox-i18n-59.0.3/es-AR.xpi) = 461799
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/es-CL.xpi) = e392ef67e5b186f04e8b35578a3025df37ed6862b175356cbd549117fee542f8
|
||||
SIZE (xpi/firefox-i18n-59.0.3/es-CL.xpi) = 464655
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/es-ES.xpi) = 76daa3775e21047d2dea9374e595b76ba5b4e385035852ae23e8b6a5b6c50b96
|
||||
SIZE (xpi/firefox-i18n-59.0.3/es-ES.xpi) = 348464
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/es-MX.xpi) = 38740927f69592fc9b4d3dbc02e7a3a55a2854781a429ff3579bdc9c088ae15d
|
||||
SIZE (xpi/firefox-i18n-59.0.3/es-MX.xpi) = 466313
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/et.xpi) = d0e661fbeb119eecbca79faf0049c64a80a5ddd0d2348029b458248a85012831
|
||||
SIZE (xpi/firefox-i18n-59.0.3/et.xpi) = 445395
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/eu.xpi) = 6d577aa1cd4144e041d3b4c1ff3f89373d9f17a36f64d62f07abf3b65e980062
|
||||
SIZE (xpi/firefox-i18n-59.0.3/eu.xpi) = 455237
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/fa.xpi) = 781d14437c3c35ab61bf6c13634c9fa72ad7b61875961b15c35d79d71383627d
|
||||
SIZE (xpi/firefox-i18n-59.0.3/fa.xpi) = 508099
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ff.xpi) = 72cffb096c9efd8c3f4a19238e79dc1dcd785cbaaa01f801cb4696a6a15c9b18
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ff.xpi) = 455026
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/fi.xpi) = cf31fb8bea5f461ca4d1a7c36d6179aa9325aa67814868286039795fbcf105c8
|
||||
SIZE (xpi/firefox-i18n-59.0.3/fi.xpi) = 445183
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/fr.xpi) = c7a0f75967675295cff14826efc9cc92a813ade46d6e2a10f417d6ce9255556e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/fr.xpi) = 473593
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/fy-NL.xpi) = 6946e20c0e87847fd53fb5413df656412b0736d1efe42ef22e930533cf7de8f5
|
||||
SIZE (xpi/firefox-i18n-59.0.3/fy-NL.xpi) = 462919
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ga-IE.xpi) = 084d26f17b9cbdb87d7e69bb0ea3d1d839de7a89627cbd9b5cded45d1b8fb97b
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ga-IE.xpi) = 471909
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/gd.xpi) = 4f70d89eef94f99c12b8cc9d6cfa95ba6cdb19d0e9ec34378b613a8c8334398b
|
||||
SIZE (xpi/firefox-i18n-59.0.3/gd.xpi) = 461298
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/gl.xpi) = c0d7da2c88c05bcda0945c586957ed1c16114270c53bcdc7c9c757519a0b377a
|
||||
SIZE (xpi/firefox-i18n-59.0.3/gl.xpi) = 441615
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/gn.xpi) = df391c9810555bbdbb90567d339301c0ad74adb88ea32525d97f450562bde577
|
||||
SIZE (xpi/firefox-i18n-59.0.3/gn.xpi) = 469398
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/gu-IN.xpi) = 2f12ae01fa832a36de3d38c7f3889044e792300dd7eed24c82ad7cd78ca7dfc0
|
||||
SIZE (xpi/firefox-i18n-59.0.3/gu-IN.xpi) = 521805
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/he.xpi) = 317ffd3182c7648e69040f5a3f376311853effe9fab1bc2b5ae358b96d02f88d
|
||||
SIZE (xpi/firefox-i18n-59.0.3/he.xpi) = 472771
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/hi-IN.xpi) = c7e790e3b4a68dd5f1b728effd78fccb7c620f304176e819f439bc832cb6f18a
|
||||
SIZE (xpi/firefox-i18n-59.0.3/hi-IN.xpi) = 524280
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/hr.xpi) = af04dc06275e503bb67e1a9055c46499bd6bc36a8152e8d55e8725ebbba8cdd6
|
||||
SIZE (xpi/firefox-i18n-59.0.3/hr.xpi) = 459978
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/hsb.xpi) = 69e05c75c04e18d5f0c80a2d4e8294d9e57ffefec73e2320d40ab0636fa55943
|
||||
SIZE (xpi/firefox-i18n-59.0.3/hsb.xpi) = 475941
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/hu.xpi) = 3ce07eb573c5c3deaa84dc769390303a5560752ceade43cb393b59800008eea7
|
||||
SIZE (xpi/firefox-i18n-59.0.3/hu.xpi) = 476897
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/hy-AM.xpi) = 472fc9816562ec89a73ddab93639a7230e7896ed9be668d8aab403aa32497d37
|
||||
SIZE (xpi/firefox-i18n-59.0.3/hy-AM.xpi) = 508168
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ia.xpi) = 1df302fd1f242f6afe09a374d5f5849f0f6f68fbb5324deae27d88d5b991f694
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ia.xpi) = 448830
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/id.xpi) = 621affe22e7de3305dcf92c48ff6ff6ea00ace40027b576cbee07d3f24064b39
|
||||
SIZE (xpi/firefox-i18n-59.0.3/id.xpi) = 441953
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/is.xpi) = ee4eec709f3628c74723c0f2dc36d129494bdeec650408f53ab713fe4852e675
|
||||
SIZE (xpi/firefox-i18n-59.0.3/is.xpi) = 451373
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/it.xpi) = 62b0fab1268410250fdaa3efbb224af67562b4fd06cf5398a4b2f83a9bf8fae8
|
||||
SIZE (xpi/firefox-i18n-59.0.3/it.xpi) = 342524
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ja.xpi) = 2690d105dcfe2f336b0b2e6eed421b6724920860f18b6cbab5cfd6a3233bd7c8
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ja.xpi) = 508147
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ka.xpi) = 35493638aebddca2525c484c0fee3019363a678539539a3c7622838d229ddf5c
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ka.xpi) = 492569
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/kab.xpi) = 6a6f00374b8467238d6ab6a859bf08e6b94d82e89abe8d0044f3c43bd3b3f3c2
|
||||
SIZE (xpi/firefox-i18n-59.0.3/kab.xpi) = 461840
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/kk.xpi) = 3ba09badbdbcabe972f5fa9663b0c6026911755f1865d357612362547670e58f
|
||||
SIZE (xpi/firefox-i18n-59.0.3/kk.xpi) = 517585
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/km.xpi) = ff01a1481e27d3b30d5fb4989d5343e3a5d68598a7dff9b3ba53a797ea50eefe
|
||||
SIZE (xpi/firefox-i18n-59.0.3/km.xpi) = 526359
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/kn.xpi) = adb9e3ccc561ee6251f998224438e287a059002693c32dd5f10d67abd365c75e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/kn.xpi) = 527879
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ko.xpi) = 5c64386aa45b42da7440c97ecf2dc54e90fccabd48b4370e545a92bd33951d3e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ko.xpi) = 487661
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/lij.xpi) = 0ee0b05d4938b8a30b22bfbfe2252bffe66a4dd7413160e0c96a687362b83ebf
|
||||
SIZE (xpi/firefox-i18n-59.0.3/lij.xpi) = 446606
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/lt.xpi) = 628562e4eba12a848729991d397816fcaa5212e386a092e73573d5f4b26f3ef2
|
||||
SIZE (xpi/firefox-i18n-59.0.3/lt.xpi) = 475143
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/lv.xpi) = 2ac502baba7b61fae56c1238c88bc0fed9e1ad946016c4e5abac7b26d0c5e8ef
|
||||
SIZE (xpi/firefox-i18n-59.0.3/lv.xpi) = 463655
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/mai.xpi) = 8bbcd4a2ee41e02f57bc71de7ef95cf8cca38f1f762b5f67467bfc48f38f198b
|
||||
SIZE (xpi/firefox-i18n-59.0.3/mai.xpi) = 499910
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/mk.xpi) = 3d1c93031fb4ee9b017305f33d7990a6cae03371260375c9b92bea608e4134e9
|
||||
SIZE (xpi/firefox-i18n-59.0.3/mk.xpi) = 484076
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ml.xpi) = 826338ba6e1793c8712a52026bde36a1545e96d297f2672cb263c5b3e895e819
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ml.xpi) = 539736
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/mr.xpi) = 19f22284997f83f3898513d28ff77248564bcad5f251663be305e9794a83df85
|
||||
SIZE (xpi/firefox-i18n-59.0.3/mr.xpi) = 517961
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ms.xpi) = 198d6644796e1b0d2202541aca0bdd3ac8571575b061142b424d40a698f5a6a3
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ms.xpi) = 450076
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/my.xpi) = c74d46816b58fda85c297d9fad7daaf0f7f5d09167c5439c805081065b260732
|
||||
SIZE (xpi/firefox-i18n-59.0.3/my.xpi) = 511894
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/nb-NO.xpi) = a54871fbb9632c1f086537a60a9a5eee04a6c74928e7b8905c8b7dd3a0141438
|
||||
SIZE (xpi/firefox-i18n-59.0.3/nb-NO.xpi) = 450276
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ne-NP.xpi) = f9ac85b3bb0e3ad2e1ed69722e33670989bd21ff7c729c5580b420a8d90096bc
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ne-NP.xpi) = 509177
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/nl.xpi) = c6eb222bd0f876ad03517388dc91f48e1e31b2374e047368af756e5ab18c2f7b
|
||||
SIZE (xpi/firefox-i18n-59.0.3/nl.xpi) = 458129
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/nn-NO.xpi) = 623def8c8b87cb6283de5cc1e7453eae31eca83c1c1b30f8ea71d9bd8c6d71ed
|
||||
SIZE (xpi/firefox-i18n-59.0.3/nn-NO.xpi) = 451471
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/or.xpi) = f30b95af5fd94ac73986643f349140dc4adc1a652b10a3cd6effa05d4f75e724
|
||||
SIZE (xpi/firefox-i18n-59.0.3/or.xpi) = 493181
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/pa-IN.xpi) = 05f0fd798185c7dcbf1fd90b046a57f07fc768b307cfc6d647da52b1109c95dc
|
||||
SIZE (xpi/firefox-i18n-59.0.3/pa-IN.xpi) = 492420
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/pl.xpi) = 483be94d1dadcde125440abfaea67569207a288a1e3b389500fcf5365c56b463
|
||||
SIZE (xpi/firefox-i18n-59.0.3/pl.xpi) = 358511
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/pt-BR.xpi) = 71b725304ff312cef9792c0163970288dea1739669ea275836f5c10685fc827c
|
||||
SIZE (xpi/firefox-i18n-59.0.3/pt-BR.xpi) = 455916
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/pt-PT.xpi) = 929fb40a32904905f8cce947dcf5824128706e8edf257cb9b4655042dd9e7f91
|
||||
SIZE (xpi/firefox-i18n-59.0.3/pt-PT.xpi) = 459332
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/rm.xpi) = 6d1d9e6725aa0c9fecf6a1f110b74c384bdd99517ecaf9070983d8b4ab620aa7
|
||||
SIZE (xpi/firefox-i18n-59.0.3/rm.xpi) = 449757
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ro.xpi) = 9a5c32830bd2d96a1203a97c0129526f55f76adf7d6c671af861ef3dee76f776
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ro.xpi) = 453403
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ru.xpi) = 7f2935b9d0ad57e718adc56bc15f76063b12ca75de633439ed318006ba903f7b
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ru.xpi) = 526523
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/si.xpi) = 0c7c34a39a10e3937b1ba88eaa1806a378bd60bb4409c1223e946d2ae60454b1
|
||||
SIZE (xpi/firefox-i18n-59.0.3/si.xpi) = 492588
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/sk.xpi) = 2f437d36423bcbe759414275707d56cc966f653bb908e5a9d27642a4c9e2774c
|
||||
SIZE (xpi/firefox-i18n-59.0.3/sk.xpi) = 480814
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/sl.xpi) = d7d37ff69c626984d2afa6598a51d0c7c7b0d97a986ee043522e00447734916e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/sl.xpi) = 458825
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/son.xpi) = c2f95dfeff2b70e5037ddd21fcce03fa149a9d88e578aa6ed1105d2407c1f134
|
||||
SIZE (xpi/firefox-i18n-59.0.3/son.xpi) = 446400
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/sq.xpi) = 10ecd6c1e5cba90243792f25cf095d560b04599c25ef4949e8e388cbe27194cb
|
||||
SIZE (xpi/firefox-i18n-59.0.3/sq.xpi) = 464463
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/sr.xpi) = 922eccb1b2494fbbb21a6fe167c7c662f1a02a97ea0f65e717439de5105d1254
|
||||
SIZE (xpi/firefox-i18n-59.0.3/sr.xpi) = 486178
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/sv-SE.xpi) = 2868e85661001cdeb5614cb0614cf3f57633c5b209de25985807931ce9852b72
|
||||
SIZE (xpi/firefox-i18n-59.0.3/sv-SE.xpi) = 458660
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ta.xpi) = e3a4daaec520c6e77847d08ad55e8aa8621fe42b56c2718a9dc45bae87804f15
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ta.xpi) = 512843
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/te.xpi) = 56b6d302449c85b303731345800b47fc1de35d3cfeb6dccb378c48bc069fbc64
|
||||
SIZE (xpi/firefox-i18n-59.0.3/te.xpi) = 527083
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/th.xpi) = abd934377157ba71fecfa920b2883fde7ba7168575af768bdcb19356ea5f1174
|
||||
SIZE (xpi/firefox-i18n-59.0.3/th.xpi) = 498544
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/tr.xpi) = 285ef8a6d8669ac9d5b6f2e2ae55b36bb2bb21d8230df405f0489714539fe391
|
||||
SIZE (xpi/firefox-i18n-59.0.3/tr.xpi) = 463594
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/uk.xpi) = ab3add6611225fd7b65e0e1481e15cae1f5ae98bf058587f64f7f5db40b42d8d
|
||||
SIZE (xpi/firefox-i18n-59.0.3/uk.xpi) = 516926
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/ur.xpi) = 2ca831b51bfefcd70ed32b9c0490ac4e0c20e590e3d56bf0d466f9ca0773dae3
|
||||
SIZE (xpi/firefox-i18n-59.0.3/ur.xpi) = 507380
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/uz.xpi) = aa8862d2b3bec4e9d0382e683b109b14f927093ad053133ba0b2ea6d7ee9236e
|
||||
SIZE (xpi/firefox-i18n-59.0.3/uz.xpi) = 456924
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/vi.xpi) = 3e25ecc2252c6c747bd339d4ddf55ba45660792126e1f99f0ff393aeec89b70a
|
||||
SIZE (xpi/firefox-i18n-59.0.3/vi.xpi) = 470070
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/xh.xpi) = ab168a5ff1b17c16a675710d8d69ac7213f1e36aa83ea36bd4aae437110c1242
|
||||
SIZE (xpi/firefox-i18n-59.0.3/xh.xpi) = 460772
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/zh-CN.xpi) = b718831aa3a6fe3457b2afb6c7da092eec5c377b9a08a8061373f488bb0168a1
|
||||
SIZE (xpi/firefox-i18n-59.0.3/zh-CN.xpi) = 483449
|
||||
SHA256 (xpi/firefox-i18n-59.0.3/zh-TW.xpi) = eaabaa366bbe19fbd48a81c67c69ec949004a065ae217aea284dffefe92ad4ef
|
||||
SIZE (xpi/firefox-i18n-59.0.3/zh-TW.xpi) = 477089
|
||||
TIMESTAMP = 1525366747
|
||||
SHA256 (xpi/firefox-i18n-60.0/ach.xpi) = 53d7cc8122d01405ff1e81cd59b99c534416c1a1e1740dd0536bbb608699bd48
|
||||
SIZE (xpi/firefox-i18n-60.0/ach.xpi) = 496060
|
||||
SHA256 (xpi/firefox-i18n-60.0/af.xpi) = 3c78e0128289c2a3ecefddbbb5488cb6324828606ef46ce083d3f9a39b9ad10e
|
||||
SIZE (xpi/firefox-i18n-60.0/af.xpi) = 486533
|
||||
SHA256 (xpi/firefox-i18n-60.0/an.xpi) = 6ccafad26ff3dcb004eaa409d74b4edfe1a25d9802c7e195990ee23f2af780a4
|
||||
SIZE (xpi/firefox-i18n-60.0/an.xpi) = 519732
|
||||
SHA256 (xpi/firefox-i18n-60.0/ar.xpi) = 00349c780c191d8155af51dc725ea85a6288bc8a873d1d868e26a59c7491673f
|
||||
SIZE (xpi/firefox-i18n-60.0/ar.xpi) = 546957
|
||||
SHA256 (xpi/firefox-i18n-60.0/as.xpi) = c54a2447f53163d087e7b30f4fd602efcbb77c3ef91a4102539f5df9cae4fcc8
|
||||
SIZE (xpi/firefox-i18n-60.0/as.xpi) = 529947
|
||||
SHA256 (xpi/firefox-i18n-60.0/ast.xpi) = 88d92a5714da612d52ff0b27165f285ba46ce384ddbdb835c0f6bf3bf939dd96
|
||||
SIZE (xpi/firefox-i18n-60.0/ast.xpi) = 507866
|
||||
SHA256 (xpi/firefox-i18n-60.0/az.xpi) = 4112937fafee628dc80007aba16b1173bc57d9a01155a5efe1fb0fadc7db79d7
|
||||
SIZE (xpi/firefox-i18n-60.0/az.xpi) = 523975
|
||||
SHA256 (xpi/firefox-i18n-60.0/be.xpi) = 746627277957930f0a8053c2efc742390fae80d8f087d47b213f188dd2264e09
|
||||
SIZE (xpi/firefox-i18n-60.0/be.xpi) = 579944
|
||||
SHA256 (xpi/firefox-i18n-60.0/bg.xpi) = b415ea936d517c061d0ebcf42e000ed13943c78ae188c20dc5d65c297670b7cd
|
||||
SIZE (xpi/firefox-i18n-60.0/bg.xpi) = 573075
|
||||
SHA256 (xpi/firefox-i18n-60.0/bn-BD.xpi) = 179a1e8909f34bce3907d11140b467743e2c69a33374a7ef4f9db8dd36979520
|
||||
SIZE (xpi/firefox-i18n-60.0/bn-BD.xpi) = 589638
|
||||
SHA256 (xpi/firefox-i18n-60.0/bn-IN.xpi) = acea49db1052b5342929bb9f36131315820c1e94f9f9e0a4051644796d215bd9
|
||||
SIZE (xpi/firefox-i18n-60.0/bn-IN.xpi) = 570084
|
||||
SHA256 (xpi/firefox-i18n-60.0/br.xpi) = c5e18d9645a9f665a736c43ac4faa828728a145f3353b92b23949998d4fc2576
|
||||
SIZE (xpi/firefox-i18n-60.0/br.xpi) = 511252
|
||||
SHA256 (xpi/firefox-i18n-60.0/bs.xpi) = 67a2a2f68c8e9a6291750e0732c9532c314f8281777432372016b0d0fc3a90bd
|
||||
SIZE (xpi/firefox-i18n-60.0/bs.xpi) = 513930
|
||||
SHA256 (xpi/firefox-i18n-60.0/ca.xpi) = bef4db01eb89d19a9e39a878d63c40346ce1eca72d4b4d47494ded1218842a3b
|
||||
SIZE (xpi/firefox-i18n-60.0/ca.xpi) = 524485
|
||||
SHA256 (xpi/firefox-i18n-60.0/cak.xpi) = 8cd1a8564d4198c5827e04da24cdb684501818e62a610adfcb9001aa345934c6
|
||||
SIZE (xpi/firefox-i18n-60.0/cak.xpi) = 535507
|
||||
SHA256 (xpi/firefox-i18n-60.0/cs.xpi) = 356b5cf598d3cd435f891d1c734ff69477bb1a1260f6875b7127b55186c4cc0a
|
||||
SIZE (xpi/firefox-i18n-60.0/cs.xpi) = 531020
|
||||
SHA256 (xpi/firefox-i18n-60.0/cy.xpi) = c4c9fc4017deb822cec90d20f214d6266e535e8f2e176dde95adb9e5541e2e50
|
||||
SIZE (xpi/firefox-i18n-60.0/cy.xpi) = 515865
|
||||
SHA256 (xpi/firefox-i18n-60.0/da.xpi) = be63221fc0247b234b13ae5f6d56ceab4bda666fc51d45ecca7f56a5827387b3
|
||||
SIZE (xpi/firefox-i18n-60.0/da.xpi) = 509983
|
||||
SHA256 (xpi/firefox-i18n-60.0/de.xpi) = 9ce175158ab0bcf2595d23558806e1ebe2e61d7e5794fa86c2e8e55b6fce0d59
|
||||
SIZE (xpi/firefox-i18n-60.0/de.xpi) = 525692
|
||||
SHA256 (xpi/firefox-i18n-60.0/dsb.xpi) = b9a8979417bafa03b161840e85b28f320fe2bc05d9a39243c67fcabc9588390e
|
||||
SIZE (xpi/firefox-i18n-60.0/dsb.xpi) = 538745
|
||||
SHA256 (xpi/firefox-i18n-60.0/el.xpi) = b91bf759b261a3ae93f1fa12b46e429297b59e77975b1a0e023336540efbde51
|
||||
SIZE (xpi/firefox-i18n-60.0/el.xpi) = 592911
|
||||
SHA256 (xpi/firefox-i18n-60.0/en-GB.xpi) = 0e95284c878250498a1655136e39b5080aa0860b2784b2e9062222cda4922607
|
||||
SIZE (xpi/firefox-i18n-60.0/en-GB.xpi) = 490907
|
||||
SHA256 (xpi/firefox-i18n-60.0/en-US.xpi) = 303cb12f5dd7f14381050082d4408ee8354dd17c85ede7c8ecb9d86302230f8b
|
||||
SIZE (xpi/firefox-i18n-60.0/en-US.xpi) = 472383
|
||||
SHA256 (xpi/firefox-i18n-60.0/en-ZA.xpi) = f04e1036bb18a910fb6eb82235c55919975405982829af81bf55a28b80a3a3d7
|
||||
SIZE (xpi/firefox-i18n-60.0/en-ZA.xpi) = 473893
|
||||
SHA256 (xpi/firefox-i18n-60.0/eo.xpi) = 2186dc82ada5a005af9f32c3804d27f430120f90c85aa81ab1fff62ef2f5ee19
|
||||
SIZE (xpi/firefox-i18n-60.0/eo.xpi) = 510486
|
||||
SHA256 (xpi/firefox-i18n-60.0/es-AR.xpi) = f8937590a4970febf434643f88b0c3b8dde9c8b487537e22be36fac85b82bfb9
|
||||
SIZE (xpi/firefox-i18n-60.0/es-AR.xpi) = 523825
|
||||
SHA256 (xpi/firefox-i18n-60.0/es-CL.xpi) = 72c7ff06f70d9c91e674ff4c5d5d5516d6bf94e6f537251360eae95b6031288d
|
||||
SIZE (xpi/firefox-i18n-60.0/es-CL.xpi) = 526509
|
||||
SHA256 (xpi/firefox-i18n-60.0/es-ES.xpi) = 773edf9dd30c54aa7c635a061aecf4293397ee0bfe4a4ccd5456a7e848e11b2d
|
||||
SIZE (xpi/firefox-i18n-60.0/es-ES.xpi) = 459145
|
||||
SHA256 (xpi/firefox-i18n-60.0/es-MX.xpi) = 15979a5de10cd774f9f0a3f2bd75120fcba0ddcdcee0e6a16827c4951b3de7c9
|
||||
SIZE (xpi/firefox-i18n-60.0/es-MX.xpi) = 527837
|
||||
SHA256 (xpi/firefox-i18n-60.0/et.xpi) = 486f6e09edf17a28592cca6cc1023ab6df0851a3579ad269158de9ea1736f798
|
||||
SIZE (xpi/firefox-i18n-60.0/et.xpi) = 504177
|
||||
SHA256 (xpi/firefox-i18n-60.0/eu.xpi) = aaa5de02e9f28d90638cf777986f240252d5573a4823630eb53b7f98e50b1520
|
||||
SIZE (xpi/firefox-i18n-60.0/eu.xpi) = 510932
|
||||
SHA256 (xpi/firefox-i18n-60.0/fa.xpi) = f1755e375399918d1ae5f96615ec35acf3e724706885f94807d1091072f98d94
|
||||
SIZE (xpi/firefox-i18n-60.0/fa.xpi) = 565492
|
||||
SHA256 (xpi/firefox-i18n-60.0/ff.xpi) = a948f479a0d09c6b8cd2315f4ce96a8e9039aae5d560eaf6e23a547426796867
|
||||
SIZE (xpi/firefox-i18n-60.0/ff.xpi) = 511431
|
||||
SHA256 (xpi/firefox-i18n-60.0/fi.xpi) = 341c660264866ee2dfd9f51e702aaf47752345747dd886b827c1fdb4dac88731
|
||||
SIZE (xpi/firefox-i18n-60.0/fi.xpi) = 505404
|
||||
SHA256 (xpi/firefox-i18n-60.0/fr.xpi) = 6a10513550ca1a215db66180b8de1901d12a9294d123c49ed3dffb671642f8a6
|
||||
SIZE (xpi/firefox-i18n-60.0/fr.xpi) = 535240
|
||||
SHA256 (xpi/firefox-i18n-60.0/fy-NL.xpi) = f5d1819926c65bef009d9f733bedc59fd611637b57625fb36d5578980d311a07
|
||||
SIZE (xpi/firefox-i18n-60.0/fy-NL.xpi) = 523737
|
||||
SHA256 (xpi/firefox-i18n-60.0/ga-IE.xpi) = d48d35bae701f7751da67f62c06e66fe7fb88e50f9a53058f1dacdeb93243f41
|
||||
SIZE (xpi/firefox-i18n-60.0/ga-IE.xpi) = 526201
|
||||
SHA256 (xpi/firefox-i18n-60.0/gd.xpi) = cf0e1ad45addf7385ae8b06588774b97c24f13c19bd6ab8a0ac092ad446eebed
|
||||
SIZE (xpi/firefox-i18n-60.0/gd.xpi) = 520094
|
||||
SHA256 (xpi/firefox-i18n-60.0/gl.xpi) = b3d5f733d8b0054117c6699b869af92364c0635894ccceb1fd10a56bf88dec76
|
||||
SIZE (xpi/firefox-i18n-60.0/gl.xpi) = 496596
|
||||
SHA256 (xpi/firefox-i18n-60.0/gn.xpi) = 79049bd1ad1352d4821b56a21f8c938dc3f949a247f22ebd0be6238dedac8d16
|
||||
SIZE (xpi/firefox-i18n-60.0/gn.xpi) = 532445
|
||||
SHA256 (xpi/firefox-i18n-60.0/gu-IN.xpi) = d8867ddf68b99170e91bfc2a5d95822f72dd628227304d197e9c8b5594510c9f
|
||||
SIZE (xpi/firefox-i18n-60.0/gu-IN.xpi) = 589477
|
||||
SHA256 (xpi/firefox-i18n-60.0/he.xpi) = efe697d5cc2489773084126fd9a09a1a326045c4d0bfb6dab879bf3f440bbb03
|
||||
SIZE (xpi/firefox-i18n-60.0/he.xpi) = 535208
|
||||
SHA256 (xpi/firefox-i18n-60.0/hi-IN.xpi) = cdde1b852744e0584b66aacf193c09b49891093147daa459ded7c586a9ae9216
|
||||
SIZE (xpi/firefox-i18n-60.0/hi-IN.xpi) = 590081
|
||||
SHA256 (xpi/firefox-i18n-60.0/hr.xpi) = e58a06aef947fef842813be2ad931ef02c57348e7f3fd405d73ebd05ac0ec4c7
|
||||
SIZE (xpi/firefox-i18n-60.0/hr.xpi) = 515190
|
||||
SHA256 (xpi/firefox-i18n-60.0/hsb.xpi) = 35efa8fe9d6a89a6fcc3178154c7912aa7b2b2be02cd9b926008c04f9e1b40fa
|
||||
SIZE (xpi/firefox-i18n-60.0/hsb.xpi) = 536278
|
||||
SHA256 (xpi/firefox-i18n-60.0/hu.xpi) = 95e0ed5ea210dae542ebfdc9387d9bae4fde53c38f1be1d052e81bcd1afb043b
|
||||
SIZE (xpi/firefox-i18n-60.0/hu.xpi) = 537586
|
||||
SHA256 (xpi/firefox-i18n-60.0/hy-AM.xpi) = 8e7b6ae85cb24a5a116d79b62282affaa9caad20284d2c784b7c0bf9ff54c257
|
||||
SIZE (xpi/firefox-i18n-60.0/hy-AM.xpi) = 568631
|
||||
SHA256 (xpi/firefox-i18n-60.0/ia.xpi) = 1268720677549267ea5d19b5632de38973922e4c72cf90910dd4234b3a514ffb
|
||||
SIZE (xpi/firefox-i18n-60.0/ia.xpi) = 509952
|
||||
SHA256 (xpi/firefox-i18n-60.0/id.xpi) = 9ca9220d62f26530af4c5bdca44d0a5691130f77a6cefb3f8c5cb8ffce8f07c6
|
||||
SIZE (xpi/firefox-i18n-60.0/id.xpi) = 501456
|
||||
SHA256 (xpi/firefox-i18n-60.0/is.xpi) = 7ecdab2c648c439e93dacbe5aa37b25a4d42122dd62ff1784323c2a56edce473
|
||||
SIZE (xpi/firefox-i18n-60.0/is.xpi) = 512502
|
||||
SHA256 (xpi/firefox-i18n-60.0/it.xpi) = 4bdf67ee507fcf3c1e8cd16a22b7cf7c8bd2c7b9ab169b881588ccf7ebcd381b
|
||||
SIZE (xpi/firefox-i18n-60.0/it.xpi) = 398258
|
||||
SHA256 (xpi/firefox-i18n-60.0/ja.xpi) = cea38dd41f439d52aebbb7133c83c655e5a7cda7b9244ca697605f5fb6e75bfd
|
||||
SIZE (xpi/firefox-i18n-60.0/ja.xpi) = 571236
|
||||
SHA256 (xpi/firefox-i18n-60.0/ka.xpi) = d2d92cf67836a2d42cad40e08ec8093882085112f8e8c21f74241448bedf4155
|
||||
SIZE (xpi/firefox-i18n-60.0/ka.xpi) = 556067
|
||||
SHA256 (xpi/firefox-i18n-60.0/kab.xpi) = bbfb9a2a5b9375df9d82509a5b064c499013d1f02ea464dddb3b553bb776ec5a
|
||||
SIZE (xpi/firefox-i18n-60.0/kab.xpi) = 519620
|
||||
SHA256 (xpi/firefox-i18n-60.0/kk.xpi) = c5c54c15910c2254180d72c10fa8ff1429c43625cbaaca0ab42e266ec850acbe
|
||||
SIZE (xpi/firefox-i18n-60.0/kk.xpi) = 582208
|
||||
SHA256 (xpi/firefox-i18n-60.0/km.xpi) = 3506f2c645ad501fa133df2ca8af5e84458e641860e490ab297f3d3d2335b312
|
||||
SIZE (xpi/firefox-i18n-60.0/km.xpi) = 582334
|
||||
SHA256 (xpi/firefox-i18n-60.0/kn.xpi) = 0b084c1ad201d15851d8a6acc40b9bac020119175ec1edc390d39a7535abab13
|
||||
SIZE (xpi/firefox-i18n-60.0/kn.xpi) = 585100
|
||||
SHA256 (xpi/firefox-i18n-60.0/ko.xpi) = d450910b7e256a8599e4432ac49f758d7dd7b7b7ab74a1b0e1cd0c9717d79d1f
|
||||
SIZE (xpi/firefox-i18n-60.0/ko.xpi) = 547048
|
||||
SHA256 (xpi/firefox-i18n-60.0/lij.xpi) = 7d47c90c77289f09f8356b5f42746f75dbd7a52efbacb056f832f980b7331083
|
||||
SIZE (xpi/firefox-i18n-60.0/lij.xpi) = 512398
|
||||
SHA256 (xpi/firefox-i18n-60.0/lt.xpi) = d614b06a18a7e59683733a21781a851879c31e46b0d345ec6efd49b774210a7d
|
||||
SIZE (xpi/firefox-i18n-60.0/lt.xpi) = 535634
|
||||
SHA256 (xpi/firefox-i18n-60.0/lv.xpi) = 8f68a8ac9d8f7f7d1edcf1d59c8da5254efd1074ddb1e2038424bddb5a413e5d
|
||||
SIZE (xpi/firefox-i18n-60.0/lv.xpi) = 525636
|
||||
SHA256 (xpi/firefox-i18n-60.0/mai.xpi) = 8331bda59001d53abeaf86dfbe649799077963ab4955a66b5caef11fb75894d5
|
||||
SIZE (xpi/firefox-i18n-60.0/mai.xpi) = 548470
|
||||
SHA256 (xpi/firefox-i18n-60.0/mk.xpi) = 81db9c67e886c57cc2d807bf977686ef4d03cabd4ac8e57eadbe7c68c683434b
|
||||
SIZE (xpi/firefox-i18n-60.0/mk.xpi) = 513024
|
||||
SHA256 (xpi/firefox-i18n-60.0/ml.xpi) = 1a570596e6d9eebfd1b8e03d3d59ef300e977ac204fe707e333b0e389d3ba9cc
|
||||
SIZE (xpi/firefox-i18n-60.0/ml.xpi) = 598200
|
||||
SHA256 (xpi/firefox-i18n-60.0/mr.xpi) = a1d26997a43b90384c97315f86aa8f1ef4af5c126fe6ba02310a21aa399fcfcc
|
||||
SIZE (xpi/firefox-i18n-60.0/mr.xpi) = 578337
|
||||
SHA256 (xpi/firefox-i18n-60.0/ms.xpi) = 522bd4cf7016c2fe181f2a04a5661fd174152973e12a29447bb5d29054a76e16
|
||||
SIZE (xpi/firefox-i18n-60.0/ms.xpi) = 508782
|
||||
SHA256 (xpi/firefox-i18n-60.0/my.xpi) = 6e61fcd5a98e827db607622d185642ca34e81f84aa83c31508931681899d09a8
|
||||
SIZE (xpi/firefox-i18n-60.0/my.xpi) = 569576
|
||||
SHA256 (xpi/firefox-i18n-60.0/nb-NO.xpi) = 1f66db8430715fc22690ca5f002f5c60878725dc716131e9ab31bc2e90db0109
|
||||
SIZE (xpi/firefox-i18n-60.0/nb-NO.xpi) = 509096
|
||||
SHA256 (xpi/firefox-i18n-60.0/ne-NP.xpi) = 9b2827ca22212a947db237c11c94a69b207b4ca3786944f4fdefeaddd1741acb
|
||||
SIZE (xpi/firefox-i18n-60.0/ne-NP.xpi) = 554576
|
||||
SHA256 (xpi/firefox-i18n-60.0/nl.xpi) = 3e7b4623d9390f6bac75368750561adc2599cf19c6a904c764947997bd161f53
|
||||
SIZE (xpi/firefox-i18n-60.0/nl.xpi) = 516657
|
||||
SHA256 (xpi/firefox-i18n-60.0/nn-NO.xpi) = 06fb56a442e7e1b0907e28617e98401ff88112d6af204a2af779e784ea81f079
|
||||
SIZE (xpi/firefox-i18n-60.0/nn-NO.xpi) = 510618
|
||||
SHA256 (xpi/firefox-i18n-60.0/oc.xpi) = ad506d782a522c982dfd200057c5adadf9fb28c39c133657713b6e5513454156
|
||||
SIZE (xpi/firefox-i18n-60.0/oc.xpi) = 526210
|
||||
SHA256 (xpi/firefox-i18n-60.0/or.xpi) = 8537d758630c17f66a3af3d4959e15a864eb34bf9988da6f2f0ffc8526712966
|
||||
SIZE (xpi/firefox-i18n-60.0/or.xpi) = 540093
|
||||
SHA256 (xpi/firefox-i18n-60.0/pa-IN.xpi) = 246cf5f518f27404e0eb71e4956c098ffd8f5c7cb0797d0be0510a4cda32f69a
|
||||
SIZE (xpi/firefox-i18n-60.0/pa-IN.xpi) = 557089
|
||||
SHA256 (xpi/firefox-i18n-60.0/pl.xpi) = 5b191c59e194d40b2ff9e373fee2031d117c05e5ea95b5f3bb113b7bf971edc1
|
||||
SIZE (xpi/firefox-i18n-60.0/pl.xpi) = 418188
|
||||
SHA256 (xpi/firefox-i18n-60.0/pt-BR.xpi) = cd8bdb0b980942000164e9a5fc6a8774ce0976621f04e4500522789292b4186c
|
||||
SIZE (xpi/firefox-i18n-60.0/pt-BR.xpi) = 513937
|
||||
SHA256 (xpi/firefox-i18n-60.0/pt-PT.xpi) = 3795f1b2f5507f2509a2039ab826cc0c8e96218be5a31ef4017b11f2a9fbed22
|
||||
SIZE (xpi/firefox-i18n-60.0/pt-PT.xpi) = 518541
|
||||
SHA256 (xpi/firefox-i18n-60.0/rm.xpi) = 6a2dfac8512656a10ad4cad870a8ec54f6c3edcb5812cb421498ca06155bd8ab
|
||||
SIZE (xpi/firefox-i18n-60.0/rm.xpi) = 505265
|
||||
SHA256 (xpi/firefox-i18n-60.0/ro.xpi) = 30164759886d12cac01539ee433272d217b4e227cab16a3466d6ef47ba6f2418
|
||||
SIZE (xpi/firefox-i18n-60.0/ro.xpi) = 513282
|
||||
SHA256 (xpi/firefox-i18n-60.0/ru.xpi) = b91ea5ab5bc12b81c366f5b797ce922753d956e75488f8ae071b3a19fa0006fb
|
||||
SIZE (xpi/firefox-i18n-60.0/ru.xpi) = 590510
|
||||
SHA256 (xpi/firefox-i18n-60.0/si.xpi) = 5c3dc73d7f3d10f039208ad3e5e480c28b0d6e168b4467771d06c024310b53c0
|
||||
SIZE (xpi/firefox-i18n-60.0/si.xpi) = 544796
|
||||
SHA256 (xpi/firefox-i18n-60.0/sk.xpi) = 170e764c2d7842ace3ea10a37a28403ab30092cd010b673053c1366b9d566e2b
|
||||
SIZE (xpi/firefox-i18n-60.0/sk.xpi) = 540922
|
||||
SHA256 (xpi/firefox-i18n-60.0/sl.xpi) = fb819360b31a983242564c49e0398f13f7faecb0f037a8c643e46912b7cfce63
|
||||
SIZE (xpi/firefox-i18n-60.0/sl.xpi) = 518574
|
||||
SHA256 (xpi/firefox-i18n-60.0/son.xpi) = f7c55f44f07c88e3cde1fed96144185f81554f430632e730d45527ab602c6c51
|
||||
SIZE (xpi/firefox-i18n-60.0/son.xpi) = 496914
|
||||
SHA256 (xpi/firefox-i18n-60.0/sq.xpi) = 73a47afd344801f2b1af6db49ffe10a99576914416d30e2f69ef4c84345f6224
|
||||
SIZE (xpi/firefox-i18n-60.0/sq.xpi) = 520493
|
||||
SHA256 (xpi/firefox-i18n-60.0/sr.xpi) = cb3ccfd9a3a8c8256fec8a91dbcca334e2e64b6b36d1c49b3d76ee9133af8bd8
|
||||
SIZE (xpi/firefox-i18n-60.0/sr.xpi) = 547995
|
||||
SHA256 (xpi/firefox-i18n-60.0/sv-SE.xpi) = 2e5f2209f4263b4defb52edf93c81c45b142dc4f85d4eef5ef7a5df0dfb4a81c
|
||||
SIZE (xpi/firefox-i18n-60.0/sv-SE.xpi) = 517847
|
||||
SHA256 (xpi/firefox-i18n-60.0/ta.xpi) = 6acdcf05d2a55fd7803fb5674b5abada51f89811192d66af1b24bd006d195241
|
||||
SIZE (xpi/firefox-i18n-60.0/ta.xpi) = 577139
|
||||
SHA256 (xpi/firefox-i18n-60.0/te.xpi) = 8dcc7ed11b9c096904810797153115d507395a8ef01025bc3fb2c53098f02fc4
|
||||
SIZE (xpi/firefox-i18n-60.0/te.xpi) = 590183
|
||||
SHA256 (xpi/firefox-i18n-60.0/th.xpi) = 3edcbbc2364ecaa1eff5fecee810a201d86bf3dbd81d0916b7b8a94e31aeaa3e
|
||||
SIZE (xpi/firefox-i18n-60.0/th.xpi) = 562036
|
||||
SHA256 (xpi/firefox-i18n-60.0/tr.xpi) = 1cdb5564ec294ffd7d85a8eeb50b749f9d6bce19a585cfb29098cf8e091d5247
|
||||
SIZE (xpi/firefox-i18n-60.0/tr.xpi) = 525033
|
||||
SHA256 (xpi/firefox-i18n-60.0/uk.xpi) = 2318e5a4bc46540633aa7ea71e3c4da7e0d006fafa8292adaf1ac0baa3927129
|
||||
SIZE (xpi/firefox-i18n-60.0/uk.xpi) = 580145
|
||||
SHA256 (xpi/firefox-i18n-60.0/ur.xpi) = e0c4f2d2c0a3f478295d0beaaf129e7df286f503601f4530df7ce3194b26763a
|
||||
SIZE (xpi/firefox-i18n-60.0/ur.xpi) = 562602
|
||||
SHA256 (xpi/firefox-i18n-60.0/uz.xpi) = fa358c25b4ee8036d1a10916349b4608d669323d3973fed93e93f2ccc5eae344
|
||||
SIZE (xpi/firefox-i18n-60.0/uz.xpi) = 512909
|
||||
SHA256 (xpi/firefox-i18n-60.0/vi.xpi) = f34a3c5924999c54e7f79b8237346b6482a745141d9fd2c2d07325c156c8fb34
|
||||
SIZE (xpi/firefox-i18n-60.0/vi.xpi) = 527412
|
||||
SHA256 (xpi/firefox-i18n-60.0/xh.xpi) = d9cc10826a4bc1e554d81813bdefb7d19ea67d0ba8ce1cccceadae0ea12f4a6c
|
||||
SIZE (xpi/firefox-i18n-60.0/xh.xpi) = 511081
|
||||
SHA256 (xpi/firefox-i18n-60.0/zh-CN.xpi) = c3fff9c7562cd4e76526a2546cbe1ffc75404ff1ab5f8bfb8f871b4bf6118dc2
|
||||
SIZE (xpi/firefox-i18n-60.0/zh-CN.xpi) = 542804
|
||||
SHA256 (xpi/firefox-i18n-60.0/zh-TW.xpi) = fc807d2d6d2db96229d34f5c0594cd97e948508448ea205f6afc1a1f9b615f23
|
||||
SIZE (xpi/firefox-i18n-60.0/zh-TW.xpi) = 541119
|
||||
|
@ -2,28 +2,27 @@
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= firefox
|
||||
DISTVERSION= 59.0.3
|
||||
DISTVERSION= 60.0
|
||||
PORTREVISION= 2
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= www ipv6
|
||||
MASTER_SITES= https://hg.mozilla.org/releases/mozilla-release/archive/
|
||||
MASTER_SITES+= LOCAL/${DIST_SUBDIR}/jbeich
|
||||
DISTNAME= ${MASTER_SITES:M*hg*:S,/archive/,,:T}-6b51784853e47e091d213d421a19cb623af718f0
|
||||
DISTFILES= ${DISTNAME:C/.*-//}${EXTRACT_SUFX}
|
||||
DIST_SUBDIR= firefox
|
||||
MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
|
||||
MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source
|
||||
DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX}
|
||||
|
||||
MAINTAINER= gecko@FreeBSD.org
|
||||
COMMENT= Web browser based on the browser portion of Mozilla
|
||||
|
||||
BUILD_DEPENDS= nspr>=4.18:devel/nspr \
|
||||
nss>=3.35:security/nss \
|
||||
BUILD_DEPENDS= nspr>=4.19:devel/nspr \
|
||||
nss>=3.36.1:security/nss \
|
||||
icu>=59.1,1:devel/icu \
|
||||
libevent>=2.1.8:devel/libevent \
|
||||
harfbuzz>=1.7.4:print/harfbuzz \
|
||||
graphite2>=1.3.10:graphics/graphite2 \
|
||||
harfbuzz>=1.7.6:print/harfbuzz \
|
||||
graphite2>=1.3.11:graphics/graphite2 \
|
||||
png>=1.6.34:graphics/png \
|
||||
libvorbis>=1.3.5,3:audio/libvorbis \
|
||||
libvorbis>=1.3.6,3:audio/libvorbis \
|
||||
libvpx>=1.5.0:multimedia/libvpx \
|
||||
sqlite3>=3.21.0:databases/sqlite3 \
|
||||
sqlite3>=3.22.0:databases/sqlite3 \
|
||||
${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \
|
||||
v4l_compat>0:multimedia/v4l_compat \
|
||||
autoconf-2.13:devel/autoconf213 \
|
||||
@ -31,15 +30,13 @@ BUILD_DEPENDS= nspr>=4.18:devel/nspr \
|
||||
zip:archivers/zip
|
||||
# soundtouch>=1.9.0:audio/soundtouch \
|
||||
|
||||
LIB_DEPENDS= libv4l2.so:multimedia/libv4l
|
||||
|
||||
USE_GECKO= gecko
|
||||
CONFLICTS_INSTALL= firefox-esr
|
||||
MOZ_PKGCONFIG_FILES= # empty
|
||||
USE_MOZILLA= -cairo -soundtouch
|
||||
|
||||
USE_GL= gl
|
||||
USES= tar:bz2
|
||||
USES= tar:xz
|
||||
|
||||
FIREFOX_ICON= ${MOZILLA}.png
|
||||
FIREFOX_ICON_SRC= ${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1523300563
|
||||
SHA256 (firefox/6b51784853e47e091d213d421a19cb623af718f0.tar.bz2) = 9f607fd192a30dab38fa63bd1be174a3e72e3a8f8e7d354c5a4b6d285c23942b
|
||||
SIZE (firefox/6b51784853e47e091d213d421a19cb623af718f0.tar.bz2) = 304955566
|
||||
TIMESTAMP = 1525366747
|
||||
SHA256 (firefox-60.0.source.tar.xz) = 4bc4fd997e6239f53e16a70b04f197791e5c5d09367e2916bcfe4a427999f842
|
||||
SIZE (firefox-60.0.source.tar.xz) = 266717500
|
||||
|
@ -1,150 +1,28 @@
|
||||
diff --git build/moz.configure/old.configure build/moz.configure/old.configure
|
||||
index cd6c37cf4c7c..e98dc7973a6a 100644
|
||||
--- build/moz.configure/old.configure
|
||||
+++ build/moz.configure/old.configure
|
||||
@@ -275,6 +275,7 @@ def old_configure_options(*options):
|
||||
'--with-nspr-prefix',
|
||||
'--with-nss-exec-prefix',
|
||||
'--with-nss-prefix',
|
||||
+ '--with-oss',
|
||||
'--with-pthreads',
|
||||
'--with-qemu-exe',
|
||||
'--with-sixgill',
|
||||
diff --git old-configure.in old-configure.in
|
||||
index dff46614635e..dbbfdb76ab78 100644
|
||||
--- old-configure.in
|
||||
+++ old-configure.in
|
||||
@@ -3128,6 +3128,67 @@ AC_DEFINE(MOZ_WEBM_ENCODER)
|
||||
AC_SUBST(MOZ_WEBM_ENCODER)
|
||||
|
||||
dnl ==================================
|
||||
+dnl = Check OSS availability
|
||||
+dnl ==================================
|
||||
+
|
||||
+dnl If using Linux, Solaris or BSDs, ensure that OSS is available
|
||||
+case "$OS_TARGET" in
|
||||
+Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD)
|
||||
+ MOZ_OSS=1
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+MOZ_ARG_WITH_STRING(oss,
|
||||
+[ --with-oss[=PFX] Enable OpenSoundSystem support [installed at prefix PFX]],
|
||||
+ OSSPREFIX=$withval)
|
||||
+
|
||||
+if test -n "$OSSPREFIX"; then
|
||||
+ if test "$OSSPREFIX" != "no"; then
|
||||
+ MOZ_OSS=1
|
||||
+ else
|
||||
+ MOZ_OSS=
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
+_SAVE_CFLAGS=$CFLAGS
|
||||
+_SAVE_LIBS=$LIBS
|
||||
+if test -n "$MOZ_OSS"; then
|
||||
+ dnl Prefer 4Front implementation
|
||||
+ AC_MSG_CHECKING([MOZ_OSS_CFLAGS])
|
||||
+ if test "$OSSPREFIX" != "yes"; then
|
||||
+ oss_conf=${OSSPREFIX%/usr}/etc/oss.conf
|
||||
+ if test -f "$oss_conf"; then
|
||||
+ . "$oss_conf"
|
||||
+ else
|
||||
+ OSSLIBDIR=$OSSPREFIX/lib/oss
|
||||
+ fi
|
||||
+ if test -d "$OSSLIBDIR"; then
|
||||
+ MOZ_OSS_CFLAGS="$MOZ_OSS_CFLAGS -I$OSSLIBDIR/include"
|
||||
+ fi
|
||||
+ fi
|
||||
+ AC_MSG_RESULT([$MOZ_OSS_CFLAGS])
|
||||
+
|
||||
+ CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS"
|
||||
+ MOZ_CHECK_HEADERS(sys/soundcard.h soundcard.h)
|
||||
+
|
||||
+ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \
|
||||
+ "$ac_cv_header_soundcard_h" != "yes"; then
|
||||
+ AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --without-oss.])
|
||||
+ fi
|
||||
+
|
||||
+ dnl Assume NetBSD implementation over SunAudio
|
||||
+ AC_CHECK_LIB(ossaudio, _oss_ioctl,
|
||||
+ [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound")
|
||||
+ MOZ_OSS_LIBS="$MOZ_OSS_LIBS -lossaudio"])
|
||||
+fi
|
||||
+CFLAGS=$_SAVE_CFLAGS
|
||||
+LIBS=$_SAVE_LIBS
|
||||
+
|
||||
+AC_SUBST(MOZ_OSS)
|
||||
+AC_SUBST_LIST(MOZ_OSS_CFLAGS)
|
||||
+AC_SUBST_LIST(MOZ_OSS_LIBS)
|
||||
+
|
||||
+dnl ==================================
|
||||
dnl = Check alsa availability on Linux
|
||||
dnl ==================================
|
||||
|
||||
diff --git dom/media/CubebUtils.cpp dom/media/CubebUtils.cpp
|
||||
index e10e07e06ade..1fd561bea113 100644
|
||||
--- dom/media/CubebUtils.cpp
|
||||
+++ dom/media/CubebUtils.cpp
|
||||
@@ -71,7 +71,8 @@ const char* AUDIOSTREAM_BACKEND_ID_STR[] = {
|
||||
"sndio",
|
||||
"opensl",
|
||||
"audiotrack",
|
||||
- "kai"
|
||||
+ "kai",
|
||||
+ "oss",
|
||||
};
|
||||
/* Index for failures to create an audio stream the first time. */
|
||||
const int CUBEB_BACKEND_INIT_FAILURE_FIRST =
|
||||
diff --git media/libcubeb/AUTHORS media/libcubeb/AUTHORS
|
||||
index 0fde65baad34..f8663c43b475 100644
|
||||
--- media/libcubeb/AUTHORS
|
||||
+++ media/libcubeb/AUTHORS
|
||||
@@ -4,6 +4,7 @@ Michael Wu <mwu@mozilla.com>
|
||||
Paul Adenot <paul@paul.cx>
|
||||
David Richards <drichards@mozilla.com>
|
||||
Sebastien Alaiwan <sebastien.alaiwan@gmail.com>
|
||||
+Evgeniy Vodolazskiy <waterlaz@gmail.com>
|
||||
KO Myung-Hun <komh@chollian.net>
|
||||
Haakon Sporsheim <haakon.sporsheim@telenordigital.com>
|
||||
Alex Chronopoulos <achronop@gmail.com>
|
||||
diff --git media/libcubeb/src/cubeb.c media/libcubeb/src/cubeb.c
|
||||
index 57bcb4c13652..68be024f4a68 100644
|
||||
--- media/libcubeb/src/cubeb.c
|
||||
+++ media/libcubeb/src/cubeb.c
|
||||
@@ -54,6 +54,9 @@ int audiotrack_init(cubeb ** context, char const * context_name);
|
||||
#if defined(USE_KAI)
|
||||
int kai_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
+#if defined(USE_OSS)
|
||||
+int oss_init(cubeb ** context, char const * context_name);
|
||||
+#endif
|
||||
|
||||
static int
|
||||
validate_stream_params(cubeb_stream_params * input_stream_params,
|
||||
@@ -155,6 +158,10 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam
|
||||
#if defined(USE_KAI)
|
||||
init_oneshot = kai_init;
|
||||
#endif
|
||||
+ } else if (!strcmp(backend_name, "oss")) {
|
||||
+#if defined(USE_OSS)
|
||||
+ init_oneshot = oss_init;
|
||||
+#endif
|
||||
} else {
|
||||
/* Already set */
|
||||
}
|
||||
@@ -196,6 +203,9 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam
|
||||
#if defined(USE_KAI)
|
||||
kai_init,
|
||||
#endif
|
||||
+#if defined(USE_OSS)
|
||||
+ oss_init,
|
||||
+#endif
|
||||
};
|
||||
int i;
|
||||
commit f9bcf9c81c4a
|
||||
Author: Evgeniy Vodolazskiy <waterlaz@gmail.com>
|
||||
Date: Tue Sep 9 14:38:00 2014 -0700
|
||||
|
||||
Bug 1021761 - Make ALSA optional on Linux, allowing fallback to another backend. r=kinetik r=glandium
|
||||
---
|
||||
media/libcubeb/gtest/moz.build | 1 -
|
||||
media/libcubeb/src/cubeb_alsa.c | 228 +++++++++++++++++++++++++++++-----------
|
||||
toolkit/library/moz.build | 3 -
|
||||
3 files changed, 168 insertions(+), 64 deletions(-)
|
||||
|
||||
diff --git media/libcubeb/gtest/moz.build media/libcubeb/gtest/moz.build
|
||||
index 558130188c2e..0cf157d41903 100644
|
||||
--- media/libcubeb/gtest/moz.build
|
||||
+++ media/libcubeb/gtest/moz.build
|
||||
@@ -72,7 +72,6 @@ elif CONFIG['OS_TARGET'] == 'OpenBSD':
|
||||
'sndio',
|
||||
]
|
||||
else:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_PULSEAUDIO_LIBS']
|
||||
|
||||
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
||||
diff --git media/libcubeb/src/cubeb_alsa.c media/libcubeb/src/cubeb_alsa.c
|
||||
index 05ad27fef53b..3ea78e994f59 100644
|
||||
index bfd4d8f199d4..213c1eaa3d07 100644
|
||||
--- media/libcubeb/src/cubeb_alsa.c
|
||||
+++ media/libcubeb/src/cubeb_alsa.c
|
||||
@@ -12,6 +12,7 @@
|
||||
@ -217,7 +95,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
};
|
||||
|
||||
enum stream_state {
|
||||
@@ -243,8 +292,8 @@ set_timeout(struct timeval * timeout, unsigned int ms)
|
||||
@@ -245,8 +294,8 @@ set_timeout(struct timeval * timeout, unsigned int ms)
|
||||
static void
|
||||
stream_buffer_decrement(cubeb_stream * stm, long count)
|
||||
{
|
||||
@ -228,7 +106,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
stm->bufframes -= count;
|
||||
}
|
||||
|
||||
@@ -276,9 +325,9 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
@@ -278,9 +327,9 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
/* Call _poll_descriptors_revents() even if we don't use it
|
||||
to let underlying plugins clear null events. Otherwise poll()
|
||||
may wake up again and again, producing unnecessary CPU usage. */
|
||||
@ -240,7 +118,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
|
||||
/* Got null event? Bail and wait for another wakeup. */
|
||||
if (avail == 0) {
|
||||
@@ -301,7 +350,7 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
@@ -303,7 +352,7 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
// TODO: should it be marked as DRAINING?
|
||||
}
|
||||
|
||||
@ -249,7 +127,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
|
||||
if (got < 0) {
|
||||
avail = got; // the error handler below will recover us
|
||||
@@ -345,7 +394,7 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
@@ -347,7 +396,7 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
(!stm->other_stream || stm->other_stream->bufframes > 0)) {
|
||||
long got = avail - stm->bufframes;
|
||||
void * other_buffer = stm->other_stream ? stm->other_stream->buffer : NULL;
|
||||
@ -258,7 +136,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
|
||||
/* Correct read size to the other stream available frames */
|
||||
if (stm->other_stream && got > (snd_pcm_sframes_t) stm->other_stream->bufframes) {
|
||||
@@ -372,8 +421,8 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
@@ -374,8 +423,8 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
long drain_frames = avail - stm->bufframes;
|
||||
double drain_time = (double) drain_frames / stm->params.rate;
|
||||
|
||||
@ -269,7 +147,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
stm->bufframes = avail;
|
||||
|
||||
/* Mark as draining, unless we're waiting for capture */
|
||||
@@ -400,7 +449,7 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
@@ -402,7 +451,7 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
}
|
||||
}
|
||||
|
||||
@ -278,7 +156,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (wrote < 0) {
|
||||
avail = wrote; // the error handler below will recover us
|
||||
} else {
|
||||
@@ -413,13 +462,13 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
@@ -415,13 +464,13 @@ alsa_process_stream(cubeb_stream * stm)
|
||||
|
||||
/* Got some error? Let's try to recover the stream. */
|
||||
if (avail < 0) {
|
||||
@ -295,7 +173,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -535,26 +584,26 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
|
||||
@@ -537,26 +586,26 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
|
||||
|
||||
slave_def = NULL;
|
||||
|
||||
@ -327,7 +205,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -563,7 +612,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
|
||||
@@ -565,7 +614,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
|
||||
if (r < 0 || r > (int) sizeof(node_name)) {
|
||||
break;
|
||||
}
|
||||
@ -336,7 +214,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -572,7 +621,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
|
||||
@@ -574,7 +623,7 @@ get_slave_pcm_node(snd_config_t * lconf, snd_config_t * root_pcm)
|
||||
} while (0);
|
||||
|
||||
if (slave_def) {
|
||||
@ -345,7 +223,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
}
|
||||
|
||||
return NULL;
|
||||
@@ -595,22 +644,22 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
@@ -597,22 +646,22 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
|
||||
lconf = NULL;
|
||||
|
||||
@ -372,7 +250,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -619,7 +668,7 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
@@ -621,7 +670,7 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
if (r < 0 || r > (int) sizeof(node_name)) {
|
||||
break;
|
||||
}
|
||||
@ -381,7 +259,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -630,12 +679,12 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
@@ -632,12 +681,12 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
}
|
||||
|
||||
/* Fetch the PCM node's type, and bail out if it's not the PulseAudio plugin. */
|
||||
@ -396,7 +274,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -646,18 +695,18 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
@@ -648,18 +697,18 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
|
||||
/* Don't clobber an explicit existing handle_underrun value, set it only
|
||||
if it doesn't already exist. */
|
||||
@ -418,7 +296,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
break;
|
||||
}
|
||||
@@ -665,7 +714,7 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
@@ -667,7 +716,7 @@ init_local_config_with_workaround(char const * pcm_name)
|
||||
return lconf;
|
||||
} while (0);
|
||||
|
||||
@ -427,7 +305,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
|
||||
return NULL;
|
||||
}
|
||||
@@ -677,9 +726,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, char const * pcm_name, snd_pcm_stream_t s
|
||||
@@ -679,9 +728,9 @@ alsa_locked_pcm_open(snd_pcm_t ** pcm, char const * pcm_name, snd_pcm_stream_t s
|
||||
|
||||
pthread_mutex_lock(&cubeb_alsa_mutex);
|
||||
if (local_config) {
|
||||
@ -439,7 +317,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
}
|
||||
pthread_mutex_unlock(&cubeb_alsa_mutex);
|
||||
|
||||
@@ -692,7 +741,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
|
||||
@@ -694,7 +743,7 @@ alsa_locked_pcm_close(snd_pcm_t * pcm)
|
||||
int r;
|
||||
|
||||
pthread_mutex_lock(&cubeb_alsa_mutex);
|
||||
@ -448,7 +326,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
pthread_mutex_unlock(&cubeb_alsa_mutex);
|
||||
|
||||
return r;
|
||||
@@ -755,12 +804,65 @@ alsa_init(cubeb ** context, char const * context_name)
|
||||
@@ -757,12 +806,65 @@ alsa_init(cubeb ** context, char const * context_name)
|
||||
pthread_attr_t attr;
|
||||
snd_pcm_t * dummy;
|
||||
|
||||
@ -515,7 +393,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
cubeb_alsa_error_handler_set = 1;
|
||||
}
|
||||
pthread_mutex_unlock(&cubeb_alsa_mutex);
|
||||
@@ -768,6 +870,8 @@ alsa_init(cubeb ** context, char const * context_name)
|
||||
@@ -770,6 +872,8 @@ alsa_init(cubeb ** context, char const * context_name)
|
||||
ctx = calloc(1, sizeof(*ctx));
|
||||
assert(ctx);
|
||||
|
||||
@ -524,7 +402,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
ctx->ops = &alsa_ops;
|
||||
|
||||
r = pthread_mutex_init(&ctx->mutex, NULL);
|
||||
@@ -817,7 +921,7 @@ alsa_init(cubeb ** context, char const * context_name)
|
||||
@@ -819,7 +923,7 @@ alsa_init(cubeb ** context, char const * context_name)
|
||||
config fails with EINVAL, the PA PCM is too old for this workaround. */
|
||||
if (r == -EINVAL) {
|
||||
pthread_mutex_lock(&cubeb_alsa_mutex);
|
||||
@ -533,7 +411,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
pthread_mutex_unlock(&cubeb_alsa_mutex);
|
||||
ctx->local_config = NULL;
|
||||
} else if (r >= 0) {
|
||||
@@ -857,9 +961,13 @@ alsa_destroy(cubeb * ctx)
|
||||
@@ -859,9 +963,13 @@ alsa_destroy(cubeb * ctx)
|
||||
pthread_mutex_destroy(&ctx->mutex);
|
||||
free(ctx->fds);
|
||||
|
||||
@ -548,7 +426,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
pthread_mutex_unlock(&cubeb_alsa_mutex);
|
||||
}
|
||||
|
||||
@@ -939,7 +1047,7 @@ alsa_stream_init_single(cubeb * ctx, cubeb_stream ** stream, char const * stream
|
||||
@@ -948,7 +1056,7 @@ alsa_stream_init_single(cubeb * ctx, cubeb_stream ** stream, char const * stream
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
@ -557,7 +435,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
assert(r == 0);
|
||||
|
||||
latency_us = latency_frames * 1e6 / stm->params.rate;
|
||||
@@ -952,7 +1060,7 @@ alsa_stream_init_single(cubeb * ctx, cubeb_stream ** stream, char const * stream
|
||||
@@ -961,7 +1069,7 @@ alsa_stream_init_single(cubeb * ctx, cubeb_stream ** stream, char const * stream
|
||||
latency_us = latency_us < min_latency ? min_latency: latency_us;
|
||||
}
|
||||
|
||||
@ -566,7 +444,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
stm->params.channels, stm->params.rate, 1,
|
||||
latency_us);
|
||||
if (r < 0) {
|
||||
@@ -960,20 +1068,20 @@ alsa_stream_init_single(cubeb * ctx, cubeb_stream ** stream, char const * stream
|
||||
@@ -969,20 +1077,20 @@ alsa_stream_init_single(cubeb * ctx, cubeb_stream ** stream, char const * stream
|
||||
return CUBEB_ERROR_INVALID_FORMAT;
|
||||
}
|
||||
|
||||
@ -591,7 +469,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
assert((nfds_t) r == stm->nfds);
|
||||
|
||||
if (alsa_register_stream(ctx, stm) != 0) {
|
||||
@@ -1048,7 +1156,7 @@ alsa_stream_destroy(cubeb_stream * stm)
|
||||
@@ -1054,7 +1162,7 @@ alsa_stream_destroy(cubeb_stream * stm)
|
||||
pthread_mutex_lock(&stm->mutex);
|
||||
if (stm->pcm) {
|
||||
if (stm->state == DRAINING) {
|
||||
@ -600,7 +478,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
}
|
||||
alsa_locked_pcm_close(stm->pcm);
|
||||
stm->pcm = NULL;
|
||||
@@ -1094,12 +1202,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
@@ -1100,12 +1208,12 @@ alsa_get_max_channel_count(cubeb * ctx, uint32_t * max_channels)
|
||||
|
||||
assert(stm);
|
||||
|
||||
@ -615,7 +493,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
if (r < 0) {
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
@@ -1120,34 +1228,34 @@ alsa_get_preferred_sample_rate(cubeb * ctx, uint32_t * rate) {
|
||||
@@ -1126,34 +1234,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. */
|
||||
@ -658,7 +536,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
|
||||
return CUBEB_OK;
|
||||
}
|
||||
@@ -1180,10 +1288,10 @@ alsa_stream_start(cubeb_stream * stm)
|
||||
@@ -1186,10 +1294,10 @@ alsa_stream_start(cubeb_stream * stm)
|
||||
pthread_mutex_lock(&stm->mutex);
|
||||
/* Capture pcm must be started after initial setup/recover */
|
||||
if (stm->stream_type == SND_PCM_STREAM_CAPTURE &&
|
||||
@ -672,7 +550,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
gettimeofday(&stm->last_activity, NULL);
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
|
||||
@@ -1223,7 +1331,7 @@ alsa_stream_stop(cubeb_stream * stm)
|
||||
@@ -1229,7 +1337,7 @@ alsa_stream_stop(cubeb_stream * stm)
|
||||
pthread_mutex_unlock(&ctx->mutex);
|
||||
|
||||
pthread_mutex_lock(&stm->mutex);
|
||||
@ -681,7 +559,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
|
||||
return CUBEB_OK;
|
||||
@@ -1239,8 +1347,8 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position)
|
||||
@@ -1245,8 +1353,8 @@ alsa_stream_get_position(cubeb_stream * stm, uint64_t * position)
|
||||
pthread_mutex_lock(&stm->mutex);
|
||||
|
||||
delay = -1;
|
||||
@ -692,7 +570,7 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
*position = stm->last_position;
|
||||
pthread_mutex_unlock(&stm->mutex);
|
||||
return CUBEB_OK;
|
||||
@@ -1265,7 +1373,7 @@ alsa_stream_get_latency(cubeb_stream * stm, uint32_t * latency)
|
||||
@@ -1271,7 +1379,7 @@ alsa_stream_get_latency(cubeb_stream * stm, uint32_t * latency)
|
||||
snd_pcm_sframes_t delay;
|
||||
/* This function returns the delay in frames until a frame written using
|
||||
snd_pcm_writei is sent to the DAC. The DAC delay should be < 1ms anyways. */
|
||||
@ -701,12 +579,117 @@ index 05ad27fef53b..3ea78e994f59 100644
|
||||
return CUBEB_ERROR;
|
||||
}
|
||||
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index b0df6b98b91f..e06592daa265 100644
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -247,9 +247,6 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||
if not CONFIG['MOZ_TREE_PIXMAN']:
|
||||
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
|
||||
|
||||
-if CONFIG['MOZ_ALSA']:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
-
|
||||
if CONFIG['HAVE_CLOCK_MONOTONIC']:
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
||||
|
||||
commit 161bcd671217
|
||||
Author: Evgeniy Vodolazskiy <waterlaz@gmail.com>
|
||||
Date: Wed Sep 3 10:47:00 2014 -0700
|
||||
|
||||
Bug 1021761 - Add OSS backend to libcubeb, default but last on Linux. r=kinetik r=glandium
|
||||
---
|
||||
build/moz.configure/old.configure | 1 +
|
||||
dom/media/CubebUtils.cpp | 3 +-
|
||||
media/libcubeb/AUTHORS | 1 +
|
||||
media/libcubeb/src/cubeb.c | 10 +
|
||||
media/libcubeb/src/cubeb_oss.c | 453 ++++++++++++++++++++++++++++++++++++++
|
||||
media/libcubeb/src/moz.build | 7 +
|
||||
media/libcubeb/update.sh | 1 +
|
||||
old-configure.in | 62 ++++++
|
||||
toolkit/library/moz.build | 3 +
|
||||
9 files changed, 540 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git build/moz.configure/old.configure build/moz.configure/old.configure
|
||||
index 17d0c5bf3420..3e6dbc16ca14 100644
|
||||
--- build/moz.configure/old.configure
|
||||
+++ build/moz.configure/old.configure
|
||||
@@ -262,6 +262,7 @@ def old_configure_options(*options):
|
||||
'--with-nspr-prefix',
|
||||
'--with-nss-exec-prefix',
|
||||
'--with-nss-prefix',
|
||||
+ '--with-oss',
|
||||
'--with-pthreads',
|
||||
'--with-qemu-exe',
|
||||
'--with-sixgill',
|
||||
diff --git dom/media/CubebUtils.cpp dom/media/CubebUtils.cpp
|
||||
index 88063ed3a4d6..8613f86dbd16 100644
|
||||
--- dom/media/CubebUtils.cpp
|
||||
+++ dom/media/CubebUtils.cpp
|
||||
@@ -149,7 +149,8 @@ const char* AUDIOSTREAM_BACKEND_ID_STR[] = {
|
||||
"sndio",
|
||||
"opensl",
|
||||
"audiotrack",
|
||||
- "kai"
|
||||
+ "kai",
|
||||
+ "oss",
|
||||
};
|
||||
/* Index for failures to create an audio stream the first time. */
|
||||
const int CUBEB_BACKEND_INIT_FAILURE_FIRST =
|
||||
diff --git media/libcubeb/AUTHORS media/libcubeb/AUTHORS
|
||||
index f0f9595227f2..e7e7048190ab 100644
|
||||
--- media/libcubeb/AUTHORS
|
||||
+++ media/libcubeb/AUTHORS
|
||||
@@ -4,6 +4,7 @@ Michael Wu <mwu@mozilla.com>
|
||||
Paul Adenot <paul@paul.cx>
|
||||
David Richards <drichards@mozilla.com>
|
||||
Sebastien Alaiwan <sebastien.alaiwan@gmail.com>
|
||||
+Evgeniy Vodolazskiy <waterlaz@gmail.com>
|
||||
KO Myung-Hun <komh@chollian.net>
|
||||
Haakon Sporsheim <haakon.sporsheim@telenordigital.com>
|
||||
Alex Chronopoulos <achronop@gmail.com>
|
||||
diff --git media/libcubeb/src/cubeb.c media/libcubeb/src/cubeb.c
|
||||
index bb35e0ce349f..e523d94108a3 100644
|
||||
--- media/libcubeb/src/cubeb.c
|
||||
+++ media/libcubeb/src/cubeb.c
|
||||
@@ -60,6 +60,9 @@ int audiotrack_init(cubeb ** context, char const * context_name);
|
||||
#if defined(USE_KAI)
|
||||
int kai_init(cubeb ** context, char const * context_name);
|
||||
#endif
|
||||
+#if defined(USE_OSS)
|
||||
+int oss_init(cubeb ** context, char const * context_name);
|
||||
+#endif
|
||||
|
||||
static int
|
||||
validate_stream_params(cubeb_stream_params * input_stream_params,
|
||||
@@ -159,6 +162,10 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam
|
||||
} else if (!strcmp(backend_name, "kai")) {
|
||||
#if defined(USE_KAI)
|
||||
init_oneshot = kai_init;
|
||||
+#endif
|
||||
+ } else if (!strcmp(backend_name, "oss")) {
|
||||
+#if defined(USE_OSS)
|
||||
+ init_oneshot = oss_init;
|
||||
#endif
|
||||
} else {
|
||||
/* Already set */
|
||||
@@ -203,6 +210,9 @@ cubeb_init(cubeb ** context, char const * context_name, char const * backend_nam
|
||||
#endif
|
||||
#if defined(USE_KAI)
|
||||
kai_init,
|
||||
+#endif
|
||||
+#if defined(USE_OSS)
|
||||
+ oss_init,
|
||||
#endif
|
||||
};
|
||||
int i;
|
||||
diff --git media/libcubeb/src/cubeb_oss.c media/libcubeb/src/cubeb_oss.c
|
||||
new file mode 100644
|
||||
index 000000000000..7b0b4f37dbe4
|
||||
index 000000000000..7d96168b9ea6
|
||||
--- /dev/null
|
||||
+++ media/libcubeb/src/cubeb_oss.c
|
||||
@@ -0,0 +1,445 @@
|
||||
@@ -0,0 +1,454 @@
|
||||
+/*
|
||||
+ * Copyright © 2014 Mozilla Foundation
|
||||
+ *
|
||||
@ -743,11 +726,13 @@ index 000000000000..7b0b4f37dbe4
|
||||
+};
|
||||
+
|
||||
+struct cubeb_stream {
|
||||
+ /* Note: Must match cubeb_stream layout in cubeb.c. */
|
||||
+ cubeb * context;
|
||||
+ void * user_ptr;
|
||||
+ /**/
|
||||
+
|
||||
+ cubeb_data_callback data_callback;
|
||||
+ cubeb_state_callback state_callback;
|
||||
+ void * user_ptr;
|
||||
+ float volume;
|
||||
+ float panning;
|
||||
+
|
||||
@ -976,6 +961,11 @@ index 000000000000..7b0b4f37dbe4
|
||||
+ return CUBEB_ERROR_DEVICE_UNAVAILABLE;
|
||||
+ }
|
||||
+
|
||||
+ if ((input_stream_params && input_stream_params->prefs & CUBEB_STREAM_PREF_LOOPBACK) ||
|
||||
+ (output_stream_params && output_stream_params->prefs & CUBEB_STREAM_PREF_LOOPBACK)) {
|
||||
+ return CUBEB_ERROR_NOT_SUPPORTED;
|
||||
+ }
|
||||
+
|
||||
+ if ((stream->fd = open(CUBEB_OSS_DEFAULT_OUTPUT, O_WRONLY)) == -1) {
|
||||
+ free(stream);
|
||||
+ return CUBEB_ERROR;
|
||||
@ -1137,12 +1127,14 @@ index 000000000000..7b0b4f37dbe4
|
||||
+ .get_min_latency = oss_get_min_latency,
|
||||
+ .get_preferred_sample_rate = oss_get_preferred_sample_rate,
|
||||
+ .get_preferred_channel_layout = NULL,
|
||||
+ .destroy = oss_destroy,
|
||||
+ .enumerate_devices = NULL,
|
||||
+ .device_collection_destroy = NULL,
|
||||
+ .destroy = oss_destroy,
|
||||
+ .stream_init = oss_stream_init,
|
||||
+ .stream_destroy = oss_stream_destroy,
|
||||
+ .stream_start = oss_stream_start,
|
||||
+ .stream_stop = oss_stream_stop,
|
||||
+ .stream_reset_default_device = NULL,
|
||||
+ .stream_get_position = oss_stream_get_position,
|
||||
+ .stream_get_latency = oss_stream_get_latency,
|
||||
+ .stream_set_volume = oss_stream_set_volume,
|
||||
@ -1153,10 +1145,10 @@ index 000000000000..7b0b4f37dbe4
|
||||
+ .register_device_collection_changed = NULL
|
||||
+};
|
||||
diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build
|
||||
index fc9c79198e30..57d039d5a0f2 100644
|
||||
index e1fea30ca417..a5b1100f1014 100644
|
||||
--- media/libcubeb/src/moz.build
|
||||
+++ media/libcubeb/src/moz.build
|
||||
@@ -20,6 +20,12 @@ if CONFIG['MOZ_ALSA']:
|
||||
@@ -23,6 +23,12 @@ if CONFIG['MOZ_ALSA']:
|
||||
]
|
||||
DEFINES['USE_ALSA'] = True
|
||||
|
||||
@ -1169,28 +1161,16 @@ index fc9c79198e30..57d039d5a0f2 100644
|
||||
if CONFIG['MOZ_PULSEAUDIO'] or CONFIG['MOZ_JACK']:
|
||||
SOURCES += [
|
||||
'cubeb_resampler.cpp',
|
||||
@@ -92,6 +98,7 @@ if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
|
||||
'%' + '%s/system/media/wilhelm/include' % CONFIG['ANDROID_SOURCE'],
|
||||
]
|
||||
@@ -88,6 +94,7 @@ if CONFIG['OS_TARGET'] == 'Android':
|
||||
FINAL_LIBRARY = 'gkmedias'
|
||||
|
||||
+CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
|
||||
CFLAGS += CONFIG['MOZ_ALSA_CFLAGS']
|
||||
+CFLAGS += CONFIG['MOZ_OSS_CFLAGS']
|
||||
CFLAGS += CONFIG['MOZ_PULSEAUDIO_CFLAGS']
|
||||
|
||||
diff --git media/libcubeb/gtest/moz.build media/libcubeb/gtest/moz.build
|
||||
index e99968648554..efbbbf779e11 100644
|
||||
--- media/libcubeb/gtest/moz.build
|
||||
+++ media/libcubeb/gtest/moz.build
|
||||
@@ -71,7 +71,6 @@ elif CONFIG['OS_TARGET'] == 'OpenBSD':
|
||||
'sndio',
|
||||
]
|
||||
else:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
OS_LIBS += CONFIG['MOZ_PULSEAUDIO_LIBS']
|
||||
|
||||
if CONFIG['GNU_CXX']:
|
||||
# We allow warnings for third-party code that can be updated from upstream.
|
||||
diff --git media/libcubeb/update.sh media/libcubeb/update.sh
|
||||
index b139b8f497fd..d1f8a223c6d8 100755
|
||||
index 0bb6345c9fa9..78a102dc47cb 100755
|
||||
--- media/libcubeb/update.sh
|
||||
+++ media/libcubeb/update.sh
|
||||
@@ -20,6 +20,7 @@ cp $1/src/cubeb_log.h src
|
||||
@ -1198,21 +1178,92 @@ index b139b8f497fd..d1f8a223c6d8 100755
|
||||
cp $1/src/cubeb_mixer.h src
|
||||
cp $1/src/cubeb_opensl.c src
|
||||
+cp $1/src/cubeb_oss.c src
|
||||
cp $1/src/cubeb_osx_run_loop.h src
|
||||
cp $1/src/cubeb_panner.cpp src
|
||||
cp $1/src/cubeb_panner.h src
|
||||
cp $1/src/cubeb-jni.cpp src
|
||||
cp $1/src/cubeb-jni.h src
|
||||
cp $1/src/android/cubeb-output-latency.h src/android
|
||||
diff --git old-configure.in old-configure.in
|
||||
index 28e1a9e48d61..edacedcf6e5d 100644
|
||||
--- old-configure.in
|
||||
+++ old-configure.in
|
||||
@@ -2598,6 +2598,67 @@ MOZ_WEBM_ENCODER=1
|
||||
AC_DEFINE(MOZ_WEBM_ENCODER)
|
||||
AC_SUBST(MOZ_WEBM_ENCODER)
|
||||
|
||||
+dnl ==================================
|
||||
+dnl = Check OSS availability
|
||||
+dnl ==================================
|
||||
+
|
||||
+dnl If using Linux, Solaris or BSDs, ensure that OSS is available
|
||||
+case "$OS_TARGET" in
|
||||
+Linux|SunOS|DragonFly|FreeBSD|NetBSD|GNU/kFreeBSD)
|
||||
+ MOZ_OSS=1
|
||||
+ ;;
|
||||
+esac
|
||||
+
|
||||
+MOZ_ARG_WITH_STRING(oss,
|
||||
+[ --with-oss[=PFX] Enable OpenSoundSystem support [installed at prefix PFX]],
|
||||
+ OSSPREFIX=$withval)
|
||||
+
|
||||
+if test -n "$OSSPREFIX"; then
|
||||
+ if test "$OSSPREFIX" != "no"; then
|
||||
+ MOZ_OSS=1
|
||||
+ else
|
||||
+ MOZ_OSS=
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
+_SAVE_CFLAGS=$CFLAGS
|
||||
+_SAVE_LIBS=$LIBS
|
||||
+if test -n "$MOZ_OSS"; then
|
||||
+ dnl Prefer 4Front implementation
|
||||
+ AC_MSG_CHECKING([MOZ_OSS_CFLAGS])
|
||||
+ if test "$OSSPREFIX" != "yes"; then
|
||||
+ oss_conf=${OSSPREFIX%/usr}/etc/oss.conf
|
||||
+ if test -f "$oss_conf"; then
|
||||
+ . "$oss_conf"
|
||||
+ else
|
||||
+ OSSLIBDIR=$OSSPREFIX/lib/oss
|
||||
+ fi
|
||||
+ if test -d "$OSSLIBDIR"; then
|
||||
+ MOZ_OSS_CFLAGS="$MOZ_OSS_CFLAGS -I$OSSLIBDIR/include"
|
||||
+ fi
|
||||
+ fi
|
||||
+ AC_MSG_RESULT([$MOZ_OSS_CFLAGS])
|
||||
+
|
||||
+ CFLAGS="$CFLAGS $MOZ_OSS_CFLAGS"
|
||||
+ MOZ_CHECK_HEADERS(sys/soundcard.h soundcard.h)
|
||||
+
|
||||
+ if test "$ac_cv_header_sys_soundcard_h" != "yes" -a \
|
||||
+ "$ac_cv_header_soundcard_h" != "yes"; then
|
||||
+ AC_MSG_ERROR([Need OSS for Ogg, Wave or WebM decoding on $OS_TARGET. Disable with --without-oss.])
|
||||
+ fi
|
||||
+
|
||||
+ dnl Assume NetBSD implementation over SunAudio
|
||||
+ AC_CHECK_LIB(ossaudio, _oss_ioctl,
|
||||
+ [AC_DEFINE_UNQUOTED(CUBEB_OSS_DEFAULT_OUTPUT, "/dev/sound")
|
||||
+ MOZ_OSS_LIBS="$MOZ_OSS_LIBS -lossaudio"])
|
||||
+fi
|
||||
+CFLAGS=$_SAVE_CFLAGS
|
||||
+LIBS=$_SAVE_LIBS
|
||||
+
|
||||
+AC_SUBST(MOZ_OSS)
|
||||
+AC_SUBST_LIST(MOZ_OSS_CFLAGS)
|
||||
+AC_SUBST_LIST(MOZ_OSS_LIBS)
|
||||
+
|
||||
dnl ==================================
|
||||
dnl = Check alsa availability on Linux
|
||||
dnl ==================================
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index a61c689c83c3..7764df6f8a6b 100644
|
||||
index e06592daa265..ce016b96c2bc 100644
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -242,8 +242,8 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||
@@ -247,6 +247,9 @@ if CONFIG['MOZ_SYSTEM_LIBVPX']:
|
||||
if not CONFIG['MOZ_TREE_PIXMAN']:
|
||||
OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']
|
||||
|
||||
-if CONFIG['MOZ_ALSA']:
|
||||
- OS_LIBS += CONFIG['MOZ_ALSA_LIBS']
|
||||
+if CONFIG['MOZ_OSS']:
|
||||
+ OS_LIBS += CONFIG['MOZ_OSS_LIBS']
|
||||
|
||||
+
|
||||
if CONFIG['HAVE_CLOCK_MONOTONIC']:
|
||||
OS_LIBS += CONFIG['REALTIME_LIBS']
|
||||
|
||||
|
82
www/firefox/files/patch-bug1375074
Normal file
82
www/firefox/files/patch-bug1375074
Normal file
@ -0,0 +1,82 @@
|
||||
commit fc25eb4380d0
|
||||
Author: Lars T Hansen <lhansen@mozilla.com>
|
||||
Date: Wed Feb 28 13:57:52 2018 +0100
|
||||
|
||||
Bug 1375074 - Save and restore non-volatile x28 on ARM64 for generated unboxed object constructor. r=sstangl
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 4a2824b23cf7453d07c962123f780c0ff2fd5292
|
||||
extra : source : dec6ab6522a4eb4b3c2defc5078b38ed904f3383
|
||||
---
|
||||
js/src/jit-test/tests/bug1375074.js | 18 ++++++++++++++++++
|
||||
js/src/vm/UnboxedObject.cpp | 25 ++++++++++++++++++++++++-
|
||||
2 files changed, 42 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git js/src/jit-test/tests/bug1375074.js js/src/jit-test/tests/bug1375074.js
|
||||
new file mode 100644
|
||||
index 0000000000000..8bf01d96903fc
|
||||
--- /dev/null
|
||||
+++ js/src/jit-test/tests/bug1375074.js
|
||||
@@ -0,0 +1,18 @@
|
||||
+// This forces the VM to start creating unboxed objects and thus stresses a
|
||||
+// particular path into generated code for a specialized unboxed object
|
||||
+// constructor.
|
||||
+
|
||||
+var K = 2000; // 2000 should be plenty
|
||||
+var s = "[";
|
||||
+var i;
|
||||
+for ( i=0; i < K-1; i++ )
|
||||
+ s = s + `{"i":${i}},`;
|
||||
+s += `{"i":${i}}]`;
|
||||
+var v = JSON.parse(s);
|
||||
+
|
||||
+assertEq(v.length == K, true);
|
||||
+
|
||||
+for ( i=0; i < K; i++) {
|
||||
+ assertEq(v[i] instanceof Object, true);
|
||||
+ assertEq(v[i].i, i);
|
||||
+}
|
||||
diff --git js/src/vm/UnboxedObject.cpp js/src/vm/UnboxedObject.cpp
|
||||
index c8c178965c488..5badf328ede4f 100644
|
||||
--- js/src/vm/UnboxedObject.cpp
|
||||
+++ js/src/vm/UnboxedObject.cpp
|
||||
@@ -95,7 +95,15 @@ UnboxedLayout::makeConstructorCode(JSContext* cx, HandleObjectGroup group)
|
||||
#endif
|
||||
|
||||
#ifdef JS_CODEGEN_ARM64
|
||||
- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
|
||||
+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for
|
||||
+ // addressing. The register we use for PSP may however also be used by
|
||||
+ // calling code, and it is nonvolatile, so save it. Do this as a special
|
||||
+ // case first because the generic save/restore code needs the PSP to be
|
||||
+ // initialized already.
|
||||
+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
|
||||
+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
|
||||
+
|
||||
+ // Initialize the PSP from the SP.
|
||||
masm.initStackPtr();
|
||||
#endif
|
||||
|
||||
@@ -233,7 +241,22 @@ UnboxedLayout::makeConstructorCode(JSContext* cx, HandleObjectGroup group)
|
||||
masm.pop(ScratchDoubleReg);
|
||||
masm.PopRegsInMask(savedNonVolatileRegisters);
|
||||
|
||||
+#ifdef JS_CODEGEN_ARM64
|
||||
+ // Now restore the value that was in the PSP register on entry, and return.
|
||||
+
|
||||
+ // Obtain the correct SP from the PSP.
|
||||
+ masm.Mov(sp, PseudoStackPointer64);
|
||||
+
|
||||
+ // Restore the saved value of the PSP register, this value is whatever the
|
||||
+ // caller had saved in it, not any actual SP value, and it must not be
|
||||
+ // overwritten subsequently.
|
||||
+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
|
||||
+
|
||||
+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
|
||||
+ masm.Ret(vixl::lr);
|
||||
+#else
|
||||
masm.abiret();
|
||||
+#endif
|
||||
|
||||
masm.bind(&failureStoreOther);
|
||||
|
@ -1,24 +0,0 @@
|
||||
Apply simd@cf87865a998a to unbreak -C target-cpu with Rust >= 1.24
|
||||
|
||||
diff --git third_party/rust/simd/.cargo-checksum.json third_party/rust/simd/.cargo-checksum.json
|
||||
index 65f31b0560e6..f16d0dd4fd61 100644
|
||||
--- third_party/rust/simd/.cargo-checksum.json
|
||||
+++ third_party/rust/simd/.cargo-checksum.json
|
||||
@@ -1 +1 @@
|
||||
-{"files":{".travis.yml":"e2c720c3633b7671efce49147c62b12bcbf630d7c5d6fc65cd97620bfa4ddcea","Cargo.toml":"608aad04f17a524ee21048fa2ce9f656ae344e0473dd0e331dc954f0f9677c63","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6d3a9431e65e69c73a8923e6517b889d17549b23db406b9ec027710d16af701f","README.md":"249294a9a5f63c64c0f7fe4a607060f43f3507dce2378067aa59d25fb3ae681d","benches/mandelbrot.rs":"051b5199e66bca6cf7774e9024915fd4e1349ab39726a10a14e06b60d65d87a4","benches/matrix.rs":"048a21dacdb62365e0105d00d2c8cd6bd2396ac81134f2bff7eb4f7d095fb735","examples/axpy.rs":"4307626045d64ec08361c97c9c72c5dc8d361bdc88f64453b97ac0212041a1b2","examples/convert.rs":"8e658fde050f8a0d8b84ad7570446b10fcf544afbd551b940ca340474f324840","examples/dot-product.rs":"6fe2e007c147af5353804173a593c5b9d57dbccec156e1da37e9e32537363f91","examples/fannkuch-redux-nosimd.rs":"7b2fbde35e8666929d14d67328471cb0483d038a5325232f8db148b30865312b","examples/fannkuch-redux.rs":"ea21fdbd2274488a62cc984acad6e0b65d52f24fb4ff63b7057a3a667e9c8aae","examples/mandelbrot.rs":"8b8fdca1edac50e5a33e0e0592bd41eb75114f31839ccd40d485c61a9a664380","examples/matrix-inverse.rs":"a378d20ef20c2119bb10a86de27c92fec2c2f77f374e6bfd36707c9825a5fe92","examples/nbody-nosimd.rs":"2c8e0a7feacd202fdd65eeceb6420d6e9f43340b81f20a8e532704a587a2796b","examples/nbody.rs":"a864311affab262024479d6348ff51af43d809e9ad332ec30ea4aacceaa2eae1","examples/ops.rs":"1316f915d0afcfa98fdc4077e965ccccf6b4b21c433cbe487ff0cdc60df3cd39","examples/spectral-norm-nosimd.rs":"ffc8512ecde779078ea467f38f423a0ea623c63da7078193f9dd370200773f79","examples/spectral-norm.rs":"edb09c9d477f83939098cfb77a27cc298bc7a0c8a8e29cece0cccae0d70d890e","src/aarch64/mod.rs":"83f52775364c98de0cecb7e1509530c18972e932469f5f1522aa24a735d0fa37","src/aarch64/neon.rs":"1fe769979e07d8e2bc3c78ce116e05d735860744efe097a894cc9421153257fb","src/arm/mod.rs":"dcdd90bc0b39abaf86a0c8946d442b16313563fbae1ff03248628275c74d8617","src/arm/neon.rs":"51cc509856200e80f8e4cc2c982586e6d1cef593ec4537e153dce0cfe31d3428","src/common.rs":"62f4e7e0fefb52ad190d0f2191bc435ac4deab3f2bc70dc427f2a7f9ccb7856e","src/lib.rs":"25f0b39c038fa85af858318135dfd87865be26c33bb4bd1438aec96a1e68d8b5","src/sixty_four.rs":"510a9e00189a61e4f0a5beb7052d5dee37fc8261f94a2af45ef10327e0f3b7df","src/v256.rs":"2e328e49034876d535e0627c7a62191da2b4fb156a657614bf531a5fc75b1385","src/x86/avx.rs":"c66140abefca634b48eae307c3ec8cf5a40f2279b10e246a7e2ac602a2a2bb28","src/x86/avx2.rs":"efe3006b13a13261a3dec3d37dc1d8cb53950f3803c420069231803374949937","src/x86/mod.rs":"0acc5a5e2672e2a0fddc11065663be8b8fa2da87320ea291fa86ff8c2f33edf5","src/x86/sse2.rs":"5ceda75a401958a135fc9d851b22075314cdeed69fd483b6a7be4f11373f40da","src/x86/sse3.rs":"9bd01a4f08069ca4f445952e744d651efe887e3835b18872e757375f0d053bd2","src/x86/sse4_1.rs":"9ceb80dd70a7e7dfeef508cb935e1a2637175bc87a3b090f5dea691ff6aa0516","src/x86/sse4_2.rs":"c59321aed8decdce4d0d8570cff46aed02e1a8265647ef7702e9b180fc581254","src/x86/ssse3.rs":"2290f0269bae316b8e0491495645ee38a9bd73525c8572759c1328341c3bdb4c"},"package":"7a94d14a2ae1f1f110937de5fb69e494372560181c7e1739a097fcc2cee37ba0"}
|
||||
\ No newline at end of file
|
||||
+{"files":{".travis.yml":"e2c720c3633b7671efce49147c62b12bcbf630d7c5d6fc65cd97620bfa4ddcea","Cargo.toml":"608aad04f17a524ee21048fa2ce9f656ae344e0473dd0e331dc954f0f9677c63","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"6d3a9431e65e69c73a8923e6517b889d17549b23db406b9ec027710d16af701f","README.md":"249294a9a5f63c64c0f7fe4a607060f43f3507dce2378067aa59d25fb3ae681d","benches/mandelbrot.rs":"051b5199e66bca6cf7774e9024915fd4e1349ab39726a10a14e06b60d65d87a4","benches/matrix.rs":"048a21dacdb62365e0105d00d2c8cd6bd2396ac81134f2bff7eb4f7d095fb735","examples/axpy.rs":"4307626045d64ec08361c97c9c72c5dc8d361bdc88f64453b97ac0212041a1b2","examples/convert.rs":"8e658fde050f8a0d8b84ad7570446b10fcf544afbd551b940ca340474f324840","examples/dot-product.rs":"6fe2e007c147af5353804173a593c5b9d57dbccec156e1da37e9e32537363f91","examples/fannkuch-redux-nosimd.rs":"7b2fbde35e8666929d14d67328471cb0483d038a5325232f8db148b30865312b","examples/fannkuch-redux.rs":"ea21fdbd2274488a62cc984acad6e0b65d52f24fb4ff63b7057a3a667e9c8aae","examples/mandelbrot.rs":"8b8fdca1edac50e5a33e0e0592bd41eb75114f31839ccd40d485c61a9a664380","examples/matrix-inverse.rs":"a378d20ef20c2119bb10a86de27c92fec2c2f77f374e6bfd36707c9825a5fe92","examples/nbody-nosimd.rs":"2c8e0a7feacd202fdd65eeceb6420d6e9f43340b81f20a8e532704a587a2796b","examples/nbody.rs":"a864311affab262024479d6348ff51af43d809e9ad332ec30ea4aacceaa2eae1","examples/ops.rs":"1316f915d0afcfa98fdc4077e965ccccf6b4b21c433cbe487ff0cdc60df3cd39","examples/spectral-norm-nosimd.rs":"ffc8512ecde779078ea467f38f423a0ea623c63da7078193f9dd370200773f79","examples/spectral-norm.rs":"edb09c9d477f83939098cfb77a27cc298bc7a0c8a8e29cece0cccae0d70d890e","src/aarch64/mod.rs":"83f52775364c98de0cecb7e1509530c18972e932469f5f1522aa24a735d0fa37","src/aarch64/neon.rs":"1fe769979e07d8e2bc3c78ce116e05d735860744efe097a894cc9421153257fb","src/arm/mod.rs":"dcdd90bc0b39abaf86a0c8946d442b16313563fbae1ff03248628275c74d8617","src/arm/neon.rs":"51cc509856200e80f8e4cc2c982586e6d1cef593ec4537e153dce0cfe31d3428","src/common.rs":"62f4e7e0fefb52ad190d0f2191bc435ac4deab3f2bc70dc427f2a7f9ccb7856e","src/lib.rs":"25f0b39c038fa85af858318135dfd87865be26c33bb4bd1438aec96a1e68d8b5","src/sixty_four.rs":"510a9e00189a61e4f0a5beb7052d5dee37fc8261f94a2af45ef10327e0f3b7df","src/v256.rs":"2e328e49034876d535e0627c7a62191da2b4fb156a657614bf531a5fc75b1385","src/x86/avx.rs":"c66140abefca634b48eae307c3ec8cf5a40f2279b10e246a7e2ac602a2a2bb28","src/x86/avx2.rs":"3bcb3f391ad5f16f0a6da0bc1301329beb478ad6265bd3b2c9c124fc2e6198e5","src/x86/mod.rs":"0acc5a5e2672e2a0fddc11065663be8b8fa2da87320ea291fa86ff8c2f33edf5","src/x86/sse2.rs":"5ceda75a401958a135fc9d851b22075314cdeed69fd483b6a7be4f11373f40da","src/x86/sse3.rs":"9bd01a4f08069ca4f445952e744d651efe887e3835b18872e757375f0d053bd2","src/x86/sse4_1.rs":"9ceb80dd70a7e7dfeef508cb935e1a2637175bc87a3b090f5dea691ff6aa0516","src/x86/sse4_2.rs":"c59321aed8decdce4d0d8570cff46aed02e1a8265647ef7702e9b180fc581254","src/x86/ssse3.rs":"2290f0269bae316b8e0491495645ee38a9bd73525c8572759c1328341c3bdb4c"},"package":"7a94d14a2ae1f1f110937de5fb69e494372560181c7e1739a097fcc2cee37ba0"}
|
||||
\ No newline at end of file
|
||||
diff --git third_party/rust/simd/src/x86/avx2.rs third_party/rust/simd/src/x86/avx2.rs
|
||||
index fa92e3b60786..e86a33d3b5bb 100644
|
||||
--- third_party/rust/simd/src/x86/avx2.rs
|
||||
+++ third_party/rust/simd/src/x86/avx2.rs
|
||||
@@ -42,7 +42,7 @@ extern "platform-intrinsic" {
|
||||
fn x86_mm256_packus_epi32(x: i32x8, y: i32x8) -> u16x16;
|
||||
fn x86_mm256_permutevar8x32_epi32(x: i32x8, y: i32x8) -> i32x8;
|
||||
fn x86_mm256_permutevar8x32_ps(x: f32x8, y: i32x8) -> f32x8;
|
||||
- fn x86_mm256_sad_epu8(x: u8x32, y: u8x32) -> u8x32;
|
||||
+ fn x86_mm256_sad_epu8(x: u8x32, y: u8x32) -> u64x4;
|
||||
fn x86_mm256_shuffle_epi8(x: i8x32, y: i8x32) -> i8x32;
|
||||
fn x86_mm256_sign_epi8(x: i8x32, y: i8x32) -> i8x32;
|
||||
fn x86_mm256_sign_epi16(x: i16x16, y: i16x16) -> i16x16;
|
1000
www/firefox/files/patch-bug1438678
Normal file
1000
www/firefox/files/patch-bug1438678
Normal file
File diff suppressed because it is too large
Load Diff
39
www/firefox/files/patch-bug1442583
Normal file
39
www/firefox/files/patch-bug1442583
Normal file
@ -0,0 +1,39 @@
|
||||
commit 7371a080accd
|
||||
Author: Lars T Hansen <lhansen@mozilla.com>
|
||||
Date: Mon Mar 5 09:55:28 2018 +0100
|
||||
|
||||
Bug 1442583 - Properly initialize ARM64 icache flushing machinery. r=sstangl
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 73b5921da1fa0a19d6072e35d09bd7b528bb6bfc
|
||||
extra : intermediate-source : 19516efbbf6750ba04e11c7099586d5be2fe818f
|
||||
extra : source : 4316cc82d6302edf839a4af6fcb815f0ffa9f65c
|
||||
---
|
||||
js/src/jit/ProcessExecutableMemory.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git js/src/jit/ProcessExecutableMemory.cpp js/src/jit/ProcessExecutableMemory.cpp
|
||||
index e763a9d68dc17..8a6d50b6a7845 100644
|
||||
--- js/src/jit/ProcessExecutableMemory.cpp
|
||||
+++ js/src/jit/ProcessExecutableMemory.cpp
|
||||
@@ -20,6 +20,9 @@
|
||||
#include "jsutil.h"
|
||||
|
||||
#include "gc/Memory.h"
|
||||
+#ifdef JS_CODEGEN_ARM64
|
||||
+# include "jit/arm64/vixl/Cpu-vixl.h"
|
||||
+#endif
|
||||
#include "threading/LockGuard.h"
|
||||
#include "threading/Mutex.h"
|
||||
#include "util/Windows.h"
|
||||
@@ -621,6 +624,10 @@ js::jit::DeallocateExecutableMemory(void* addr, size_t bytes)
|
||||
bool
|
||||
js::jit::InitProcessExecutableMemory()
|
||||
{
|
||||
+#ifdef JS_CODEGEN_ARM64
|
||||
+ // Initialize instruction cache flushing.
|
||||
+ vixl::CPU::SetUp();
|
||||
+#endif
|
||||
return execMemory.init();
|
||||
}
|
||||
|
@ -1,17 +0,0 @@
|
||||
Disable custom styling for <select> and <option> on Tier3 as well
|
||||
|
||||
diff --git modules/libpref/init/all.js modules/libpref/init/all.js
|
||||
index 322d009da739..06e2fd7f664a 100644
|
||||
--- modules/libpref/init/all.js
|
||||
+++ modules/libpref/init/all.js
|
||||
@@ -1359,8 +1359,8 @@ pref("dom.forms.autocomplete.formautofill", false);
|
||||
// Enable search in <select> dropdowns (more than 40 options)
|
||||
pref("dom.forms.selectSearch", false);
|
||||
// Allow for webpages to provide custom styling for <select>
|
||||
-// popups. Disabled on Linux due to bug 1338283.
|
||||
-#ifdef XP_LINUX
|
||||
+// popups. Disabled on GTK due to bug 1338283.
|
||||
+#ifdef MOZ_WIDGET_GTK
|
||||
pref("dom.forms.select.customstyling", false);
|
||||
#else
|
||||
pref("dom.forms.select.customstyling", true);
|
@ -11,7 +11,7 @@ diff --git gfx/webrender_bindings/src/bindings.rs gfx/webrender_bindings/src/bin
|
||||
index 8517d7dd33e5..cf885ee713f3 100644
|
||||
--- gfx/webrender_bindings/src/bindings.rs
|
||||
+++ gfx/webrender_bindings/src/bindings.rs
|
||||
@@ -290,8 +290,8 @@ struct WrExternalImage {
|
||||
@@ -312,8 +312,8 @@ struct WrExternalImage {
|
||||
size: usize,
|
||||
}
|
||||
|
||||
@ -22,17 +22,17 @@ index 8517d7dd33e5..cf885ee713f3 100644
|
||||
|
||||
#[repr(C)]
|
||||
pub struct WrExternalImageHandler {
|
||||
@@ -305,8 +305,8 @@ impl ExternalImageHandler for WrExternalImageHandler {
|
||||
@@ -327,7 +327,8 @@ impl ExternalImageHandler for WrExternalImageHandler {
|
||||
id: ExternalImageId,
|
||||
channel_index: u8)
|
||||
-> ExternalImage {
|
||||
- let image = (self.lock_func)(self.external_image_obj, id.into(), channel_index);
|
||||
|
||||
+
|
||||
+ let image = unsafe { (self.lock_func)(self.external_image_obj, id.into(), channel_index) };
|
||||
match image.image_type {
|
||||
WrExternalImageType::NativeTexture => {
|
||||
ExternalImage {
|
||||
@@ -341,7 +341,9 @@ impl ExternalImageHandler for WrExternalImageHandler {
|
||||
ExternalImage {
|
||||
uv: TexelRect::new(image.u0, image.v0, image.u1, image.v1),
|
||||
source: match image.image_type {
|
||||
@@ -341,7 +342,9 @@ impl ExternalImageHandler for WrExternalImageHandler {
|
||||
fn unlock(&mut self,
|
||||
id: ExternalImageId,
|
||||
channel_index: u8) {
|
||||
|
75
www/firefox/files/patch-bug1445907
Normal file
75
www/firefox/files/patch-bug1445907
Normal file
@ -0,0 +1,75 @@
|
||||
commit 0c6dd4a750db
|
||||
Author: Lars T Hansen <lhansen@mozilla.com>
|
||||
Date: Mon Mar 19 09:58:06 2018 +0100
|
||||
|
||||
Bug 1445907 - Save x28 before clobbering it in the regex compiler. r=sstangl
|
||||
---
|
||||
js/src/irregexp/NativeRegExpMacroAssembler.cpp | 25 ++++++++++++++++++++++++-
|
||||
js/src/jit-test/tests/regexp/bug1445907.js | 15 +++++++++++++++
|
||||
2 files changed, 39 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git js/src/irregexp/NativeRegExpMacroAssembler.cpp js/src/irregexp/NativeRegExpMacroAssembler.cpp
|
||||
index 28a4c35e75bfe..c08b005cf856b 100644
|
||||
--- js/src/irregexp/NativeRegExpMacroAssembler.cpp
|
||||
+++ js/src/irregexp/NativeRegExpMacroAssembler.cpp
|
||||
@@ -123,7 +123,15 @@ NativeRegExpMacroAssembler::GenerateCode(JSContext* cx, bool match_only)
|
||||
masm.bind(&entry_label_);
|
||||
|
||||
#ifdef JS_CODEGEN_ARM64
|
||||
- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing.
|
||||
+ // ARM64 communicates stack address via SP, but uses a pseudo-sp (PSP) for
|
||||
+ // addressing. The register we use for PSP may however also be used by
|
||||
+ // calling code, and it is nonvolatile, so save it. Do this as a special
|
||||
+ // case first because the generic save/restore code needs the PSP to be
|
||||
+ // initialized already.
|
||||
+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64()));
|
||||
+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex));
|
||||
+
|
||||
+ // Initialize the PSP from the SP.
|
||||
masm.initStackPtr();
|
||||
#endif
|
||||
|
||||
@@ -421,7 +429,22 @@ NativeRegExpMacroAssembler::GenerateCode(JSContext* cx, bool match_only)
|
||||
for (GeneralRegisterBackwardIterator iter(savedNonVolatileRegisters); iter.more(); ++iter)
|
||||
masm.Pop(*iter);
|
||||
|
||||
+#ifdef JS_CODEGEN_ARM64
|
||||
+ // Now restore the value that was in the PSP register on entry, and return.
|
||||
+
|
||||
+ // Obtain the correct SP from the PSP.
|
||||
+ masm.Mov(sp, PseudoStackPointer64);
|
||||
+
|
||||
+ // Restore the saved value of the PSP register, this value is whatever the
|
||||
+ // caller had saved in it, not any actual SP value, and it must not be
|
||||
+ // overwritten subsequently.
|
||||
+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex));
|
||||
+
|
||||
+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong.
|
||||
+ masm.Ret(vixl::lr);
|
||||
+#else
|
||||
masm.abiret();
|
||||
+#endif
|
||||
|
||||
// Backtrack code (branch target for conditional backtracks).
|
||||
if (backtrack_label_.used()) {
|
||||
diff --git js/src/jit-test/tests/regexp/bug1445907.js js/src/jit-test/tests/regexp/bug1445907.js
|
||||
new file mode 100644
|
||||
index 0000000000000..75b23753eaf93
|
||||
--- /dev/null
|
||||
+++ js/src/jit-test/tests/regexp/bug1445907.js
|
||||
@@ -0,0 +1,15 @@
|
||||
+// On ARM64, we failed to save x28 properly when generating code for the regexp
|
||||
+// matcher.
|
||||
+//
|
||||
+// There's wasm and Debugger code here because the combination forces the use of
|
||||
+// x28 and exposes the bug when running on the simulator.
|
||||
+
|
||||
+if (!wasmIsSupported())
|
||||
+ quit();
|
||||
+
|
||||
+var g = newGlobal('');
|
||||
+var dbg = new Debugger(g);
|
||||
+g.eval(`var m = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary('(module (func (export "test")))')))`);
|
||||
+var re = /./;
|
||||
+dbg.onEnterFrame = function(frame) { re.exec("x") };
|
||||
+result = g.eval("m.exports.test()");
|
45
www/firefox/files/patch-bug1447359
Normal file
45
www/firefox/files/patch-bug1447359
Normal file
@ -0,0 +1,45 @@
|
||||
commit fef467b5a93d
|
||||
Author: Luke Wagner <luke@mozilla.com>
|
||||
Date: Thu Mar 22 10:28:13 2018 -0500
|
||||
|
||||
Bug 1447359 - Baldr: add AutoForbidPools in a few missing places (r=lth)
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 75f1909deb352391529ce5e58a89e5f9cfeb3662
|
||||
---
|
||||
js/src/jit/arm64/MacroAssembler-arm64-inl.h | 1 +
|
||||
js/src/jit/arm64/MacroAssembler-arm64.cpp | 2 ++
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git js/src/jit/arm64/MacroAssembler-arm64-inl.h js/src/jit/arm64/MacroAssembler-arm64-inl.h
|
||||
index 7061cbfd93ebb..190442f7afa0a 100644
|
||||
--- js/src/jit/arm64/MacroAssembler-arm64-inl.h
|
||||
+++ js/src/jit/arm64/MacroAssembler-arm64-inl.h
|
||||
@@ -359,6 +359,7 @@ MacroAssembler::sub32FromStackPtrWithPatch(Register dest)
|
||||
{
|
||||
vixl::UseScratchRegisterScope temps(this);
|
||||
const ARMRegister scratch = temps.AcquireX();
|
||||
+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 3);
|
||||
CodeOffset offs = CodeOffset(currentOffset());
|
||||
movz(scratch, 0, 0);
|
||||
movk(scratch, 0, 16);
|
||||
diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssembler-arm64.cpp
|
||||
index 7b599b7e9d610..4e8fdb6a67019 100644
|
||||
--- js/src/jit/arm64/MacroAssembler-arm64.cpp
|
||||
+++ js/src/jit/arm64/MacroAssembler-arm64.cpp
|
||||
@@ -707,6 +707,7 @@ MacroAssembler::patchFarJump(CodeOffset farJump, uint32_t targetOffset)
|
||||
CodeOffset
|
||||
MacroAssembler::nopPatchableToCall(const wasm::CallSiteDesc& desc)
|
||||
{
|
||||
+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1);
|
||||
CodeOffset offset(currentOffset());
|
||||
Nop();
|
||||
append(desc, CodeOffset(currentOffset()));
|
||||
@@ -1077,6 +1078,7 @@ MacroAssembler::comment(const char* msg)
|
||||
CodeOffset
|
||||
MacroAssembler::wasmTrapInstruction()
|
||||
{
|
||||
+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1);
|
||||
CodeOffset offs(currentOffset());
|
||||
Unreachable();
|
||||
return offs;
|
@ -1,447 +0,0 @@
|
||||
commit d648a9a26195
|
||||
Author: Martin Stransky <stransky@redhat.com>
|
||||
Date: Tue Mar 27 15:51:07 2018 +0200
|
||||
|
||||
Bug 1447925 - Add GetClipboardText() to get text data from clipboard, r=jhorak
|
||||
|
||||
GetClipboardText() calls gtk_clipboard_request_text() to request text clipboard data from Gtk+
|
||||
and leave Gtk+ to do clipboard text format conversions. Also unify data getting code for text/data/targets.
|
||||
|
||||
MozReview-Commit-ID: 9DGSdOACho1
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : f1d95609f8a7587a4abc11739db9d17ec5446a7b
|
||||
---
|
||||
widget/gtk/nsClipboard.h | 1 +
|
||||
widget/gtk/nsClipboardX11.cpp | 177 +++++++++++++++++++++++++++++-------------
|
||||
widget/gtk/nsClipboardX11.h | 39 +++++++---
|
||||
3 files changed, 152 insertions(+), 65 deletions(-)
|
||||
|
||||
diff --git widget/gtk/nsClipboard.h widget/gtk/nsClipboard.h
|
||||
index 2be635bca10d..fa3b9b6ff087 100644
|
||||
--- widget/gtk/nsClipboard.h
|
||||
+++ widget/gtk/nsClipboard.h
|
||||
@@ -21,6 +21,7 @@ public:
|
||||
virtual const char* GetClipboardData(const char* aMimeType,
|
||||
int32_t aWhichClipboard,
|
||||
uint32_t* aContentLength) = 0;
|
||||
+ virtual const char* GetClipboardText(int32_t aWhichClipboard) = 0;
|
||||
virtual void ReleaseClipboardData(const char* aClipboardData) = 0;
|
||||
|
||||
virtual GdkAtom* GetTargets(int32_t aWhichClipboard,
|
||||
diff --git widget/gtk/nsClipboardX11.cpp widget/gtk/nsClipboardX11.cpp
|
||||
index 6a574069dcc4..e8d8522651c2 100644
|
||||
--- widget/gtk/nsClipboardX11.cpp
|
||||
+++ widget/gtk/nsClipboardX11.cpp
|
||||
@@ -62,8 +62,10 @@ selection_request_filter(GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
|
||||
|
||||
nsRetrievalContextX11::nsRetrievalContextX11()
|
||||
: mState(INITIAL)
|
||||
- , mData(nullptr)
|
||||
, mClipboardRequestNumber(0)
|
||||
+ , mClipboardData(nullptr)
|
||||
+ , mClipboardDataLength(0)
|
||||
+ , mTargetMIMEType(gdk_atom_intern("TARGETS", FALSE))
|
||||
{
|
||||
// A custom event filter to workaround attempting to dereference a null
|
||||
// selection requestor in GTK3 versions before 3.11.3. See bug 1178799.
|
||||
@@ -139,13 +141,11 @@ checkEventProc(Display *display, XEvent *event, XPointer arg)
|
||||
return False;
|
||||
}
|
||||
|
||||
-void *
|
||||
-nsRetrievalContextX11::Wait()
|
||||
+bool
|
||||
+nsRetrievalContextX11::WaitForX11Content()
|
||||
{
|
||||
if (mState == COMPLETED) { // the request completed synchronously
|
||||
- void *data = mData;
|
||||
- mData = nullptr;
|
||||
- return data;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
GdkDisplay *gdkDisplay = gdk_display_get_default();
|
||||
@@ -181,9 +181,7 @@ nsRetrievalContextX11::Wait()
|
||||
DispatchPropertyNotifyEvent(context.cbWidget, &xevent);
|
||||
|
||||
if (mState == COMPLETED) {
|
||||
- void *data = mData;
|
||||
- mData = nullptr;
|
||||
- return data;
|
||||
+ return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,11 +198,12 @@ nsRetrievalContextX11::Wait()
|
||||
printf("exceeded clipboard timeout\n");
|
||||
#endif
|
||||
mState = TIMED_OUT;
|
||||
- return nullptr;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
// Call this when data has been retrieved.
|
||||
-void nsRetrievalContextX11::Complete(GtkSelectionData* aData,
|
||||
+void nsRetrievalContextX11::Complete(ClipboardDataType aDataType,
|
||||
+ const void* aData,
|
||||
int aDataRequestNumber)
|
||||
{
|
||||
if (mClipboardRequestNumber != aDataRequestNumber) {
|
||||
@@ -214,8 +213,54 @@ void nsRetrievalContextX11::Complete(GtkSelectionData* aData,
|
||||
|
||||
if (mState == INITIAL) {
|
||||
mState = COMPLETED;
|
||||
- mData = gtk_selection_data_get_length(aData) >= 0 ?
|
||||
- gtk_selection_data_copy(aData) : nullptr;
|
||||
+
|
||||
+ MOZ_ASSERT(mClipboardData == nullptr &&
|
||||
+ mClipboardDataLength == 0,
|
||||
+ "We're leaking clipboard data!");
|
||||
+
|
||||
+ switch (aDataType) {
|
||||
+ case CLIPBOARD_TEXT:
|
||||
+ {
|
||||
+ const char* text = static_cast<const char*>(aData);
|
||||
+ if (text) {
|
||||
+ mClipboardDataLength = sizeof(char) * (strlen(text) + 1);
|
||||
+ mClipboardData = moz_xmalloc(mClipboardDataLength);
|
||||
+ memcpy(mClipboardData, text, mClipboardDataLength);
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
+ case CLIPBOARD_TARGETS:
|
||||
+ {
|
||||
+ const GtkSelectionData *selection =
|
||||
+ static_cast<const GtkSelectionData *>(aData);
|
||||
+
|
||||
+ gint n_targets = 0;
|
||||
+ GdkAtom *targets = nullptr;
|
||||
+
|
||||
+ if (!gtk_selection_data_get_targets(selection, &targets, &n_targets) ||
|
||||
+ !n_targets) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ mClipboardData = targets;
|
||||
+ mClipboardDataLength = n_targets;
|
||||
+ }
|
||||
+ break;
|
||||
+ case CLIPBOARD_DATA:
|
||||
+ {
|
||||
+ const GtkSelectionData *selection =
|
||||
+ static_cast<const GtkSelectionData *>(aData);
|
||||
+
|
||||
+ gint dataLength = gtk_selection_data_get_length(selection);
|
||||
+ if (dataLength > 0) {
|
||||
+ mClipboardDataLength = dataLength;
|
||||
+ mClipboardData = moz_xmalloc(dataLength);
|
||||
+ memcpy(mClipboardData, gtk_selection_data_get_data(selection),
|
||||
+ dataLength);
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
} else {
|
||||
// Already timed out
|
||||
MOZ_ASSERT(mState == TIMED_OUT);
|
||||
@@ -233,12 +278,24 @@ clipboard_contents_received(GtkClipboard *clipboard,
|
||||
delete handler;
|
||||
}
|
||||
|
||||
-GtkSelectionData*
|
||||
-nsRetrievalContextX11::WaitForContents(GtkClipboard *clipboard,
|
||||
- const char *aMimeType)
|
||||
+static void
|
||||
+clipboard_text_received(GtkClipboard *clipboard,
|
||||
+ const gchar *text,
|
||||
+ gpointer data)
|
||||
+{
|
||||
+ ClipboardRequestHandler *handler =
|
||||
+ static_cast<ClipboardRequestHandler*>(data);
|
||||
+ handler->Complete(text);
|
||||
+ delete handler;
|
||||
+}
|
||||
+
|
||||
+bool
|
||||
+nsRetrievalContextX11::WaitForClipboardData(ClipboardDataType aDataType,
|
||||
+ GtkClipboard *clipboard,
|
||||
+ const char *aMimeType)
|
||||
{
|
||||
mState = INITIAL;
|
||||
- NS_ASSERTION(!mData, "Leaking clipboard content!");
|
||||
+ NS_ASSERTION(!mClipboardData, "Leaking clipboard content!");
|
||||
|
||||
// Call ClipboardRequestHandler() with unique clipboard request number.
|
||||
// The request number pairs gtk_clipboard_request_contents() data request
|
||||
@@ -246,39 +303,45 @@ nsRetrievalContextX11::WaitForContents(GtkClipboard *clipboard,
|
||||
// is provided by Gtk.
|
||||
mClipboardRequestNumber++;
|
||||
ClipboardRequestHandler* handler =
|
||||
- new ClipboardRequestHandler(this, mClipboardRequestNumber);
|
||||
+ new ClipboardRequestHandler(this, aDataType, mClipboardRequestNumber);
|
||||
+
|
||||
+ switch (aDataType) {
|
||||
+ case CLIPBOARD_DATA:
|
||||
+ gtk_clipboard_request_contents(clipboard,
|
||||
+ gdk_atom_intern(aMimeType, FALSE), clipboard_contents_received,
|
||||
+ handler);
|
||||
+ break;
|
||||
+ case CLIPBOARD_TEXT:
|
||||
+ gtk_clipboard_request_text(clipboard, clipboard_text_received,
|
||||
+ handler);
|
||||
+ break;
|
||||
+ case CLIPBOARD_TARGETS:
|
||||
+ gtk_clipboard_request_contents(clipboard,
|
||||
+ mTargetMIMEType, clipboard_contents_received,
|
||||
+ handler);
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
- gtk_clipboard_request_contents(clipboard,
|
||||
- gdk_atom_intern(aMimeType, FALSE),
|
||||
- clipboard_contents_received,
|
||||
- handler);
|
||||
- return static_cast<GtkSelectionData*>(Wait());
|
||||
+ return WaitForX11Content();
|
||||
}
|
||||
|
||||
GdkAtom*
|
||||
nsRetrievalContextX11::GetTargets(int32_t aWhichClipboard, int* aTargetNums)
|
||||
{
|
||||
- *aTargetNums = 0;
|
||||
+ GtkClipboard *clipboard =
|
||||
+ gtk_clipboard_get(GetSelectionAtom(aWhichClipboard));
|
||||
|
||||
- GtkClipboard *clipboard =
|
||||
- gtk_clipboard_get(GetSelectionAtom(aWhichClipboard));
|
||||
-
|
||||
- GtkSelectionData *selection_data = WaitForContents(clipboard, "TARGETS");
|
||||
- if (!selection_data)
|
||||
- return nullptr;
|
||||
+ if (!WaitForClipboardData(CLIPBOARD_TARGETS, clipboard))
|
||||
+ return nullptr;
|
||||
|
||||
- gint n_targets = 0;
|
||||
- GdkAtom *targets = nullptr;
|
||||
+ *aTargetNums = mClipboardDataLength;
|
||||
+ GdkAtom* targets = static_cast<GdkAtom*>(mClipboardData);
|
||||
|
||||
- if (!gtk_selection_data_get_targets(selection_data, &targets, &n_targets) ||
|
||||
- !n_targets) {
|
||||
- return nullptr;
|
||||
- }
|
||||
+ // We don't hold the target list internally but we transfer the ownership.
|
||||
+ mClipboardData = nullptr;
|
||||
+ mClipboardDataLength = 0;
|
||||
|
||||
- gtk_selection_data_free(selection_data);
|
||||
-
|
||||
- *aTargetNums = n_targets;
|
||||
- return targets;
|
||||
+ return targets;
|
||||
}
|
||||
|
||||
const char*
|
||||
@@ -289,25 +352,31 @@ nsRetrievalContextX11::GetClipboardData(const char* aMimeType,
|
||||
GtkClipboard *clipboard;
|
||||
clipboard = gtk_clipboard_get(GetSelectionAtom(aWhichClipboard));
|
||||
|
||||
- GtkSelectionData *selectionData = WaitForContents(clipboard, aMimeType);
|
||||
- if (!selectionData)
|
||||
+ if (!WaitForClipboardData(CLIPBOARD_DATA, clipboard, aMimeType))
|
||||
return nullptr;
|
||||
|
||||
- char* clipboardData = nullptr;
|
||||
- int contentLength = gtk_selection_data_get_length(selectionData);
|
||||
- if (contentLength > 0) {
|
||||
- clipboardData = reinterpret_cast<char*>(
|
||||
- moz_xmalloc(sizeof(char)*contentLength));
|
||||
- memcpy(clipboardData, gtk_selection_data_get_data(selectionData),
|
||||
- sizeof(char)*contentLength);
|
||||
- }
|
||||
- gtk_selection_data_free(selectionData);
|
||||
+ *aContentLength = mClipboardDataLength;
|
||||
+ return static_cast<const char*>(mClipboardData);
|
||||
+}
|
||||
|
||||
- *aContentLength = contentLength;
|
||||
- return (const char*)clipboardData;
|
||||
+const char*
|
||||
+nsRetrievalContextX11::GetClipboardText(int32_t aWhichClipboard)
|
||||
+{
|
||||
+ GtkClipboard *clipboard;
|
||||
+ clipboard = gtk_clipboard_get(GetSelectionAtom(aWhichClipboard));
|
||||
+
|
||||
+ if (!WaitForClipboardData(CLIPBOARD_TEXT, clipboard))
|
||||
+ return nullptr;
|
||||
+
|
||||
+ return static_cast<const char*>(mClipboardData);
|
||||
}
|
||||
|
||||
void nsRetrievalContextX11::ReleaseClipboardData(const char* aClipboardData)
|
||||
{
|
||||
- free((void *)aClipboardData);
|
||||
+ NS_ASSERTION(aClipboardData == mClipboardData,
|
||||
+ "Releasing unknown clipboard data!");
|
||||
+ free((void*)aClipboardData);
|
||||
+
|
||||
+ mClipboardData = nullptr;
|
||||
+ mClipboardDataLength = 0;
|
||||
}
|
||||
diff --git widget/gtk/nsClipboardX11.h widget/gtk/nsClipboardX11.h
|
||||
index 210f6b1fdbd4..9e89e08445dd 100644
|
||||
--- widget/gtk/nsClipboardX11.h
|
||||
+++ widget/gtk/nsClipboardX11.h
|
||||
@@ -11,6 +11,12 @@
|
||||
#include "nsIClipboard.h"
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
+enum ClipboardDataType {
|
||||
+ CLIPBOARD_DATA,
|
||||
+ CLIPBOARD_TEXT,
|
||||
+ CLIPBOARD_TARGETS
|
||||
+};
|
||||
+
|
||||
class nsRetrievalContextX11 : public nsRetrievalContext
|
||||
{
|
||||
public:
|
||||
@@ -19,48 +25,59 @@ public:
|
||||
virtual const char* GetClipboardData(const char* aMimeType,
|
||||
int32_t aWhichClipboard,
|
||||
uint32_t* aContentLength) override;
|
||||
+ virtual const char* GetClipboardText(int32_t aWhichClipboard) override;
|
||||
virtual void ReleaseClipboardData(const char* aClipboardData) override;
|
||||
|
||||
virtual GdkAtom* GetTargets(int32_t aWhichClipboard,
|
||||
int* aTargetNums) override;
|
||||
|
||||
- // Call this when data has been retrieved.
|
||||
- void Complete(GtkSelectionData* aData, int aDataRequestNumber);
|
||||
+ // Call this when data or text has been retrieved.
|
||||
+ void Complete(ClipboardDataType aDataType,
|
||||
+ const void* aData,
|
||||
+ int aDataRequestNumber);
|
||||
|
||||
nsRetrievalContextX11();
|
||||
virtual ~nsRetrievalContextX11() override;
|
||||
|
||||
private:
|
||||
- GtkSelectionData* WaitForContents(GtkClipboard *clipboard,
|
||||
- const char *aMimeType);
|
||||
+ bool WaitForClipboardData(ClipboardDataType aDataType,
|
||||
+ GtkClipboard *clipboard,
|
||||
+ const char *aMimeType = nullptr);
|
||||
+
|
||||
/**
|
||||
* Spins X event loop until timing out or being completed. Returns
|
||||
* null if we time out, otherwise returns the completed data (passing
|
||||
* ownership to caller).
|
||||
*/
|
||||
- void *Wait();
|
||||
+ bool WaitForX11Content();
|
||||
|
||||
- State mState;
|
||||
- void* mData;
|
||||
- int mClipboardRequestNumber;
|
||||
+ State mState;
|
||||
+ int mClipboardRequestNumber;
|
||||
+ void* mClipboardData;
|
||||
+ uint32_t mClipboardDataLength;
|
||||
+ GdkAtom mTargetMIMEType;
|
||||
};
|
||||
|
||||
class ClipboardRequestHandler
|
||||
{
|
||||
public:
|
||||
- ClipboardRequestHandler(nsRetrievalContextX11 *aContext, int aDataRequestNumber)
|
||||
+ ClipboardRequestHandler(nsRetrievalContextX11 *aContext,
|
||||
+ ClipboardDataType aDataType,
|
||||
+ int aDataRequestNumber)
|
||||
: mContext(aContext)
|
||||
, mDataRequestNumber(aDataRequestNumber)
|
||||
+ , mDataType(aDataType)
|
||||
{}
|
||||
|
||||
- void Complete(GtkSelectionData* aData)
|
||||
+ void Complete(const void *aData)
|
||||
{
|
||||
- mContext->Complete(aData, mDataRequestNumber);
|
||||
+ mContext->Complete(mDataType, aData, mDataRequestNumber);
|
||||
}
|
||||
|
||||
private:
|
||||
nsRetrievalContextX11 *mContext;
|
||||
int mDataRequestNumber;
|
||||
+ ClipboardDataType mDataType;
|
||||
};
|
||||
|
||||
#endif /* __nsClipboardX11_h_ */
|
||||
|
||||
commit 3a5fb9d15546
|
||||
Author: Martin Stransky <stransky@redhat.com>
|
||||
Date: Tue Apr 3 10:30:37 2018 +0200
|
||||
|
||||
Bug 1447925 - Use GetClipboardText() to get text data at nsClipboard::GetData(), r=jhorak
|
||||
|
||||
MozReview-Commit-ID: 3JnLLyk0BOF
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 7bd5faff15d805d19628bdbd9fcd194c89c283a4
|
||||
---
|
||||
widget/gtk/nsClipboard.cpp | 7 ++-----
|
||||
widget/gtk/nsClipboard.h | 7 ++++---
|
||||
2 files changed, 6 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git widget/gtk/nsClipboard.cpp widget/gtk/nsClipboard.cpp
|
||||
index 5e8105987842..36e8d6ad5cee 100644
|
||||
--- widget/gtk/nsClipboard.cpp
|
||||
+++ widget/gtk/nsClipboard.cpp
|
||||
@@ -301,11 +301,8 @@ nsClipboard::GetData(nsITransferable *aTransferable, int32_t aWhichClipboard)
|
||||
// Special case text/unicode since we can convert any
|
||||
// string into text/unicode
|
||||
if (flavorStr.EqualsLiteral(kUnicodeMime)) {
|
||||
- uint32_t clipboardDataLength;
|
||||
const char* clipboardData =
|
||||
- mContext->GetClipboardData(GTK_DEFAULT_MIME_TEXT,
|
||||
- aWhichClipboard,
|
||||
- &clipboardDataLength);
|
||||
+ mContext->GetClipboardText(aWhichClipboard);
|
||||
if (!clipboardData) {
|
||||
// If the type was text/unicode and we couldn't get
|
||||
// text off the clipboard, run the next loop
|
||||
@@ -314,7 +311,7 @@ nsClipboard::GetData(nsITransferable *aTransferable, int32_t aWhichClipboard)
|
||||
}
|
||||
|
||||
// Convert utf-8 into our unicode format.
|
||||
- NS_ConvertUTF8toUTF16 ucs2string(clipboardData, clipboardDataLength);
|
||||
+ NS_ConvertUTF8toUTF16 ucs2string(clipboardData);
|
||||
const char* unicodeData = (const char *)ToNewUnicode(ucs2string);
|
||||
uint32_t unicodeDataLength = ucs2string.Length() * 2;
|
||||
SetTransferableData(aTransferable, flavorStr,
|
||||
diff --git widget/gtk/nsClipboard.h widget/gtk/nsClipboard.h
|
||||
index fa3b9b6ff087..9b59bf8176f6 100644
|
||||
--- widget/gtk/nsClipboard.h
|
||||
+++ widget/gtk/nsClipboard.h
|
||||
@@ -13,17 +13,18 @@
|
||||
#include "nsIBinaryOutputStream.h"
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
-// Default Gtk MIME for text
|
||||
-#define GTK_DEFAULT_MIME_TEXT "UTF8_STRING"
|
||||
-
|
||||
class nsRetrievalContext {
|
||||
public:
|
||||
+ // Get actual clipboard content (GetClipboardData/GetClipboardText)
|
||||
+ // which has to be released by ReleaseClipboardData().
|
||||
virtual const char* GetClipboardData(const char* aMimeType,
|
||||
int32_t aWhichClipboard,
|
||||
uint32_t* aContentLength) = 0;
|
||||
virtual const char* GetClipboardText(int32_t aWhichClipboard) = 0;
|
||||
virtual void ReleaseClipboardData(const char* aClipboardData) = 0;
|
||||
|
||||
+ // Get data mime types which can be obtained from clipboard.
|
||||
+ // The returned array has to be released by g_free().
|
||||
virtual GdkAtom* GetTargets(int32_t aWhichClipboard,
|
||||
int* aTargetNum) = 0;
|
||||
|
33
www/firefox/files/patch-bug1451292
Normal file
33
www/firefox/files/patch-bug1451292
Normal file
@ -0,0 +1,33 @@
|
||||
commit b3a02fddbce8
|
||||
Author: Lars T Hansen <lhansen@mozilla.com>
|
||||
Date: Wed Apr 4 15:48:48 2018 +0200
|
||||
|
||||
Bug 1451292 - Better payload for arm64 breakpoint instruction. r=sstangl
|
||||
|
||||
At least some non-zero payloads confuse GDB and make it iloop on the
|
||||
breakpoint instruction rather than break to the command line as it
|
||||
should. There seems to be no reason not to use a zero payload.
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 6d6f9aa2911b86b02572f88948d48bc2238c6353
|
||||
extra : amend_source : 9fed9235d481a9eadafc4a3e0075c9fef8b6050d
|
||||
---
|
||||
js/src/jit/arm64/MacroAssembler-arm64.cpp | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssembler-arm64.cpp
|
||||
index 4ea64b1225d00..a212de0ec2f45 100644
|
||||
--- js/src/jit/arm64/MacroAssembler-arm64.cpp
|
||||
+++ js/src/jit/arm64/MacroAssembler-arm64.cpp
|
||||
@@ -237,8 +237,9 @@ MacroAssemblerCompat::profilerEnterFrame(RegisterOrSP framePtr, Register scratch
|
||||
void
|
||||
MacroAssemblerCompat::breakpoint()
|
||||
{
|
||||
- static int code = 0xA77;
|
||||
- Brk((code++) & 0xffff);
|
||||
+ // Note, other payloads are possible, but GDB is known to misinterpret them
|
||||
+ // sometimes and iloop on the breakpoint instead of stopping properly.
|
||||
+ Brk(0);
|
||||
}
|
||||
|
||||
// Either `any` is valid or `sixtyfour` is valid. Return a 32-bit ARMRegister
|
@ -1,28 +0,0 @@
|
||||
commit 90944c5323c3
|
||||
Author: Martin Stransky <stransky@redhat.com>
|
||||
Date: Mon Apr 9 13:36:03 2018 +0200
|
||||
|
||||
Bug 1452041 - nsClipboard::HasDataMatchingFlavors(): return immediately when there's no clipboard content, r=jhorak a=jcristau
|
||||
|
||||
MozReview-Commit-ID: CTz0tRr3p57
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 35453506a58e698d8f0b6e9681fb87da8511eb9c
|
||||
extra : source : 4b841d1c7ec0513eb080fb033f54bde12ccb7ddc
|
||||
---
|
||||
widget/gtk/nsClipboard.cpp | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git widget/gtk/nsClipboard.cpp widget/gtk/nsClipboard.cpp
|
||||
index 36e8d6ad5cee..61d3ef53ca98 100644
|
||||
--- widget/gtk/nsClipboard.cpp
|
||||
+++ widget/gtk/nsClipboard.cpp
|
||||
@@ -390,6 +390,8 @@ nsClipboard::HasDataMatchingFlavors(const char** aFlavorList, uint32_t aLength,
|
||||
|
||||
int targetNums;
|
||||
GdkAtom* targets = mContext->GetTargets(aWhichClipboard, &targetNums);
|
||||
+ if (!targets)
|
||||
+ return NS_OK;
|
||||
|
||||
// Walk through the provided types and try to match it to a
|
||||
// provided type.
|
22
www/firefox/files/patch-bug1456556
Normal file
22
www/firefox/files/patch-bug1456556
Normal file
@ -0,0 +1,22 @@
|
||||
commit f6fc0b418aa3
|
||||
Author: Andrea Marchesini <amarchesini@mozilla.com>
|
||||
Date: Tue May 1 08:47:13 2018 +0200
|
||||
|
||||
Bug 1456556 - FetchConsumer scope-exit RAII must grab 'self' by value, r=erahm
|
||||
---
|
||||
dom/fetch/FetchConsumer.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git dom/fetch/FetchConsumer.cpp dom/fetch/FetchConsumer.cpp
|
||||
index 134bf7f2e703a..3c3687fea1d5a 100644
|
||||
--- dom/fetch/FetchConsumer.cpp
|
||||
+++ dom/fetch/FetchConsumer.cpp
|
||||
@@ -582,7 +582,7 @@ FetchBodyConsumer<Derived>::ContinueConsumeBody(nsresult aStatus,
|
||||
RefPtr<Promise> localPromise = mConsumePromise.forget();
|
||||
|
||||
RefPtr<FetchBodyConsumer<Derived>> self = this;
|
||||
- auto autoReleaseObject = mozilla::MakeScopeExit([&] {
|
||||
+ auto autoReleaseObject = mozilla::MakeScopeExit([self] {
|
||||
self->ReleaseObject();
|
||||
});
|
||||
|
@ -1,171 +0,0 @@
|
||||
commit 8024d93
|
||||
Author: Henrik Gulbrandsen <henrik@gulbra.net>
|
||||
Date: Fri Jan 4 13:49:22 2013 +0100
|
||||
|
||||
Bug 826985 - Support more video formats for WebRTC via libv4l2 on Linux.
|
||||
---
|
||||
config/system-headers | 1 +
|
||||
old-configure.in | 7 +++++++
|
||||
media/webrtc/signaling/test/Makefile.in | 1 +
|
||||
.../modules/video_capture/linux/device_info_linux.cc | 17 +++++++++++++++++
|
||||
.../modules/video_capture/linux/video_capture_linux.cc | 16 +++++++++++++++-
|
||||
.../webrtc/modules/video_capture/video_capture.gypi | 11 +++++++++++
|
||||
toolkit/library/Makefile.in | 1 +
|
||||
6 files changed, 52 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git config/system-headers.mozbuild config/system-headers.mozbuild
|
||||
index e02d381a12e9..7620b4d00623 100644
|
||||
--- config/system-headers.mozbuild
|
||||
+++ config/system-headers.mozbuild
|
||||
@@ -428,6 +428,7 @@ system_headers = [
|
||||
'libgnomeui/gnome-icon-theme.h',
|
||||
'libgnomeui/gnome-ui-init.h',
|
||||
'libutil.h',
|
||||
+ 'libv4l2.h',
|
||||
'limits.h',
|
||||
'link.h',
|
||||
'linux/ioprio.h',
|
||||
diff --git old-configure.in configure.in
|
||||
index 55e4cd1..76567b3 100644
|
||||
--- old-configure.in
|
||||
+++ old-configure.in
|
||||
@@ -2558,6 +2558,9 @@ if test -n "$MOZ_WEBRTC"; then
|
||||
if test -n "$MOZ_X11"; then
|
||||
MOZ_WEBRTC_X11_LIBS="-lXext -lXdamage -lXfixes -lXcomposite"
|
||||
fi
|
||||
+
|
||||
+ dnl with libv4l2 we can support more cameras
|
||||
+ PKG_CHECK_MODULES(MOZ_LIBV4L2, libv4l2)
|
||||
else
|
||||
MOZ_SYNTH_PICO=
|
||||
fi
|
||||
diff --git build/gyp.mozbuild build/gyp.mozbuild
|
||||
index b483cd1..f1dd1f0 100644
|
||||
--- build/gyp.mozbuild
|
||||
+++ build/gyp.mozbuild
|
||||
@@ -11,6 +11,7 @@ gyp_vars = {
|
||||
'have_ethtool_cmd_speed_hi': 1 if CONFIG['MOZ_WEBRTC_HAVE_ETHTOOL_SPEED_HI'] else 0,
|
||||
'include_alsa_audio': 1 if CONFIG['MOZ_ALSA'] else 0,
|
||||
'include_pulse_audio': 1 if CONFIG['MOZ_PULSEAUDIO'] else 0,
|
||||
+ 'use_libv4l2': 1 if CONFIG['MOZ_LIBV4L2_LIBS'] else 0,
|
||||
# basic stuff for everything
|
||||
'include_internal_video_render': 0,
|
||||
'clang_use_chrome_plugins': 0,
|
||||
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
|
||||
+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/device_info_linux.cc
|
||||
@@ -25,6 +25,9 @@
|
||||
#else
|
||||
#include <linux/videodev2.h>
|
||||
#endif
|
||||
+#ifdef HAVE_LIBV4L2
|
||||
+#include <libv4l2.h>
|
||||
+#endif
|
||||
|
||||
#include "webrtc/system_wrappers/interface/ref_count.h"
|
||||
#include "webrtc/system_wrappers/interface/trace.h"
|
||||
@@ -34,6 +37,15 @@
|
||||
#define BUF_LEN ( 1024 * ( EVENT_SIZE + 16 ) )
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_LIBV4L2
|
||||
+#define open v4l2_open
|
||||
+#define close v4l2_close
|
||||
+#define dup v4l2_dup
|
||||
+#define ioctl v4l2_ioctl
|
||||
+#define mmap v4l2_mmap
|
||||
+#define munmap v4l2_munmap
|
||||
+#endif
|
||||
+
|
||||
namespace webrtc
|
||||
{
|
||||
namespace videocapturemodule
|
||||
@@ -274,6 +286,11 @@ int32_t DeviceInfoLinux::GetDeviceName(
|
||||
memset(deviceNameUTF8, 0, deviceNameLength);
|
||||
memcpy(cameraName, cap.card, sizeof(cap.card));
|
||||
|
||||
+ if (cameraName[0] == '\0')
|
||||
+ {
|
||||
+ sprintf(cameraName, "Camera at /dev/video%d", deviceNumber);
|
||||
+ }
|
||||
+
|
||||
if (deviceNameLength >= strlen(cameraName))
|
||||
{
|
||||
memcpy(deviceNameUTF8, cameraName, strlen(cameraName));
|
||||
diff --git media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
|
||||
index 12df1b3..e9863ba 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
|
||||
+++ media/webrtc/trunk/webrtc/modules/video_capture/linux/video_capture_linux.cc
|
||||
@@ -25,6 +25,9 @@
|
||||
#else
|
||||
#include <linux/videodev2.h>
|
||||
#endif
|
||||
+#ifdef HAVE_LIBV4L2
|
||||
+#include <libv4l2.h>
|
||||
+#endif
|
||||
|
||||
#include <new>
|
||||
|
||||
@@ -32,6 +35,15 @@
|
||||
#include "webrtc/modules/video_capture/linux/video_capture_linux.h"
|
||||
#include "webrtc/system_wrappers/include/critical_section_wrapper.h"
|
||||
#include "webrtc/system_wrappers/include/trace.h"
|
||||
+
|
||||
+#ifdef HAVE_LIBV4L2
|
||||
+#define open v4l2_open
|
||||
+#define close v4l2_close
|
||||
+#define dup v4l2_dup
|
||||
+#define ioctl v4l2_ioctl
|
||||
+#define mmap v4l2_mmap
|
||||
+#define munmap v4l2_munmap
|
||||
+#endif
|
||||
|
||||
namespace webrtc {
|
||||
namespace videocapturemodule {
|
||||
diff --git media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
|
||||
index d46b5aa..e452223 100644
|
||||
--- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
|
||||
+++ media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
|
||||
@@ -7,6 +7,9 @@
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
{
|
||||
+ 'variables': {
|
||||
+ 'use_libv4l2%': 0,
|
||||
+ },
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'video_capture_module',
|
||||
@@ -76,6 +76,19 @@
|
||||
'linux/video_capture_linux.cc',
|
||||
'linux/video_capture_linux.h',
|
||||
],
|
||||
+ 'conditions': [
|
||||
+ ['use_libv4l2==1', {
|
||||
+ 'defines': [
|
||||
+ 'HAVE_LIBV4L2',
|
||||
+ ],
|
||||
+ 'cflags_mozilla': [
|
||||
+ '$(MOZ_LIBV4L2_CFLAGS)',
|
||||
+ ],
|
||||
+ 'libraries': [
|
||||
+ '-lv4l2',
|
||||
+ ],
|
||||
+ }],
|
||||
+ ],
|
||||
}],
|
||||
['OS=="mac"', {
|
||||
'sources': [
|
||||
diff --git toolkit/library/moz.build toolkit/library/moz.build
|
||||
index 9c16ffa..1db3794 100644
|
||||
--- toolkit/library/moz.build
|
||||
+++ toolkit/library/moz.build
|
||||
@@ -163,6 +163,7 @@ if CONFIG['OS_ARCH'] == 'Linux' and CONF
|
||||
]
|
||||
|
||||
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']
|
||||
|
31339
www/firefox/files/patch-u2f-hid-rs62
Normal file
31339
www/firefox/files/patch-u2f-hid-rs62
Normal file
File diff suppressed because it is too large
Load Diff
1162
www/firefox/files/patch-z-bug1436911
Normal file
1162
www/firefox/files/patch-z-bug1436911
Normal file
File diff suppressed because it is too large
Load Diff
@ -160,7 +160,7 @@ diff --git dom/media/moz.build dom/media/moz.build
|
||||
index 86b051c58d33..fb6186dce78b 100644
|
||||
--- dom/media/moz.build
|
||||
+++ dom/media/moz.build
|
||||
@@ -318,6 +318,21 @@ if CONFIG['MOZ_WEBRTC']:
|
||||
@@ -326,6 +326,21 @@ if CONFIG['MOZ_WEBRTC']:
|
||||
|
||||
DEFINES['MOZILLA_INTERNAL_API'] = True
|
||||
|
||||
@ -179,16 +179,16 @@ index 86b051c58d33..fb6186dce78b 100644
|
||||
+if CONFIG['MOZ_SYSTEM_SOUNDTOUCH']:
|
||||
+ CXXFLAGS += CONFIG['MOZ_SOUNDTOUCH_CFLAGS']
|
||||
+
|
||||
if CONFIG['MOZ_ANDROID_HLS_SUPPORT'] and CONFIG['MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE']:
|
||||
if CONFIG['MOZ_ANDROID_HLS_SUPPORT']:
|
||||
DEFINES['MOZ_ANDROID_HLS_SUPPORT'] = True
|
||||
|
||||
diff --git dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
|
||||
index 078f6ea5ef60..c600db067539 100644
|
||||
--- dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
|
||||
+++ dom/media/platforms/ffmpeg/ffvpx/FFVPXRuntimeLinker.cpp
|
||||
@@ -11,9 +11,13 @@
|
||||
#include "prmem.h"
|
||||
#include "prlink.h"
|
||||
@@ -15,9 +15,13 @@
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
+#ifdef MOZ_SYSTEM_SOUNDTOUCH
|
||||
+#include "nsXPCOMPrivate.h" // for XUL_DLL
|
||||
@ -200,7 +200,7 @@ index 078f6ea5ef60..c600db067539 100644
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
@@ -54,6 +58,12 @@ FFVPXRuntimeLinker::Init()
|
||||
@@ -64,6 +68,12 @@ FFVPXRuntimeLinker::Init()
|
||||
|
||||
sLinkStatus = LinkStatus_FAILED;
|
||||
|
||||
@ -212,13 +212,13 @@ index 078f6ea5ef60..c600db067539 100644
|
||||
+#else
|
||||
// We retrieve the path of the lgpllibs library as this is where mozavcodec
|
||||
// and mozavutil libs are located.
|
||||
char* lgpllibsname = PR_GetLibraryName(nullptr, "lgpllibs");
|
||||
@@ -64,6 +74,7 @@ FFVPXRuntimeLinker::Init()
|
||||
PR_GetLibraryFilePathname(lgpllibsname,
|
||||
(PRFuncPtr)&soundtouch::SoundTouch::getVersionId);
|
||||
PR_FreeLibraryName(lgpllibsname);
|
||||
PathString lgpllibsname = GetLibraryName(nullptr, "lgpllibs");
|
||||
@@ -73,6 +83,7 @@ FFVPXRuntimeLinker::Init()
|
||||
PathString path =
|
||||
GetLibraryFilePathname(lgpllibsname.get(),
|
||||
(PRFuncPtr)&soundtouch::SoundTouch::getVersionId);
|
||||
+#endif
|
||||
if (!path) {
|
||||
if (path.IsEmpty()) {
|
||||
return false;
|
||||
}
|
||||
diff --git media/libogg/README_MOZILLA media/libogg/README_MOZILLA
|
||||
@ -342,7 +342,7 @@ index b614eef85c89..85f9099dba4d 100644
|
||||
+MOZ_SYSTEM_OGG=)
|
||||
+
|
||||
+if test -n "$MOZ_SYSTEM_OGG"; then
|
||||
+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.3.0)
|
||||
+ PKG_CHECK_MODULES(MOZ_OGG, ogg >= 1.3.3)
|
||||
+
|
||||
+ _SAVE_LIBS=$LIBS
|
||||
+ LIBS="$LIBS $MOZ_OGG_LIBS"
|
||||
@ -363,7 +363,7 @@ index b614eef85c89..85f9099dba4d 100644
|
||||
+MOZ_SYSTEM_VORBIS=)
|
||||
+
|
||||
+if test -n "$MOZ_SYSTEM_VORBIS"; then
|
||||
+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.5)
|
||||
+ PKG_CHECK_MODULES(MOZ_VORBIS, vorbis vorbisenc >= 1.3.6)
|
||||
+fi
|
||||
+
|
||||
+AC_SUBST(MOZ_SYSTEM_VORBIS)
|
||||
|
@ -8,7 +8,6 @@ Some features available on other platforms are not implemented:
|
||||
- Performance profiling (requires GeckoProfiler)
|
||||
- Gamepad API (requires libusbhid backend)
|
||||
- WebVR (requires open source runtime)
|
||||
- U2F Security Keys (requires libusbhid backend)
|
||||
- TCP fast open
|
||||
|
||||
======================================================================
|
||||
|
Loading…
Reference in New Issue
Block a user