View | Details | Raw Unified | Return to bug 221335 | Differences between
and this patch

Collapse All | Expand All

(-)b/Mk/Uses/gecko.mk (-2 / +2 lines)
Lines 37-48 RUN_DEPENDS+= libxul>=45:www/libxul Link Here
37
.elif ${gecko_ARGS:Mfirefox}
37
.elif ${gecko_ARGS:Mfirefox}
38
38
39
_GECKO_DEFAULT_VERSION=	52
39
_GECKO_DEFAULT_VERSION=	52
40
_GECKO_VERSIONS=		52 55
40
_GECKO_VERSIONS=		52 56
41
_GECKO_TYPE=	firefox
41
_GECKO_TYPE=	firefox
42
42
43
# Dependence lines for different Firefox versions
43
# Dependence lines for different Firefox versions
44
52_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
44
52_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox-esr
45
55_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox
45
56_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox
46
46
47
.if exists(${LOCALBASE}/bin/firefox)
47
.if exists(${LOCALBASE}/bin/firefox)
48
_GECKO_INSTALLED_VER!=	${LOCALBASE}/bin/firefox --version 2>/dev/null
48
_GECKO_INSTALLED_VER!=	${LOCALBASE}/bin/firefox --version 2>/dev/null
(-)b/Mk/bsd.gecko.mk (-3 / +8 lines)
Lines 388-400 post-patch-SNDIO-on: Link Here
388
		${MOZSRC}/media/webrtc/signaling/test/common.build
388
		${MOZSRC}/media/webrtc/signaling/test/common.build
389
.endif
389
.endif
390
390
391
.if ${PORT_OPTIONS:MRUST}
391
.if ${PORT_OPTIONS:MRUST} || ${MOZILLA_VER:R:R} >= 54
392
BUILD_DEPENDS+=	rust>=1.15.1:${RUST_PORT}
392
BUILD_DEPENDS+=	rust>=1.17.0:${RUST_PORT}
393
. if ${MOZILLA_VER:R:R} >= 51
393
. if ${MOZILLA_VER:R:R} >= 51
394
BUILD_DEPENDS+=	cargo>=0.16.0:devel/cargo
394
BUILD_DEPENDS+=	cargo>=0.18.0:devel/cargo
395
. endif
395
. endif
396
RUST_PORT?=		lang/rust
396
RUST_PORT?=		lang/rust
397
. if ${MOZILLA_VER:R:R} < 54
397
MOZ_OPTIONS+=	--enable-rust
398
MOZ_OPTIONS+=	--enable-rust
399
. endif
398
.else
400
.else
399
MOZ_OPTIONS+=	--disable-rust
401
MOZ_OPTIONS+=	--disable-rust
400
.endif
402
.endif
Lines 404-409 MOZ_OPTIONS+= --enable-debug --disable-release Link Here
404
STRIP=	# ports/184285
406
STRIP=	# ports/184285
405
.else
407
.else
406
MOZ_OPTIONS+=	--disable-debug --disable-debug-symbols --enable-release
408
MOZ_OPTIONS+=	--disable-debug --disable-debug-symbols --enable-release
409
. if ${MOZILLA_VER:R:R} >= 56
410
MOZ_OPTIONS+=	--enable-rust-simd
411
. endif
407
.endif
412
.endif
408
413
409
.if ${PORT_OPTIONS:MDTRACE}
414
.if ${PORT_OPTIONS:MDTRACE}
(-)b/www/firefox-i18n/Makefile (-2 / +2 lines)
Lines 2-8 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	firefox-i18n
4
PORTNAME=	firefox-i18n
5
PORTVERSION=	55.0.3
5
PORTVERSION=	56.0b9
6
CATEGORIES=	www
6
CATEGORIES=	www
7
MASTER_SITES=	MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \
7
MASTER_SITES=	MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \
8
		MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build2/linux-i686/xpi
8
		MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build2/linux-i686/xpi
Lines 15-21 COMMENT= Localized interface for Firefox Link Here
15
15
16
EXTRACT_DEPENDS=	zip:archivers/zip
16
EXTRACT_DEPENDS=	zip:archivers/zip
17
17
18
USES=		zip:infozip gecko:firefox,55,build
18
USES=		zip:infozip gecko:firefox,56,build
19
USE_XPI=	firefox
19
USE_XPI=	firefox
20
20
21
NO_ARCH=	yes
21
NO_ARCH=	yes
(-)b/www/firefox-i18n/distinfo (-191 / +191 lines)
Lines 1-191 Link Here
1
TIMESTAMP = 1503590171
1
TIMESTAMP = 1504481329
2
SHA256 (xpi/firefox-i18n-55.0.3/ach.xpi) = 57e804fe2d2ecfce6f57406985d74d05b1bb6a4b0dccd3fcee8c3d9d36ce753d
2
SHA256 (xpi/firefox-i18n-56.0b9/ach.xpi) = 2af4c3389e7baa21d39d166b9e044b032f74fb74099cf10524561f3871386af9
3
SIZE (xpi/firefox-i18n-55.0.3/ach.xpi) = 447504
3
SIZE (xpi/firefox-i18n-56.0b9/ach.xpi) = 454883
4
SHA256 (xpi/firefox-i18n-55.0.3/af.xpi) = 4f676b98ab4198a36ed1ac3cb9f357e6b59110d1d86f756adcb675a86ab2069d
4
SHA256 (xpi/firefox-i18n-56.0b9/af.xpi) = fdb7d2fcce2868b97bf717c0bc8c1dbd3ee083a698396bc833a5d1af6717c73c
5
SIZE (xpi/firefox-i18n-55.0.3/af.xpi) = 448924
5
SIZE (xpi/firefox-i18n-56.0b9/af.xpi) = 456203
6
SHA256 (xpi/firefox-i18n-55.0.3/an.xpi) = 33ac2d10ce013952bcb50e7f3769641d029dbdfe8c624a3a3bc2c8aa1ba70660
6
SHA256 (xpi/firefox-i18n-56.0b9/an.xpi) = 850077a394c7e4cb42b36ace436381d0f7b3ba8de8d76af17d3858c8042279a6
7
SIZE (xpi/firefox-i18n-55.0.3/an.xpi) = 468638
7
SIZE (xpi/firefox-i18n-56.0b9/an.xpi) = 475850
8
SHA256 (xpi/firefox-i18n-55.0.3/ar.xpi) = 0ee1a5d9b6f03a7b65840f1257fcabbe7637951d1051fb830820f11ac34dba04
8
SHA256 (xpi/firefox-i18n-56.0b9/ar.xpi) = 16b807f3b09ee3e3b9080503807b41d963b1f78e8636669288aba344ccde6fa5
9
SIZE (xpi/firefox-i18n-55.0.3/ar.xpi) = 492759
9
SIZE (xpi/firefox-i18n-56.0b9/ar.xpi) = 500700
10
SHA256 (xpi/firefox-i18n-55.0.3/as.xpi) = 993d5f49b51453869b5ff75c1ba4f16dd8fd59beb62bffed33cf4fc7024f6129
10
SHA256 (xpi/firefox-i18n-56.0b9/as.xpi) = 29aa56be7911916194c8e9aa25c924b4679ba78c58a525bd154cd8fcb1690ea5
11
SIZE (xpi/firefox-i18n-55.0.3/as.xpi) = 501507
11
SIZE (xpi/firefox-i18n-56.0b9/as.xpi) = 508226
12
SHA256 (xpi/firefox-i18n-55.0.3/ast.xpi) = e969a3716c0659b3c313f73f29ce3ffbab296ef81734ff9f4410982dc4830c8a
12
SHA256 (xpi/firefox-i18n-56.0b9/ast.xpi) = e2c2074ac25e8184be4d91b15ebf2de4ca215594ef039efba7a41e344f776034
13
SIZE (xpi/firefox-i18n-55.0.3/ast.xpi) = 460841
13
SIZE (xpi/firefox-i18n-56.0b9/ast.xpi) = 469145
14
SHA256 (xpi/firefox-i18n-55.0.3/az.xpi) = 2708ec4d49a06b727e4a06d920b3cc4e68fcff0c10bf269ccba8a60f82312ff0
14
SHA256 (xpi/firefox-i18n-56.0b9/az.xpi) = c4b1233b3c1ed0aa84db0fe4af6e3aa6c99122ce983b83eeabdde7eb6bb951bc
15
SIZE (xpi/firefox-i18n-55.0.3/az.xpi) = 475368
15
SIZE (xpi/firefox-i18n-56.0b9/az.xpi) = 484971
16
SHA256 (xpi/firefox-i18n-55.0.3/be.xpi) = ca95866a02a0ccacd2c00a8ff69540fd2e6967a35b25f215aca6e372f11569d0
16
SHA256 (xpi/firefox-i18n-56.0b9/be.xpi) = 9e77a61d68247094e3755ea3a62686b16a4da216b487a57924e4bbe25a54827b
17
SIZE (xpi/firefox-i18n-55.0.3/be.xpi) = 522575
17
SIZE (xpi/firefox-i18n-56.0b9/be.xpi) = 531372
18
SHA256 (xpi/firefox-i18n-55.0.3/bg.xpi) = 846cbd821bbea4e6a83ff7d391d4e286508925bd7c0089c42026fd13332dcf01
18
SHA256 (xpi/firefox-i18n-56.0b9/bg.xpi) = b9f603615c2794902911cb1a2cbb3a5226c8d8ec750c4d6d1309cf5fd986ab39
19
SIZE (xpi/firefox-i18n-55.0.3/bg.xpi) = 520012
19
SIZE (xpi/firefox-i18n-56.0b9/bg.xpi) = 528775
20
SHA256 (xpi/firefox-i18n-55.0.3/bn-BD.xpi) = fb61c9008ba7b82230f925af5e37db806b1af20b772a5091558421e43bd6a572
20
SHA256 (xpi/firefox-i18n-56.0b9/bn-BD.xpi) = 12d963bfd449b2820942c57d64c9f2cc59a48117bf3af71bd2aef8e67aef7a1b
21
SIZE (xpi/firefox-i18n-55.0.3/bn-BD.xpi) = 535107
21
SIZE (xpi/firefox-i18n-56.0b9/bn-BD.xpi) = 542759
22
SHA256 (xpi/firefox-i18n-55.0.3/bn-IN.xpi) = 11cb288dbcf601403ca2dde29a6ac394b12cb4841016788cc5efdd7db1d524f3
22
SHA256 (xpi/firefox-i18n-56.0b9/bn-IN.xpi) = 6225384ac7a2dd5dcb8bcc7962c7177f5cfe568f3911b6907f4cb54a09bf2887
23
SIZE (xpi/firefox-i18n-55.0.3/bn-IN.xpi) = 526354
23
SIZE (xpi/firefox-i18n-56.0b9/bn-IN.xpi) = 534438
24
SHA256 (xpi/firefox-i18n-55.0.3/br.xpi) = 008ee7d4781834f7520f0b3459089ca1d97eb6518c670144279562094862dcd9
24
SHA256 (xpi/firefox-i18n-56.0b9/br.xpi) = e3a4285d7c9b2d2c9691c03ab15aad303dde14c5910ee3ff470ade004accd40f
25
SIZE (xpi/firefox-i18n-55.0.3/br.xpi) = 457060
25
SIZE (xpi/firefox-i18n-56.0b9/br.xpi) = 464243
26
SHA256 (xpi/firefox-i18n-55.0.3/bs.xpi) = dd243f01e59854112f48b8a3683d840173aee994ba532496ee2a06b10fada878
26
SHA256 (xpi/firefox-i18n-56.0b9/bs.xpi) = 3c8dddd64a3835bba95533d750ec202c00ae27b7ab51af298b6824c9ea6b577e
27
SIZE (xpi/firefox-i18n-55.0.3/bs.xpi) = 465026
27
SIZE (xpi/firefox-i18n-56.0b9/bs.xpi) = 472242
28
SHA256 (xpi/firefox-i18n-55.0.3/ca.xpi) = 25c6e4bdb355f6d116be23d241a62ffe7853a971e461c56a1ab586433743bffe
28
SHA256 (xpi/firefox-i18n-56.0b9/ca.xpi) = 26ab200fda5580863671832eccae2f4db4cc60c9601bd52ae0bf2429c03d878f
29
SIZE (xpi/firefox-i18n-55.0.3/ca.xpi) = 473018
29
SIZE (xpi/firefox-i18n-56.0b9/ca.xpi) = 480088
30
SHA256 (xpi/firefox-i18n-55.0.3/cak.xpi) = 5df85a9d3fb158eece6118ff9d6493928b4a846f6c0e5c8178dea6b5f878b8d3
30
SHA256 (xpi/firefox-i18n-56.0b9/cak.xpi) = 0a0d677f97a020f7ad20dec8208b5234cd54abbfb42f6d1bcab09415dda8c280
31
SIZE (xpi/firefox-i18n-55.0.3/cak.xpi) = 481774
31
SIZE (xpi/firefox-i18n-56.0b9/cak.xpi) = 489494
32
SHA256 (xpi/firefox-i18n-55.0.3/cs.xpi) = e5ba4844b9ced4c6a6cfd75853b6000fe2eabb9b33fffa73cc19e9562475d95c
32
SHA256 (xpi/firefox-i18n-56.0b9/cs.xpi) = 928f18416c3e23662c8e8b2804aa153bee595bd45739a6ede453473bacc0a801
33
SIZE (xpi/firefox-i18n-55.0.3/cs.xpi) = 476809
33
SIZE (xpi/firefox-i18n-56.0b9/cs.xpi) = 485079
34
SHA256 (xpi/firefox-i18n-55.0.3/cy.xpi) = 7a80d417cde600be304f1d7b59840ea62706509183515b5191d703ce59a668a0
34
SHA256 (xpi/firefox-i18n-56.0b9/cy.xpi) = 75658c7ae2859ff09709eb15180c24a8c07f75b203b0c01d8af691553d441b07
35
SIZE (xpi/firefox-i18n-55.0.3/cy.xpi) = 458725
35
SIZE (xpi/firefox-i18n-56.0b9/cy.xpi) = 466277
36
SHA256 (xpi/firefox-i18n-55.0.3/da.xpi) = 38bf51be7d418b67a69366f20aa1fe9b0c22fcf769757a0aefbcd60ac59240b9
36
SHA256 (xpi/firefox-i18n-56.0b9/da.xpi) = cf72debe08257a027595fd0ade046631a3c85da724fc6420f3911549fdecdf68
37
SIZE (xpi/firefox-i18n-55.0.3/da.xpi) = 452604
37
SIZE (xpi/firefox-i18n-56.0b9/da.xpi) = 460080
38
SHA256 (xpi/firefox-i18n-55.0.3/de.xpi) = 1b815ec21a24870acb7a84171ef7b64cff8d718c666c70b986ea8594da3dd95a
38
SHA256 (xpi/firefox-i18n-56.0b9/de.xpi) = c3ab247e9fc087e4dab8e4367e86d516c7e62cf9a097759ba80d5e47d5fcf5fd
39
SIZE (xpi/firefox-i18n-55.0.3/de.xpi) = 465990
39
SIZE (xpi/firefox-i18n-56.0b9/de.xpi) = 474103
40
SHA256 (xpi/firefox-i18n-55.0.3/dsb.xpi) = 33f12a4322495be14a67a28c5b9518d9757dbf39a733e229cf3b9f28b64a6ddf
40
SHA256 (xpi/firefox-i18n-56.0b9/dsb.xpi) = 19f9276368b571acf5b8848a072a336f8471aeda388159b88003bbfdb18d9cc0
41
SIZE (xpi/firefox-i18n-55.0.3/dsb.xpi) = 482081
41
SIZE (xpi/firefox-i18n-56.0b9/dsb.xpi) = 489884
42
SHA256 (xpi/firefox-i18n-55.0.3/el.xpi) = a6d1aefe768a046f9ba79b8b287d4e4656004556de9f2306af44b901c169ff9f
42
SHA256 (xpi/firefox-i18n-56.0b9/el.xpi) = 1f624a75918aa2a5fb06a20030183254934d4a676af27f96ac541aed795d1063
43
SIZE (xpi/firefox-i18n-55.0.3/el.xpi) = 539777
43
SIZE (xpi/firefox-i18n-56.0b9/el.xpi) = 554109
44
SHA256 (xpi/firefox-i18n-55.0.3/en-GB.xpi) = 07474847b08f035f977013a0c7a5e42e07636901251207ba3d21300985d0eff9
44
SHA256 (xpi/firefox-i18n-56.0b9/en-GB.xpi) = 3287978f9485acff0d7d1c59f40a9c4bc229a57da6c7118e2ff10a9bff30bb00
45
SIZE (xpi/firefox-i18n-55.0.3/en-GB.xpi) = 439269
45
SIZE (xpi/firefox-i18n-56.0b9/en-GB.xpi) = 447361
46
SHA256 (xpi/firefox-i18n-55.0.3/en-US.xpi) = f57cda45b8c6e177bbc705fb5db21878d5297c57281c8fba810c6cbb6b095ae8
46
SHA256 (xpi/firefox-i18n-56.0b9/en-US.xpi) = 771dcdb80bebcdf9f2d2c11f4b18807ee93d5bbd7e0ad8d94dbf4865daa6e8ca
47
SIZE (xpi/firefox-i18n-55.0.3/en-US.xpi) = 439814
47
SIZE (xpi/firefox-i18n-56.0b9/en-US.xpi) = 446939
48
SHA256 (xpi/firefox-i18n-55.0.3/en-ZA.xpi) = bf5e3fac34d5ccc83af7c5b60e6d2077c27ded688d3e37efcfbf6386459a3f39
48
SHA256 (xpi/firefox-i18n-56.0b9/en-ZA.xpi) = eb67c1d80cda8036766aaf4f7780097a397ee8e953e91a09d144fb2d33c5077c
49
SIZE (xpi/firefox-i18n-55.0.3/en-ZA.xpi) = 438621
49
SIZE (xpi/firefox-i18n-56.0b9/en-ZA.xpi) = 445904
50
SHA256 (xpi/firefox-i18n-55.0.3/eo.xpi) = 4dffe19fb6787d5b2795066618532bb4951695ac10dbca20c17ccedadff2334b
50
SHA256 (xpi/firefox-i18n-56.0b9/eo.xpi) = ac25f28f9b5fc32eb08f09a52552209247bc4716eb471eefb977ac3f0d89f726
51
SIZE (xpi/firefox-i18n-55.0.3/eo.xpi) = 461140
51
SIZE (xpi/firefox-i18n-56.0b9/eo.xpi) = 469048
52
SHA256 (xpi/firefox-i18n-55.0.3/es-AR.xpi) = 1b4b1ca27e4265a7868858a9f9822384908b87f567808b7253cc49be7616c036
52
SHA256 (xpi/firefox-i18n-56.0b9/es-AR.xpi) = 6b197d3050f0cbd9155ff5db18342cdd52ec24e854aafa096fca007c80e3f442
53
SIZE (xpi/firefox-i18n-55.0.3/es-AR.xpi) = 467619
53
SIZE (xpi/firefox-i18n-56.0b9/es-AR.xpi) = 475435
54
SHA256 (xpi/firefox-i18n-55.0.3/es-CL.xpi) = 6dcd97412618233b7d82d4f8b614da267010e2d5af3a736209bd0179c1f5ea35
54
SHA256 (xpi/firefox-i18n-56.0b9/es-CL.xpi) = e095c4ca5f4a98e2dcff8855cd57622a9ec31d91a10500110059ecba8cfceaea
55
SIZE (xpi/firefox-i18n-55.0.3/es-CL.xpi) = 471599
55
SIZE (xpi/firefox-i18n-56.0b9/es-CL.xpi) = 479905
56
SHA256 (xpi/firefox-i18n-55.0.3/es-ES.xpi) = 8f29eab7fcea76fb16fddbc6bc1505373b414f07e1678f231c8dd77fcd7c2dbb
56
SHA256 (xpi/firefox-i18n-56.0b9/es-ES.xpi) = 84f01c2a10aaa5e4846fb07361256e3bc78a07d881d3dcb3089cd7de4fe4c4b1
57
SIZE (xpi/firefox-i18n-55.0.3/es-ES.xpi) = 359824
57
SIZE (xpi/firefox-i18n-56.0b9/es-ES.xpi) = 365617
58
SHA256 (xpi/firefox-i18n-55.0.3/es-MX.xpi) = c5cc49fb974401edcfd58b114d0d4f7d2a528522f89d50d393677fab7d586fac
58
SHA256 (xpi/firefox-i18n-56.0b9/es-MX.xpi) = 4aac34d8438e208e937ecfaafe3f818ca978ca1b20651f4fb65509d37f3e9ad1
59
SIZE (xpi/firefox-i18n-55.0.3/es-MX.xpi) = 474245
59
SIZE (xpi/firefox-i18n-56.0b9/es-MX.xpi) = 482552
60
SHA256 (xpi/firefox-i18n-55.0.3/et.xpi) = 155bdfe2c508b68c4a23a362158cd84d3be3080f3396b1fa060aed117bad89b7
60
SHA256 (xpi/firefox-i18n-56.0b9/et.xpi) = d78baa27f0d5baafbf7c14717b873d64b1dee0651f375f22e588a627f2ced5b5
61
SIZE (xpi/firefox-i18n-55.0.3/et.xpi) = 454471
61
SIZE (xpi/firefox-i18n-56.0b9/et.xpi) = 463254
62
SHA256 (xpi/firefox-i18n-55.0.3/eu.xpi) = c32de1d149e2f33cdee8a58e226d00cff29a78d783e6360e7715a006e74aeeec
62
SHA256 (xpi/firefox-i18n-56.0b9/eu.xpi) = d5b1757c43d29fa99e9fca7efa16f61c158bdc1012a1c849f02ee1a233a56755
63
SIZE (xpi/firefox-i18n-55.0.3/eu.xpi) = 460419
63
SIZE (xpi/firefox-i18n-56.0b9/eu.xpi) = 467871
64
SHA256 (xpi/firefox-i18n-55.0.3/fa.xpi) = ae990f77aea02c797fb14e2e10f736109888735cee39e39b1bfcec9c9add5c46
64
SHA256 (xpi/firefox-i18n-56.0b9/fa.xpi) = 04ad426c4413b9ff584b6f04838f6e6b098a80b69d41e57e78f5a611ca78e22c
65
SIZE (xpi/firefox-i18n-55.0.3/fa.xpi) = 511561
65
SIZE (xpi/firefox-i18n-56.0b9/fa.xpi) = 519495
66
SHA256 (xpi/firefox-i18n-55.0.3/ff.xpi) = 14f8217883d80c32c08f38284f42e5978c3d6cf077dcc6065e8d2d954c3640d5
66
SHA256 (xpi/firefox-i18n-56.0b9/ff.xpi) = 2627f479c37a2dfd86214c0d5246382b2b951cbefe8efa62b489d9cca7a43360
67
SIZE (xpi/firefox-i18n-55.0.3/ff.xpi) = 455294
67
SIZE (xpi/firefox-i18n-56.0b9/ff.xpi) = 463086
68
SHA256 (xpi/firefox-i18n-55.0.3/fi.xpi) = d00ebd2bc119a6f78c29701cfaa9434d51a14d62e0c3be7e271c143fc87bf1ce
68
SHA256 (xpi/firefox-i18n-56.0b9/fi.xpi) = 82003777bea6f9f454848d6767309bd1f5230a889fafcd90f42b48582e8df8ea
69
SIZE (xpi/firefox-i18n-55.0.3/fi.xpi) = 453945
69
SIZE (xpi/firefox-i18n-56.0b9/fi.xpi) = 461912
70
SHA256 (xpi/firefox-i18n-55.0.3/fr.xpi) = a2ea34fa62fb6b83f77843d7284ad96491af8700aaa4f2df5cba6a5058ddc47c
70
SHA256 (xpi/firefox-i18n-56.0b9/fr.xpi) = cf609621b9a7e03856cb5b6ab66d6e95114bf4f29920a51e6ac90c3e6fadffea
71
SIZE (xpi/firefox-i18n-55.0.3/fr.xpi) = 476667
71
SIZE (xpi/firefox-i18n-56.0b9/fr.xpi) = 484550
72
SHA256 (xpi/firefox-i18n-55.0.3/fy-NL.xpi) = 0fe4964412a415c03c09ef320e299a9a361a41c84f317dee795e36b7f5612115
72
SHA256 (xpi/firefox-i18n-56.0b9/fy-NL.xpi) = 9d90274767f8a23f7eb4bb35555bfa87f02dea2321a8ac071470ac9748d1bc39
73
SIZE (xpi/firefox-i18n-55.0.3/fy-NL.xpi) = 469971
73
SIZE (xpi/firefox-i18n-56.0b9/fy-NL.xpi) = 478041
74
SHA256 (xpi/firefox-i18n-55.0.3/ga-IE.xpi) = 7e2e87dd6d25934dfc66d804531320ca71b53933245c361c8dd6404688b8ef39
74
SHA256 (xpi/firefox-i18n-56.0b9/ga-IE.xpi) = 44bcd1b9c2d22501d517feed114a9de540e73ffd0fb5a594e7b0b08dc1d8e2a0
75
SIZE (xpi/firefox-i18n-55.0.3/ga-IE.xpi) = 481440
75
SIZE (xpi/firefox-i18n-56.0b9/ga-IE.xpi) = 489366
76
SHA256 (xpi/firefox-i18n-55.0.3/gd.xpi) = 6c45c76ff5a0ae373f6ec8c0d81859f345cc31ad55471e702704c434797cca07
76
SHA256 (xpi/firefox-i18n-56.0b9/gd.xpi) = 391d6e9e887baffc9754e6e73c1aed203ce3d2fd298b2267e0871031d47a96e9
77
SIZE (xpi/firefox-i18n-55.0.3/gd.xpi) = 469055
77
SIZE (xpi/firefox-i18n-56.0b9/gd.xpi) = 476914
78
SHA256 (xpi/firefox-i18n-55.0.3/gl.xpi) = b1b699a2f9134d951d704c1b42f6677004c2cede354881b9b96438323ccbcb33
78
SHA256 (xpi/firefox-i18n-56.0b9/gl.xpi) = 9960c1eda81750e0139894c01b733f297de28e60f7a4b9a3fc402b749fc721de
79
SIZE (xpi/firefox-i18n-55.0.3/gl.xpi) = 459111
79
SIZE (xpi/firefox-i18n-56.0b9/gl.xpi) = 466456
80
SHA256 (xpi/firefox-i18n-55.0.3/gn.xpi) = af4389f4028790c393fd9623b13b8ea9587d25918c2b1635743d18de09f6269f
80
SHA256 (xpi/firefox-i18n-56.0b9/gn.xpi) = 3ce14088945aae4cf186eff093bb5b8229e4500bd7e6fff026620bb3342fe47b
81
SIZE (xpi/firefox-i18n-55.0.3/gn.xpi) = 476201
81
SIZE (xpi/firefox-i18n-56.0b9/gn.xpi) = 485777
82
SHA256 (xpi/firefox-i18n-55.0.3/gu-IN.xpi) = 547e37eca8d5a45fce201c550a4aca379b9bb006d7ff83b71971afedb641a3f4
82
SHA256 (xpi/firefox-i18n-56.0b9/gu-IN.xpi) = 5a8938bfd69033347e0aa07b7a5be646b23b51e4241533f1152e6775a6973a3c
83
SIZE (xpi/firefox-i18n-55.0.3/gu-IN.xpi) = 498986
83
SIZE (xpi/firefox-i18n-56.0b9/gu-IN.xpi) = 513723
84
SHA256 (xpi/firefox-i18n-55.0.3/he.xpi) = 451c0b7cb95accda6f8bca275f4d4a19c39be7160cce08975c6d751d11405255
84
SHA256 (xpi/firefox-i18n-56.0b9/he.xpi) = abb9eac1e52605822a08606e4d859f1b5cbb2e6a146e27ca758ae62f31f5b93a
85
SIZE (xpi/firefox-i18n-55.0.3/he.xpi) = 479882
85
SIZE (xpi/firefox-i18n-56.0b9/he.xpi) = 488483
86
SHA256 (xpi/firefox-i18n-55.0.3/hi-IN.xpi) = 77fd9e88268d1bb3f42b99af29e87c666e7a1ebaa26fafaad3afa55aab6ea1ce
86
SHA256 (xpi/firefox-i18n-56.0b9/hi-IN.xpi) = 4e7417018d050c9c03f6f34fe289ee23577926e6f2364200669cd88274804aec
87
SIZE (xpi/firefox-i18n-55.0.3/hi-IN.xpi) = 530571
87
SIZE (xpi/firefox-i18n-56.0b9/hi-IN.xpi) = 537203
88
SHA256 (xpi/firefox-i18n-55.0.3/hr.xpi) = d36986ce628ebeddc28a56713f1444ec8aa99ffa297d4bc1b3478a92c3e6a8f0
88
SHA256 (xpi/firefox-i18n-56.0b9/hr.xpi) = 3cd760c49e2b5cc9d234298fbc5c85175058854031e098235e79e6fb8b6ce17b
89
SIZE (xpi/firefox-i18n-55.0.3/hr.xpi) = 467992
89
SIZE (xpi/firefox-i18n-56.0b9/hr.xpi) = 475046
90
SHA256 (xpi/firefox-i18n-55.0.3/hsb.xpi) = 0200e7ad91f8ae46cbd63e1b865f8fc8a58353aa189001b58a38da079bf9f02a
90
SHA256 (xpi/firefox-i18n-56.0b9/hsb.xpi) = 56e7a960f5fc353d498ac20debaad8d74a30809f72cdef8cb34336ad9c3e1220
91
SIZE (xpi/firefox-i18n-55.0.3/hsb.xpi) = 479798
91
SIZE (xpi/firefox-i18n-56.0b9/hsb.xpi) = 487583
92
SHA256 (xpi/firefox-i18n-55.0.3/hu.xpi) = c60d25907f159b1a59475682a55a8afa9f899e93a739c5f721b46c3bd7f63012
92
SHA256 (xpi/firefox-i18n-56.0b9/hu.xpi) = bdb1eefe864184faa785f1ef7a3548ea4e87a8a7148d02fe3daa4ead1881272a
93
SIZE (xpi/firefox-i18n-55.0.3/hu.xpi) = 481645
93
SIZE (xpi/firefox-i18n-56.0b9/hu.xpi) = 490131
94
SHA256 (xpi/firefox-i18n-55.0.3/hy-AM.xpi) = 2564f7fa81cc2d0e2fa87e7199e62afd3174b9f0339001d730da1a6255a8782a
94
SHA256 (xpi/firefox-i18n-56.0b9/hy-AM.xpi) = feb12efbde02e6e17e097e006d04b546c75fb1c0b4052add07ead587ff688b4c
95
SIZE (xpi/firefox-i18n-55.0.3/hy-AM.xpi) = 520878
95
SIZE (xpi/firefox-i18n-56.0b9/hy-AM.xpi) = 527698
96
SHA256 (xpi/firefox-i18n-55.0.3/id.xpi) = 13ee8d82e28f13d6e29555dd261dd1bacf1db930889eecb594bbb0ee214a9d9f
96
SHA256 (xpi/firefox-i18n-56.0b9/id.xpi) = c42484d79d53a0a33560c1521bc423056912dd12694d1b74f283549507c1f342
97
SIZE (xpi/firefox-i18n-55.0.3/id.xpi) = 450290
97
SIZE (xpi/firefox-i18n-56.0b9/id.xpi) = 459055
98
SHA256 (xpi/firefox-i18n-55.0.3/is.xpi) = 77fa1716d95bef9ff32e5e554df1a6f74638ebe3e679a8239a5209a7ad6c3551
98
SHA256 (xpi/firefox-i18n-56.0b9/is.xpi) = 275c174a38b9ae843e14498a533c59b77eef9be9b23ceb6f0d4564e3cccfb898
99
SIZE (xpi/firefox-i18n-55.0.3/is.xpi) = 464372
99
SIZE (xpi/firefox-i18n-56.0b9/is.xpi) = 467432
100
SHA256 (xpi/firefox-i18n-55.0.3/it.xpi) = 0bdd8bf97c9c3880d1f002d647450487cf21fc003067469f2b9eda8301bd9f13
100
SHA256 (xpi/firefox-i18n-56.0b9/it.xpi) = 09b0c6168ba811a9a2cfad517f678507b240da05d9755512c370ee67fd9c615d
101
SIZE (xpi/firefox-i18n-55.0.3/it.xpi) = 352941
101
SIZE (xpi/firefox-i18n-56.0b9/it.xpi) = 358683
102
SHA256 (xpi/firefox-i18n-55.0.3/ja.xpi) = c907bbf1efde7e601ec2ff6fb528896c8b2c3b70783dfa309e7d8aa54c45e655
102
SHA256 (xpi/firefox-i18n-56.0b9/ja.xpi) = 6fee579e97f1c7ecd1bab8577a82487ec1b8ea619b173caf6c93b0b70a1ef908
103
SIZE (xpi/firefox-i18n-55.0.3/ja.xpi) = 519764
103
SIZE (xpi/firefox-i18n-56.0b9/ja.xpi) = 527946
104
SHA256 (xpi/firefox-i18n-55.0.3/ka.xpi) = ab9bec8018935ba426f04a96e23b93e0f0d633f26f84a34c6553b883c6dd3c17
104
SHA256 (xpi/firefox-i18n-56.0b9/ka.xpi) = 2e7eab67e46d5b581f3128345f0241fc4799846cb4f2113c38728247cc672a52
105
SIZE (xpi/firefox-i18n-55.0.3/ka.xpi) = 493535
105
SIZE (xpi/firefox-i18n-56.0b9/ka.xpi) = 509085
106
SHA256 (xpi/firefox-i18n-55.0.3/kab.xpi) = 5e13da854fb8fdcfef8f760c9bb1cbfb7571856b933c181d41d09f36a7449dfb
106
SHA256 (xpi/firefox-i18n-56.0b9/kab.xpi) = 44b8ce37bf7a59fad86b63280579a158aaf10bdab275ef0fdb81fd4f4969919b
107
SIZE (xpi/firefox-i18n-55.0.3/kab.xpi) = 470044
107
SIZE (xpi/firefox-i18n-56.0b9/kab.xpi) = 477407
108
SHA256 (xpi/firefox-i18n-55.0.3/kk.xpi) = 5edae7dba33d4369d529f3f965851798e31fd701c792c575de42602cf91eaee0
108
SHA256 (xpi/firefox-i18n-56.0b9/kk.xpi) = 109a5ba4aac0d77e3316b4234ba9e23ab9332d590194d61058a9c420ac88301f
109
SIZE (xpi/firefox-i18n-55.0.3/kk.xpi) = 526707
109
SIZE (xpi/firefox-i18n-56.0b9/kk.xpi) = 534920
110
SHA256 (xpi/firefox-i18n-55.0.3/km.xpi) = 8c741376968bc5145cf808c715c5dc92f7cf2a7134d3c1eaa9bc66e96d1b3ff0
110
SHA256 (xpi/firefox-i18n-56.0b9/km.xpi) = df6dc53afbfa9aa667200f561c57a70f06b03f7498546a07545c656076a51bfd
111
SIZE (xpi/firefox-i18n-55.0.3/km.xpi) = 540646
111
SIZE (xpi/firefox-i18n-56.0b9/km.xpi) = 549333
112
SHA256 (xpi/firefox-i18n-55.0.3/kn.xpi) = d387a3a29d621d2e1163cd6d1728861f6344c370950124cfce754f4ff5fe37d8
112
SHA256 (xpi/firefox-i18n-56.0b9/kn.xpi) = 214d166c3035ced57cf0749b60060980cf9bce890e68d911446be8efdd700a9c
113
SIZE (xpi/firefox-i18n-55.0.3/kn.xpi) = 538859
113
SIZE (xpi/firefox-i18n-56.0b9/kn.xpi) = 545463
114
SHA256 (xpi/firefox-i18n-55.0.3/ko.xpi) = 524eca8be7b4ec0c04dfc09376d18479a9ddf677b006155b3b8c889f1d1c7425
114
SHA256 (xpi/firefox-i18n-56.0b9/ko.xpi) = 0497058bed63a709ead73bee6bf036e7d6db443b14135a50d50608315516ba04
115
SIZE (xpi/firefox-i18n-55.0.3/ko.xpi) = 494547
115
SIZE (xpi/firefox-i18n-56.0b9/ko.xpi) = 502883
116
SHA256 (xpi/firefox-i18n-55.0.3/lij.xpi) = 79cfb9142d836ffda39039205e72f52eba8d09a61d6d77382267320a3dc4d984
116
SHA256 (xpi/firefox-i18n-56.0b9/lij.xpi) = 992d500c8a1348f4568a55085352477ce50c962b0bcdb0a9c9b0221aaf91495c
117
SIZE (xpi/firefox-i18n-55.0.3/lij.xpi) = 458698
117
SIZE (xpi/firefox-i18n-56.0b9/lij.xpi) = 467263
118
SHA256 (xpi/firefox-i18n-55.0.3/lt.xpi) = b8c979f9259ce409ff26af1beddd004fa90420021f5d98f2c069beb362f92160
118
SHA256 (xpi/firefox-i18n-56.0b9/lt.xpi) = aafb6c67bb88a441c2d0c8244e2963e84d83b053bee87e9192af5b3b9ce2f63d
119
SIZE (xpi/firefox-i18n-55.0.3/lt.xpi) = 481082
119
SIZE (xpi/firefox-i18n-56.0b9/lt.xpi) = 488740
120
SHA256 (xpi/firefox-i18n-55.0.3/lv.xpi) = d58361769c078859d65aba27d79a93fc839871a14f026d73e607facf49373a84
120
SHA256 (xpi/firefox-i18n-56.0b9/lv.xpi) = e4a82dae41268cce242e9dc278f1e5697d8e0105c6aa001112a95719274a5a82
121
SIZE (xpi/firefox-i18n-55.0.3/lv.xpi) = 473736
121
SIZE (xpi/firefox-i18n-56.0b9/lv.xpi) = 481875
122
SHA256 (xpi/firefox-i18n-55.0.3/mai.xpi) = a3ab546aad483b92e5d2757d46654d89b2593097624052a1638cc8f0c2caee41
122
SHA256 (xpi/firefox-i18n-56.0b9/mai.xpi) = 3f156f207d6db92230cb7c8a98d14c1a1c6576237bdfba467c54732f5f28f328
123
SIZE (xpi/firefox-i18n-55.0.3/mai.xpi) = 517894
123
SIZE (xpi/firefox-i18n-56.0b9/mai.xpi) = 524690
124
SHA256 (xpi/firefox-i18n-55.0.3/mk.xpi) = aba046611289624c02c1d3c81fe8a4ea50a96088ece2bd7fb2be40df882ac795
124
SHA256 (xpi/firefox-i18n-56.0b9/mk.xpi) = 52466d82aa50666037b0984124edfab2a8ec687e0bf000fdb6767b8d5562bc1d
125
SIZE (xpi/firefox-i18n-55.0.3/mk.xpi) = 500207
125
SIZE (xpi/firefox-i18n-56.0b9/mk.xpi) = 507806
126
SHA256 (xpi/firefox-i18n-55.0.3/ml.xpi) = b40dd990aa6b36924279bb9af0a0e4ce5c8497b275244794b200e5815ac42b48
126
SHA256 (xpi/firefox-i18n-56.0b9/ml.xpi) = b01b2c6b2f047d746c08504f88aac683e2ff41e8cd9be068a8a4b58bc3d6e9de
127
SIZE (xpi/firefox-i18n-55.0.3/ml.xpi) = 540982
127
SIZE (xpi/firefox-i18n-56.0b9/ml.xpi) = 547534
128
SHA256 (xpi/firefox-i18n-55.0.3/mr.xpi) = bebcf5b465fc9e33955cdf4343c479f7b998819667ba3a23e298d38f833d2ead
128
SHA256 (xpi/firefox-i18n-56.0b9/mr.xpi) = e336142b8dd58dd2d2033f804015efbec11b8d4d689ddf2928f42dd950a83f29
129
SIZE (xpi/firefox-i18n-55.0.3/mr.xpi) = 528249
129
SIZE (xpi/firefox-i18n-56.0b9/mr.xpi) = 536583
130
SHA256 (xpi/firefox-i18n-55.0.3/ms.xpi) = 06d40cc6207dfd452fb12a3429b0bdf85c4fc196d51e66e6197ede9e9e5c9a82
130
SHA256 (xpi/firefox-i18n-56.0b9/ms.xpi) = 682e0bfba2651bdbf0f92209b93f325a6ecd4cb061bfee40965ec9036dd16ce6
131
SIZE (xpi/firefox-i18n-55.0.3/ms.xpi) = 459191
131
SIZE (xpi/firefox-i18n-56.0b9/ms.xpi) = 466393
132
SHA256 (xpi/firefox-i18n-55.0.3/my.xpi) = 48e005f6558c13ad0f3f73afc81489c0cb384b00589bf2b3cd03569e6bd2a82c
132
SHA256 (xpi/firefox-i18n-56.0b9/my.xpi) = 86185f112467d709644f050f4b68331dc755123e1521bd970b6142a684a282f6
133
SIZE (xpi/firefox-i18n-55.0.3/my.xpi) = 528097
133
SIZE (xpi/firefox-i18n-56.0b9/my.xpi) = 536711
134
SHA256 (xpi/firefox-i18n-55.0.3/nb-NO.xpi) = 00e8ac31e0597ef4a1928b05b4d199563fcb249b3368d9bb63b8539174eafd5c
134
SHA256 (xpi/firefox-i18n-56.0b9/nb-NO.xpi) = 36a89d4b80f18d38923e58fe5d403136b0d5d1e9b89c2ab69cfa0cda492b0bae
135
SIZE (xpi/firefox-i18n-55.0.3/nb-NO.xpi) = 457645
135
SIZE (xpi/firefox-i18n-56.0b9/nb-NO.xpi) = 465564
136
SHA256 (xpi/firefox-i18n-55.0.3/nl.xpi) = 358bd38888586ae4498b41ea6bd7417939cc828cce78be80ffef3a32741458bf
136
SHA256 (xpi/firefox-i18n-56.0b9/nl.xpi) = ef65604341c40ac2d3f28cb8b0660b31a672a15562a5a7885d065f09a0cfb98e
137
SIZE (xpi/firefox-i18n-55.0.3/nl.xpi) = 461510
137
SIZE (xpi/firefox-i18n-56.0b9/nl.xpi) = 469042
138
SHA256 (xpi/firefox-i18n-55.0.3/nn-NO.xpi) = 11dbe5bce47e3829a7b5d43c12178fc2ff750495f6aa0209c69fc7b6b96f6b8e
138
SHA256 (xpi/firefox-i18n-56.0b9/nn-NO.xpi) = 63b4b798d932110a1c9b2ac73de0b61f55095fa5ec36d0b83d14d8628555da3e
139
SIZE (xpi/firefox-i18n-55.0.3/nn-NO.xpi) = 458457
139
SIZE (xpi/firefox-i18n-56.0b9/nn-NO.xpi) = 466196
140
SHA256 (xpi/firefox-i18n-55.0.3/or.xpi) = 64d1c4205a8e249bbb8604efac83b73251fadfc23daee75f40a51d9e2a9ca6a1
140
SHA256 (xpi/firefox-i18n-56.0b9/or.xpi) = 09894bda35d56bb6667d280e80a4093f6c7848d42bdb998a1cce8a5cea8f8e67
141
SIZE (xpi/firefox-i18n-55.0.3/or.xpi) = 511354
141
SIZE (xpi/firefox-i18n-56.0b9/or.xpi) = 518154
142
SHA256 (xpi/firefox-i18n-55.0.3/pa-IN.xpi) = c2fa26e5fe2400c6890aea2722ab010265cd7541653092d190e45a6805d9ec13
142
SHA256 (xpi/firefox-i18n-56.0b9/pa-IN.xpi) = ad771c36e56f6f1a404d3dbc4623d167ca28d56a45d6fd7cdd705e2343b254ed
143
SIZE (xpi/firefox-i18n-55.0.3/pa-IN.xpi) = 498453
143
SIZE (xpi/firefox-i18n-56.0b9/pa-IN.xpi) = 509034
144
SHA256 (xpi/firefox-i18n-55.0.3/pl.xpi) = c4973aa40a75f371d0c85a1e1d9c6fc5184eac38313ed50ea9c7189590a3d416
144
SHA256 (xpi/firefox-i18n-56.0b9/pl.xpi) = 652d660fe06d08b22f1ffbbc60d801624431d6726d26b5b4085dcc57199f6f32
145
SIZE (xpi/firefox-i18n-55.0.3/pl.xpi) = 372429
145
SIZE (xpi/firefox-i18n-56.0b9/pl.xpi) = 377512
146
SHA256 (xpi/firefox-i18n-55.0.3/pt-BR.xpi) = 3555d0e761bbe2ba1035f62960344836b9ad1b2cb55edc07b215d826385c8d5b
146
SHA256 (xpi/firefox-i18n-56.0b9/pt-BR.xpi) = 17b22cd22165a6e5ca40dd333ef6a0ba84af403a4a631a1e7add037f83b4fd38
147
SIZE (xpi/firefox-i18n-55.0.3/pt-BR.xpi) = 462717
147
SIZE (xpi/firefox-i18n-56.0b9/pt-BR.xpi) = 470941
148
SHA256 (xpi/firefox-i18n-55.0.3/pt-PT.xpi) = be15f048d135f364a7605527b9569ae81cc819cf38c7ed933298b3d4c58b5eef
148
SHA256 (xpi/firefox-i18n-56.0b9/pt-PT.xpi) = f2295fd8415ad630a8744874b56ced37d4c036ce2e11384b01aa3f17bc269a1e
149
SIZE (xpi/firefox-i18n-55.0.3/pt-PT.xpi) = 465239
149
SIZE (xpi/firefox-i18n-56.0b9/pt-PT.xpi) = 472790
150
SHA256 (xpi/firefox-i18n-55.0.3/rm.xpi) = 588239d7468d46d5eae7ac832eb48ba3630fd9da4cc1d4fd35a2f32c28f62f10
150
SHA256 (xpi/firefox-i18n-56.0b9/rm.xpi) = f0b93404e49f6204e41da60f74138c037a1a2ed132e42eb935b30d14a953fd13
151
SIZE (xpi/firefox-i18n-55.0.3/rm.xpi) = 458265
151
SIZE (xpi/firefox-i18n-56.0b9/rm.xpi) = 467006
152
SHA256 (xpi/firefox-i18n-55.0.3/ro.xpi) = 70b05f40b253b9fb63081db12e8675873fe45eda3a1a180e77e15ae215a62216
152
SHA256 (xpi/firefox-i18n-56.0b9/ro.xpi) = 075f7f6e84682c4a27298642b8f021fbfe04b3dde60809ae85501f9044f309aa
153
SIZE (xpi/firefox-i18n-55.0.3/ro.xpi) = 462973
153
SIZE (xpi/firefox-i18n-56.0b9/ro.xpi) = 470642
154
SHA256 (xpi/firefox-i18n-55.0.3/ru.xpi) = 0c0d0296dd9d62ba86203b1b21476ff064f9d74d512bb6ffefe6f74ddf549352
154
SHA256 (xpi/firefox-i18n-56.0b9/ru.xpi) = 5861b24e6fd6a79609f95cc7d0e1524d9f2c9155c398676d3c7658ddf94cc04f
155
SIZE (xpi/firefox-i18n-55.0.3/ru.xpi) = 530901
155
SIZE (xpi/firefox-i18n-56.0b9/ru.xpi) = 541425
156
SHA256 (xpi/firefox-i18n-55.0.3/si.xpi) = f1f196f5523254940d10938c5c974a3d4128ec777fc1e8fb1399e24014b21fef
156
SHA256 (xpi/firefox-i18n-56.0b9/si.xpi) = 4f0e2ec066c4c7fc1fde05ed47c3268cdf3eccd754a0dcc11bf10589f28c4509
157
SIZE (xpi/firefox-i18n-55.0.3/si.xpi) = 508353
157
SIZE (xpi/firefox-i18n-56.0b9/si.xpi) = 515908
158
SHA256 (xpi/firefox-i18n-55.0.3/sk.xpi) = dcdc24e7411113728f6485465493cb5ee4c82981823c83edebe3e43257d8bf1a
158
SHA256 (xpi/firefox-i18n-56.0b9/sk.xpi) = 5fb7cb3537de69ab125c4e802ab34799c56f2c0d0c515f57b93140e5ff7f9c04
159
SIZE (xpi/firefox-i18n-55.0.3/sk.xpi) = 487582
159
SIZE (xpi/firefox-i18n-56.0b9/sk.xpi) = 495553
160
SHA256 (xpi/firefox-i18n-55.0.3/sl.xpi) = a1e7c731478f11da9f6f9f3c6b4f18787a04bd62c1636cdaa60c765b907cbc46
160
SHA256 (xpi/firefox-i18n-56.0b9/sl.xpi) = 0dbe0f187baad6efaaa17101ba30a09018e57efc87ae67c73176740f3b5df2f5
161
SIZE (xpi/firefox-i18n-55.0.3/sl.xpi) = 465760
161
SIZE (xpi/firefox-i18n-56.0b9/sl.xpi) = 473794
162
SHA256 (xpi/firefox-i18n-55.0.3/son.xpi) = 61cc16ef2218aee4e58b4bd8bba3dea83bd362c5fccbe368d04b325bf875cf9e
162
SHA256 (xpi/firefox-i18n-56.0b9/son.xpi) = f73da585e247cbc8342bdc8f4be2338db772ed133f0b6a7e549b332ebdc36dc9
163
SIZE (xpi/firefox-i18n-55.0.3/son.xpi) = 456958
163
SIZE (xpi/firefox-i18n-56.0b9/son.xpi) = 464310
164
SHA256 (xpi/firefox-i18n-55.0.3/sq.xpi) = 61ee5ee3e418d4a5098e94c22f646555f8b69f3cd1042b7e50fe0b9d28336c31
164
SHA256 (xpi/firefox-i18n-56.0b9/sq.xpi) = ab58c166429908aea8fb8c0bcaee2bff91a4fac1c65cf5f8fe3aca502b5e1864
165
SIZE (xpi/firefox-i18n-55.0.3/sq.xpi) = 470630
165
SIZE (xpi/firefox-i18n-56.0b9/sq.xpi) = 479501
166
SHA256 (xpi/firefox-i18n-55.0.3/sr.xpi) = f2d1fc0ca15e814210306ce2b1777c91c64444f79ea1431e4663eb5476c713b1
166
SHA256 (xpi/firefox-i18n-56.0b9/sr.xpi) = c43661cf6f474c1e1c4a1dda548fad1b800b60d62dbc064939834284715bb870
167
SIZE (xpi/firefox-i18n-55.0.3/sr.xpi) = 494878
167
SIZE (xpi/firefox-i18n-56.0b9/sr.xpi) = 504475
168
SHA256 (xpi/firefox-i18n-55.0.3/sv-SE.xpi) = 9a68ef76d1ba8b94238f7d724eb57ba9c94984e8b440f6068811cb8eb9853000
168
SHA256 (xpi/firefox-i18n-56.0b9/sv-SE.xpi) = 9c0bb310eb1892e028022784dffb666028027a18f0014f1eb9ab76bf497ab05f
169
SIZE (xpi/firefox-i18n-55.0.3/sv-SE.xpi) = 466011
169
SIZE (xpi/firefox-i18n-56.0b9/sv-SE.xpi) = 473934
170
SHA256 (xpi/firefox-i18n-55.0.3/ta.xpi) = 8d5f997e93cca5083d7d7196cd8f1524097ae6c6471bd373717c87dd1a5d4f2e
170
SHA256 (xpi/firefox-i18n-56.0b9/ta.xpi) = d6c1f0e4f93a03dba2dd3af3dc77f9a738affb8cf0395cb21b6d0d4c3b1db862
171
SIZE (xpi/firefox-i18n-55.0.3/ta.xpi) = 519998
171
SIZE (xpi/firefox-i18n-56.0b9/ta.xpi) = 530632
172
SHA256 (xpi/firefox-i18n-55.0.3/te.xpi) = 77e8558ae06366ee01252b37c756b42a77a013b85ccad1baa0ce69f0d7fa1831
172
SHA256 (xpi/firefox-i18n-56.0b9/te.xpi) = 68c9891854fb14fa3c3a8f5cfeacd5dd3c664527385829ac2370eb92bc2fa89a
173
SIZE (xpi/firefox-i18n-55.0.3/te.xpi) = 542539
173
SIZE (xpi/firefox-i18n-56.0b9/te.xpi) = 549574
174
SHA256 (xpi/firefox-i18n-55.0.3/th.xpi) = 5c35f335847368570b196fc470de14bfa10a9a63c0b27facedbf7e9ab3aef436
174
SHA256 (xpi/firefox-i18n-56.0b9/th.xpi) = ae482d7aec0ddf51fae28f9698bb7ad2e23438ef2aaf7be6716f677d8141fb75
175
SIZE (xpi/firefox-i18n-55.0.3/th.xpi) = 511903
175
SIZE (xpi/firefox-i18n-56.0b9/th.xpi) = 520284
176
SHA256 (xpi/firefox-i18n-55.0.3/tr.xpi) = a2790b948e050421d209b5802bb388664b75ae2d5c69175e0c84ab01b2b2a0c4
176
SHA256 (xpi/firefox-i18n-56.0b9/tr.xpi) = 91830107bccc8b8971503fd8d56fdff061076939a8362d1f2715186b4f967e0f
177
SIZE (xpi/firefox-i18n-55.0.3/tr.xpi) = 472160
177
SIZE (xpi/firefox-i18n-56.0b9/tr.xpi) = 480459
178
SHA256 (xpi/firefox-i18n-55.0.3/uk.xpi) = 379ed1579d3f4cf9d149eb3906491505898f846f0e9476bd7562a07981baecf6
178
SHA256 (xpi/firefox-i18n-56.0b9/uk.xpi) = c6267c44014dc0c8472a60cc4023db377525027544dd53ca926809b7af0c78e7
179
SIZE (xpi/firefox-i18n-55.0.3/uk.xpi) = 526436
179
SIZE (xpi/firefox-i18n-56.0b9/uk.xpi) = 535425
180
SHA256 (xpi/firefox-i18n-55.0.3/ur.xpi) = 8924709d63a5476f31e2a67031bd3020ff73884f6879aeace68b6ab41abb4076
180
SHA256 (xpi/firefox-i18n-56.0b9/ur.xpi) = 07779ec7024d3f608403f51c7dbc4eae5a87b63b79accd826ffbaf000538e9b6
181
SIZE (xpi/firefox-i18n-55.0.3/ur.xpi) = 520753
181
SIZE (xpi/firefox-i18n-56.0b9/ur.xpi) = 527336
182
SHA256 (xpi/firefox-i18n-55.0.3/uz.xpi) = 5cb211b260f5a781e28ab841618423e0662b48742fec2c1a2156cbdc9a7c5676
182
SHA256 (xpi/firefox-i18n-56.0b9/uz.xpi) = 525ecc214e55359e1303bb889b47afe02deac0b6ade2a56704d9e2940963d395
183
SIZE (xpi/firefox-i18n-55.0.3/uz.xpi) = 467671
183
SIZE (xpi/firefox-i18n-56.0b9/uz.xpi) = 475088
184
SHA256 (xpi/firefox-i18n-55.0.3/vi.xpi) = 4c546bbf624f6416c6c094965a00db675beb014500b55cf96fba8d1f4c03adbb
184
SHA256 (xpi/firefox-i18n-56.0b9/vi.xpi) = 483472bd602b8ef14659bf74872757cee568bced0339ae2add9d5584211efb04
185
SIZE (xpi/firefox-i18n-55.0.3/vi.xpi) = 476527
185
SIZE (xpi/firefox-i18n-56.0b9/vi.xpi) = 486281
186
SHA256 (xpi/firefox-i18n-55.0.3/xh.xpi) = 9c8eed4ed4947dbf6f6518f731e18a00cfe26d031f429222d5ae037814c4034e
186
SHA256 (xpi/firefox-i18n-56.0b9/xh.xpi) = 0b74984512fafe2dc7a0963e165764943a42e6c436d4ed400c8800445952695b
187
SIZE (xpi/firefox-i18n-55.0.3/xh.xpi) = 470719
187
SIZE (xpi/firefox-i18n-56.0b9/xh.xpi) = 477827
188
SHA256 (xpi/firefox-i18n-55.0.3/zh-CN.xpi) = b5ce9d67f7df55aff43f3bb3bb2d8bf8fa7ea15c1c40f94c1a331e3082cdcd88
188
SHA256 (xpi/firefox-i18n-56.0b9/zh-CN.xpi) = ec1984d28f2776dd4ad6ca4a6136e359cd8a308502f00aa6f1144289eb03df0a
189
SIZE (xpi/firefox-i18n-55.0.3/zh-CN.xpi) = 490383
189
SIZE (xpi/firefox-i18n-56.0b9/zh-CN.xpi) = 498968
190
SHA256 (xpi/firefox-i18n-55.0.3/zh-TW.xpi) = dfb0e10364b058869bcf832b01f586645f2c3c0fc647049f76c3c14561b2000e
190
SHA256 (xpi/firefox-i18n-56.0b9/zh-TW.xpi) = d8215f12388c87c0c247a5b94d852ba530ce9bcd4646b38d9ca9994982c855c4
191
SIZE (xpi/firefox-i18n-55.0.3/zh-TW.xpi) = 489347
191
SIZE (xpi/firefox-i18n-56.0b9/zh-TW.xpi) = 497748
(-)b/www/firefox/Makefile (-14 / +12 lines)
Lines 2-10 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	firefox
4
PORTNAME=	firefox
5
DISTVERSION=	55.0.3
5
DISTVERSION=	56.0b9
6
DISTVERSIONSUFFIX=.source
6
DISTVERSIONSUFFIX=.source
7
PORTREVISION=	1
8
PORTEPOCH=	1
7
PORTEPOCH=	1
9
CATEGORIES=	www ipv6
8
CATEGORIES=	www ipv6
10
MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
9
MASTER_SITES=	MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \
Lines 13-32 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ Link Here
13
MAINTAINER=	gecko@FreeBSD.org
12
MAINTAINER=	gecko@FreeBSD.org
14
COMMENT=	Web browser based on the browser portion of Mozilla
13
COMMENT=	Web browser based on the browser portion of Mozilla
15
14
16
BUILD_DEPENDS=	nspr>=4.15:devel/nspr \
15
BUILD_DEPENDS=	nspr>=4.16:devel/nspr \
17
		nss>=3.31.1:security/nss \
16
		nss>=3.32:security/nss \
18
		libevent>=2.0.22:devel/libevent \
17
		libevent>=2.1.8:devel/libevent \
19
		harfbuzz>=1.4.6:print/harfbuzz \
18
		harfbuzz>=1.4.7:print/harfbuzz \
20
		graphite2>=1.3.10:graphics/graphite2 \
19
		graphite2>=1.3.10:graphics/graphite2 \
21
		png>=1.6.28:graphics/png \
20
		png>=1.6.31:graphics/png \
22
		libvorbis>=1.3.5,3:audio/libvorbis \
21
		libvorbis>=1.3.5,3:audio/libvorbis \
23
		libvpx>=1.5.0:multimedia/libvpx \
22
		libvpx>=1.5.0:multimedia/libvpx \
24
		sqlite3>=3.19.2:databases/sqlite3 \
23
		sqlite3>=3.19.3:databases/sqlite3 \
25
		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
24
		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
26
		v4l_compat>0:multimedia/v4l_compat \
25
		v4l_compat>0:multimedia/v4l_compat \
27
		autoconf-2.13:devel/autoconf213 \
26
		autoconf-2.13:devel/autoconf213 \
28
		yasm:devel/yasm \
27
		yasm:devel/yasm \
28
		llvm40>0:devel/llvm40 \
29
		zip:archivers/zip
29
		zip:archivers/zip
30
#		icu>=59.1,1:devel/icu \
30
#		soundtouch>=1.9.0:audio/soundtouch \
31
#		soundtouch>=1.9.0:audio/soundtouch \
31
32
32
LIB_DEPENDS=	libv4l2.so:multimedia/libv4l
33
LIB_DEPENDS=	libv4l2.so:multimedia/libv4l
Lines 34-40 LIB_DEPENDS= libv4l2.so:multimedia/libv4l Link Here
34
USE_GECKO=	gecko
35
USE_GECKO=	gecko
35
CONFLICTS_INSTALL=	firefox-esr-45.* firefox-esr-3[18].* firefox-esr-24.*
36
CONFLICTS_INSTALL=	firefox-esr-45.* firefox-esr-3[18].* firefox-esr-24.*
36
MOZ_PKGCONFIG_FILES=	# empty
37
MOZ_PKGCONFIG_FILES=	# empty
37
USE_MOZILLA=	-soundtouch
38
USE_MOZILLA=	-icu -soundtouch # XXX ports/218788
38
MOZILLA_NAME=	Firefox
39
MOZILLA_NAME=	Firefox
39
40
40
USE_GL=		gl
41
USE_GL=		gl
Lines 42-57 USES= tar:xz Link Here
42
43
43
FIREFOX_ICON=		${MOZILLA}.png
44
FIREFOX_ICON=		${MOZILLA}.png
44
FIREFOX_ICON_SRC=	${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png
45
FIREFOX_ICON_SRC=	${PREFIX}/lib/${MOZILLA}/browser/chrome/icons/default/default48.png
46
MOZ_EXPORT=	BINDGEN_CFLAGS="-isystem${LOCALBASE}/include/nspr \
47
			-isystem${LOCALBASE}/include/pixman-1" # XXX bug 1341234
45
MOZ_OPTIONS=	--enable-application=browser \
48
MOZ_OPTIONS=	--enable-application=browser \
46
		--enable-official-branding
49
		--enable-official-branding
47
50
48
OPTIONS_DEFINE=		RUST
49
OPTIONS_DEFAULT=	BUNDLED_CAIRO
51
OPTIONS_DEFAULT=	BUNDLED_CAIRO
50
OPTIONS_EXCLUDE=	GNOMEUI
52
OPTIONS_EXCLUDE=	GNOMEUI
51
# XXX lang/rust and devel/cargo currently build only on these platforms
52
OPTIONS_DEFAULT_aarch64=RUST
53
OPTIONS_DEFAULT_amd64=	RUST
54
OPTIONS_DEFAULT_i386=	RUST
55
53
56
.include "${.CURDIR}/../../www/firefox/Makefile.options"
54
.include "${.CURDIR}/../../www/firefox/Makefile.options"
57
55
(-)b/www/firefox/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1503590171
1
TIMESTAMP = 1504481329
2
SHA256 (firefox-55.0.3.source.tar.xz) = 891836df85f8798c49f7b25661820f64d1311d59703c716eda471819b93ccda2
2
SHA256 (firefox-56.0b9.source.tar.xz) = 0479e0b2b92ca1d3419f83b774fc05833b7370069aa86218c83b740d8e4fbe6f
3
SIZE (firefox-55.0.3.source.tar.xz) = 236010652
3
SIZE (firefox-56.0b9.source.tar.xz) = 256013272
(-)b/www/firefox/files/patch-bug1144632 (-22 / +4 lines)
Lines 1-8 Link Here
1
Revert bug 1323303 to unbreak build on big-endian architectures.
1
Revert bug 1323303 to unbreak build on big-endian architectures.
2
2
3
--- toolkit/moz.configure.orig	2017-07-31 16:20:54 UTC
3
diff --git toolkit/moz.configure toolkit/moz.configure
4
index 67fcbc39d075..c117fd11a358 100644
5
--- toolkit/moz.configure
4
+++ toolkit/moz.configure
6
+++ toolkit/moz.configure
5
@@ -771,11 +771,11 @@
7
@@ -1032,11 +1032,11 @@ add_old_configure_assignment('NECKO_PROTOCOLS', necko_protocols)
6
 # ==============================================================
8
 # ==============================================================
7
 option('--disable-skia', help='Disable use of Skia')
9
 option('--disable-skia', help='Disable use of Skia')
8
 
10
 
Lines 19-41 Revert bug 1323303 to unbreak build on big-endian architectures. Link Here
19
         return True
21
         return True
20
 
22
 
21
 set_config('MOZ_ENABLE_SKIA', skia)
23
 set_config('MOZ_ENABLE_SKIA', skia)
22
--- gfx/2d/ScaledFontBase.cpp.orig	2017-07-31 16:20:54 UTC
23
+++ gfx/2d/ScaledFontBase.cpp
24
@@ -212,14 +212,16 @@ ScaledFontBase::CopyGlyphsToBuilder(const GlyphBuffer 
25
     cairoPath->AppendPathToBuilder(builder);
26
     return;
27
   }
28
+#endif
29
+#ifdef USE_SKIA
30
   if (backendType == BackendType::RECORDING) {
31
     SkPath skPath = GetSkiaPathForGlyphs(aBuffer);
32
     RefPtr<Path> path = MakeAndAddRef<PathSkia>(skPath, FillRule::FILL_WINDING);
33
     path->StreamToSink(aBuilder);
34
     return;
35
   }
36
-  MOZ_ASSERT(false, "Path not being copied");
37
 #endif
38
+  MOZ_ASSERT(false, "Path not being copied");
39
 }
40
 
41
 void
(-)a/www/firefox/files/patch-bug1312182 (-376 lines)
Removed Link Here
1
commit 0d02dac1638ad
2
Author: Alessio Placitelli <alessio.placitelli@gmail.com>
3
Date:   Tue May 30 10:42:42 2017 +0200
4
5
    Bug 1312182 - Consolidate the uses of MOZ_TELEMETRY_REPORTING in the code. r=flod,gfritzsche,jaws
6
    
7
    The MOZ_TELEMETRY_REPORTING define does not control whether or not Telemetry is enabled
8
    but rather if it will send the gathered data to Mozilla servers. We still want to
9
    display the about:preferences options and let developers know about this behaviour.
10
    Please note that this patch is not changing any behaviour: it's only making it explicit
11
    by showing the options as disabled rather than hiding them.
12
    
13
    MozReview-Commit-ID: 7A0y0E0hm0Q
14
    
15
    --HG--
16
    extra : rebase_source : 36d1a7f5ec5c05b43731daf9507d3068fe7674ee
17
---
18
 browser/base/content/baseMenuOverlay.xul           |  2 +-
19
 browser/components/nsBrowserGlue.js                |  8 +--
20
 .../components/preferences/in-content-new/main.xul |  2 -
21
 .../preferences/in-content-new/privacy.js          | 32 +++++------
22
 .../preferences/in-content-new/privacy.xul         | 14 ++---
23
 .../components/preferences/in-content/advanced.js  | 63 +++++++++++-----------
24
 .../components/preferences/in-content/advanced.xul |  7 ++-
25
 .../chrome/browser/preferences-old/advanced.dtd    |  5 ++
26
 .../en-US/chrome/browser/preferences/advanced.dtd  |  5 ++
27
 9 files changed, 67 insertions(+), 71 deletions(-)
28
29
diff --git browser/base/content/baseMenuOverlay.xul browser/base/content/baseMenuOverlay.xul
30
index 1befa2bb66cc..804bbdebb797 100644
31
--- browser/base/content/baseMenuOverlay.xul
32
+++ browser/base/content/baseMenuOverlay.xul
33
@@ -61,7 +61,7 @@
34
                   onclick="checkForMiddleClick(this, event);"
35
                   label="&helpKeyboardShortcuts.label;"
36
                   accesskey="&helpKeyboardShortcuts.accesskey;"/>
37
-#ifdef MOZ_TELEMETRY_REPORTING
38
+#ifdef MOZ_SERVICES_HEALTHREPORT
39
         <menuitem id="healthReport"
40
                   label="&healthReport2.label;"
41
                   accesskey="&healthReport2.accesskey;"
42
diff --git browser/components/nsBrowserGlue.js browser/components/nsBrowserGlue.js
43
index 554c279356b9..1c21bf4c4323 100644
44
--- browser/components/nsBrowserGlue.js
45
+++ browser/components/nsBrowserGlue.js
46
@@ -528,9 +528,7 @@ BrowserGlue.prototype = {
47
     os.addObserver(this, "distribution-customization-complete");
48
     os.addObserver(this, "handle-xul-text-link");
49
     os.addObserver(this, "profile-before-change");
50
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
51
-      os.addObserver(this, "keyword-search");
52
-    }
53
+    os.addObserver(this, "keyword-search");
54
     os.addObserver(this, "browser-search-engine-modified");
55
     os.addObserver(this, "restart-in-safe-mode");
56
     os.addObserver(this, "flash-plugin-hang");
57
@@ -583,9 +581,7 @@ BrowserGlue.prototype = {
58
       os.removeObserver(this, "places-database-locked");
59
     os.removeObserver(this, "handle-xul-text-link");
60
     os.removeObserver(this, "profile-before-change");
61
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
62
-      os.removeObserver(this, "keyword-search");
63
-    }
64
+    os.removeObserver(this, "keyword-search");
65
     os.removeObserver(this, "browser-search-engine-modified");
66
     os.removeObserver(this, "flash-plugin-hang");
67
     os.removeObserver(this, "xpi-signature-changed");
68
diff --git browser/components/preferences/in-content-new/main.xul browser/components/preferences/in-content-new/main.xul
69
index e89ee1891c91..8672557bede2 100644
70
--- browser/components/preferences/in-content-new/main.xul
71
+++ browser/components/preferences/in-content-new/main.xul
72
@@ -183,11 +183,9 @@
73
               name="layout.spellcheckDefault"
74
               type="int"/>
75
 
76
-#ifdef MOZ_TELEMETRY_REPORTING
77
   <preference id="toolkit.telemetry.enabled"
78
               name="toolkit.telemetry.enabled"
79
               type="bool"/>
80
-#endif
81
 
82
   <preference id="browser.preferences.defaultPerformanceSettings.enabled"
83
               name="browser.preferences.defaultPerformanceSettings.enabled"
84
diff --git browser/components/preferences/in-content-new/privacy.js browser/components/preferences/in-content-new/privacy.js
85
index be057bfad611..73f72391b991 100644
86
--- browser/components/preferences/in-content-new/privacy.js
87
+++ browser/components/preferences/in-content-new/privacy.js
88
@@ -321,11 +321,9 @@ var gPrivacyPane = {
89
       this.initSubmitCrashes();
90
     }
91
     this.initTelemetry();
92
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
93
-      this.initSubmitHealthReport();
94
-      setEventListener("submitHealthReportBox", "command",
95
-                       gPrivacyPane.updateSubmitHealthReport);
96
-    }
97
+    this.initSubmitHealthReport();
98
+    setEventListener("submitHealthReportBox", "command",
99
+                     gPrivacyPane.updateSubmitHealthReport);
100
 
101
     // Append search keywords into the elements could open subdialogs.
102
     let bundlePrefs = document.getElementById("bundlePreferences");
103
@@ -1414,8 +1412,10 @@ var gPrivacyPane = {
104
    * In all cases, set up the Learn More link sanely.
105
    */
106
   initTelemetry() {
107
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
108
-      this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore");
109
+    this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore");
110
+    // If we're not sending any Telemetry, disable the telemetry upload checkbox as well.
111
+    if (!AppConstants.MOZ_TELEMETRY_REPORTING) {
112
+      document.getElementById("submitTelemetryBox").setAttribute("disabled", "true");
113
     }
114
   },
115
 
116
@@ -1439,9 +1439,6 @@ var gPrivacyPane = {
117
    * @param {Boolean} aEnabled False disables the controls, true enables them.
118
    */
119
   setTelemetrySectionEnabled(aEnabled) {
120
-    if (!AppConstants.MOZ_TELEMETRY_REPORTING) {
121
-      return;
122
-    }
123
     // If FHR is disabled, additional data sharing should be disabled as well.
124
     let disabled = !aEnabled;
125
     document.getElementById("submitTelemetryBox").disabled = disabled;
126
@@ -1456,19 +1453,21 @@ var gPrivacyPane = {
127
    * Initialize the health report service reference and checkbox.
128
    */
129
   initSubmitHealthReport() {
130
-    if (!AppConstants.MOZ_TELEMETRY_REPORTING) {
131
-      return;
132
-    }
133
     this._setupLearnMoreLink("datareporting.healthreport.infoURL", "FHRLearnMore");
134
 
135
     let checkbox = document.getElementById("submitHealthReportBox");
136
 
137
-    if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED)) {
138
+    // Telemetry is only sending data if MOZ_TELEMETRY_REPORTING is defined.
139
+    // We still want to display the preferences panel if that's not the case, but
140
+    // we want it to be disabled and unchecked.
141
+    if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED) ||
142
+        !AppConstants.MOZ_TELEMETRY_REPORTING) {
143
       checkbox.setAttribute("disabled", "true");
144
       return;
145
     }
146
 
147
-    checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED);
148
+    checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED) &&
149
+                       AppConstants.MOZ_TELEMETRY_REPORTING;
150
     this.setTelemetrySectionEnabled(checkbox.checked);
151
   },
152
 
153
@@ -1476,9 +1475,6 @@ var gPrivacyPane = {
154
    * Update the health report preference with state from checkbox.
155
    */
156
   updateSubmitHealthReport() {
157
-    if (!AppConstants.MOZ_TELEMETRY_REPORTING) {
158
-      return;
159
-    }
160
     let checkbox = document.getElementById("submitHealthReportBox");
161
     Services.prefs.setBoolPref(PREF_UPLOAD_ENABLED, checkbox.checked);
162
     this.setTelemetrySectionEnabled(checkbox.checked);
163
diff --git browser/components/preferences/in-content-new/privacy.xul browser/components/preferences/in-content-new/privacy.xul
164
index 9d531bd8274b..8030567573f8 100644
165
--- browser/components/preferences/in-content-new/privacy.xul
166
+++ browser/components/preferences/in-content-new/privacy.xul
167
@@ -760,9 +760,14 @@
168
 </groupbox>
169
 
170
 <!-- Data Choices -->
171
-#ifdef MOZ_TELEMETRY_REPORTING
172
-<groupbox id="historyGroup" data-category="panePrivacy" data-subcategory="reports" hidden="true">
173
+#ifdef MOZ_DATA_REPORTING
174
+
175
+<groupbox id="telemetryGroup" data-category="panePrivacy" data-subcategory="reports" hidden="true">
176
 <caption><label>&reports.label;</label></caption>
177
+#ifndef MOZ_TELEMETRY_REPORTING
178
+  <description id="TelemetryDisabledDesc" control="telemetryGroup">&healthReportingDisabled.label;</description>
179
+#endif
180
+
181
   <hbox align="center">
182
     <checkbox id="submitHealthReportBox" label="&enableHealthReport.label;"
183
               accesskey="&enableHealthReport.accesskey;"/>
184
@@ -782,14 +787,9 @@
185
                  class="indent">&telemetryDesc.label;</description>
186
   </vbox>
187
 </groupbox>
188
-#endif
189
 
190
-#ifdef MOZ_DATA_REPORTING
191
 #ifdef MOZ_CRASHREPORTER
192
 <groupbox id="crashReporterGroup" data-category="panePrivacy" data-subcategory="reports" hidden="true">
193
-#ifndef MOZ_TELEMETRY_REPORTING
194
-<caption><label>&reports.label;</label></caption>
195
-#endif
196
   <hbox align="center">
197
     <checkbox id="automaticallySubmitCrashesBox"
198
               preference="browser.crashReports.unsubmittedCheck.autoSubmit"
199
diff --git browser/components/preferences/in-content/advanced.js browser/components/preferences/in-content/advanced.js
200
index a6a2abaad9cf..9c7a2e716403 100644
201
--- browser/components/preferences/in-content/advanced.js
202
+++ browser/components/preferences/in-content/advanced.js
203
@@ -46,9 +46,7 @@ var gAdvancedPane = {
204
       this.initSubmitCrashes();
205
     }
206
     this.initTelemetry();
207
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
208
-      this.initSubmitHealthReport();
209
-    }
210
+    this.initSubmitHealthReport();
211
     this.updateOnScreenKeyboardVisibility();
212
     this.updateCacheSizeInputField();
213
     this.updateActualCacheSize();
214
@@ -78,10 +76,8 @@ var gAdvancedPane = {
215
                      gAdvancedPane.updateHardwareAcceleration);
216
     setEventListener("advancedPrefs", "select",
217
                      gAdvancedPane.tabSelectionChanged);
218
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
219
-      setEventListener("submitHealthReportBox", "command",
220
-                       gAdvancedPane.updateSubmitHealthReport);
221
-    }
222
+    setEventListener("submitHealthReportBox", "command",
223
+                     gAdvancedPane.updateSubmitHealthReport);
224
 
225
     setEventListener("connectionSettings", "command",
226
                      gAdvancedPane.showConnections);
227
@@ -293,8 +289,10 @@ var gAdvancedPane = {
228
    * In all cases, set up the Learn More link sanely.
229
    */
230
   initTelemetry() {
231
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
232
-      this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore");
233
+    this._setupLearnMoreLink("toolkit.telemetry.infoURL", "telemetryLearnMore");
234
+    // If we're not sending any Telemetry, disable the telemetry upload checkbox as well.
235
+    if (!AppConstants.MOZ_TELEMETRY_REPORTING) {
236
+      document.getElementById("submitTelemetryBox").setAttribute("disabled", "true");
237
     }
238
   },
239
 
240
@@ -303,46 +301,45 @@ var gAdvancedPane = {
241
    * @param {Boolean} aEnabled False disables the controls, true enables them.
242
    */
243
   setTelemetrySectionEnabled(aEnabled) {
244
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
245
-      // If FHR is disabled, additional data sharing should be disabled as well.
246
-      let disabled = !aEnabled;
247
-      document.getElementById("submitTelemetryBox").disabled = disabled;
248
-      if (disabled) {
249
-        // If we disable FHR, untick the telemetry checkbox.
250
-        Services.prefs.setBoolPref("toolkit.telemetry.enabled", false);
251
-      }
252
-      document.getElementById("telemetryDataDesc").disabled = disabled;
253
+    // If FHR is disabled, additional data sharing should be disabled as well.
254
+    let disabled = !aEnabled;
255
+    document.getElementById("submitTelemetryBox").disabled = disabled;
256
+    if (disabled) {
257
+      // If we disable FHR, untick the telemetry checkbox.
258
+      Services.prefs.setBoolPref("toolkit.telemetry.enabled", false);
259
     }
260
+    document.getElementById("telemetryDataDesc").disabled = disabled;
261
   },
262
 
263
   /**
264
    * Initialize the health report service reference and checkbox.
265
    */
266
   initSubmitHealthReport() {
267
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
268
-      this._setupLearnMoreLink("datareporting.healthreport.infoURL", "FHRLearnMore");
269
-
270
-      let checkbox = document.getElementById("submitHealthReportBox");
271
+    this._setupLearnMoreLink("datareporting.healthreport.infoURL", "FHRLearnMore");
272
 
273
-      if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED)) {
274
-        checkbox.setAttribute("disabled", "true");
275
-        return;
276
-      }
277
+    let checkbox = document.getElementById("submitHealthReportBox");
278
 
279
-      checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED);
280
-      this.setTelemetrySectionEnabled(checkbox.checked);
281
+    // Telemetry is only sending data if MOZ_TELEMETRY_REPORTING is defined.
282
+    // We still want to display the preferences panel if that's not the case, but
283
+    // we want it to be disabled and unchecked.
284
+    if (Services.prefs.prefIsLocked(PREF_UPLOAD_ENABLED) ||
285
+        !AppConstants.MOZ_TELEMETRY_REPORTING) {
286
+      checkbox.setAttribute("disabled", "true");
287
+      return;
288
     }
289
+
290
+    checkbox.checked = Services.prefs.getBoolPref(PREF_UPLOAD_ENABLED) &&
291
+                       AppConstants.MOZ_TELEMETRY_REPORTING;
292
+    this.setTelemetrySectionEnabled(checkbox.checked);
293
   },
294
 
295
   /**
296
    * Update the health report preference with state from checkbox.
297
    */
298
   updateSubmitHealthReport() {
299
-    if (AppConstants.MOZ_TELEMETRY_REPORTING) {
300
-      let checkbox = document.getElementById("submitHealthReportBox");
301
-      Services.prefs.setBoolPref(PREF_UPLOAD_ENABLED, checkbox.checked);
302
-      this.setTelemetrySectionEnabled(checkbox.checked);
303
-    }
304
+    let checkbox = document.getElementById("submitHealthReportBox");
305
+    Services.prefs.setBoolPref(PREF_UPLOAD_ENABLED, checkbox.checked);
306
+    this.setTelemetrySectionEnabled(checkbox.checked);
307
   },
308
 
309
   updateOnScreenKeyboardVisibility() {
310
diff --git browser/components/preferences/in-content/advanced.xul browser/components/preferences/in-content/advanced.xul
311
index f2330223fb18..1b2c62168a59 100644
312
--- browser/components/preferences/in-content/advanced.xul
313
+++ browser/components/preferences/in-content/advanced.xul
314
@@ -37,12 +37,9 @@
315
   <preference id="layout.spellcheckDefault"
316
               name="layout.spellcheckDefault"
317
               type="int"/>
318
-
319
-#ifdef MOZ_TELEMETRY_REPORTING
320
   <preference id="toolkit.telemetry.enabled"
321
               name="toolkit.telemetry.enabled"
322
               type="bool"/>
323
-#endif
324
 
325
   <!-- Data Choices tab -->
326
 #ifdef MOZ_CRASHREPORTER
327
@@ -189,6 +186,9 @@
328
     <!-- Data Choices -->
329
     <tabpanel id="dataChoicesPanel" orient="vertical">
330
 #ifdef MOZ_TELEMETRY_REPORTING
331
+      <description>&healthReportingDisabled.label;</description>
332
+      <separator class="thin"/>
333
+#endif
334
       <groupbox>
335
         <caption>
336
           <checkbox id="submitHealthReportBox" label="&enableHealthReport.label;"
337
@@ -216,7 +216,6 @@
338
           </hbox>
339
         </vbox>
340
       </groupbox>
341
-#endif
342
 #ifdef MOZ_CRASHREPORTER
343
       <groupbox>
344
         <caption>
345
diff --git browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd
346
index 215b800d3385..bf23c4fd251f 100644
347
--- browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd
348
+++ browser/locales/en-US/chrome/browser/preferences-old/advanced.dtd
349
@@ -28,6 +28,11 @@
350
 
351
 <!ENTITY dataChoicesTab.label            "Data Choices">
352
 
353
+<!-- LOCALIZATION NOTE (healthReportingDisabled.label): This message is displayed above
354
+disabled data sharing options in developer builds or builds with no Telemetry support
355
+available. -->
356
+<!ENTITY healthReportingDisabled.label   "Data reporting is disabled for this build configuration">
357
+
358
 <!ENTITY healthReportDesc.label          "Helps you understand your browser performance and shares data with &vendorShortName; about your browser health">
359
 <!ENTITY enableHealthReport.label        "Enable &brandShortName; Health Report">
360
 <!ENTITY enableHealthReport.accesskey    "R">
361
diff --git browser/locales/en-US/chrome/browser/preferences/advanced.dtd browser/locales/en-US/chrome/browser/preferences/advanced.dtd
362
index 58a6b38630cf..6c478e48244a 100644
363
--- browser/locales/en-US/chrome/browser/preferences/advanced.dtd
364
+++ browser/locales/en-US/chrome/browser/preferences/advanced.dtd
365
@@ -28,6 +28,11 @@
366
 
367
 <!ENTITY dataChoicesTab.label            "Data Choices">
368
 
369
+<!-- LOCALIZATION NOTE (healthReportingDisabled.label): This message is displayed above
370
+disabled data sharing options in developer builds or builds with no Telemetry support
371
+available. -->
372
+<!ENTITY healthReportingDisabled.label   "Data reporting is disabled for this build configuration">
373
+
374
 <!ENTITY healthReportDesc.label          "Helps you understand your browser performance and shares data with &vendorShortName; about your browser health">
375
 <!ENTITY enableHealthReport.label        "Enable &brandShortName; Health Report">
376
 <!ENTITY enableHealthReport.accesskey    "R">
(-)b/www/firefox/files/patch-bug1366050 (+11 lines)
Added Link Here
1
--- toolkit/moz.configure.orig	2017-08-08 06:07:58 UTC
2
+++ toolkit/moz.configure
3
@@ -620,7 +620,7 @@ def stylo_config(value, _, target):
4
 
5
     # If nothing is specified, default to building stylo where possible.
6
     if value.origin == 'default':
7
-        if target.os == 'GNU' and target.bitness == 32:
8
+        if target.os != 'WINNT' and target.bitness == 32:
9
             # The clang setup we use in automation is a little unusual, and
10
             # doesn't play well with bindgen on 32-bit Linux.
11
             pass
(-)a/www/firefox/files/patch-bug1376268 (-61 lines)
Removed Link Here
1
commit ec31e574ed81
2
Author: Petr Sumbera <petr.sumbera@oracle.com>
3
Date:   Mon Jun 26 06:54:12 2017 -0700
4
5
    Bug 1376268 - Fix Spidermonkey build with no jit backend; r=bbouvier
6
    
7
    MozReview-Commit-ID: DgANwcf8oUh
8
    
9
    --HG--
10
    extra : amend_source : 1c3efbe975e93ee996e6b84d3fc073781740156d
11
---
12
 js/src/jit/ExecutableAllocator.h      | 2 +-
13
 js/src/jit/none/MacroAssembler-none.h | 8 ++++----
14
 2 files changed, 5 insertions(+), 5 deletions(-)
15
16
diff --git js/src/jit/ExecutableAllocator.h js/src/jit/ExecutableAllocator.h
17
index 570a25ff0dc3..d106b31ba906 100644
18
--- js/src/jit/ExecutableAllocator.h
19
+++ js/src/jit/ExecutableAllocator.h
20
@@ -219,7 +219,7 @@ class ExecutableAllocator
21
 
22
     static void poisonCode(JSRuntime* rt, JitPoisonRangeVector& ranges);
23
 
24
-#if defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64) || defined(JS_SIMULATOR_ARM64)
25
+#if defined(JS_CODEGEN_X86) || defined(JS_CODEGEN_X64) || defined(JS_SIMULATOR_ARM64) || defined(JS_CODEGEN_NONE)
26
     static void cacheFlush(void*, size_t)
27
     {
28
     }
29
diff --git js/src/jit/none/MacroAssembler-none.h js/src/jit/none/MacroAssembler-none.h
30
index 9a40ec8a8f64..71ddca8b9f1c 100644
31
--- js/src/jit/none/MacroAssembler-none.h
32
+++ js/src/jit/none/MacroAssembler-none.h
33
@@ -48,7 +48,7 @@ static constexpr Register WasmIonExitRegE1 { Registers::invalid_reg };
34
 
35
 static constexpr Register WasmIonExitRegReturnData { Registers::invalid_reg };
36
 static constexpr Register WasmIonExitRegReturnType { Registers::invalid_reg };
37
-static constexpr Register WasmIonExitTlsReg = { Registers::invalid_reg };
38
+static constexpr Register WasmIonExitTlsReg { Registers::invalid_reg };
39
 static constexpr Register WasmIonExitRegD0 { Registers::invalid_reg };
40
 static constexpr Register WasmIonExitRegD1 { Registers::invalid_reg };
41
 static constexpr Register WasmIonExitRegD2 { Registers::invalid_reg };
42
@@ -153,6 +153,8 @@ class Assembler : public AssemblerShared
43
 
44
     static uintptr_t GetPointer(uint8_t*) { MOZ_CRASH(); }
45
 
46
+    static bool HasRoundInstruction(RoundingMode) { return false; }
47
+
48
     void verifyHeapAccessDisassembly(uint32_t begin, uint32_t end,
49
                                      const Disassembler::HeapAccess& heapAccess)
50
     {
51
@@ -196,9 +198,7 @@ class MacroAssemblerNone : public Assembler
52
     static bool SupportsSimd() { return false; }
53
     static bool SupportsUnalignedAccesses() { return false; }
54
 
55
-    static bool HasRoundInstruction(RoundingMode) { return false; }
56
-
57
-    void executableCopy(void*, bool) { MOZ_CRASH(); }
58
+    void executableCopy(void*, bool = true) { MOZ_CRASH(); }
59
     void copyJumpRelocationTable(uint8_t*) { MOZ_CRASH(); }
60
     void copyDataRelocationTable(uint8_t*) { MOZ_CRASH(); }
61
     void copyPreBarrierTable(uint8_t*) { MOZ_CRASH(); }
(-)a/www/firefox/files/patch-bug1385597 (-24 lines)
Removed Link Here
1
Properly restore system timezone on other POSIX systems. r?ehsan
2
    
3
--- toolkit/components/resistfingerprinting/nsRFPService.cpp
4
+++ toolkit/components/resistfingerprinting/nsRFPService.cpp
5
@@ -162,14 +162,14 @@ nsRFPService::UpdatePref()
6
         PR_SetEnv(tz);
7
       }
8
     } else {
9
-#if defined(XP_LINUX) || defined (XP_MACOSX)
10
-      // For POSIX like system, we reset the TZ to the /etc/localtime, which is the
11
-      // system timezone.
12
-      PR_SetEnv("TZ=:/etc/localtime");
13
-#else
14
+#if defined(XP_WIN)
15
       // For Windows, we reset the TZ to an empty string. This will make Windows to use
16
       // its system timezone.
17
       PR_SetEnv("TZ=");
18
+#else
19
+      // For POSIX like system, we reset the TZ to the /etc/localtime, which is the
20
+      // system timezone.
21
+      PR_SetEnv("TZ=:/etc/localtime");
22
 #endif
23
     }
24
   }
(-)b/www/firefox/files/patch-bug1394053 (+270 lines)
Added Link Here
1
Disable download protection on non-official builds r=francois
2
3
--- browser/components/preferences/in-content-new/privacy.js.orig	2017-08-02 12:27:40 UTC
4
+++ browser/components/preferences/in-content-new/privacy.js
5
@@ -1011,24 +1011,32 @@ var gPrivacyPane = {
6
       safeBrowsingMalwarePref.value = enableSafeBrowsing.checked;
7
 
8
       if (enableSafeBrowsing.checked) {
9
-        blockDownloads.removeAttribute("disabled");
10
-        if (blockDownloads.checked) {
11
+        if (blockDownloads) {
12
+          blockDownloads.removeAttribute("disabled");
13
+          if (blockDownloads.checked) {
14
+            blockUncommonUnwanted.removeAttribute("disabled");
15
+          }
16
+        } else {
17
           blockUncommonUnwanted.removeAttribute("disabled");
18
         }
19
       } else {
20
-        blockDownloads.setAttribute("disabled", "true");
21
+        if (blockDownloads) {
22
+          blockDownloads.setAttribute("disabled", "true");
23
+        }
24
         blockUncommonUnwanted.setAttribute("disabled", "true");
25
       }
26
     });
27
 
28
-    blockDownloads.addEventListener("command", function() {
29
-      blockDownloadsPref.value = blockDownloads.checked;
30
-      if (blockDownloads.checked) {
31
-        blockUncommonUnwanted.removeAttribute("disabled");
32
-      } else {
33
-        blockUncommonUnwanted.setAttribute("disabled", "true");
34
-      }
35
-    });
36
+    if (blockDownloads) {
37
+      blockDownloads.addEventListener("command", function() {
38
+        blockDownloadsPref.value = blockDownloads.checked;
39
+        if (blockDownloads.checked) {
40
+          blockUncommonUnwanted.removeAttribute("disabled");
41
+        } else {
42
+          blockUncommonUnwanted.setAttribute("disabled", "true");
43
+        }
44
+      });
45
+    }
46
 
47
     blockUncommonUnwanted.addEventListener("command", function() {
48
       blockUnwantedPref.value = blockUncommonUnwanted.checked;
49
@@ -1053,13 +1061,18 @@ var gPrivacyPane = {
50
 
51
     enableSafeBrowsing.checked = safeBrowsingPhishingPref.value && safeBrowsingMalwarePref.value;
52
     if (!enableSafeBrowsing.checked) {
53
-      blockDownloads.setAttribute("disabled", "true");
54
+      if (blockDownloads) {
55
+        blockDownloads.setAttribute("disabled", "true");
56
+      }
57
+
58
       blockUncommonUnwanted.setAttribute("disabled", "true");
59
     }
60
 
61
-    blockDownloads.checked = blockDownloadsPref.value;
62
-    if (!blockDownloadsPref.value) {
63
-      blockUncommonUnwanted.setAttribute("disabled", "true");
64
+    if (blockDownloads) {
65
+      blockDownloads.checked = blockDownloadsPref.value;
66
+      if (!blockDownloadsPref.value) {
67
+        blockUncommonUnwanted.setAttribute("disabled", "true");
68
+      }
69
     }
70
 
71
     blockUncommonUnwanted.checked = blockUnwantedPref.value && blockUncommonPref.value;
72
--- browser/components/preferences/in-content-new/privacy.xul.orig	2017-08-23 12:19:43 UTC
73
+++ browser/components/preferences/in-content-new/privacy.xul
74
@@ -661,9 +661,11 @@
75
             label="&enableSafeBrowsing.label;"
76
             accesskey="&enableSafeBrowsing.accesskey;" />
77
   <vbox class="indent">
78
+#ifdef MOZILLA_OFFICIAL
79
     <checkbox id="blockDownloads"
80
               label="&blockDownloads.label;"
81
               accesskey="&blockDownloads.accesskey;" />
82
+#endif
83
     <checkbox id="blockUncommonUnwanted"
84
               label="&blockUncommonAndUnwanted.label;"
85
               accesskey="&blockUncommonAndUnwanted.accesskey;" />
86
--- browser/components/preferences/in-content-new/tests/browser_security-1.js.orig	2017-08-02 12:27:40 UTC
87
+++ browser/components/preferences/in-content-new/tests/browser_security-1.js
88
@@ -40,9 +40,14 @@ add_task(async function() {
89
     let blockDownloads = doc.getElementById("blockDownloads");
90
     let blockUncommon = doc.getElementById("blockUncommonUnwanted");
91
     let checked = checkbox.checked;
92
+    if (!AppConstants.MOZILLA_OFFICIAL) {
93
+      is(blockDownloads, undefined, "downloads protection is disabled in un-official builds");
94
+    } else {
95
+      is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
96
+    }
97
+
98
     is(checked, val1 && val2, "safebrowsing preference is initialized correctly");
99
     // should be disabled when checked is false (= pref is turned off)
100
-    is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
101
     is(blockUncommon.hasAttribute("disabled"), !checked, "block uncommon checkbox is set correctly");
102
 
103
     // scroll the checkbox into the viewport and click checkbox
104
@@ -57,8 +62,10 @@ add_task(async function() {
105
 
106
     // check if the other checkboxes have updated
107
     checked = checkbox.checked;
108
-    is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
109
-    is(blockUncommon.hasAttribute("disabled"), !checked || !blockDownloads.checked, "block uncommon checkbox is set correctly");
110
+    if (blockDownloads) {
111
+      is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
112
+      is(blockUncommon.hasAttribute("disabled"), !checked || !blockDownloads.checked, "block uncommon checkbox is set correctly");
113
+    }
114
   }
115
 
116
   await checkPrefSwitch(true, true);
117
--- browser/components/preferences/in-content-new/tests/browser_security-2.js.orig	2017-08-02 12:27:40 UTC
118
+++ browser/components/preferences/in-content-new/tests/browser_security-2.js
119
@@ -36,6 +36,11 @@ add_task(async function() {
120
 
121
     let doc = gBrowser.selectedBrowser.contentDocument;
122
     let checkbox = doc.getElementById("blockDownloads");
123
+    if (!AppConstants.MOZILLA_OFFICIAL) {
124
+      is(checkbox, undefined, "downloads protection is disabled in un-official builds");
125
+      return;
126
+    }
127
+
128
     let blockUncommon = doc.getElementById("blockUncommonUnwanted");
129
     let checked = checkbox.checked;
130
     is(checked, val, "downloads preference is initialized correctly");
131
--- browser/components/preferences/in-content/security.js.orig	2017-08-02 12:27:40 UTC
132
+++ browser/components/preferences/in-content/security.js
133
@@ -174,24 +174,32 @@ var gSecurityPane = {
134
       safeBrowsingMalwarePref.value = enableSafeBrowsing.checked;
135
 
136
       if (enableSafeBrowsing.checked) {
137
-        blockDownloads.removeAttribute("disabled");
138
-        if (blockDownloads.checked) {
139
+        if (blockDownloads) {
140
+          blockDownloads.removeAttribute("disabled");
141
+          if (blockDownloads.checked) {
142
+            blockUncommonUnwanted.removeAttribute("disabled");
143
+          }
144
+        } else {
145
           blockUncommonUnwanted.removeAttribute("disabled");
146
         }
147
       } else {
148
-        blockDownloads.setAttribute("disabled", "true");
149
+        if (blockDownloads) {
150
+          blockDownloads.setAttribute("disabled", "true");
151
+        }
152
         blockUncommonUnwanted.setAttribute("disabled", "true");
153
       }
154
     });
155
 
156
-    blockDownloads.addEventListener("command", function() {
157
-      blockDownloadsPref.value = blockDownloads.checked;
158
-      if (blockDownloads.checked) {
159
-        blockUncommonUnwanted.removeAttribute("disabled");
160
-      } else {
161
-        blockUncommonUnwanted.setAttribute("disabled", "true");
162
-      }
163
-    });
164
+    if (blockDownloads) {
165
+      blockDownloads.addEventListener("command", function() {
166
+        blockDownloadsPref.value = blockDownloads.checked;
167
+        if (blockDownloads.checked) {
168
+          blockUncommonUnwanted.removeAttribute("disabled");
169
+        } else {
170
+          blockUncommonUnwanted.setAttribute("disabled", "true");
171
+        }
172
+      });
173
+    }
174
 
175
     blockUncommonUnwanted.addEventListener("command", function() {
176
       blockUnwantedPref.value = blockUncommonUnwanted.checked;
177
@@ -216,13 +224,18 @@ var gSecurityPane = {
178
 
179
     enableSafeBrowsing.checked = safeBrowsingPhishingPref.value && safeBrowsingMalwarePref.value;
180
     if (!enableSafeBrowsing.checked) {
181
-      blockDownloads.setAttribute("disabled", "true");
182
+      if (blockDownloads) {
183
+        blockDownloads.setAttribute("disabled", "true");
184
+      }
185
+
186
       blockUncommonUnwanted.setAttribute("disabled", "true");
187
     }
188
 
189
-    blockDownloads.checked = blockDownloadsPref.value;
190
-    if (!blockDownloadsPref.value) {
191
-      blockUncommonUnwanted.setAttribute("disabled", "true");
192
+    if (blockDownloads) {
193
+      blockDownloads.checked = blockDownloadsPref.value;
194
+      if (!blockDownloadsPref.value) {
195
+        blockUncommonUnwanted.setAttribute("disabled", "true");
196
+      }
197
     }
198
 
199
     blockUncommonUnwanted.checked = blockUnwantedPref.value && blockUncommonPref.value;
200
--- browser/components/preferences/in-content/security.xul.orig	2017-08-02 12:27:40 UTC
201
+++ browser/components/preferences/in-content/security.xul
202
@@ -78,9 +78,11 @@
203
               label="&enableSafeBrowsing.label;"
204
               accesskey="&enableSafeBrowsing.accesskey;" />
205
     <vbox class="indent">
206
+#ifdef MOZILLA_OFFICIAL
207
       <checkbox id="blockDownloads"
208
                 label="&blockDownloads.label;"
209
                 accesskey="&blockDownloads.accesskey;" />
210
+#endif
211
       <checkbox id="blockUncommonUnwanted"
212
                 label="&blockUncommonAndUnwanted.label;"
213
                 accesskey="&blockUncommonAndUnwanted.accesskey;" />
214
--- browser/components/preferences/in-content/tests/browser_security.js.orig	2017-06-12 16:37:12 UTC
215
+++ browser/components/preferences/in-content/tests/browser_security.js
216
@@ -40,9 +40,14 @@ add_task(async function() {
217
     let blockDownloads = doc.getElementById("blockDownloads");
218
     let blockUncommon = doc.getElementById("blockUncommonUnwanted");
219
     let checked = checkbox.checked;
220
+    if (!AppConstants.MOZILLA_OFFICIAL) {
221
+      is(blockDownloads, undefined, "downloads protection is disabled in un-official builds");
222
+    } else {
223
+      is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
224
+    }
225
+
226
     is(checked, val1 && val2, "safebrowsing preference is initialized correctly");
227
     // should be disabled when checked is false (= pref is turned off)
228
-    is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
229
     is(blockUncommon.hasAttribute("disabled"), !checked, "block uncommon checkbox is set correctly");
230
 
231
     // click the checkbox
232
@@ -56,8 +61,10 @@ add_task(async function() {
233
 
234
     // check if the other checkboxes have updated
235
     checked = checkbox.checked;
236
-    is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
237
-    is(blockUncommon.hasAttribute("disabled"), !checked || !blockDownloads.checked, "block uncommon checkbox is set correctly");
238
+    if (blockDownloads) {
239
+      is(blockDownloads.hasAttribute("disabled"), !checked, "block downloads checkbox is set correctly");
240
+      is(blockUncommon.hasAttribute("disabled"), !checked || !blockDownloads.checked, "block uncommon checkbox is set correctly");
241
+    }
242
   }
243
 
244
   await checkPrefSwitch(true, true);
245
@@ -76,6 +83,11 @@ add_task(async function() {
246
 
247
     let doc = gBrowser.selectedBrowser.contentDocument;
248
     let checkbox = doc.getElementById("blockDownloads");
249
+    if (!AppConstants.MOZILLA_OFFICIAL) {
250
+      is(checkbox, undefined, "downloads protection is disabled in un-official builds");
251
+      return;
252
+    }
253
+
254
     let blockUncommon = doc.getElementById("blockUncommonUnwanted");
255
     let checked = checkbox.checked;
256
     is(checked, val, "downloads preference is initialized correctly");
257
--- modules/libpref/init/all.js.orig	2017-08-28 20:18:28 UTC
258
+++ modules/libpref/init/all.js
259
@@ -5360,7 +5360,11 @@ pref("browser.safebrowsing.phishing.enabled", true);
260
 // Enable malware protection
261
 pref("browser.safebrowsing.malware.enabled", true);
262
 
263
+#ifdef MOZILLA_OFFICIAL
264
 pref("browser.safebrowsing.downloads.enabled", true);
265
+#else
266
+pref("browser.safebrowsing.downloads.enabled", false);
267
+#endif
268
 pref("browser.safebrowsing.downloads.remote.enabled", true);
269
 pref("browser.safebrowsing.downloads.remote.timeout_ms", 10000);
270
 pref("browser.safebrowsing.downloads.remote.url", "https://sb-ssl.google.com/safebrowsing/clientreport/download?key=%GOOGLE_API_KEY%");
(-)b/www/firefox/files/patch-bug826985 (-8 / +8 lines)
Lines 107-116 index 12df1b3..e9863ba 100644 Link Here
107
 
107
 
108
 #include <new>
108
 #include <new>
109
 
109
 
110
@@ -26,6 +31,15 @@
110
@@ -32,6 +35,15 @@
111
 #include "critical_section_wrapper.h"
111
 #include "webrtc/modules/video_capture/linux/video_capture_linux.h"
112
 #include "video_capture_linux.h"
112
 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
113
 
113
 #include "webrtc/system_wrappers/include/trace.h"
114
+
114
+#ifdef HAVE_LIBV4L2
115
+#ifdef HAVE_LIBV4L2
115
+#define open	v4l2_open
116
+#define open	v4l2_open
116
+#define close	v4l2_close
117
+#define close	v4l2_close
Lines 119-128 index 12df1b3..e9863ba 100644 Link Here
119
+#define mmap	v4l2_mmap
120
+#define mmap	v4l2_mmap
120
+#define munmap	v4l2_munmap
121
+#define munmap	v4l2_munmap
121
+#endif
122
+#endif
122
+
123
 
123
 namespace webrtc
124
 namespace webrtc {
124
 {
125
 namespace videocapturemodule {
125
 namespace videocapturemodule
126
diff --git media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
126
diff --git media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
127
index d46b5aa..e452223 100644
127
index d46b5aa..e452223 100644
128
--- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
128
--- media/webrtc/trunk/webrtc/modules/video_capture/video_capture.gypi
(-)b/www/firefox/files/patch-bug847568 (-1 / +1 lines)
Lines 261-267 index 9297e4d6f501..d8e273887e4b 100644 Link Here
261
+option('--with-system-harfbuzz',
261
+option('--with-system-harfbuzz',
262
+       help="Use system harfbuzz (located with pkgconfig)")
262
+       help="Use system harfbuzz (located with pkgconfig)")
263
+
263
+
264
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.6',
264
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.7',
265
+                                    when='--with-system-harfbuzz')
265
+                                    when='--with-system-harfbuzz')
266
+
266
+
267
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
267
+set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True))
(-)a/www/firefox/files/patch-rust-option (-816 lines)
Removed Link Here
1
Revert bug 1284816, bug 1341967, bug 1336153 to postpone bustage on non-x86 archs.
2
3
diff --git browser/confvars.sh browser/confvars.sh
4
index d8dcd99c2757..740d9d3e5fcf 100755
5
--- browser/confvars.sh
6
+++ browser/confvars.sh
7
@@ -30,6 +30,7 @@ if test "$OS_ARCH" = "WINNT"; then
8
   fi
9
 fi
10
 
11
+MOZ_RUST_MP4PARSE=1
12
 if test "$NIGHTLY_BUILD"; then
13
   MOZ_RUST_URLPARSE=1
14
 fi
15
diff --git build/moz.configure/rust.configure build/moz.configure/rust.configure
16
index 267d989f1597..f709820e60ae 100644
17
--- build/moz.configure/rust.configure
18
+++ build/moz.configure/rust.configure
19
@@ -4,10 +4,20 @@
20
 # License, v. 2.0. If a copy of the MPL was not distributed with this
21
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
22
 
23
-# Rust is required by `rust_compiler` below. We allow_missing here
24
-# to propagate failures to the better error message there.
25
-rustc = check_prog('RUSTC', ['rustc'], allow_missing=True)
26
-cargo = check_prog('CARGO', ['cargo'], allow_missing=True)
27
+option('--disable-rust', help='Don\'t include Rust language sources')
28
+
29
+@depends('--enable-rust')
30
+def rust_compiler_names(value):
31
+    if value:
32
+        return ['rustc']
33
+
34
+@depends('--enable-rust')
35
+def cargo_binary_names(value):
36
+    if value:
37
+        return ['cargo']
38
+
39
+rustc = check_prog('RUSTC', rust_compiler_names, allow_missing=True)
40
+cargo = check_prog('CARGO', cargo_binary_names, allow_missing=True)
41
 
42
 @depends_if(rustc)
43
 @checking('rustc version', lambda info: info.version)
44
@@ -43,9 +53,12 @@ def cargo_info(cargo):
45
         version=Version(version),
46
     )
47
 
48
-@depends(rustc_info, cargo_info)
49
+@depends('--enable-rust', rustc_info, cargo_info)
50
 @imports(_from='textwrap', _import='dedent')
51
-def rust_compiler(rustc_info, cargo_info):
52
+def rust_compiler(value, rustc_info, cargo_info):
53
+    if not value:
54
+        return None
55
+
56
     if not rustc_info:
57
         die(dedent('''\
58
         Rust compiler not found.
59
@@ -97,6 +110,9 @@ def rust_compiler(rustc_info, cargo_info):
60
 
61
     return True
62
 
63
+set_define('MOZ_RUST', rust_compiler)
64
+set_config('MOZ_RUST', rust_compiler)
65
+
66
 @template
67
 def rust_triple_alias(host_or_target):
68
     """Template defining the alias used for rustc's --target flag.
69
@@ -227,7 +243,8 @@ set_config('RUST_HOST_TARGET', rust_host_triple)
70
 
71
 @depends(rust_target_triple)
72
 def rust_target_env_name(triple):
73
-    return triple.upper().replace('-','_')
74
+    if triple:
75
+        return triple.upper().replace('-','_')
76
 
77
 # We need this to form various Cargo environment variables, as there is no
78
 # uppercase function in make, and we don't want to shell out just for
79
@@ -235,5 +252,6 @@ def rust_target_env_name(triple):
80
 set_config('RUST_TARGET_ENV_NAME', rust_target_env_name)
81
 
82
 # Until we remove all the other Rust checks in old-configure.
83
+add_old_configure_assignment('MOZ_RUST', rust_compiler)
84
 add_old_configure_assignment('RUSTC', rustc)
85
 add_old_configure_assignment('RUST_TARGET', rust_target_triple)
86
diff --git config/rules.mk config/rules.mk
87
index 94cc5556e3d0..7b143ebc5146 100644
88
--- config/rules.mk
89
+++ config/rules.mk
90
@@ -900,6 +900,7 @@ endif
91
 
92
 $(foreach file,$(DUMP_SYMS_TARGETS),$(eval $(call syms_template,$(file),$(file)_syms.track)))
93
 
94
+ifdef MOZ_RUST
95
 cargo_host_flag := --target=$(RUST_HOST_TARGET)
96
 cargo_target_flag := --target=$(RUST_TARGET)
97
 
98
@@ -1055,6 +1056,7 @@ force-cargo-host-program-build:
99
 
100
 $(HOST_RUST_PROGRAMS): force-cargo-host-program-build
101
 endif # HOST_RUST_PROGRAMS
102
+endif # MOZ_RUST
103
 
104
 $(SOBJS):
105
 	$(REPORT_BUILD)
106
diff --git dom/media/MediaPrefs.h dom/media/MediaPrefs.h
107
index 4dcc659222a4..559334d89fd1 100644
108
--- dom/media/MediaPrefs.h
109
+++ dom/media/MediaPrefs.h
110
@@ -183,7 +183,7 @@ private:
111
   DECL_MEDIA_PREF("media.ogg.flac.enabled",                   FlacInOgg, bool, false);
112
   DECL_MEDIA_PREF("media.flac.enabled",                       FlacEnabled, bool, true);
113
 
114
-#if !defined(RELEASE_OR_BETA)
115
+#if defined(MOZ_RUST_MP4PARSE) && !defined(RELEASE_OR_BETA)
116
   DECL_MEDIA_PREF("media.rust.test_mode",                     RustTestMode, bool, false);
117
 #endif
118
 
119
diff --git dom/media/gtest/moz.build dom/media/gtest/moz.build
120
index c66ac4a9437f..e2203c0a4321 100644
121
--- dom/media/gtest/moz.build
122
+++ dom/media/gtest/moz.build
123
@@ -22,7 +22,6 @@ UNIFIED_SOURCES += [
124
     'TestMozPromise.cpp',
125
     'TestMP3Demuxer.cpp',
126
     'TestMP4Demuxer.cpp',
127
-    'TestRust.cpp',
128
     'TestTrackEncoder.cpp',
129
     'TestVideoSegment.cpp',
130
     'TestVideoUtils.cpp',
131
@@ -36,6 +35,9 @@ if CONFIG['MOZ_WEBM_ENCODER']:
132
         'TestWebMWriter.cpp',
133
     ]
134
 
135
+if CONFIG['MOZ_RUST']:
136
+    UNIFIED_SOURCES += ['TestRust.cpp',]
137
+
138
 TEST_HARNESS_FILES.gtest += [
139
     '../test/gizmo-frag.mp4',
140
     '../test/gizmo.mp4',
141
diff --git media/libcubeb/src/moz.build media/libcubeb/src/moz.build
142
index c65b53b80f63..8953f646e831 100644
143
--- media/libcubeb/src/moz.build
144
+++ media/libcubeb/src/moz.build
145
@@ -32,7 +32,8 @@ if CONFIG['MOZ_PULSEAUDIO']:
146
         'cubeb_pulse.c',
147
     ]
148
     DEFINES['USE_PULSE'] = True
149
-    DEFINES['USE_PULSE_RUST'] = True
150
+    if CONFIG['MOZ_RUST']:
151
+        DEFINES['USE_PULSE_RUST'] = True
152
 
153
 if CONFIG['MOZ_JACK']:
154
     SOURCES += [
155
diff --git media/libstagefright/binding/DecoderData.cpp media/libstagefright/binding/DecoderData.cpp
156
index 109ea329d154..a06e533b1e62 100644
157
--- media/libstagefright/binding/DecoderData.cpp
158
+++ media/libstagefright/binding/DecoderData.cpp
159
@@ -13,9 +13,11 @@
160
 #include "mozilla/ArrayUtils.h"
161
 #include "include/ESDS.h"
162
 
163
+#ifdef MOZ_RUST_MP4PARSE
164
 // OpusDecoder header is really needed only by MP4 in rust
165
 #include "OpusDecoder.h"
166
 #include "mp4parse.h"
167
+#endif // MOZ_RUST_MP4PARSE
168
 
169
 using namespace stagefright;
170
 using mozilla::media::TimeUnit;
171
@@ -177,6 +179,7 @@ MP4VideoInfo::Update(const MetaData* aMetaData, const char* aMimeType)
172
   FindData(aMetaData, kKeyAVCC, mExtraData);
173
 }
174
 
175
+#ifdef MOZ_RUST_MP4PARSE
176
 static void
177
 UpdateTrackProtectedInfo(mozilla::TrackInfo& aConfig,
178
                          const mp4parse_sinf_info& aSinf)
179
@@ -263,6 +266,7 @@ MP4VideoInfo::Update(const mp4parse_track_info* track,
180
     mExtraData->AppendElements(video->extra_data.data, video->extra_data.length);
181
   }
182
 }
183
+#endif // MOZ_RUST_MP4PARSE
184
 
185
 bool
186
 MP4VideoInfo::IsValid() const
187
diff --git media/libstagefright/binding/MP4Metadata.cpp media/libstagefright/binding/MP4Metadata.cpp
188
index 5c3810d99a38..5d14dfd8b8a9 100644
189
--- media/libstagefright/binding/MP4Metadata.cpp
190
+++ media/libstagefright/binding/MP4Metadata.cpp
191
@@ -20,14 +20,18 @@
192
 #include "mp4_demuxer/MP4Metadata.h"
193
 #include "mp4_demuxer/Stream.h"
194
 #include "MediaPrefs.h"
195
+#ifdef MOZ_RUST_MP4PARSE
196
 #include "mp4parse.h"
197
+#endif // MOZ_RUST_MP4PARSE
198
 
199
 #include <limits>
200
 #include <stdint.h>
201
 #include <vector>
202
 
203
 
204
+#ifdef MOZ_RUST_MP4PARSE
205
 struct FreeMP4Parser { void operator()(mp4parse_parser* aPtr) { mp4parse_free(aPtr); } };
206
+#endif // MOZ_RUST_MP4PARSE
207
 
208
 using namespace stagefright;
209
 using mozilla::media::TimeUnit;
210
@@ -105,6 +109,7 @@ private:
211
   bool mCanSeek;
212
 };
213
 
214
+#ifdef MOZ_RUST_MP4PARSE
215
 // Wrap an mp4_demuxer::Stream to remember the read offset.
216
 
217
 class RustStreamAdaptor {
218
@@ -151,6 +156,7 @@ private:
219
   RustStreamAdaptor mRustSource;
220
   mozilla::UniquePtr<mp4parse_parser, FreeMP4Parser> mRustParser;
221
 };
222
+#endif // MOZ_RUST_MP4PARSE
223
 
224
 class IndiceWrapperStagefright : public IndiceWrapper {
225
 public:
226
@@ -187,6 +193,7 @@ IndiceWrapperStagefright::GetIndice(size_t aIndex, Index::Indice& aIndice) const
227
   return true;
228
 }
229
 
230
+#ifdef MOZ_RUST_MP4PARSE
231
 // the owner of mIndice is rust mp4 paser, so lifetime of this class
232
 // SHOULD NOT longer than rust parser.
233
 class IndiceWrapperRust : public IndiceWrapper
234
@@ -232,9 +239,11 @@ IndiceWrapperRust::GetIndice(size_t aIndex, Index::Indice& aIndice) const
235
   aIndice.sync = indice->sync;
236
   return true;
237
 }
238
+#endif // MOZ_RUST_MP4PARSE
239
 
240
 MP4Metadata::MP4Metadata(Stream* aSource)
241
  : mStagefright(MakeUnique<MP4MetadataStagefright>(aSource))
242
+#ifdef MOZ_RUST_MP4PARSE
243
  , mRust(MakeUnique<MP4MetadataRust>(aSource))
244
  , mPreferRust(MediaPrefs::EnableRustMP4Parser())
245
  , mReportedAudioTrackTelemetry(false)
246
@@ -242,6 +251,7 @@ MP4Metadata::MP4Metadata(Stream* aSource)
247
 #ifndef RELEASE_OR_BETA
248
  , mRustTestMode(MediaPrefs::RustTestMode())
249
 #endif
250
+#endif // MOZ_RUST_MP4PARSE
251
 {
252
 }
253
 
254
@@ -274,8 +284,11 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const
255
   MP4Metadata::ResultAndTrackCount numTracks =
256
     mStagefright->GetNumberTracks(aType);
257
 
258
+#ifdef MOZ_RUST_MP4PARSE
259
   if (!mRust) {
260
+#endif // MOZ_RUST_MP4PARSE
261
     return numTracks;
262
+#ifdef MOZ_RUST_MP4PARSE
263
   }
264
 
265
   MP4Metadata::ResultAndTrackCount numTracksRust =
266
@@ -350,8 +363,10 @@ MP4Metadata::GetNumberTracks(mozilla::TrackInfo::TrackType aType) const
267
   // Same non-error numbers, just return any.
268
   // (Choosing Rust here, in case it carries a warning, we'd want to know that.)
269
   return numTracksRust;
270
+#endif // MOZ_RUST_MP4PARSE
271
 }
272
 
273
+#ifdef MOZ_RUST_MP4PARSE
274
 bool MP4Metadata::ShouldPreferRust() const {
275
   if (!mRust) {
276
     return false;
277
@@ -389,6 +404,7 @@ bool MP4Metadata::ShouldPreferRust() const {
278
   // Otherwise, fall back.
279
   return false;
280
 }
281
+#endif // MOZ_RUST_MP4PARSE
282
 
283
 static const char*
284
 GetDifferentField(const mozilla::TrackInfo& info,
285
@@ -443,6 +459,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
286
   MP4Metadata::ResultAndTrackInfo info =
287
     mStagefright->GetTrackInfo(aType, aTrackNumber);
288
 
289
+#ifdef MOZ_RUST_MP4PARSE
290
   if (!mRust) {
291
     return info;
292
   }
293
@@ -514,6 +531,7 @@ MP4Metadata::GetTrackInfo(mozilla::TrackInfo::TrackType aType,
294
   if (mPreferRust) {
295
     return infoRust;
296
   }
297
+#endif // MOZ_RUST_MP4PARSE
298
 
299
   return info;
300
 }
301
@@ -528,6 +546,7 @@ MP4Metadata::ResultAndCryptoFile
302
 MP4Metadata::Crypto() const
303
 {
304
   MP4Metadata::ResultAndCryptoFile crypto = mStagefright->Crypto();
305
+#ifdef MOZ_RUST_MP4PARSE
306
   MP4Metadata::ResultAndCryptoFile rustCrypto = mRust->Crypto();
307
 
308
 #ifndef RELEASE_OR_BETA
309
@@ -548,6 +567,7 @@ MP4Metadata::Crypto() const
310
   if (mPreferRust) {
311
     return rustCrypto;
312
   }
313
+#endif // MOZ_RUST_MP4PARSE
314
 
315
   return crypto;
316
 }
317
@@ -556,17 +576,22 @@ MP4Metadata::ResultAndIndice
318
 MP4Metadata::GetTrackIndice(mozilla::TrackID aTrackID)
319
 {
320
   FallibleTArray<Index::Indice> indiceSF;
321
+#ifdef MOZ_RUST_MP4PARSE
322
   if (!mPreferRust
323
 #ifndef RELEASE_OR_BETA
324
       || mRustTestMode
325
 #endif
326
      ) {
327
+#endif // MOZ_RUST_MP4PARSE
328
     MediaResult rv = mStagefright->ReadTrackIndex(indiceSF, aTrackID);
329
     if (NS_FAILED(rv)) {
330
       return {Move(rv), nullptr};
331
     }
332
+#ifdef MOZ_RUST_MP4PARSE
333
   }
334
+#endif // MOZ_RUST_MP4PARSE
335
 
336
+#ifdef MOZ_RUST_MP4PARSE
337
   mp4parse_byte_data indiceRust = {};
338
   if (mPreferRust
339
 #ifndef RELEASE_OR_BETA
340
@@ -592,13 +617,18 @@ MP4Metadata::GetTrackIndice(mozilla::TrackID aTrackID)
341
     }
342
   }
343
 #endif
344
+#endif // MOZ_RUST_MP4PARSE
345
 
346
   UniquePtr<IndiceWrapper> indice;
347
+#ifdef MOZ_RUST_MP4PARSE
348
   if (mPreferRust) {
349
     indice = mozilla::MakeUnique<IndiceWrapperRust>(indiceRust);
350
   } else {
351
+#endif // MOZ_RUST_MP4PARSE
352
     indice = mozilla::MakeUnique<IndiceWrapperStagefright>(indiceSF);
353
+#ifdef MOZ_RUST_MP4PARSE
354
   }
355
+#endif // MOZ_RUST_MP4PARSE
356
 
357
   return {NS_OK, Move(indice)};
358
 }
359
@@ -856,6 +886,7 @@ MP4MetadataStagefright::Metadata(Stream* aSource)
360
   return {NS_OK, Move(buffer)};
361
 }
362
 
363
+#ifdef MOZ_RUST_MP4PARSE
364
 bool
365
 RustStreamAdaptor::Read(uint8_t* buffer, uintptr_t size, size_t* bytes_read)
366
 {
367
@@ -1152,5 +1183,6 @@ MP4MetadataRust::Metadata(Stream* aSource)
368
   MOZ_ASSERT(false, "Not yet implemented");
369
   return {NS_ERROR_NOT_IMPLEMENTED, nullptr};
370
 }
371
+#endif // MOZ_RUST_MP4PARSE
372
 
373
 } // namespace mp4_demuxer
374
diff --git media/libstagefright/binding/include/mp4_demuxer/DecoderData.h media/libstagefright/binding/include/mp4_demuxer/DecoderData.h
375
index 3cd4b7c142f4..dc25ddf03b10 100644
376
--- media/libstagefright/binding/include/mp4_demuxer/DecoderData.h
377
+++ media/libstagefright/binding/include/mp4_demuxer/DecoderData.h
378
@@ -19,11 +19,13 @@ namespace stagefright
379
 class MetaData;
380
 }
381
 
382
+#ifdef MOZ_RUST_MP4PARSE
383
 extern "C" {
384
 typedef struct mp4parse_track_info mp4parse_track_info;
385
 typedef struct mp4parse_track_audio_info mp4parse_track_audio_info;
386
 typedef struct mp4parse_track_video_info mp4parse_track_video_info;
387
 }
388
+#endif // MOZ_RUST_MP4PARSE
389
 
390
 namespace mp4_demuxer
391
 {
392
@@ -71,8 +73,10 @@ public:
393
   void Update(const stagefright::MetaData* aMetaData,
394
               const char* aMimeType);
395
 
396
+#ifdef MOZ_RUST_MP4PARSE
397
   void Update(const mp4parse_track_info* track,
398
               const mp4parse_track_audio_info* audio);
399
+#endif // MOZ_RUST_MP4PARSE
400
 
401
   virtual bool IsValid() const override;
402
 };
403
@@ -85,8 +89,10 @@ public:
404
   void Update(const stagefright::MetaData* aMetaData,
405
               const char* aMimeType);
406
 
407
+#ifdef MOZ_RUST_MP4PARSE
408
   void Update(const mp4parse_track_info* track,
409
               const mp4parse_track_video_info* video);
410
+#endif // MOZ_RUST_MP4PARSE
411
 
412
   virtual bool IsValid() const override;
413
 };
414
diff --git media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h
415
index 492c9c1c1bc3..e16dbbd1155e 100644
416
--- media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h
417
+++ media/libstagefright/binding/include/mp4_demuxer/MP4Metadata.h
418
@@ -13,7 +13,9 @@
419
 #include "MediaInfo.h"
420
 #include "MediaResult.h"
421
 #include "Stream.h"
422
+#ifdef MOZ_RUST_MP4PARSE
423
 #include "mp4parse.h"
424
+#endif // MOZ_RUST_MP4PARSE
425
 
426
 namespace mp4_demuxer {
427
 
428
@@ -82,6 +84,7 @@ public:
429
 
430
 private:
431
   UniquePtr<MP4MetadataStagefright> mStagefright;
432
+#ifdef MOZ_RUST_MP4PARSE
433
   UniquePtr<MP4MetadataRust> mRust;
434
   mutable bool mPreferRust;
435
   mutable bool mReportedAudioTrackTelemetry;
436
@@ -90,6 +93,7 @@ private:
437
   mutable bool mRustTestMode;
438
 #endif
439
   bool ShouldPreferRust() const;
440
+#endif // MOZ_RUST_MP4PARSE
441
 };
442
 
443
 } // namespace mp4_demuxer
444
diff --git media/libstagefright/gtest/moz.build media/libstagefright/gtest/moz.build
445
index be4d56fc93f7..66fdd365f8f3 100644
446
--- media/libstagefright/gtest/moz.build
447
+++ media/libstagefright/gtest/moz.build
448
@@ -38,12 +38,13 @@ TEST_HARNESS_FILES.gtest += [
449
     'test_case_1351094.mp4',
450
 ]
451
 
452
-UNIFIED_SOURCES += ['TestMP4Rust.cpp',]
453
-TEST_HARNESS_FILES.gtest += [
454
-    '../../../dom/media/test/street.mp4',
455
-]
456
-LOCAL_INCLUDES += [
457
-    '../binding/include',
458
-]
459
+if CONFIG['MOZ_RUST']:
460
+    UNIFIED_SOURCES += ['TestMP4Rust.cpp',]
461
+    TEST_HARNESS_FILES.gtest += [
462
+        '../../../dom/media/test/street.mp4',
463
+    ]
464
+    LOCAL_INCLUDES += [
465
+        '../binding/include',
466
+    ]
467
 
468
 FINAL_LIBRARY = 'xul-gtest'
469
diff --git media/libstagefright/moz.build media/libstagefright/moz.build
470
index af5d1194d621..6725a0179989 100644
471
--- media/libstagefright/moz.build
472
+++ media/libstagefright/moz.build
473
@@ -83,9 +83,10 @@ SOURCES += [
474
     'system/core/libutils/VectorImpl.cpp',
475
 ]
476
 
477
-EXPORTS += [
478
-    'binding/include/mp4parse.h',
479
-]
480
+if CONFIG['MOZ_RUST']:
481
+    EXPORTS += [
482
+        'binding/include/mp4parse.h',
483
+    ]
484
 
485
 UNIFIED_SOURCES += [
486
     'binding/Adts.cpp',
487
diff --git mobile/android/confvars.sh mobile/android/confvars.sh
488
index e79b6f5c0707..eb62763acaf7 100644
489
--- mobile/android/confvars.sh
490
+++ mobile/android/confvars.sh
491
@@ -30,6 +30,8 @@ MOZ_XULRUNNER=
492
 MOZ_CAPTURE=1
493
 MOZ_RAW=1
494
 
495
+MOZ_RUST_MP4PARSE=1
496
+
497
 # use custom widget for html:select
498
 MOZ_USE_NATIVE_POPUP_WINDOWS=1
499
 
500
diff --git netwerk/base/moz.build netwerk/base/moz.build
501
index 61d022a9660e..e5ca1d77d859 100644
502
--- netwerk/base/moz.build
503
+++ netwerk/base/moz.build
504
@@ -256,7 +256,7 @@ UNIFIED_SOURCES += [
505
     'TLSServerSocket.cpp',
506
 ]
507
 
508
-if CONFIG['MOZ_RUST_URLPARSE']:
509
+if CONFIG['MOZ_RUST'] and CONFIG['MOZ_RUST_URLPARSE']:
510
     EXPORTS.mozilla.net += [ 'RustURL.h' ]
511
     UNIFIED_SOURCES += [ 'RustURL.cpp' ]
512
 
513
diff --git netwerk/base/nsStandardURL.cpp netwerk/base/nsStandardURL.cpp
514
index 608b918a4ecf..20bcdeb34ab8 100644
515
--- netwerk/base/nsStandardURL.cpp
516
+++ netwerk/base/nsStandardURL.cpp
517
@@ -858,6 +858,7 @@ nsStandardURL::BuildNormalizedSpec(const char *spec)
518
         if (!SegmentIs(spec, mScheme, "resource") &&
519
             !SegmentIs(spec, mScheme, "chrome")) {
520
             nsAutoCString ipString;
521
+#ifdef MOZ_RUST
522
             if (encHost.Length() > 0 &&
523
                 encHost.First() == '[' && encHost.Last() == ']' &&
524
                 ValidIPv6orHostname(encHost.get(), encHost.Length())) {
525
@@ -866,7 +867,9 @@ nsStandardURL::BuildNormalizedSpec(const char *spec)
526
                     return rv;
527
                 }
528
                 encHost = ipString;
529
-            } else if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) {
530
+            } else
531
+#endif
532
+            if (NS_SUCCEEDED(NormalizeIPv4(encHost, ipString))) {
533
                 encHost = ipString;
534
             }
535
         }
536
@@ -2112,6 +2115,7 @@ nsStandardURL::SetHost(const nsACString &input)
537
 
538
     if (!SegmentIs(mScheme, "resource") && !SegmentIs(mScheme, "chrome")) {
539
         nsAutoCString ipString;
540
+#ifdef MOZ_RUST
541
         if (hostBuf.Length() > 0 &&
542
             hostBuf.First() == '[' && hostBuf.Last() == ']' &&
543
             ValidIPv6orHostname(hostBuf.get(), hostBuf.Length())) {
544
@@ -2120,7 +2124,9 @@ nsStandardURL::SetHost(const nsACString &input)
545
                 return rv;
546
             }
547
             hostBuf = ipString;
548
-        } else if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) {
549
+        } else
550
+#endif
551
+        if (NS_SUCCEEDED(NormalizeIPv4(hostBuf, ipString))) {
552
           hostBuf = ipString;
553
         }
554
     }
555
diff --git old-configure.in old-configure.in
556
index 717a94fcc692..54b29d737cc1 100644
557
--- old-configure.in
558
+++ old-configure.in
559
@@ -2330,9 +2330,14 @@ if test -n "$MOZ_MULET"; then
560
 fi
561
 
562
 # Propagate feature switches for code written in rust from confvars.sh
563
-if test -n "$MOZ_RUST_URLPARSE"; then
564
-    AC_DEFINE(MOZ_RUST_URLPARSE)
565
-    AC_SUBST(MOZ_RUST_URLPARSE)
566
+if test -n "$MOZ_RUST"; then
567
+    if test -n "$MOZ_RUST_MP4PARSE"; then
568
+        AC_DEFINE(MOZ_RUST_MP4PARSE)
569
+    fi
570
+    if test -n "$MOZ_RUST_URLPARSE"; then
571
+        AC_DEFINE(MOZ_RUST_URLPARSE)
572
+        AC_SUBST(MOZ_RUST_URLPARSE)
573
+    fi
574
 fi
575
 
576
 AC_SUBST(MOZ_PHOENIX)
577
diff --git toolkit/components/telemetry/Histograms.json toolkit/components/telemetry/Histograms.json
578
index 061c55f6a5b6..e49dfd176952 100644
579
--- toolkit/components/telemetry/Histograms.json
580
+++ toolkit/components/telemetry/Histograms.json
581
@@ -8320,7 +8320,8 @@
582
     "expires_in_version": "60",
583
     "kind": "boolean",
584
     "bug_numbers": [1220885],
585
-    "description": "Whether the rust mp4 demuxer successfully parsed a stream segment."
586
+    "description": "Whether the rust mp4 demuxer successfully parsed a stream segment.",
587
+    "cpp_guard": "MOZ_RUST_MP4PARSE"
588
   },
589
   "MEDIA_RUST_MP4PARSE_ERROR_CODE": {
590
     "record_in_processes": ["main", "content"],
591
@@ -8329,7 +8330,8 @@
592
     "kind": "enumerated",
593
     "n_values": 32,
594
     "bug_numbers": [1238420],
595
-    "description": "The error code reported when an MP4 parse attempt has failed.0 = OK, 1 = bad argument, 2 = invalid data, 3 = unsupported, 4 = unexpected end of file, 5 = read error."
596
+    "description": "The error code reported when an MP4 parse attempt has failed.0 = OK, 1 = bad argument, 2 = invalid data, 3 = unsupported, 4 = unexpected end of file, 5 = read error.",
597
+    "cpp_guard": "MOZ_RUST_MP4PARSE"
598
   },
599
   "MEDIA_RUST_MP4PARSE_TRACK_MATCH_AUDIO": {
600
     "record_in_processes": ["main", "content"],
601
@@ -8337,7 +8339,8 @@
602
     "expires_in_version": "60",
603
     "kind": "boolean",
604
     "bug_numbers": [1231169],
605
-    "description": "Whether rust and stagefight mp4 parser audio track results match."
606
+    "description": "Whether rust and stagefight mp4 parser audio track results match.",
607
+    "cpp_guard": "MOZ_RUST_MP4PARSE"
608
   },
609
   "MEDIA_RUST_MP4PARSE_TRACK_MATCH_VIDEO": {
610
     "record_in_processes": ["main", "content"],
611
@@ -8345,7 +8348,8 @@
612
     "expires_in_version": "60",
613
     "kind": "boolean",
614
     "bug_numbers": [1231169],
615
-    "description": "Whether rust and stagefight mp4 parser video track results match."
616
+    "description": "Whether rust and stagefight mp4 parser video track results match.",
617
+    "cpp_guard": "MOZ_RUST_MP4PARSE"
618
   },
619
   "MEDIA_WMF_DECODE_ERROR": {
620
     "record_in_processes": ["main", "content", "gpu"],
621
diff --git toolkit/library/gtest/moz.build toolkit/library/gtest/moz.build
622
index 69a8fb1f4893..c684f48e456e 100644
623
--- toolkit/library/gtest/moz.build
624
+++ toolkit/library/gtest/moz.build
625
@@ -7,7 +7,6 @@
626
 FINAL_TARGET = 'dist/bin/gtest'
627
 
628
 USE_LIBS += [
629
-    'gkrust-gtest',
630
     'static:xul',
631
     # xul-gtest is an intermediate static library. It is used as FINAL_TARGET
632
     # for gtest code.
633
@@ -21,6 +20,11 @@ USE_LIBS += [
634
 # before StaticXULComponentStart.
635
 Libxul('xul-gtest-real')
636
 
637
+if CONFIG['MOZ_RUST']:
638
+    USE_LIBS += [
639
+        'gkrust-gtest',
640
+    ]
641
+
642
 DIRS += [
643
     'static',
644
 ]
645
diff --git toolkit/library/moz.build toolkit/library/moz.build
646
index 650f6eaba980..191e90ceb09a 100644
647
--- toolkit/library/moz.build
648
+++ toolkit/library/moz.build
649
@@ -63,7 +63,7 @@ def Libxul(name):
650
 
651
     # This option should go away in bug 1290972, but we need to wait until
652
     # Rust 1.12 has been released.
653
-    if CONFIG['OS_ARCH'] == 'Darwin':
654
+    if CONFIG['MOZ_RUST'] and CONFIG['OS_ARCH'] == 'Darwin':
655
         LDFLAGS += ['-Wl,-no_compact_unwind']
656
 
657
 Libxul('xul')
658
@@ -343,4 +343,5 @@ USE_LIBS += ['StaticXULComponentsEnd']
659
 # The above library needs to be last for C++ purposes.  This library,
660
 # however, is entirely composed of Rust code, and needs to come after
661
 # all the C++ code so any possible C++ -> Rust calls can be resolved.
662
-USE_LIBS += ['gkrust']
663
+if CONFIG['MOZ_RUST']:
664
+    USE_LIBS += ['gkrust']
665
diff --git toolkit/moz.configure toolkit/moz.configure
666
index ac9d123224ce..e90da70f0fa5 100644
667
--- toolkit/moz.configure
668
+++ toolkit/moz.configure
669
@@ -88,8 +88,7 @@ include('../js/moz.configure')
670
 
671
 # Rust
672
 # ==============================================================
673
-include('../build/moz.configure/rust.configure',
674
-        when='--enable-compile-environment')
675
+include('../build/moz.configure/rust.configure')
676
 
677
 
678
 # L10N
679
@@ -623,13 +622,13 @@ id_and_secret_keyfile('Leanplum SDK')
680
 option('--enable-stylo', nargs='?', choices=('build',),
681
        help='Include Stylo in the build and/or enable it at runtime')
682
 
683
-@depends('--enable-stylo')
684
-def stylo_config(value):
685
+@depends('--enable-stylo', '--enable-rust')
686
+def stylo_config(value, rust_enabled):
687
     build_stylo = None
688
     enable_stylo = None
689
 
690
     # The default is to not build Stylo at all.
691
-    if value.origin == 'default':
692
+    if not rust_enabled or value.origin == 'default':
693
         pass
694
     elif value == 'build':
695
         build_stylo = True
696
@@ -769,12 +768,14 @@ set_config('SERVO_TARGET_DIR', servo_target_dir)
697
 option('--enable-webrender', nargs='?', choices=('build',),
698
        help='Include WebRender in the build and/or enable it at runtime')
699
 
700
-@depends('--enable-webrender', milestone)
701
-def webrender(value, milestone):
702
+@depends('--enable-webrender', '--enable-rust', milestone)
703
+def webrender(value, rust_enabled, milestone):
704
     build_webrender = None
705
     enable_webrender = None
706
 
707
-    if value.origin == 'default':
708
+    if not rust_enabled:
709
+        pass
710
+    elif value.origin == 'default':
711
         # if nothing is specified, default to just building on Nightly
712
         build_webrender = milestone.is_nightly
713
     elif value == 'build':
714
diff --git toolkit/toolkit.mozbuild toolkit/toolkit.mozbuild
715
index b845aab48023..9215afc6dd2d 100644
716
--- toolkit/toolkit.mozbuild
717
+++ toolkit/toolkit.mozbuild
718
@@ -133,16 +133,23 @@ if CONFIG['MOZ_PREF_EXTENSIONS']:
719
 
720
 DIRS += [
721
     '/devtools',
722
-    '/toolkit/library',
723
-    '/toolkit/library/gtest/rust',
724
-    '/toolkit/library/rust',
725
-    '/toolkit/library/StaticXULComponentsEnd',
726
     '/services',
727
     '/startupcache',
728
     '/js/ductwork/debugger',
729
     '/other-licenses/snappy',
730
 ]
731
 
732
+if CONFIG['MOZ_RUST']:
733
+    DIRS += [
734
+        '/toolkit/library/gtest/rust',
735
+        '/toolkit/library/rust',
736
+    ]
737
+
738
+DIRS += [
739
+    '/toolkit/library/StaticXULComponentsEnd',
740
+    '/toolkit/library',
741
+]
742
+
743
 if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
744
     DIRS += ['/toolkit/system/gnome']
745
 
746
diff --git toolkit/xre/nsAppRunner.cpp toolkit/xre/nsAppRunner.cpp
747
index 667c2eb1b365..6fb6cf102baa 100644
748
--- toolkit/xre/nsAppRunner.cpp
749
+++ toolkit/xre/nsAppRunner.cpp
750
@@ -227,11 +227,13 @@
751
 extern uint32_t gRestartMode;
752
 extern void InstallSignalHandlers(const char *ProgramName);
753
 
754
+#ifdef MOZ_RUST
755
 // This workaround is fixed in Rust 1.19. For details, see bug 1358151.
756
 // Implementation in toolkit/library/rust/shared/lib.rs
757
 extern "C" {
758
   void rust_init_please_remove_this_after_updating_rust_1_19();
759
 }
760
+#endif
761
 
762
 #define FILE_COMPATIBILITY_INFO NS_LITERAL_CSTRING("compatibility.ini")
763
 #define FILE_INVALIDATE_CACHES NS_LITERAL_CSTRING(".purgecaches")
764
@@ -3122,8 +3124,10 @@ XREMain::XRE_mainInit(bool* aExitFlag)
765
     return 1;
766
   *aExitFlag = false;
767
 
768
+#ifdef MOZ_RUST
769
   // This workaround is fixed in Rust 1.19. For details, see bug 1358151.
770
   rust_init_please_remove_this_after_updating_rust_1_19();
771
+#endif
772
 
773
   atexit(UnexpectedExit);
774
   auto expectedShutdown = mozilla::MakeScopeExit([&] {
775
diff --git xpcom/base/nsDebugImpl.cpp xpcom/base/nsDebugImpl.cpp
776
index e6bb623c258b..c49d61dce605 100644
777
--- xpcom/base/nsDebugImpl.cpp
778
+++ xpcom/base/nsDebugImpl.cpp
779
@@ -148,14 +148,20 @@ nsDebugImpl::Abort(const char* aFile, int32_t aLine)
780
   return NS_OK;
781
 }
782
 
783
+#ifdef MOZ_RUST
784
 // From toolkit/library/rust/lib.rs
785
 extern "C" void intentional_panic(const char* message);
786
+#endif
787
 
788
 NS_IMETHODIMP
789
 nsDebugImpl::RustPanic(const char* aMessage)
790
 {
791
+#ifdef MOZ_RUST
792
   intentional_panic(aMessage);
793
   return NS_OK;
794
+#else
795
+  return NS_ERROR_NOT_IMPLEMENTED;
796
+#endif
797
 }
798
 
799
 NS_IMETHODIMP
800
diff --git xpcom/rust/nsstring/gtest/moz.build xpcom/rust/nsstring/gtest/moz.build
801
index 197411678815..5bed9e57e57d 100644
802
--- xpcom/rust/nsstring/gtest/moz.build
803
+++ xpcom/rust/nsstring/gtest/moz.build
804
@@ -4,8 +4,9 @@
805
 # License, v. 2.0. If a copy of the MPL was not distributed with this
806
 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
807
 
808
-UNIFIED_SOURCES += [
809
-    'Test.cpp'
810
-]
811
+if CONFIG['MOZ_RUST']:
812
+    UNIFIED_SOURCES += [
813
+        'Test.cpp'
814
+    ]
815
 
816
 FINAL_LIBRARY = 'xul-gtest'

Return to bug 221335