View | Details | Raw Unified | Return to bug 222693 | 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 56
40
_GECKO_VERSIONS=		52 57
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
56_DEPENDS=		${LOCALBASE}/lib/firefox/firefox:www/firefox
45
57_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/www/firefox-i18n/Makefile (-3 / +3 lines)
Lines 2-11 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	firefox-i18n
4
PORTNAME=	firefox-i18n
5
PORTVERSION=	56.0.2
5
PORTVERSION=	57.0
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/build1/linux-i686/xpi
8
		MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build3/linux-i686/xpi
9
PKGNAMEPREFIX=
9
PKGNAMEPREFIX=
10
DISTFILES=	${FIREFOX_I18N_:S/$/.xpi/}
10
DISTFILES=	${FIREFOX_I18N_:S/$/.xpi/}
11
DIST_SUBDIR=	xpi/${DISTNAME}
11
DIST_SUBDIR=	xpi/${DISTNAME}
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,56,build
18
USES=		zip:infozip gecko:firefox,57,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 = 1508873487
1
TIMESTAMP = 1510006447
2
SHA256 (xpi/firefox-i18n-56.0.2/ach.xpi) = a78c4900c9dac71ea312d5ceda13987f4f8418ab078374c0e292cd30ce79aa23
2
SHA256 (xpi/firefox-i18n-57.0/ach.xpi) = ff5bbdfcca5270cf978173eb13ce10bfb4b51dbd1faeb9b69c50f689a1eb3dc4
3
SIZE (xpi/firefox-i18n-56.0.2/ach.xpi) = 454896
3
SIZE (xpi/firefox-i18n-57.0/ach.xpi) = 441112
4
SHA256 (xpi/firefox-i18n-56.0.2/af.xpi) = e0ea5e99eb7cedd0c3893ae4baa3ca2af7f814bc069dcbf921069dcaba762fc6
4
SHA256 (xpi/firefox-i18n-57.0/af.xpi) = 65459a5914dba1de876bee7d867699ff033a9722a957675f973b5cf1213366b9
5
SIZE (xpi/firefox-i18n-56.0.2/af.xpi) = 456214
5
SIZE (xpi/firefox-i18n-57.0/af.xpi) = 442205
6
SHA256 (xpi/firefox-i18n-56.0.2/an.xpi) = 18e3c4e6f85fb296bd955b110ba2c6a381ba4ba8de3a0e2990bc4618f9438593
6
SHA256 (xpi/firefox-i18n-57.0/an.xpi) = d24b77cfdf3d5badd492c04f5984171bedbafcee31fb447930925e2c911e5261
7
SIZE (xpi/firefox-i18n-56.0.2/an.xpi) = 475863
7
SIZE (xpi/firefox-i18n-57.0/an.xpi) = 462777
8
SHA256 (xpi/firefox-i18n-56.0.2/ar.xpi) = c8dcb494321e5ef34092b7555ec67147461b387803df895c30858314f0509acb
8
SHA256 (xpi/firefox-i18n-57.0/ar.xpi) = 06b0d8f7f34eb661f8f4944c26ddeee81e84bb00dd07dec4f1f06e54f1cdbe6f
9
SIZE (xpi/firefox-i18n-56.0.2/ar.xpi) = 500711
9
SIZE (xpi/firefox-i18n-57.0/ar.xpi) = 488159
10
SHA256 (xpi/firefox-i18n-56.0.2/as.xpi) = e77f99a72083b49e30f453d1f40ac670e42e6a637b8bb4e7c914f74b24e6b582
10
SHA256 (xpi/firefox-i18n-57.0/as.xpi) = 8229d02b5f8b88dea2a6e8f83db6c335c951ebf786f4d73fe28dde8457ae4d59
11
SIZE (xpi/firefox-i18n-56.0.2/as.xpi) = 508237
11
SIZE (xpi/firefox-i18n-57.0/as.xpi) = 491074
12
SHA256 (xpi/firefox-i18n-56.0.2/ast.xpi) = e4fe6028af88b67dce678e6a1215cda2c2aa0cbe76eb95947c46e08d93bb23bc
12
SHA256 (xpi/firefox-i18n-57.0/ast.xpi) = 0f46b1d36c23ec86656208241e692f2f4fef6338285dd54621939a53672d497d
13
SIZE (xpi/firefox-i18n-56.0.2/ast.xpi) = 469157
13
SIZE (xpi/firefox-i18n-57.0/ast.xpi) = 455503
14
SHA256 (xpi/firefox-i18n-56.0.2/az.xpi) = 5d9cd26da6e1afe41c9d032054b066a9e0a13f7cfd9701e8126147f405ae6f1a
14
SHA256 (xpi/firefox-i18n-57.0/az.xpi) = 68db90d2cc24227407dc20cb8721b5f89ae875fc3e0248981bf5349b2348030d
15
SIZE (xpi/firefox-i18n-56.0.2/az.xpi) = 484984
15
SIZE (xpi/firefox-i18n-57.0/az.xpi) = 466042
16
SHA256 (xpi/firefox-i18n-56.0.2/be.xpi) = 647318eb3b3060ba2384ecf4b4b96fb70fb54f1428c20f776d8d99f75eed5f49
16
SHA256 (xpi/firefox-i18n-57.0/be.xpi) = 9e9c151874180d2ccf6ac1e7e7a59a5d2e72f9543bb6c128416fad177a2f01cb
17
SIZE (xpi/firefox-i18n-56.0.2/be.xpi) = 531385
17
SIZE (xpi/firefox-i18n-57.0/be.xpi) = 516091
18
SHA256 (xpi/firefox-i18n-56.0.2/bg.xpi) = a844374d3453747f30382acf6019d379596f812f68d49ba7245a18993cea5ffb
18
SHA256 (xpi/firefox-i18n-57.0/bg.xpi) = 10c386468c1d34676a7d4e3992f14d853cd29f61bd1d12b04f3f1b66ebb8993b
19
SIZE (xpi/firefox-i18n-56.0.2/bg.xpi) = 528789
19
SIZE (xpi/firefox-i18n-57.0/bg.xpi) = 510349
20
SHA256 (xpi/firefox-i18n-56.0.2/bn-BD.xpi) = caafe8df84189999ed513e4f88e91f8b8c35e8a1d13fa54bd54f3a0654ec1f02
20
SHA256 (xpi/firefox-i18n-57.0/bn-BD.xpi) = 11b541a18a34fee16337dd8648a36e45b6c5371e9c17a845985120e6a7b1997d
21
SIZE (xpi/firefox-i18n-56.0.2/bn-BD.xpi) = 542772
21
SIZE (xpi/firefox-i18n-57.0/bn-BD.xpi) = 527188
22
SHA256 (xpi/firefox-i18n-56.0.2/bn-IN.xpi) = 4278938cf3be47f2e7a865a2221c10f383b8c7930f71b2bd0c4ce09c1ff8a3c8
22
SHA256 (xpi/firefox-i18n-57.0/bn-IN.xpi) = f8c912705b760607456a140506f3120e9d7c9f0ee17508d4cbd1eb3e18bc895d
23
SIZE (xpi/firefox-i18n-56.0.2/bn-IN.xpi) = 534450
23
SIZE (xpi/firefox-i18n-57.0/bn-IN.xpi) = 516175
24
SHA256 (xpi/firefox-i18n-56.0.2/br.xpi) = 65e8b0a3e55e99701e0ecfb9cdb0775afc0946f23eab34d4ada4f0d973d2076d
24
SHA256 (xpi/firefox-i18n-57.0/br.xpi) = 4c76bf9c4b39dac467de391527072ca6d81c83a9ccbead46dbbbb76a8ab7c252
25
SIZE (xpi/firefox-i18n-56.0.2/br.xpi) = 464256
25
SIZE (xpi/firefox-i18n-57.0/br.xpi) = 451865
26
SHA256 (xpi/firefox-i18n-56.0.2/bs.xpi) = fef54b5ba9231eaedbe216c1f9e7c86d831ed032d1fcd6e5dd15a06619ad69ac
26
SHA256 (xpi/firefox-i18n-57.0/bs.xpi) = 4d3c483b4e3a20a852ddb5fe6a0d1f447366310dee446317017ebdf332e129c1
27
SIZE (xpi/firefox-i18n-56.0.2/bs.xpi) = 472256
27
SIZE (xpi/firefox-i18n-57.0/bs.xpi) = 459649
28
SHA256 (xpi/firefox-i18n-56.0.2/ca.xpi) = 11dc866f5f2a16622fa45c36c174150293e123bfd970890e4403ed224d6e4eb6
28
SHA256 (xpi/firefox-i18n-57.0/ca.xpi) = 21fc2934acb751e89badbf215aad67085c310cbb627e44277d9592aaf213a837
29
SIZE (xpi/firefox-i18n-56.0.2/ca.xpi) = 480364
29
SIZE (xpi/firefox-i18n-57.0/ca.xpi) = 466640
30
SHA256 (xpi/firefox-i18n-56.0.2/cak.xpi) = 1ed05bcdb3977850ae21847f70122111ff459cc6669130ec9db5ccf11dde117f
30
SHA256 (xpi/firefox-i18n-57.0/cak.xpi) = 95c3cff1bd43dc2f14e99a0c10d8f101beb4e940f810279a2912571ddeff6326
31
SIZE (xpi/firefox-i18n-56.0.2/cak.xpi) = 489507
31
SIZE (xpi/firefox-i18n-57.0/cak.xpi) = 475934
32
SHA256 (xpi/firefox-i18n-56.0.2/cs.xpi) = 1191121195a77ec1315ec379b307819f1ce6b15bfa1bb9fc31ec0148cb08bcf5
32
SHA256 (xpi/firefox-i18n-57.0/cs.xpi) = c579929028397c8f93ed7193cc4f2a6511a5b503d59d02d6599701d7fab393db
33
SIZE (xpi/firefox-i18n-56.0.2/cs.xpi) = 485090
33
SIZE (xpi/firefox-i18n-57.0/cs.xpi) = 469456
34
SHA256 (xpi/firefox-i18n-56.0.2/cy.xpi) = a04d0d37f46b89d2aba85eebc1524daba41b3a6db468e61a924e83b2814d8845
34
SHA256 (xpi/firefox-i18n-57.0/cy.xpi) = 3442262d271a47173226ae327be47524ab0237b0ebaea73c61c61177463f81fa
35
SIZE (xpi/firefox-i18n-56.0.2/cy.xpi) = 466288
35
SIZE (xpi/firefox-i18n-57.0/cy.xpi) = 455787
36
SHA256 (xpi/firefox-i18n-56.0.2/da.xpi) = 3822d31c6b83317216f5124d603d9a8b8180a06d2407426dd90b71891c155f0c
36
SHA256 (xpi/firefox-i18n-57.0/da.xpi) = 538e9cce1e72af3ce6c6bbfe0a310529099dc95100546974e8b0a228860854a3
37
SIZE (xpi/firefox-i18n-56.0.2/da.xpi) = 460091
37
SIZE (xpi/firefox-i18n-57.0/da.xpi) = 448415
38
SHA256 (xpi/firefox-i18n-56.0.2/de.xpi) = ee02b96baf96be7e69ff12f06576a270e48ca454cc8f93c51070ebdd9c2a03f7
38
SHA256 (xpi/firefox-i18n-57.0/de.xpi) = bb4c883efe6f393ed47d91712901ca0bff04951db9e83ab5c981811e60512461
39
SIZE (xpi/firefox-i18n-56.0.2/de.xpi) = 473856
39
SIZE (xpi/firefox-i18n-57.0/de.xpi) = 460812
40
SHA256 (xpi/firefox-i18n-56.0.2/dsb.xpi) = 227588519f2ae092f6cbf0531287c5c36b7037c3355cc0d9e0e024d4e84472e3
40
SHA256 (xpi/firefox-i18n-57.0/dsb.xpi) = 51ef0a8a83770dab060779d6b34478a60d080e743b8c446b791a89236161f29e
41
SIZE (xpi/firefox-i18n-56.0.2/dsb.xpi) = 489897
41
SIZE (xpi/firefox-i18n-57.0/dsb.xpi) = 479506
42
SHA256 (xpi/firefox-i18n-56.0.2/el.xpi) = ace7c78e28297ea4dcc90a2b8c2881afc812a2416ae4cdba499749349bc2d3f3
42
SHA256 (xpi/firefox-i18n-57.0/el.xpi) = 2009672fb40a593061fba725ad6fb5c6b52b330a7724e3e5203c8885df5fce81
43
SIZE (xpi/firefox-i18n-56.0.2/el.xpi) = 554120
43
SIZE (xpi/firefox-i18n-57.0/el.xpi) = 534482
44
SHA256 (xpi/firefox-i18n-56.0.2/en-GB.xpi) = 55fb37a478f2521b1b1543498d373ade08126c3ac71127bfbde504d8a3f95e16
44
SHA256 (xpi/firefox-i18n-57.0/en-GB.xpi) = f24741f6461582b52678ee67262ea5a3c7538de741c5546d6ea6e15026e4af61
45
SIZE (xpi/firefox-i18n-56.0.2/en-GB.xpi) = 447375
45
SIZE (xpi/firefox-i18n-57.0/en-GB.xpi) = 435523
46
SHA256 (xpi/firefox-i18n-56.0.2/en-US.xpi) = 618f390c9a36aed65860d6ad20444c9c6224471d0a394de92a21262291327ff2
46
SHA256 (xpi/firefox-i18n-57.0/en-US.xpi) = 629fd830ad4a5261391aa0a380f4c9e1dc63d2dfb539d9ae3a603b7650573eb5
47
SIZE (xpi/firefox-i18n-56.0.2/en-US.xpi) = 446951
47
SIZE (xpi/firefox-i18n-57.0/en-US.xpi) = 437987
48
SHA256 (xpi/firefox-i18n-56.0.2/en-ZA.xpi) = 2fa254426d945152e9eb01cc02a8f86415fa5425aefed9825bd1dea9b6d0b76a
48
SHA256 (xpi/firefox-i18n-57.0/en-ZA.xpi) = f1d21809cccea7d4bc649b7337ebde96f3b42185d154e603dbae241e5d8876d1
49
SIZE (xpi/firefox-i18n-56.0.2/en-ZA.xpi) = 445916
49
SIZE (xpi/firefox-i18n-57.0/en-ZA.xpi) = 432019
50
SHA256 (xpi/firefox-i18n-56.0.2/eo.xpi) = f1d9e7acc5bb36a2acfb1659ad0857e5d2c9800836d096f41ceb87977a6e7377
50
SHA256 (xpi/firefox-i18n-57.0/eo.xpi) = 599314153f217433a53671ac0c118be5a6953094bcd94fe8230f192ca5d8995a
51
SIZE (xpi/firefox-i18n-56.0.2/eo.xpi) = 468952
51
SIZE (xpi/firefox-i18n-57.0/eo.xpi) = 454908
52
SHA256 (xpi/firefox-i18n-56.0.2/es-AR.xpi) = 12f34c15fb4cf11e5c007ea19a97f91370a66e192cc3c0aed5405659be36eaa3
52
SHA256 (xpi/firefox-i18n-57.0/es-AR.xpi) = 6f6d9805f9bba0fac0afce20bdfb1116c1c441cb5463fc271e8a3cec2cfe2bfe
53
SIZE (xpi/firefox-i18n-56.0.2/es-AR.xpi) = 475449
53
SIZE (xpi/firefox-i18n-57.0/es-AR.xpi) = 462978
54
SHA256 (xpi/firefox-i18n-56.0.2/es-CL.xpi) = 5239da279a01681c00ece001d1477abba04b41d50fd442e761140ba93b68870f
54
SHA256 (xpi/firefox-i18n-57.0/es-CL.xpi) = 141b2502ed61b7ac439910c252c6de9388ab6a6783fb290e77208367317b4fdc
55
SIZE (xpi/firefox-i18n-56.0.2/es-CL.xpi) = 479922
55
SIZE (xpi/firefox-i18n-57.0/es-CL.xpi) = 465514
56
SHA256 (xpi/firefox-i18n-56.0.2/es-ES.xpi) = 98b7422e833226916953ac89201652f406f84c805d293ab949adae475fc03a7c
56
SHA256 (xpi/firefox-i18n-57.0/es-ES.xpi) = 73409303fc344d642f2343fd683694b534291c6ca5a8f8c63ee27b13e2ffe8ab
57
SIZE (xpi/firefox-i18n-56.0.2/es-ES.xpi) = 365631
57
SIZE (xpi/firefox-i18n-57.0/es-ES.xpi) = 353623
58
SHA256 (xpi/firefox-i18n-56.0.2/es-MX.xpi) = 9516c169b883f8208c996f461221e9bb917e2e56c1f67d01f67026a8f5de3a1b
58
SHA256 (xpi/firefox-i18n-57.0/es-MX.xpi) = 69825e5bcd24a4479a8fa46a632acfd0553819054c6a9436b975c09b7289495e
59
SIZE (xpi/firefox-i18n-56.0.2/es-MX.xpi) = 482565
59
SIZE (xpi/firefox-i18n-57.0/es-MX.xpi) = 468091
60
SHA256 (xpi/firefox-i18n-56.0.2/et.xpi) = dff5cbe5b933511fc10c1209dde31c45a521c9e687d909f4915eaf3eac8a3ad3
60
SHA256 (xpi/firefox-i18n-57.0/et.xpi) = e5683bf2280fd070dad6855af2f60bd433d9200af66ec0976f5045d5d44e8e30
61
SIZE (xpi/firefox-i18n-56.0.2/et.xpi) = 462104
61
SIZE (xpi/firefox-i18n-57.0/et.xpi) = 447277
62
SHA256 (xpi/firefox-i18n-56.0.2/eu.xpi) = d47fe44fcab9328102334596678fe89289d8de44cd9018e13e1bcc70823ec6ec
62
SHA256 (xpi/firefox-i18n-57.0/eu.xpi) = 562f0ad72e23e6b37969c6b75fd7343cbceb67cfb3db570525b796c3a214b2b2
63
SIZE (xpi/firefox-i18n-56.0.2/eu.xpi) = 467884
63
SIZE (xpi/firefox-i18n-57.0/eu.xpi) = 454671
64
SHA256 (xpi/firefox-i18n-56.0.2/fa.xpi) = 8f25e71eb0ee9ad9e90d9948012713013ee03b6fe1b3837b1d903c5102be0a93
64
SHA256 (xpi/firefox-i18n-57.0/fa.xpi) = 39891a98174cdf50dfea0a69e896049ef8aa66be1c694149eb7da3ff421045a2
65
SIZE (xpi/firefox-i18n-56.0.2/fa.xpi) = 522909
65
SIZE (xpi/firefox-i18n-57.0/fa.xpi) = 510827
66
SHA256 (xpi/firefox-i18n-56.0.2/ff.xpi) = b8416ca244cb8c99744dc3c6daa55d893754ed051ea9731f57b49edc2f0e18f1
66
SHA256 (xpi/firefox-i18n-57.0/ff.xpi) = 0b9a56e8b6378b13db3011957c9e040c3b2e74afe8de34d0333b9029b15d3f38
67
SIZE (xpi/firefox-i18n-56.0.2/ff.xpi) = 463098
67
SIZE (xpi/firefox-i18n-57.0/ff.xpi) = 454014
68
SHA256 (xpi/firefox-i18n-56.0.2/fi.xpi) = 1c6ecc0d72a500f5a77a8fdde5e288ce2c578bc1b1de3d1a062e6d7a71765130
68
SHA256 (xpi/firefox-i18n-57.0/fi.xpi) = b81be3f2dd15873dae20b4eced377e3e8d3b40de59d7735c72444e87dc7f476e
69
SIZE (xpi/firefox-i18n-56.0.2/fi.xpi) = 461923
69
SIZE (xpi/firefox-i18n-57.0/fi.xpi) = 446242
70
SHA256 (xpi/firefox-i18n-56.0.2/fr.xpi) = 3aa8e3e74e35a4e1ca948cb83b42bb9b2c95ec6abdbc8b0872129f6f75d4e2e1
70
SHA256 (xpi/firefox-i18n-57.0/fr.xpi) = 59578e90b9832f216d01755cd52bc5956fa646bc420131f3b00ce09faa8d6271
71
SIZE (xpi/firefox-i18n-56.0.2/fr.xpi) = 484561
71
SIZE (xpi/firefox-i18n-57.0/fr.xpi) = 472720
72
SHA256 (xpi/firefox-i18n-56.0.2/fy-NL.xpi) = 21b16ee4d0a232d6860c9fa6db296544e13e9500796451a98adebcdf35f88c66
72
SHA256 (xpi/firefox-i18n-57.0/fy-NL.xpi) = e413938e6671a1a98cfff44f70712961a26e70ef9c5f217d1adc315be0b23308
73
SIZE (xpi/firefox-i18n-56.0.2/fy-NL.xpi) = 478044
73
SIZE (xpi/firefox-i18n-57.0/fy-NL.xpi) = 465242
74
SHA256 (xpi/firefox-i18n-56.0.2/ga-IE.xpi) = 4d780a2c0f362742f069842ae2d7ddf3dd8177e66405c9c570ef52b2e7de1f32
74
SHA256 (xpi/firefox-i18n-57.0/ga-IE.xpi) = 563933a54d94fa031fb309157d806b50e694ae42e6723d9a5b6e442fd5d53f21
75
SIZE (xpi/firefox-i18n-56.0.2/ga-IE.xpi) = 489379
75
SIZE (xpi/firefox-i18n-57.0/ga-IE.xpi) = 475962
76
SHA256 (xpi/firefox-i18n-56.0.2/gd.xpi) = 9e4e1ffc31853fe3e0d4e9e23cd1ccdf0be1b50182cefc9581b902370a3ae2fc
76
SHA256 (xpi/firefox-i18n-57.0/gd.xpi) = 69089bd588762270bd6592b544ed7886b4d092b915cdabb4ffee6c9c499ed924
77
SIZE (xpi/firefox-i18n-56.0.2/gd.xpi) = 476927
77
SIZE (xpi/firefox-i18n-57.0/gd.xpi) = 465121
78
SHA256 (xpi/firefox-i18n-56.0.2/gl.xpi) = 7dc3615f3eca3bc09472207b8d78644923526dd51651a6a04cf8449bf78cca4b
78
SHA256 (xpi/firefox-i18n-57.0/gl.xpi) = ca5195dad2f043d4b530b414061c92f835fe0f9c2f0e8a64de0e3a73079e4e6d
79
SIZE (xpi/firefox-i18n-56.0.2/gl.xpi) = 466468
79
SIZE (xpi/firefox-i18n-57.0/gl.xpi) = 452030
80
SHA256 (xpi/firefox-i18n-56.0.2/gn.xpi) = 32d64cb5ceb3a8b53abafd0699d9697f190e137155484fc06968efe3ab2da294
80
SHA256 (xpi/firefox-i18n-57.0/gn.xpi) = a118e4b81c47da417fe79af3d95788e04aaf42d433e8984d026851c41cd5ee11
81
SIZE (xpi/firefox-i18n-56.0.2/gn.xpi) = 485790
81
SIZE (xpi/firefox-i18n-57.0/gn.xpi) = 471954
82
SHA256 (xpi/firefox-i18n-56.0.2/gu-IN.xpi) = 574654d88abc8d620d5d29c09a281738ff463f8a0e09386373005a4c33cd7adf
82
SHA256 (xpi/firefox-i18n-57.0/gu-IN.xpi) = 0cf3579447aa63d495d5ee744d7b7dcd16eb6779c8e398f75a3c12841c1f2461
83
SIZE (xpi/firefox-i18n-56.0.2/gu-IN.xpi) = 513740
83
SIZE (xpi/firefox-i18n-57.0/gu-IN.xpi) = 511989
84
SHA256 (xpi/firefox-i18n-56.0.2/he.xpi) = aa4437d071736c8009ff81f79cf51348fa7ce02d82dd603cc08c00997de79ddc
84
SHA256 (xpi/firefox-i18n-57.0/he.xpi) = a2c770fab1787623f9a62a5579e7e2f5e8561ba38f8223ef11c75227abd5c7f3
85
SIZE (xpi/firefox-i18n-56.0.2/he.xpi) = 488495
85
SIZE (xpi/firefox-i18n-57.0/he.xpi) = 471920
86
SHA256 (xpi/firefox-i18n-56.0.2/hi-IN.xpi) = 9faa3d8242f2e13e82334c91018137a23a88374d6d8bcbdbca0bac69b709487d
86
SHA256 (xpi/firefox-i18n-57.0/hi-IN.xpi) = a07ecdd23d74ea5ae916b4a94ad513696e4000f703ea3e06cdff9c579748e1c2
87
SIZE (xpi/firefox-i18n-56.0.2/hi-IN.xpi) = 538303
87
SIZE (xpi/firefox-i18n-57.0/hi-IN.xpi) = 526109
88
SHA256 (xpi/firefox-i18n-56.0.2/hr.xpi) = 78ea8859fc47c3fd35055ad7dacd3c89192619f637d1b10a5515db49c1aabd63
88
SHA256 (xpi/firefox-i18n-57.0/hr.xpi) = f88a0964a4e55a4b904e3e466d78f853b58f99007f920277651b4176f48c1cbd
89
SIZE (xpi/firefox-i18n-56.0.2/hr.xpi) = 475058
89
SIZE (xpi/firefox-i18n-57.0/hr.xpi) = 460720
90
SHA256 (xpi/firefox-i18n-56.0.2/hsb.xpi) = 7e868a01a8c881319703dd2d40aa7a90a2a6afda350a93cdee785c1cee3e334c
90
SHA256 (xpi/firefox-i18n-57.0/hsb.xpi) = bbdb24808af0f07be665ffc8cadf687ef30c47075d0b1ef78a58311ddbf99f7f
91
SIZE (xpi/firefox-i18n-56.0.2/hsb.xpi) = 487599
91
SIZE (xpi/firefox-i18n-57.0/hsb.xpi) = 476500
92
SHA256 (xpi/firefox-i18n-56.0.2/hu.xpi) = ba7c06ffe790cb31450c47ffc73c0ef402e759e8d6798c284ab3004aa9b1a154
92
SHA256 (xpi/firefox-i18n-57.0/hu.xpi) = 23767b357e4ae9a470605a7bf5e5231301ffe3d65fea8e11c07f82f53e1fd9c2
93
SIZE (xpi/firefox-i18n-56.0.2/hu.xpi) = 490102
93
SIZE (xpi/firefox-i18n-57.0/hu.xpi) = 476603
94
SHA256 (xpi/firefox-i18n-56.0.2/hy-AM.xpi) = 5a78e97fe3b0a106a9839714e2a811d52501e5c427ba9c943bdcbdd2beb303cb
94
SHA256 (xpi/firefox-i18n-57.0/hy-AM.xpi) = 8106177a21fbfb382dfe26b6106ba35128a03fc25d06b492f948c7a661303add
95
SIZE (xpi/firefox-i18n-56.0.2/hy-AM.xpi) = 527711
95
SIZE (xpi/firefox-i18n-57.0/hy-AM.xpi) = 510824
96
SHA256 (xpi/firefox-i18n-56.0.2/id.xpi) = 916e89bb2bf8fcd0671a1cfe34944643e3f3bb1aeccf6bc7b86329e1f3261cb3
96
SHA256 (xpi/firefox-i18n-57.0/id.xpi) = a3cce07b6c2369bfed1c47af5fd3de8254603efe8b7d3e3929ddba32d824237a
97
SIZE (xpi/firefox-i18n-56.0.2/id.xpi) = 459066
97
SIZE (xpi/firefox-i18n-57.0/id.xpi) = 444040
98
SHA256 (xpi/firefox-i18n-56.0.2/is.xpi) = f424cf833f52cb6a57933e6173bad7a1df2e01b9233feb0abfab0e9f3fd13a78
98
SHA256 (xpi/firefox-i18n-57.0/is.xpi) = b608ebb8f34a93968fcef85d1c463e32489e999b92197f9b21b094d76db29767
99
SIZE (xpi/firefox-i18n-56.0.2/is.xpi) = 467447
99
SIZE (xpi/firefox-i18n-57.0/is.xpi) = 452655
100
SHA256 (xpi/firefox-i18n-56.0.2/it.xpi) = 49e286eecc3e31a2581f728783f25717b994e466a1329f5121efff04d3400ccd
100
SHA256 (xpi/firefox-i18n-57.0/it.xpi) = b035b10133444b23fbef2c66c8548fdd6703ec304d8a854c5fbec42e79f9778a
101
SIZE (xpi/firefox-i18n-56.0.2/it.xpi) = 358695
101
SIZE (xpi/firefox-i18n-57.0/it.xpi) = 347170
102
SHA256 (xpi/firefox-i18n-56.0.2/ja.xpi) = f981b5dd41b2d2479034720d4d8d4ec98b936e5d4b092e954057a3135b802d93
102
SHA256 (xpi/firefox-i18n-57.0/ja.xpi) = a7e3af1bbc6bdf3ec139e77e3cc1e39b072dd68b0a434ef96cc288e7424eea8c
103
SIZE (xpi/firefox-i18n-56.0.2/ja.xpi) = 527926
103
SIZE (xpi/firefox-i18n-57.0/ja.xpi) = 508551
104
SHA256 (xpi/firefox-i18n-56.0.2/ka.xpi) = c84ec7d427a84290cc760cf35a900a188621c7c8fbc3b48f63d7c000642eb3c1
104
SHA256 (xpi/firefox-i18n-57.0/ka.xpi) = 09dd38e2f51b0228dd0302e4afcc6ee6f6f2d89956172c27518cb9c7423e155e
105
SIZE (xpi/firefox-i18n-56.0.2/ka.xpi) = 509096
105
SIZE (xpi/firefox-i18n-57.0/ka.xpi) = 492355
106
SHA256 (xpi/firefox-i18n-56.0.2/kab.xpi) = e8ffa26d1acef0cfb554eced0b86656c4ac504b5459bb8fd3eb86c5292df7b3e
106
SHA256 (xpi/firefox-i18n-57.0/kab.xpi) = f673912bcc909e9046008803886cf4322653871e7b5b121645566c2b92b5fc39
107
SIZE (xpi/firefox-i18n-56.0.2/kab.xpi) = 477420
107
SIZE (xpi/firefox-i18n-57.0/kab.xpi) = 462530
108
SHA256 (xpi/firefox-i18n-56.0.2/kk.xpi) = 5c918b32273f6a107c6a8d78be58c9e757884dcc28951949db39bba705c95d37
108
SHA256 (xpi/firefox-i18n-57.0/kk.xpi) = 4d93c3e6f982f4b10d614f6d237f8fac8887c347f1ce11aa6728d0918d552a87
109
SIZE (xpi/firefox-i18n-56.0.2/kk.xpi) = 534932
109
SIZE (xpi/firefox-i18n-57.0/kk.xpi) = 519248
110
SHA256 (xpi/firefox-i18n-56.0.2/km.xpi) = 52c280027d92449fda3cd321a091b2f65f401d417bff7fdce692191b748f99c2
110
SHA256 (xpi/firefox-i18n-57.0/km.xpi) = 11cb79e402ba96e678fa27bdbd39bb7ec48533eac89f884334b65ad9335eef54
111
SIZE (xpi/firefox-i18n-56.0.2/km.xpi) = 549344
111
SIZE (xpi/firefox-i18n-57.0/km.xpi) = 530079
112
SHA256 (xpi/firefox-i18n-56.0.2/kn.xpi) = 03120c4eb742e750c46f266fceb69cd1a8b97d3cf5bd0f2a55485d25af502272
112
SHA256 (xpi/firefox-i18n-57.0/kn.xpi) = 1230fe7d27fbc3af7196b7258bee255b4d85dd232c117a0a4d515ddef74328c9
113
SIZE (xpi/firefox-i18n-56.0.2/kn.xpi) = 545517
113
SIZE (xpi/firefox-i18n-57.0/kn.xpi) = 531315
114
SHA256 (xpi/firefox-i18n-56.0.2/ko.xpi) = 60171b4d104a456df4a7fc60dc506eaa0ced1a32a216461bbddd2a215200f61b
114
SHA256 (xpi/firefox-i18n-57.0/ko.xpi) = 1d992cbc4f30bff88b40d46c55ceef223f7b66ad489e073a859655461edacb28
115
SIZE (xpi/firefox-i18n-56.0.2/ko.xpi) = 502895
115
SIZE (xpi/firefox-i18n-57.0/ko.xpi) = 487304
116
SHA256 (xpi/firefox-i18n-56.0.2/lij.xpi) = b0b07f9e4be734145b6472ef506b4cb99c85eea98ece31dad6efa2003d59f893
116
SHA256 (xpi/firefox-i18n-57.0/lij.xpi) = 4e9e6e0661c4bea860128dd870596154e68c3367624fd6cbc690e2c341157f21
117
SIZE (xpi/firefox-i18n-56.0.2/lij.xpi) = 467275
117
SIZE (xpi/firefox-i18n-57.0/lij.xpi) = 452340
118
SHA256 (xpi/firefox-i18n-56.0.2/lt.xpi) = 09302dfb196300ae49c47cf4a9a1ac9ec4df954defa8abd19bdd985852af94b5
118
SHA256 (xpi/firefox-i18n-57.0/lt.xpi) = ce3bdff82d4f6baef44d2913e4da76b83e50dd0c9e3102e444425d379e2347f7
119
SIZE (xpi/firefox-i18n-56.0.2/lt.xpi) = 488753
119
SIZE (xpi/firefox-i18n-57.0/lt.xpi) = 474955
120
SHA256 (xpi/firefox-i18n-56.0.2/lv.xpi) = 9f47b7ef87c55320d6d67a15f61a87b0cc9e891a5aeac382badfe3e3b27b51e4
120
SHA256 (xpi/firefox-i18n-57.0/lv.xpi) = 25bb6e484402d0c7909544031c2fe84f04b8cb0d563c902427542ca8b0f0a996
121
SIZE (xpi/firefox-i18n-56.0.2/lv.xpi) = 481628
121
SIZE (xpi/firefox-i18n-57.0/lv.xpi) = 465242
122
SHA256 (xpi/firefox-i18n-56.0.2/mai.xpi) = f16a670648ebdc3b914620d7fbe4f6095952f65c658901ecfcfbbc37645f5fdb
122
SHA256 (xpi/firefox-i18n-57.0/mai.xpi) = 7f3dafefb77ef7d5e73dd9a762b9d51f05c7c739933561b3a0d53c7798fff9d9
123
SIZE (xpi/firefox-i18n-56.0.2/mai.xpi) = 524702
123
SIZE (xpi/firefox-i18n-57.0/mai.xpi) = 507395
124
SHA256 (xpi/firefox-i18n-56.0.2/mk.xpi) = e537b92b6af439a1c1b9e667939f146b7a2ad17eae3d4f9075d1ad70bb958b0f
124
SHA256 (xpi/firefox-i18n-57.0/mk.xpi) = ac348da0f832916715da5111083a4e2b72a7d16b9c96c04a1cc4d5d3e6c862a7
125
SIZE (xpi/firefox-i18n-56.0.2/mk.xpi) = 507818
125
SIZE (xpi/firefox-i18n-57.0/mk.xpi) = 490852
126
SHA256 (xpi/firefox-i18n-56.0.2/ml.xpi) = 5714a5481f111e1467a596973c824e9d09cb1e464cc74c332582d5079b495efd
126
SHA256 (xpi/firefox-i18n-57.0/ml.xpi) = a4be2963a72230143283d674ddcc3c28c5f09636524af145f5f53ecce0322572
127
SIZE (xpi/firefox-i18n-56.0.2/ml.xpi) = 547547
127
SIZE (xpi/firefox-i18n-57.0/ml.xpi) = 528255
128
SHA256 (xpi/firefox-i18n-56.0.2/mr.xpi) = 2993e10fa67e526691859805b5bf928be5607d59ceedbbb7aa68962688fa6723
128
SHA256 (xpi/firefox-i18n-57.0/mr.xpi) = 410200d49c82a8ba5a0ecae914e1da3f04798506d9625acbc10c5ed3b99cec9d
129
SIZE (xpi/firefox-i18n-56.0.2/mr.xpi) = 536673
129
SIZE (xpi/firefox-i18n-57.0/mr.xpi) = 521289
130
SHA256 (xpi/firefox-i18n-56.0.2/ms.xpi) = 7b4a6353a3b2e6e2fc923dc43191c0bc463aeacc9d9eaadb032f93f00376b6df
130
SHA256 (xpi/firefox-i18n-57.0/ms.xpi) = c1b61b1325581a5c2d927a675b19e9d2e34c708bbc45ce5f6c03f386de5b33e5
131
SIZE (xpi/firefox-i18n-56.0.2/ms.xpi) = 466107
131
SIZE (xpi/firefox-i18n-57.0/ms.xpi) = 451254
132
SHA256 (xpi/firefox-i18n-56.0.2/my.xpi) = 9ef461ae9ec46bc6198456411232ed37a0ed68f11d4bc587d2b8b4d8247868d5
132
SHA256 (xpi/firefox-i18n-57.0/my.xpi) = 512cb14ae373275c4755c478ac1dce4c51be15cde0b2aaaca5b29c3e45df0a5b
133
SIZE (xpi/firefox-i18n-56.0.2/my.xpi) = 536722
133
SIZE (xpi/firefox-i18n-57.0/my.xpi) = 517702
134
SHA256 (xpi/firefox-i18n-56.0.2/nb-NO.xpi) = ee407654fbfad2523ec72fc921b9072772bacc231636b460ac239c406a43132f
134
SHA256 (xpi/firefox-i18n-57.0/nb-NO.xpi) = a57311847934d5dcff18066ff7bd323f2c2406fa3df4c8e258b8d9d0939b1be8
135
SIZE (xpi/firefox-i18n-56.0.2/nb-NO.xpi) = 465575
135
SIZE (xpi/firefox-i18n-57.0/nb-NO.xpi) = 451556
136
SHA256 (xpi/firefox-i18n-56.0.2/nl.xpi) = bbba1d13636b0f03868d202893eb995f3112a56ac2453bbdde6b8fb856fe49b1
136
SHA256 (xpi/firefox-i18n-57.0/nl.xpi) = 25973c35d308af09a7c5809f84037bc74176eb133cb556e4942ed8ca54915585
137
SIZE (xpi/firefox-i18n-56.0.2/nl.xpi) = 469053
137
SIZE (xpi/firefox-i18n-57.0/nl.xpi) = 457659
138
SHA256 (xpi/firefox-i18n-56.0.2/nn-NO.xpi) = 8120d52f0e9a0ecd870a0ea0d3b887df12b129d3bfda7c83f09e4036907d08e6
138
SHA256 (xpi/firefox-i18n-57.0/nn-NO.xpi) = eb127fad8c44a4721fc1cf1d901d0c2aff16041b8bc54d2d3951b03bfac94600
139
SIZE (xpi/firefox-i18n-56.0.2/nn-NO.xpi) = 466208
139
SIZE (xpi/firefox-i18n-57.0/nn-NO.xpi) = 452003
140
SHA256 (xpi/firefox-i18n-56.0.2/or.xpi) = 325acd5539ec48f65320ff0f5768fbdced82c788750f7c0cd00bf2a264751e32
140
SHA256 (xpi/firefox-i18n-57.0/or.xpi) = dc0f59099e8d0592b3e61d8d5c88ae22b9a1067fd89911b7799f8b43d13a2f6b
141
SIZE (xpi/firefox-i18n-56.0.2/or.xpi) = 518165
141
SIZE (xpi/firefox-i18n-57.0/or.xpi) = 500863
142
SHA256 (xpi/firefox-i18n-56.0.2/pa-IN.xpi) = 2e3bcfc268606f1496226ca549df40e9c6b8b9f972cdd7f84d4d5c4b32173294
142
SHA256 (xpi/firefox-i18n-57.0/pa-IN.xpi) = 33348a739ae6b01c3629def78a855ea6ea816e0253b696e58ba9ccbff3fa37d6
143
SIZE (xpi/firefox-i18n-56.0.2/pa-IN.xpi) = 509046
143
SIZE (xpi/firefox-i18n-57.0/pa-IN.xpi) = 495270
144
SHA256 (xpi/firefox-i18n-56.0.2/pl.xpi) = c6123361207e67bfd6f859c65c369fa0b22561fbb46b548d9b322433f209a712
144
SHA256 (xpi/firefox-i18n-57.0/pl.xpi) = fff4c80385e9eec79ec93d4fc35f84301fa28c8a527591196d719f675c9ffe2b
145
SIZE (xpi/firefox-i18n-56.0.2/pl.xpi) = 377524
145
SIZE (xpi/firefox-i18n-57.0/pl.xpi) = 364229
146
SHA256 (xpi/firefox-i18n-56.0.2/pt-BR.xpi) = 3a45de0fd1d0b18123e4f97de1de8f57c043a8c621a02f5267643fc5fb12c8bf
146
SHA256 (xpi/firefox-i18n-57.0/pt-BR.xpi) = 345c47dde41fb0348dc1cc4d629fc78becd123e2c87eb1e33f1ca50eea77373c
147
SIZE (xpi/firefox-i18n-56.0.2/pt-BR.xpi) = 470954
147
SIZE (xpi/firefox-i18n-57.0/pt-BR.xpi) = 456485
148
SHA256 (xpi/firefox-i18n-56.0.2/pt-PT.xpi) = b8412464435c2e3c79017bc7ecc6b7b7d7715b1b47d0ca5f6e7c320d2c2b87d1
148
SHA256 (xpi/firefox-i18n-57.0/pt-PT.xpi) = b77f50f7b02a78dc24dc32e9bff82b46bf2e37a62f978c1fe5ac172f6bf63f26
149
SIZE (xpi/firefox-i18n-56.0.2/pt-PT.xpi) = 472803
149
SIZE (xpi/firefox-i18n-57.0/pt-PT.xpi) = 459998
150
SHA256 (xpi/firefox-i18n-56.0.2/rm.xpi) = 2054926b1f43459aa857234466b686553555e2afc2e6072ef3883f28b2ebc676
150
SHA256 (xpi/firefox-i18n-57.0/rm.xpi) = 695b5483ecc003296cd25b0b441c73c73c475457466fd7cff3f39a8491a44910
151
SIZE (xpi/firefox-i18n-56.0.2/rm.xpi) = 467019
151
SIZE (xpi/firefox-i18n-57.0/rm.xpi) = 451057
152
SHA256 (xpi/firefox-i18n-56.0.2/ro.xpi) = d69ce50c34f429d4a6724b4b8d954bb3f78e5a7fb42302c2e9de9e5f870c4e0e
152
SHA256 (xpi/firefox-i18n-57.0/ro.xpi) = 591ecab4f6e3869da69e612f847a832a802050471655565d29aa8c76febe7b7e
153
SIZE (xpi/firefox-i18n-56.0.2/ro.xpi) = 470785
153
SIZE (xpi/firefox-i18n-57.0/ro.xpi) = 455509
154
SHA256 (xpi/firefox-i18n-56.0.2/ru.xpi) = 2339cce445c2c01de77fd89079c121301dfcc082f9f8e3b0f640d0f42a648cac
154
SHA256 (xpi/firefox-i18n-57.0/ru.xpi) = 3b7355af69378f3bf0642d8f93c2c1fb6a9665ddd5a2b6aec4865baa8cd7713f
155
SIZE (xpi/firefox-i18n-56.0.2/ru.xpi) = 541437
155
SIZE (xpi/firefox-i18n-57.0/ru.xpi) = 527005
156
SHA256 (xpi/firefox-i18n-56.0.2/si.xpi) = 79c3fa18f421923b48505b74e39cd4fab474685584bb5daf71f41ebd8a388402
156
SHA256 (xpi/firefox-i18n-57.0/si.xpi) = 3392da245426ca4480b478455b61b6d53fe5741e7c0c3772a610e622b0248715
157
SIZE (xpi/firefox-i18n-56.0.2/si.xpi) = 515921
157
SIZE (xpi/firefox-i18n-57.0/si.xpi) = 498323
158
SHA256 (xpi/firefox-i18n-56.0.2/sk.xpi) = 0292ae81d9ae0af15489b2b420f3156cb2f7266cd881deaa4c9e164c987271c7
158
SHA256 (xpi/firefox-i18n-57.0/sk.xpi) = 5ac2035fdb85fb5bb789b6f2723e69bd23e6a15f6a4dfb184c08100aafead6ba
159
SIZE (xpi/firefox-i18n-56.0.2/sk.xpi) = 495563
159
SIZE (xpi/firefox-i18n-57.0/sk.xpi) = 480395
160
SHA256 (xpi/firefox-i18n-56.0.2/sl.xpi) = bea8af482218c1bfde800e3461f64d008b46b1419745127fe838a29724098b5f
160
SHA256 (xpi/firefox-i18n-57.0/sl.xpi) = 6c55623bb30635ac67abcd3fab3b4cc30de5fefea2ae0bbb99f15be7c7843245
161
SIZE (xpi/firefox-i18n-56.0.2/sl.xpi) = 473806
161
SIZE (xpi/firefox-i18n-57.0/sl.xpi) = 459376
162
SHA256 (xpi/firefox-i18n-56.0.2/son.xpi) = 6f93b52c42355adafc0778516defce16af99a17ee41ec0d25003ab39bfc6dda1
162
SHA256 (xpi/firefox-i18n-57.0/son.xpi) = ac13a973cacd9e4c84401cd11095c0a0f307d07ebb0719174adcfcf957188316
163
SIZE (xpi/firefox-i18n-56.0.2/son.xpi) = 464322
163
SIZE (xpi/firefox-i18n-57.0/son.xpi) = 450929
164
SHA256 (xpi/firefox-i18n-56.0.2/sq.xpi) = 867d12980a8d3ee7ae28faa4f09f63ed405f9ea18b6c0c776da8194ecda937ed
164
SHA256 (xpi/firefox-i18n-57.0/sq.xpi) = 2b999472e0e6550b63782d15aa713bac47b3ddcf8a212673a30fd6e55090215c
165
SIZE (xpi/firefox-i18n-56.0.2/sq.xpi) = 479511
165
SIZE (xpi/firefox-i18n-57.0/sq.xpi) = 465050
166
SHA256 (xpi/firefox-i18n-56.0.2/sr.xpi) = b300ada0279186be68dbf292d41d446828acc71e3dcca94cf88a2ef34b38abc9
166
SHA256 (xpi/firefox-i18n-57.0/sr.xpi) = 75849a57f9b44b73445b302279dcb626389670a20dc3a404ad5db774c3ceaa00
167
SIZE (xpi/firefox-i18n-56.0.2/sr.xpi) = 504487
167
SIZE (xpi/firefox-i18n-57.0/sr.xpi) = 487002
168
SHA256 (xpi/firefox-i18n-56.0.2/sv-SE.xpi) = 0ccdf643e1f62ff1e41ceb3fe9c35191aece0efcbfc6b24293f88f7ef1d55043
168
SHA256 (xpi/firefox-i18n-57.0/sv-SE.xpi) = 87ec5cbe45db203cfd1fd49ab7d2fb78df72fdcd4867e2dcc16727463100bb06
169
SIZE (xpi/firefox-i18n-56.0.2/sv-SE.xpi) = 473949
169
SIZE (xpi/firefox-i18n-57.0/sv-SE.xpi) = 459664
170
SHA256 (xpi/firefox-i18n-56.0.2/ta.xpi) = 0186d38239a9db92394562eb70a6960eeeee052abce62bc3672c8644a37cb859
170
SHA256 (xpi/firefox-i18n-57.0/ta.xpi) = 74382122b90dbd76d128d5a860d40ddc839f315ee7cecbcdb73c2fbf20169199
171
SIZE (xpi/firefox-i18n-56.0.2/ta.xpi) = 530646
171
SIZE (xpi/firefox-i18n-57.0/ta.xpi) = 513225
172
SHA256 (xpi/firefox-i18n-56.0.2/te.xpi) = 789359330bdfefb1fc379582b098c040cdb6a46f770e2c80b1695a7eb634db40
172
SHA256 (xpi/firefox-i18n-57.0/te.xpi) = a40de1d2174392d96bda8cfe65c8e374f4c833add0e1719d6c44616b571e6855
173
SIZE (xpi/firefox-i18n-56.0.2/te.xpi) = 549585
173
SIZE (xpi/firefox-i18n-57.0/te.xpi) = 530692
174
SHA256 (xpi/firefox-i18n-56.0.2/th.xpi) = abeb0f7ff018d44efbcea4cba5c0c62a78f42f6395ea1535f757f2045064c880
174
SHA256 (xpi/firefox-i18n-57.0/th.xpi) = 9d7cff5544312d33d44a2728f095e095e646ae2cd904e014fe69ca8016440884
175
SIZE (xpi/firefox-i18n-56.0.2/th.xpi) = 520297
175
SIZE (xpi/firefox-i18n-57.0/th.xpi) = 502450
176
SHA256 (xpi/firefox-i18n-56.0.2/tr.xpi) = b3798722e3a732e422a1fbff8d1c9ca7716b3fe9b2f21cc219432ec998556e26
176
SHA256 (xpi/firefox-i18n-57.0/tr.xpi) = fa1e8613954cae82fa460eb840af561df5857320a33ec5a1f8b032e3ed558dee
177
SIZE (xpi/firefox-i18n-56.0.2/tr.xpi) = 480549
177
SIZE (xpi/firefox-i18n-57.0/tr.xpi) = 465580
178
SHA256 (xpi/firefox-i18n-56.0.2/uk.xpi) = 6854f076f5ef93e72a4f38f03a8dadc61e3a2f8afa402783bbd00bcc63b6f14f
178
SHA256 (xpi/firefox-i18n-57.0/uk.xpi) = b477818ae7061f7523625380e93fbe9bdfc385279e7e96cb06e98e6ed5915d86
179
SIZE (xpi/firefox-i18n-56.0.2/uk.xpi) = 535436
179
SIZE (xpi/firefox-i18n-57.0/uk.xpi) = 518137
180
SHA256 (xpi/firefox-i18n-56.0.2/ur.xpi) = 01a4d64725be568e148d88dab405545f76a24a695d499a236a2be0599489324a
180
SHA256 (xpi/firefox-i18n-57.0/ur.xpi) = d9b3f9e18241a5abb31906792bae33c6b6b579631678c97236291e388e8bc195
181
SIZE (xpi/firefox-i18n-56.0.2/ur.xpi) = 527354
181
SIZE (xpi/firefox-i18n-57.0/ur.xpi) = 511133
182
SHA256 (xpi/firefox-i18n-56.0.2/uz.xpi) = 79092d2f830adbf05cc884aa014fa9348e3449fa206cf91286d5bfb40ebe729c
182
SHA256 (xpi/firefox-i18n-57.0/uz.xpi) = 4d4fe1f56e5c86f779753eed44f1b5d3f1cceb3a6f46950d175ed31c9f7ff39d
183
SIZE (xpi/firefox-i18n-56.0.2/uz.xpi) = 475101
183
SIZE (xpi/firefox-i18n-57.0/uz.xpi) = 461693
184
SHA256 (xpi/firefox-i18n-56.0.2/vi.xpi) = 65633b00c1a124a23bfda2bdb7666ab8e12e113c956930cc975f838e3de04038
184
SHA256 (xpi/firefox-i18n-57.0/vi.xpi) = ce81dbf85ddd901acb8c9cf7cfd331d2dfe6f4a7f5e4d799d664ff867bd5d40b
185
SIZE (xpi/firefox-i18n-56.0.2/vi.xpi) = 487150
185
SIZE (xpi/firefox-i18n-57.0/vi.xpi) = 471319
186
SHA256 (xpi/firefox-i18n-56.0.2/xh.xpi) = af99554dc838c042310acbb0a7c2623d61ff3b3045667cf301cffeb29821c008
186
SHA256 (xpi/firefox-i18n-57.0/xh.xpi) = be4d359e06a8a10cfda658a6e7c1e13ff857fd767d76882bedfd1aada3a6900c
187
SIZE (xpi/firefox-i18n-56.0.2/xh.xpi) = 477838
187
SIZE (xpi/firefox-i18n-57.0/xh.xpi) = 464460
188
SHA256 (xpi/firefox-i18n-56.0.2/zh-CN.xpi) = f2a1bb04222fbca3845b00694342a74c8d54cbf1a64104d96f1856879aed0abf
188
SHA256 (xpi/firefox-i18n-57.0/zh-CN.xpi) = 040736b596b614e55ac09aefa3e9f04211f16cb257ea0c2d274ca0df99b787b6
189
SIZE (xpi/firefox-i18n-56.0.2/zh-CN.xpi) = 498979
189
SIZE (xpi/firefox-i18n-57.0/zh-CN.xpi) = 483624
190
SHA256 (xpi/firefox-i18n-56.0.2/zh-TW.xpi) = 8c547d631522048d060be5305c277024e8038386dcad232ed742b1edf14a9471
190
SHA256 (xpi/firefox-i18n-57.0/zh-TW.xpi) = fa5cf52246a289bc91d60519697977cbd6f999f5bda7eb715cb8303af543b752
191
SIZE (xpi/firefox-i18n-56.0.2/zh-TW.xpi) = 497765
191
SIZE (xpi/firefox-i18n-57.0/zh-TW.xpi) = 482346
(-)b/www/firefox/Makefile (-7 / +6 lines)
Lines 2-28 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	firefox
4
PORTNAME=	firefox
5
DISTVERSION=	56.0.2
5
DISTVERSION=	57.0
6
DISTVERSIONSUFFIX=.source
6
DISTVERSIONSUFFIX=.source
7
PORTREVISION=	8
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 \
11
		MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source
10
		MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build3/source
12
11
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.16:devel/nspr \
15
BUILD_DEPENDS=	nspr>=4.17:devel/nspr \
17
		nss>=3.32.1:security/nss \
16
		nss>=3.33:security/nss \
18
		icu>=59.1,1:devel/icu \
17
		icu>=59.1,1:devel/icu \
19
		libevent>=2.1.8:devel/libevent \
18
		libevent>=2.1.8:devel/libevent \
20
		harfbuzz>=1.4.7:print/harfbuzz \
19
		harfbuzz>=1.5.1:print/harfbuzz \
21
		graphite2>=1.3.10:graphics/graphite2 \
20
		graphite2>=1.3.10:graphics/graphite2 \
22
		png>=1.6.31:graphics/png \
21
		png>=1.6.31:graphics/png \
23
		libvorbis>=1.3.5,3:audio/libvorbis \
22
		libvorbis>=1.3.5,3:audio/libvorbis \
24
		libvpx>=1.5.0:multimedia/libvpx \
23
		libvpx>=1.5.0:multimedia/libvpx \
25
		sqlite3>=3.19.3:databases/sqlite3 \
24
		sqlite3>=3.20.1:databases/sqlite3 \
26
		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
25
		${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
27
		v4l_compat>0:multimedia/v4l_compat \
26
		v4l_compat>0:multimedia/v4l_compat \
28
		autoconf-2.13:devel/autoconf213 \
27
		autoconf-2.13:devel/autoconf213 \
(-)b/www/firefox/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1508873487
1
TIMESTAMP = 1510265773
2
SHA256 (firefox-56.0.2.source.tar.xz) = 6f7d284c31383a9860d7b52f05f866526d5a7c31e3ef2959d79122ba074f5ca1
2
SHA256 (firefox-57.0.source.tar.xz) = a68e0a891af2e52423aa8416e2812361da04675f243f6465d805d8b3d4ca7494
3
SIZE (firefox-56.0.2.source.tar.xz) = 255658916
3
SIZE (firefox-57.0.source.tar.xz) = 250650020
(-)a/www/firefox/files/patch-bug1384701 (-796 lines)
Removed Link Here
1
diff --git widget/gtk/nsLookAndFeel.cpp widget/gtk/nsLookAndFeel.cpp
2
index 6bb3e27c6653..f4c35d82200a 100644
3
--- widget/gtk/nsLookAndFeel.cpp
4
+++ widget/gtk/nsLookAndFeel.cpp
5
@@ -29,11 +29,9 @@
6
 
7
 #include "mozilla/gfx/2D.h"
8
 
9
-#if MOZ_WIDGET_GTK != 2
10
 #include <cairo-gobject.h>
11
 #include "WidgetStyleCache.h"
12
 #include "prenv.h"
13
-#endif
14
 
15
 using mozilla::LookAndFeel;
16
 
17
@@ -49,9 +47,6 @@ using mozilla::LookAndFeel;
18
 
19
 nsLookAndFeel::nsLookAndFeel()
20
     : nsXPLookAndFeel(),
21
-#if (MOZ_WIDGET_GTK == 2)
22
-      mStyle(nullptr),
23
-#endif
24
       mDefaultFontCached(false), mButtonFontCached(false),
25
       mFieldFontCached(false), mMenuFontCached(false),
26
       mInitialized(false)
27
@@ -66,12 +61,8 @@ nsLookAndFeel::NativeInit()
28
 
29
 nsLookAndFeel::~nsLookAndFeel()
30
 {
31
-#if (MOZ_WIDGET_GTK == 2)
32
-    g_object_unref(mStyle);
33
-#endif
34
 }
35
 
36
-#if MOZ_WIDGET_GTK != 2
37
 // Modifies color |*aDest| as if a pattern of color |aSource| was painted with
38
 // CAIRO_OPERATOR_OVER to a surface with color |*aDest|.
39
 static void
40
@@ -228,42 +219,19 @@ GetBorderColors(GtkStyleContext* aContext,
41
     *aDarkColor = GDK_RGBA_TO_NS_RGBA(darkColor);
42
     return ret;
43
 }
44
-#endif
45
 
46
 nsresult
47
 nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
48
 {
49
     EnsureInit();
50
 
51
-#if (MOZ_WIDGET_GTK == 3)
52
     GdkRGBA gdk_color;
53
-#endif
54
     nsresult res = NS_OK;
55
 
56
     switch (aID) {
57
         // These colors don't seem to be used for anything anymore in Mozilla
58
         // (except here at least TextSelectBackground and TextSelectForeground)
59
         // The CSS2 colors below are used.
60
-#if (MOZ_WIDGET_GTK == 2)
61
-    case eColorID_WindowBackground:
62
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]);
63
-        break;
64
-    case eColorID_WindowForeground:
65
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]);
66
-        break;
67
-    case eColorID_WidgetBackground:
68
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
69
-        break;
70
-    case eColorID_WidgetForeground:
71
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]);
72
-        break;
73
-    case eColorID_WidgetSelectBackground:
74
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_SELECTED]);
75
-        break;
76
-    case eColorID_WidgetSelectForeground:
77
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_SELECTED]);
78
-        break;
79
-#else
80
     case eColorID_WindowBackground:
81
     case eColorID_WidgetBackground:
82
     case eColorID_TextBackground:
83
@@ -303,35 +271,12 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
84
     case eColorID__moz_html_cellhighlighttext:
85
         aColor = sTextSelectedText;
86
         break;
87
-#endif
88
     case eColorID_Widget3DHighlight:
89
         aColor = NS_RGB(0xa0,0xa0,0xa0);
90
         break;
91
     case eColorID_Widget3DShadow:
92
         aColor = NS_RGB(0x40,0x40,0x40);
93
         break;
94
-#if (MOZ_WIDGET_GTK == 2)
95
-    case eColorID_TextBackground:
96
-        // not used?
97
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]);
98
-        break;
99
-    case eColorID_TextForeground: 
100
-        // not used?
101
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]);
102
-        break;
103
-    case eColorID_TextSelectBackground:
104
-    case eColorID_IMESelectedRawTextBackground:
105
-    case eColorID_IMESelectedConvertedTextBackground:
106
-        // still used
107
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_SELECTED]);
108
-        break;
109
-    case eColorID_TextSelectForeground:
110
-    case eColorID_IMESelectedRawTextForeground:
111
-    case eColorID_IMESelectedConvertedTextForeground:
112
-        // still used
113
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_SELECTED]);
114
-        break;
115
-#endif
116
     case eColorID_IMERawInputBackground:
117
     case eColorID_IMEConvertedTextBackground:
118
         aColor = NS_TRANSPARENT;
119
@@ -352,53 +297,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
120
       aColor = NS_RGB(0xff, 0, 0);
121
       break;
122
 
123
-#if (MOZ_WIDGET_GTK == 2)
124
-        // css2  http://www.w3.org/TR/REC-CSS2/ui.html#system-colors
125
-    case eColorID_activeborder:
126
-        // active window border
127
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
128
-        break;
129
-    case eColorID_activecaption:
130
-        // active window caption background
131
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
132
-        break;
133
-    case eColorID_appworkspace:
134
-        // MDI background color
135
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
136
-        break;
137
-    case eColorID_background:
138
-        // desktop background
139
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
140
-        break;
141
-    case eColorID_captiontext:
142
-        // text in active window caption, size box, and scrollbar arrow box (!)
143
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]);
144
-        break;
145
-    case eColorID_graytext:
146
-        // disabled text in windows, menus, etc.
147
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_INSENSITIVE]);
148
-        break;
149
-    case eColorID_highlight:
150
-        // background of selected item
151
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_SELECTED]);
152
-        break;
153
-    case eColorID_highlighttext:
154
-        // text of selected item
155
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_SELECTED]);
156
-        break;
157
-    case eColorID_inactiveborder:
158
-        // inactive window border
159
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
160
-        break;
161
-    case eColorID_inactivecaption:
162
-        // inactive window caption
163
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_INSENSITIVE]);
164
-        break;
165
-    case eColorID_inactivecaptiontext:
166
-        // text in inactive window caption
167
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_INSENSITIVE]);
168
-        break;
169
-#else
170
         // css2  http://www.w3.org/TR/REC-CSS2/ui.html#system-colors
171
     case eColorID_activeborder: {
172
         // active window border
173
@@ -433,7 +331,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
174
         ReleaseStyleContext(style);
175
         break;
176
     }
177
-#endif
178
     case eColorID_infobackground:
179
         // tooltip background color
180
         aColor = sInfoBackground;
181
@@ -452,11 +349,7 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
182
         break;
183
     case eColorID_scrollbar:
184
         // scrollbar gray area
185
-#if (MOZ_WIDGET_GTK == 2)
186
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_ACTIVE]);
187
-#else
188
         aColor = sMozScrollbar;
189
-#endif
190
         break;
191
 
192
     case eColorID_threedlightshadow:
193
@@ -465,11 +358,7 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
194
     case eColorID_threedface:
195
     case eColorID_buttonface:
196
         // 3-D face color
197
-#if (MOZ_WIDGET_GTK == 3)
198
         aColor = sMozWindowBackground;
199
-#else
200
-        aColor = sButtonBackground;
201
-#endif
202
         break;
203
 
204
     case eColorID_buttontext:
205
@@ -491,56 +380,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
206
         aColor = sFrameInnerDarkBorder;
207
         break;
208
 
209
-#if (MOZ_WIDGET_GTK == 2)
210
-    case eColorID_threeddarkshadow:
211
-        // 3-D shadow outer edge color
212
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->black);
213
-        break;
214
-
215
-    case eColorID_window:
216
-    case eColorID_windowframe:
217
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
218
-        break;
219
-
220
-    case eColorID_windowtext:
221
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]);
222
-        break;
223
-
224
-    case eColorID__moz_eventreerow:
225
-    case eColorID__moz_field:
226
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]);
227
-        break;
228
-    case eColorID__moz_fieldtext:
229
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]);
230
-        break;
231
-    case eColorID__moz_dialog:
232
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]);
233
-        break;
234
-    case eColorID__moz_dialogtext:
235
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]);
236
-        break;
237
-    case eColorID__moz_dragtargetzone:
238
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_SELECTED]);
239
-        break; 
240
-    case eColorID__moz_buttondefault:
241
-        // default button border color
242
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->black);
243
-        break;
244
-    case eColorID__moz_buttonhoverface:
245
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_PRELIGHT]);
246
-        break;
247
-    case eColorID__moz_buttonhovertext:
248
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_PRELIGHT]);
249
-        break;
250
-    case eColorID__moz_cellhighlight:
251
-    case eColorID__moz_html_cellhighlight:
252
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_ACTIVE]);
253
-        break;
254
-    case eColorID__moz_cellhighlighttext:
255
-    case eColorID__moz_html_cellhighlighttext:
256
-        aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_ACTIVE]);
257
-        break;
258
-#else
259
     case eColorID_threeddarkshadow:
260
         // Hardcode to black
261
         aColor = NS_RGB(0x00,0x00,0x00);
262
@@ -574,7 +413,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
263
     case eColorID__moz_buttonhovertext:
264
         aColor = sButtonHoverText;
265
         break;
266
-#endif
267
     case eColorID__moz_menuhover:
268
         aColor = sMenuHover;
269
         break;
270
@@ -590,11 +428,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
271
     case eColorID__moz_comboboxtext:
272
         aColor = sComboBoxText;
273
         break;
274
-#if (MOZ_WIDGET_GTK == 2)
275
-    case eColorID__moz_combobox:
276
-        aColor = sComboBoxBackground;
277
-        break;
278
-#endif
279
     case eColorID__moz_menubartext:
280
         aColor = sMenuBarText;
281
         break;
282
@@ -602,11 +435,7 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
283
         aColor = sMenuBarHoverText;
284
         break;
285
     case eColorID__moz_gtk_info_bar_text:
286
-#if (MOZ_WIDGET_GTK == 3)
287
         aColor = sInfoBarText;
288
-#else
289
-        aColor = sInfoText;
290
-#endif
291
         break;
292
     default:
293
         /* default color is BLACK */
294
@@ -618,27 +447,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor)
295
     return res;
296
 }
297
 
298
-#if (MOZ_WIDGET_GTK == 2)
299
-static void darken_gdk_color(GdkColor *src, GdkColor *dest)
300
-{
301
-    gdouble red;
302
-    gdouble green;
303
-    gdouble blue;
304
-
305
-    red = (gdouble) src->red / 65535.0;
306
-    green = (gdouble) src->green / 65535.0;
307
-    blue = (gdouble) src->blue / 65535.0;
308
-
309
-    red *= 0.93;
310
-    green *= 0.93;
311
-    blue *= 0.93;
312
-
313
-    dest->red = red * 65535.0;
314
-    dest->green = green * 65535.0;
315
-    dest->blue = blue * 65535.0;
316
-}
317
-#endif
318
-
319
 static int32_t CheckWidgetStyle(GtkWidget* aWidget, const char* aStyle, int32_t aResult) {
320
     gboolean value = FALSE;
321
     gtk_widget_style_get(aWidget, aStyle, &value, nullptr);
322
@@ -826,14 +634,8 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
323
         res = NS_ERROR_NOT_IMPLEMENTED;
324
         break;
325
     case eIntID_TouchEnabled:
326
-#if MOZ_WIDGET_GTK == 3
327
         aResult = mozilla::widget::WidgetUtils::IsTouchDeviceSupportPresent();
328
         break;
329
-#else
330
-        aResult = 0;
331
-        res = NS_ERROR_NOT_IMPLEMENTED;
332
-#endif
333
-        break;
334
     case eIntID_MacGraphiteTheme:
335
         aResult = 0;
336
         res = NS_ERROR_NOT_IMPLEMENTED;
337
@@ -905,24 +707,20 @@ nsLookAndFeel::GetFloatImpl(FloatID aID, float &aResult)
338
 }
339
 
340
 static void
341
-GetSystemFontInfo(GtkWidget *aWidget,
342
+GetSystemFontInfo(GtkStyleContext *aStyle,
343
                   nsString *aFontName,
344
                   gfxFontStyle *aFontStyle)
345
 {
346
-    GtkSettings *settings = gtk_widget_get_settings(aWidget);
347
-
348
     aFontStyle->style       = NS_FONT_STYLE_NORMAL;
349
 
350
-    gchar *fontname;
351
-    g_object_get(settings, "gtk-font-name", &fontname, nullptr);
352
-
353
+    // As in
354
+    // https://git.gnome.org/browse/gtk+/tree/gtk/gtkwidget.c?h=3.22.19#n10333
355
     PangoFontDescription *desc;
356
-    desc = pango_font_description_from_string(fontname);
357
+    gtk_style_context_get(aStyle, gtk_style_context_get_state(aStyle),
358
+                          "font", &desc, nullptr);
359
 
360
     aFontStyle->systemFont = true;
361
 
362
-    g_free(fontname);
363
-
364
     NS_NAMED_LITERAL_STRING(quote, "\"");
365
     NS_ConvertUTF8toUTF16 family(pango_font_description_get_family(desc));
366
     *aFontName = quote + family + quote;
367
@@ -953,96 +751,28 @@ GetSystemFontInfo(GtkWidget *aWidget,
368
     pango_font_description_free(desc);
369
 }
370
 
371
-static void
372
-GetSystemFontInfo(LookAndFeel::FontID aID,
373
-                  nsString *aFontName,
374
-                  gfxFontStyle *aFontStyle)
375
-{
376
-    if (aID == LookAndFeel::eFont_Widget) {
377
-        GtkWidget *label = gtk_label_new("M");
378
-        GtkWidget *parent = gtk_fixed_new();
379
-        GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);
380
-
381
-        gtk_container_add(GTK_CONTAINER(parent), label);
382
-        gtk_container_add(GTK_CONTAINER(window), parent);
383
-
384
-        gtk_widget_ensure_style(label);
385
-        GetSystemFontInfo(label, aFontName, aFontStyle);
386
-        gtk_widget_destroy(window);  // no unref, windows are different
387
-
388
-    } else if (aID == LookAndFeel::eFont_Button) {
389
-        GtkWidget *label = gtk_label_new("M");
390
-        GtkWidget *parent = gtk_fixed_new();
391
-        GtkWidget *button = gtk_button_new();
392
-        GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);
393
-
394
-        gtk_container_add(GTK_CONTAINER(button), label);
395
-        gtk_container_add(GTK_CONTAINER(parent), button);
396
-        gtk_container_add(GTK_CONTAINER(window), parent);
397
-
398
-        gtk_widget_ensure_style(label);
399
-        GetSystemFontInfo(label, aFontName, aFontStyle);
400
-        gtk_widget_destroy(window);  // no unref, windows are different
401
-
402
-    } else if (aID == LookAndFeel::eFont_Field) {
403
-        GtkWidget *entry = gtk_entry_new();
404
-        GtkWidget *parent = gtk_fixed_new();
405
-        GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);
406
-
407
-        gtk_container_add(GTK_CONTAINER(parent), entry);
408
-        gtk_container_add(GTK_CONTAINER(window), parent);
409
-
410
-        gtk_widget_ensure_style(entry);
411
-        GetSystemFontInfo(entry, aFontName, aFontStyle);
412
-        gtk_widget_destroy(window);  // no unref, windows are different
413
-
414
-    } else {
415
-        MOZ_ASSERT(aID == LookAndFeel::eFont_Menu, "unexpected font ID");
416
-        GtkWidget *accel_label = gtk_accel_label_new("M");
417
-        GtkWidget *menuitem = gtk_menu_item_new();
418
-        GtkWidget *menu = gtk_menu_new();
419
-        g_object_ref_sink(menu);
420
-
421
-        gtk_container_add(GTK_CONTAINER(menuitem), accel_label);
422
-        gtk_menu_shell_append((GtkMenuShell *)GTK_MENU(menu), menuitem);
423
-
424
-        gtk_widget_ensure_style(accel_label);
425
-        GetSystemFontInfo(accel_label, aFontName, aFontStyle);
426
-        g_object_unref(menu);
427
-    }
428
-}
429
-
430
 bool
431
 nsLookAndFeel::GetFontImpl(FontID aID, nsString& aFontName,
432
                            gfxFontStyle& aFontStyle,
433
                            float aDevPixPerCSSPixel)
434
 {
435
-  nsString *cachedFontName = nullptr;
436
-  gfxFontStyle *cachedFontStyle = nullptr;
437
-  bool *isCached = nullptr;
438
-
439
   switch (aID) {
440
     case eFont_Menu:         // css2
441
     case eFont_PullDownMenu: // css3
442
-      cachedFontName = &mMenuFontName;
443
-      cachedFontStyle = &mMenuFontStyle;
444
-      isCached = &mMenuFontCached;
445
-      aID = eFont_Menu;
446
-      break;
447
+      aFontName = mMenuFontName;
448
+      aFontStyle = mMenuFontStyle;
449
+      return true;
450
 
451
     case eFont_Field:        // css3
452
     case eFont_List:         // css3
453
-      cachedFontName = &mFieldFontName;
454
-      cachedFontStyle = &mFieldFontStyle;
455
-      isCached = &mFieldFontCached;
456
-      aID = eFont_Field;
457
-      break;
458
+      aFontName = mFieldFontName;
459
+      aFontStyle = mFieldFontStyle;
460
+      return true;
461
 
462
     case eFont_Button:       // css3
463
-      cachedFontName = &mButtonFontName;
464
-      cachedFontStyle = &mButtonFontStyle;
465
-      isCached = &mButtonFontCached;
466
-      break;
467
+      aFontName = mButtonFontName;
468
+      aFontStyle = mButtonFontStyle;
469
+      return true;
470
 
471
     case eFont_Caption:      // css2
472
     case eFont_Icon:         // css2
473
@@ -1057,21 +787,11 @@ nsLookAndFeel::GetFontImpl(FontID aID, nsString& aFontName,
474
     case eFont_Dialog:       // css3
475
     case eFont_Tooltips:     // moz
476
     case eFont_Widget:       // moz
477
-      cachedFontName = &mDefaultFontName;
478
-      cachedFontStyle = &mDefaultFontStyle;
479
-      isCached = &mDefaultFontCached;
480
-      aID = eFont_Widget;
481
-      break;
482
-  }
483
-
484
-  if (!*isCached) {
485
-    GetSystemFontInfo(aID, cachedFontName, cachedFontStyle);
486
-    *isCached = true;
487
+    default:
488
+      aFontName = mDefaultFontName;
489
+      aFontStyle = mDefaultFontStyle;
490
+      return true;
491
   }
492
-
493
-  aFontName = *cachedFontName;
494
-  aFontStyle = *cachedFontStyle;
495
-  return true;
496
 }
497
 
498
 void
499
@@ -1087,70 +807,6 @@ nsLookAndFeel::EnsureInit()
500
     // gtk does non threadsafe refcounting
501
     MOZ_ASSERT(NS_IsMainThread());
502
 
503
-#if (MOZ_WIDGET_GTK == 2)
504
-    NS_ASSERTION(!mStyle, "already initialized");
505
-    // GtkInvisibles come with a refcount that is not floating
506
-    // (since their initialization code calls g_object_ref_sink) and
507
-    // their destroy code releases that reference (which means they
508
-    // have to be explicitly destroyed, since calling unref enough
509
-    // to cause destruction would lead to *another* unref).
510
-    // However, this combination means that it's actually still ok
511
-    // to use the normal pattern, which is to g_object_ref_sink
512
-    // after construction, and then destroy *and* unref when we're
513
-    // done.  (Though we could skip the g_object_ref_sink and the
514
-    // corresponding g_object_unref, but that's particular to
515
-    // GtkInvisibles and GtkWindows.)
516
-    GtkWidget *widget = gtk_invisible_new();
517
-    g_object_ref_sink(widget); // effectively g_object_ref (see above)
518
-
519
-    gtk_widget_ensure_style(widget);
520
-    mStyle = gtk_style_copy(gtk_widget_get_style(widget));
521
-
522
-    gtk_widget_destroy(widget);
523
-    g_object_unref(widget);
524
-        
525
-    // tooltip foreground and background
526
-    GtkStyle *style = gtk_rc_get_style_by_paths(gtk_settings_get_default(),
527
-                                                "gtk-tooltips", "GtkWindow",
528
-                                                GTK_TYPE_WINDOW);
529
-    if (style) {
530
-        sInfoBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
531
-        sInfoText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]);
532
-    }
533
-
534
-    // menu foreground & menu background
535
-    GtkWidget *accel_label = gtk_accel_label_new("M");
536
-    GtkWidget *menuitem = gtk_menu_item_new();
537
-    GtkWidget *menu = gtk_menu_new();
538
-
539
-    g_object_ref_sink(menu);
540
-
541
-    gtk_container_add(GTK_CONTAINER(menuitem), accel_label);
542
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
543
-
544
-    gtk_widget_set_style(accel_label, nullptr);
545
-    gtk_widget_set_style(menu, nullptr);
546
-    gtk_widget_realize(menu);
547
-    gtk_widget_realize(accel_label);
548
-
549
-    style = gtk_widget_get_style(accel_label);
550
-    if (style) {
551
-        sMenuText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]);
552
-    }
553
-
554
-    style = gtk_widget_get_style(menu);
555
-    if (style) {
556
-        sMenuBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
557
-    }
558
-    
559
-    style = gtk_widget_get_style(menuitem);
560
-    if (style) {
561
-        sMenuHover = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_PRELIGHT]);
562
-        sMenuHoverText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_PRELIGHT]);
563
-    }
564
-
565
-    g_object_unref(menu);
566
-#else
567
     GdkRGBA color;
568
     GtkStyleContext *style;
569
 
570
@@ -1195,6 +851,12 @@ nsLookAndFeel::EnsureInit()
571
         }
572
     }
573
 
574
+    // The label is not added to a parent widget, but shared for constructing
575
+    // different style contexts.  The node hierarchy is constructed only on
576
+    // the label style context.
577
+    GtkWidget *labelWidget = gtk_label_new("M");
578
+    g_object_ref_sink(labelWidget);
579
+
580
     // Scrollbar colors
581
     style = ClaimStyleContext(MOZ_GTK_SCROLLBAR_TROUGH_VERTICAL);
582
     gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color);
583
@@ -1208,6 +870,13 @@ nsLookAndFeel::EnsureInit()
584
     gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
585
     sMozWindowText = GDK_RGBA_TO_NS_RGBA(color);
586
     ReleaseStyleContext(style);
587
+    style = ClaimStyleContext(MOZ_GTK_WINDOW_CONTAINER);
588
+    {
589
+        GtkStyleContext* labelStyle = CreateStyleForWidget(labelWidget, style);
590
+        GetSystemFontInfo(labelStyle, &mDefaultFontName, &mDefaultFontStyle);
591
+        g_object_unref(labelStyle);
592
+    }
593
+    ReleaseStyleContext(style);
594
 
595
     // tooltip foreground and background
596
     style = ClaimStyleContext(MOZ_GTK_TOOLTIP);
597
@@ -1224,6 +893,9 @@ nsLookAndFeel::EnsureInit()
598
     {
599
         GtkStyleContext* accelStyle =
600
             CreateStyleForWidget(gtk_accel_label_new("M"), style);
601
+
602
+        GetSystemFontInfo(accelStyle, &mMenuFontName, &mMenuFontStyle);
603
+
604
         gtk_style_context_get_color(accelStyle, GTK_STATE_FLAG_NORMAL, &color);
605
         sMenuText = GDK_RGBA_TO_NS_RGBA(color);
606
         gtk_style_context_get_color(accelStyle, GTK_STATE_FLAG_INSENSITIVE, &color);
607
@@ -1243,17 +915,8 @@ nsLookAndFeel::EnsureInit()
608
     gtk_style_context_get_color(style, GTK_STATE_FLAG_PRELIGHT, &color);
609
     sMenuHoverText = GDK_RGBA_TO_NS_RGBA(color);
610
     ReleaseStyleContext(style);
611
-#endif
612
 
613
-    // button styles
614
     GtkWidget *parent = gtk_fixed_new();
615
-    GtkWidget *button = gtk_button_new();
616
-    GtkWidget *label = gtk_label_new("M");
617
-#if (MOZ_WIDGET_GTK == 2)
618
-    GtkWidget *combobox = gtk_combo_box_new();
619
-    GtkWidget *comboboxLabel = gtk_label_new("M");
620
-    gtk_container_add(GTK_CONTAINER(combobox), comboboxLabel);
621
-#endif
622
     GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP);
623
     GtkWidget *treeView = gtk_tree_view_new();
624
     GtkWidget *linkButton = gtk_link_button_new("http://example.com/");
625
@@ -1262,94 +925,14 @@ nsLookAndFeel::EnsureInit()
626
     GtkWidget *entry = gtk_entry_new();
627
     GtkWidget *textView = gtk_text_view_new();
628
 
629
-    gtk_container_add(GTK_CONTAINER(button), label);
630
-    gtk_container_add(GTK_CONTAINER(parent), button);
631
     gtk_container_add(GTK_CONTAINER(parent), treeView);
632
     gtk_container_add(GTK_CONTAINER(parent), linkButton);
633
-#if (MOZ_WIDGET_GTK == 2)
634
-    gtk_container_add(GTK_CONTAINER(parent), combobox);
635
-#endif
636
     gtk_container_add(GTK_CONTAINER(parent), menuBar);
637
     gtk_menu_shell_append(GTK_MENU_SHELL(menuBar), menuBarItem);
638
     gtk_container_add(GTK_CONTAINER(window), parent);
639
     gtk_container_add(GTK_CONTAINER(parent), entry);
640
     gtk_container_add(GTK_CONTAINER(parent), textView);
641
     
642
-#if (MOZ_WIDGET_GTK == 2)
643
-    gtk_widget_set_style(button, nullptr);
644
-    gtk_widget_set_style(label, nullptr);
645
-    gtk_widget_set_style(treeView, nullptr);
646
-    gtk_widget_set_style(linkButton, nullptr);
647
-    gtk_widget_set_style(combobox, nullptr);
648
-    gtk_widget_set_style(comboboxLabel, nullptr);
649
-    gtk_widget_set_style(menuBar, nullptr);
650
-    gtk_widget_set_style(entry, nullptr);
651
-
652
-    gtk_widget_realize(button);
653
-    gtk_widget_realize(label);
654
-    gtk_widget_realize(treeView);
655
-    gtk_widget_realize(linkButton);
656
-    gtk_widget_realize(combobox);
657
-    gtk_widget_realize(comboboxLabel);
658
-    gtk_widget_realize(menuBar);
659
-    gtk_widget_realize(entry);
660
-
661
-    style = gtk_widget_get_style(label);
662
-    if (style) {
663
-        sButtonText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]);
664
-    }
665
-
666
-    style = gtk_widget_get_style(comboboxLabel);
667
-    if (style) {
668
-        sComboBoxText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]);
669
-    }
670
-    style = gtk_widget_get_style(combobox);
671
-    if (style) {
672
-        sComboBoxBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
673
-    }
674
-
675
-    style = gtk_widget_get_style(menuBar);
676
-    if (style) {
677
-        sMenuBarText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]);
678
-        sMenuBarHoverText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_SELECTED]);
679
-    }
680
-
681
-    // GTK's guide to fancy odd row background colors:
682
-    // 1) Check if a theme explicitly defines an odd row color
683
-    // 2) If not, check if it defines an even row color, and darken it
684
-    //    slightly by a hardcoded value (gtkstyle.c)
685
-    // 3) If neither are defined, take the base background color and
686
-    //    darken that by a hardcoded value
687
-    colorValuePtr = nullptr;
688
-    gtk_widget_style_get(treeView,
689
-                         "odd-row-color", &colorValuePtr,
690
-                         nullptr);
691
-
692
-    if (colorValuePtr) {
693
-        colorValue = *colorValuePtr;
694
-    } else {
695
-        gtk_widget_style_get(treeView,
696
-                             "even-row-color", &colorValuePtr,
697
-                             nullptr);
698
-        if (colorValuePtr)
699
-            darken_gdk_color(colorValuePtr, &colorValue);
700
-        else
701
-            darken_gdk_color(&treeView->style->base[GTK_STATE_NORMAL], &colorValue);
702
-    }
703
-
704
-    sOddCellBackground = GDK_COLOR_TO_NS_RGB(colorValue);
705
-    if (colorValuePtr)
706
-        gdk_color_free(colorValuePtr);
707
-
708
-    style = gtk_widget_get_style(button);
709
-    if (style) {
710
-        sButtonBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]);
711
-        sFrameOuterLightBorder =
712
-            GDK_COLOR_TO_NS_RGB(style->light[GTK_STATE_NORMAL]);
713
-        sFrameInnerDarkBorder =
714
-            GDK_COLOR_TO_NS_RGB(style->dark[GTK_STATE_NORMAL]);
715
-    }
716
-#else
717
     // Text colors
718
     GdkRGBA bgColor;
719
     // If the text window background is translucent, then the background of
720
@@ -1381,8 +964,10 @@ nsLookAndFeel::EnsureInit()
721
     // Button text color
722
     style = ClaimStyleContext(MOZ_GTK_BUTTON);
723
     {
724
-        GtkStyleContext* labelStyle =
725
-            CreateStyleForWidget(gtk_label_new("M"), style);
726
+        GtkStyleContext* labelStyle = CreateStyleForWidget(labelWidget, style);
727
+
728
+        GetSystemFontInfo(labelStyle, &mButtonFontName, &mButtonFontStyle);
729
+
730
         gtk_style_context_get_color(labelStyle, GTK_STATE_FLAG_NORMAL, &color);
731
         sButtonText = GDK_RGBA_TO_NS_RGBA(color);
732
         gtk_style_context_get_color(labelStyle, GTK_STATE_FLAG_PRELIGHT, &color);
733
@@ -1446,7 +1031,6 @@ nsLookAndFeel::EnsureInit()
734
     gtk_style_context_add_class(style, GTK_STYLE_CLASS_INFO);
735
     gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color);
736
     sInfoBarText = GDK_RGBA_TO_NS_RGBA(color);
737
-#endif
738
     // Some themes have a unified menu bar, and support window dragging on it
739
     gboolean supports_menubar_drag = FALSE;
740
     GParamSpec *param_spec =
741
@@ -1493,7 +1074,11 @@ nsLookAndFeel::EnsureInit()
742
                          "cursor-aspect-ratio", &sCaretRatio,
743
                          nullptr);
744
 
745
+    GetSystemFontInfo(gtk_widget_get_style_context(entry),
746
+                      &mFieldFontName, &mFieldFontStyle);
747
+
748
     gtk_widget_destroy(window);
749
+    g_object_unref(labelWidget);
750
 }
751
 
752
 // virtual
753
@@ -1515,11 +1100,6 @@ nsLookAndFeel::RefreshImpl()
754
     mFieldFontCached = false;
755
     mMenuFontCached = false;
756
 
757
-#if (MOZ_WIDGET_GTK == 2)
758
-    g_object_unref(mStyle);
759
-    mStyle = nullptr;
760
-#endif
761
-
762
     mInitialized = false;
763
 }
764
 
765
diff --git widget/gtk/nsLookAndFeel.h widget/gtk/nsLookAndFeel.h
766
index 9a4015e95415..38cd51c056d6 100644
767
--- widget/gtk/nsLookAndFeel.h
768
+++ widget/gtk/nsLookAndFeel.h
769
@@ -33,9 +33,6 @@ public:
770
     virtual bool GetEchoPasswordImpl();
771
 
772
 protected:
773
-#if (MOZ_WIDGET_GTK == 2)
774
-    struct _GtkStyle *mStyle;
775
-#endif
776
 
777
     // Cached fonts
778
     bool mDefaultFontCached;
779
@@ -63,7 +60,6 @@ protected:
780
     nscolor sMenuHoverText;
781
     nscolor sButtonText;
782
     nscolor sButtonHoverText;
783
-    nscolor sButtonBackground;
784
     nscolor sFrameOuterLightBorder;
785
     nscolor sFrameInnerDarkBorder;
786
     nscolor sOddCellBackground;
787
@@ -77,9 +73,7 @@ protected:
788
     nscolor sTextSelectedText;
789
     nscolor sTextSelectedBackground;
790
     nscolor sMozScrollbar;
791
-#if (MOZ_WIDGET_GTK == 3)
792
     nscolor sInfoBarText;
793
-#endif
794
     char16_t sInvisibleCharacter;
795
     float   sCaretRatio;
796
     bool    sMenuSupportsDrag;
(-)a/www/firefox/files/patch-bug1386887 (-89 lines)
Removed Link Here
1
commit efbe3a9af876
2
Author: Manish Goregaokar <manishearth@gmail.com>
3
Date:   Wed Aug 2 11:24:35 2017 -0700
4
5
    Bug 1386887 - Clean up FFI lifetimes to work on nightly; r=emilio
6
    
7
    MozReview-Commit-ID: 5WAIVd6p2du
8
---
9
 layout/style/ServoBindingList.h  | 4 ++--
10
 layout/style/ServoBindingTypes.h | 2 ++
11
 layout/style/ServoBindings.h     | 4 ++--
12
 layout/style/ServoBindings.toml  | 4 +++-
13
 4 files changed, 9 insertions(+), 5 deletions(-)
14
15
diff --git layout/style/ServoBindingList.h layout/style/ServoBindingList.h
16
index 6c669ebb3d3e..87ade14ea4de 100644
17
--- layout/style/ServoBindingList.h
18
+++ layout/style/ServoBindingList.h
19
@@ -379,10 +379,10 @@ SERVO_BINDING_FUNC(Servo_DeclarationBlock_HasCSSWideKeyword, bool,
20
                    nsCSSPropertyID property)
21
 // Compose animation value for a given property.
22
 // |base_values| is nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>.
23
-// We use void* to avoid exposing nsRefPtrHashtable in FFI.
24
+// We use RawServoAnimationValueTableBorrowed to avoid exposing nsRefPtrHashtable in FFI.
25
 SERVO_BINDING_FUNC(Servo_AnimationCompose, void,
26
                    RawServoAnimationValueMapBorrowedMut animation_values,
27
-                   void* base_values,
28
+                   RawServoAnimationValueTableBorrowed base_values,
29
                    nsCSSPropertyID property,
30
                    RawGeckoAnimationPropertySegmentBorrowed animation_segment,
31
                    RawGeckoAnimationPropertySegmentBorrowed last_segment,
32
diff --git layout/style/ServoBindingTypes.h layout/style/ServoBindingTypes.h
33
index aaf4fc27e1b9..69be15ee9f51 100644
34
--- layout/style/ServoBindingTypes.h
35
+++ layout/style/ServoBindingTypes.h
36
@@ -54,6 +54,8 @@ class nsXBLBinding;
37
 using mozilla::dom::StyleChildrenIterator;
38
 using mozilla::ServoElementSnapshot;
39
 
40
+typedef void* RawServoAnimationValueTableBorrowed;
41
+
42
 typedef nsINode RawGeckoNode;
43
 typedef mozilla::dom::Element RawGeckoElement;
44
 typedef nsIDocument RawGeckoDocument;
45
diff --git layout/style/ServoBindings.h layout/style/ServoBindings.h
46
index 493ca63f932b..c6ced6d1fedb 100644
47
--- layout/style/ServoBindings.h
48
+++ layout/style/ServoBindings.h
49
@@ -268,9 +268,9 @@ double Gecko_GetPositionInSegment(
50
 // Get servo's AnimationValue for |aProperty| from the cached base style
51
 // |aBaseStyles|.
52
 // |aBaseStyles| is nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>.
53
-// We use void* to avoid exposing nsRefPtrHashtable in FFI.
54
+// We use RawServoAnimationValueTableBorrowed to avoid exposing nsRefPtrHashtable in FFI.
55
 RawServoAnimationValueBorrowedOrNull Gecko_AnimationGetBaseStyle(
56
-  void* aBaseStyles,
57
+  RawServoAnimationValueTableBorrowed aBaseStyles,
58
   nsCSSPropertyID aProperty);
59
 void Gecko_StyleTransition_SetUnsupportedProperty(
60
   mozilla::StyleTransition* aTransition,
61
diff --git layout/style/ServoBindings.toml layout/style/ServoBindings.toml
62
index 11e372541235..3c3902beea80 100644
63
--- layout/style/ServoBindings.toml
64
+++ layout/style/ServoBindings.toml
65
@@ -357,6 +357,7 @@ raw-lines = [
66
     "pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues;",
67
     "pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>;",
68
     "pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData;",
69
+    "pub type RawServoAnimationValueTableBorrowed<'a> = &'a ();"
70
 ]
71
 whitelist-functions = ["Servo_.*", "Gecko_.*"]
72
 structs-types = [
73
@@ -389,7 +390,7 @@ structs-types = [
74
     "RawGeckoPresContext",
75
     "RawGeckoPresContextOwned",
76
     "RawGeckoStyleAnimationList",
77
-    "RawGeckoStyleChildrenIteratorBorrowedMut",
78
+    "RawGeckoStyleChildrenIterator",
79
     "RawGeckoServoStyleRuleList",
80
     "RawGeckoURLExtraData",
81
     "RawGeckoXBLBinding",
82
@@ -526,6 +527,7 @@ servo-borrow-types = [
83
     "RawGeckoFontFaceRuleList",
84
     "RawGeckoServoStyleRuleList",
85
     "RawGeckoServoAnimationValueList",
86
+    "RawGeckoStyleChildrenIterator",
87
 ]
88
 fixups = [
89
     # hack for gecko-owned string
(-)a/www/firefox/files/patch-bug1386957 (-14 lines)
Removed Link Here
1
https://github.com/kinetiknz/cubeb/commit/16f9ccc064f2
2
3
--- media/libcubeb/src/cubeb_jack.cpp.orig	2017-07-07 05:37:16 UTC
4
+++ media/libcubeb/src/cubeb_jack.cpp
5
@@ -8,7 +8,9 @@
6
  */
7
 #define _DEFAULT_SOURCE
8
 #define _BSD_SOURCE
9
+#ifndef __FreeBSD__
10
 #define _POSIX_SOURCE
11
+#endif
12
 #include <dlfcn.h>
13
 #include <stdio.h>
14
 #include <string.h>
(-)a/www/firefox/files/patch-bug1393283 (-144 lines)
Removed Link Here
1
commit d20c7d929c84
2
Author: Ethan <ettseng@mozilla.com>
3
Date:   Fri Sep 1 17:29:44 2017 +0800
4
5
    Bug 1393283 - Use the last ESR version as the spoofed Firefox version. r=tihuang, r=mcmanus
6
---
7
 .../test/browser/browser_navigator.js              |  2 +-
8
 netwerk/protocol/http/nsHttpHandler.cpp            | 16 +++----
9
 .../resistfingerprinting/nsRFPService.cpp          | 56 ++++++++++++++++++++++
10
 .../components/resistfingerprinting/nsRFPService.h |  3 ++
11
 4 files changed, 66 insertions(+), 11 deletions(-)
12
13
diff --git browser/components/resistfingerprinting/test/browser/browser_navigator.js browser/components/resistfingerprinting/test/browser/browser_navigator.js
14
index 25c393d8bb2a..9f52e34a9451 100644
15
--- browser/components/resistfingerprinting/test/browser/browser_navigator.js
16
+++ browser/components/resistfingerprinting/test/browser/browser_navigator.js
17
@@ -91,7 +91,7 @@ add_task(async function setup() {
18
 
19
   let appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo);
20
   let appVersion = parseInt(appInfo.version);
21
-  let spoofedVersion = appVersion - (appVersion % 10);
22
+  let spoofedVersion = appVersion - ((appVersion - 3) % 7);
23
   spoofedUserAgent = `Mozilla/5.0 (${SPOOFED_OSCPU}; rv:${spoofedVersion}.0) Gecko/20100101 Firefox/${spoofedVersion}.0`;
24
 });
25
 
26
diff --git netwerk/protocol/http/nsHttpHandler.cpp netwerk/protocol/http/nsHttpHandler.cpp
27
index 31d0f8832732..b957d835b52f 100644
28
--- netwerk/protocol/http/nsHttpHandler.cpp
29
+++ netwerk/protocol/http/nsHttpHandler.cpp
30
@@ -461,16 +461,12 @@ nsHttpHandler::Init()
31
         mAppVersion.AssignLiteral(MOZ_APP_UA_VERSION);
32
     }
33
 
34
-    // Generating the spoofed userAgent for fingerprinting resistance.
35
-    // The browser version will be rounded down to a multiple of 10.
36
-    // By doing so, the anonymity group will cover more versions instead of one
37
-    // version.
38
-    uint32_t spoofedVersion = mAppVersion.ToInteger(&rv);
39
-    if (NS_SUCCEEDED(rv)) {
40
-        spoofedVersion = spoofedVersion - (spoofedVersion % 10);
41
-        mSpoofedUserAgent.Assign(nsPrintfCString(
42
-            "Mozilla/5.0 (%s; rv:%d.0) Gecko/%s Firefox/%d.0",
43
-            SPOOFED_OSCPU, spoofedVersion, LEGACY_BUILD_ID, spoofedVersion));
44
+    // Generating the spoofed User Agent for fingerprinting resistance.
45
+    rv = nsRFPService::GetSpoofedUserAgent(mSpoofedUserAgent);
46
+    if (NS_FAILED(rv)) {
47
+      // Empty mSpoofedUserAgent to make sure the unsuccessful spoofed UA string
48
+      // will not be used anywhere.
49
+      mSpoofedUserAgent.Truncate();
50
     }
51
 
52
     mSessionStartTime = NowInSeconds();
53
diff --git toolkit/components/resistfingerprinting/nsRFPService.cpp toolkit/components/resistfingerprinting/nsRFPService.cpp
54
index 94554200c3b8..96a2940c04a0 100644
55
--- toolkit/components/resistfingerprinting/nsRFPService.cpp
56
+++ toolkit/components/resistfingerprinting/nsRFPService.cpp
57
@@ -18,10 +18,13 @@
58
 #include "nsServiceManagerUtils.h"
59
 #include "nsString.h"
60
 #include "nsXULAppAPI.h"
61
+#include "nsPrintfCString.h"
62
 
63
 #include "nsIObserverService.h"
64
 #include "nsIPrefBranch.h"
65
 #include "nsIPrefService.h"
66
+#include "nsIXULAppInfo.h"
67
+#include "nsIXULRuntime.h"
68
 #include "nsJSUtils.h"
69
 
70
 #include "prenv.h"
71
@@ -162,6 +165,59 @@ nsRFPService::GetSpoofedPresentedFrames(double aTime, uint32_t aWidth, uint32_t
72
   return NSToIntFloor(time * sVideoFramesPerSec * ((100 - boundedDroppedRatio) / 100.0));
73
 }
74
 
75
+/* static */
76
+nsresult
77
+nsRFPService::GetSpoofedUserAgent(nsACString &userAgent)
78
+{
79
+  // This function generates the spoofed value of User Agent.
80
+  // We spoof the values of the platform and Firefox version, which could be
81
+  // used as fingerprinting sources to identify individuals.
82
+  // Reference of the format of User Agent:
83
+  // https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/userAgent
84
+  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent
85
+
86
+  nsresult rv;
87
+  nsCOMPtr<nsIXULAppInfo> appInfo =
88
+    do_GetService("@mozilla.org/xre/app-info;1", &rv);
89
+  NS_ENSURE_SUCCESS(rv, rv);
90
+
91
+  nsAutoCString appVersion;
92
+  rv = appInfo->GetVersion(appVersion);
93
+  NS_ENSURE_SUCCESS(rv, rv);
94
+
95
+  // The browser version will be spoofed as the last ESR version.
96
+  // By doing so, the anonymity group will cover more versions instead of one
97
+  // version.
98
+  uint32_t firefoxVersion = appVersion.ToInteger(&rv);
99
+  NS_ENSURE_SUCCESS(rv, rv);
100
+
101
+  // Starting from Firefox 10, Firefox ESR was released once every seven
102
+  // Firefox releases, e.g. Firefox 10, 17, 24, 31, and so on.
103
+  // We infer the last and closest ESR version based on this rule.
104
+  nsCOMPtr<nsIXULRuntime> runtime =
105
+    do_GetService("@mozilla.org/xre/runtime;1", &rv);
106
+  NS_ENSURE_SUCCESS(rv, rv);
107
+
108
+  nsAutoCString updateChannel;
109
+  rv = runtime->GetDefaultUpdateChannel(updateChannel);
110
+  NS_ENSURE_SUCCESS(rv, rv);
111
+
112
+  // If we are running in Firefox ESR, determine whether the formula of ESR
113
+  // version has changed.  Once changed, we must update the formula in this
114
+  // function.
115
+  if (updateChannel.Equals("esr")) {
116
+    MOZ_ASSERT(((firefoxVersion % 7) == 3),
117
+      "Please udpate ESR version formula in nsRFPService.cpp");
118
+  }
119
+
120
+  uint32_t spoofedVersion = firefoxVersion - ((firefoxVersion - 3) % 7);
121
+  userAgent.Assign(nsPrintfCString(
122
+    "Mozilla/5.0 (%s; rv:%d.0) Gecko/%s Firefox/%d.0",
123
+    SPOOFED_OSCPU, spoofedVersion, LEGACY_BUILD_ID, spoofedVersion));
124
+
125
+  return rv;
126
+}
127
+
128
 nsresult
129
 nsRFPService::Init()
130
 {
131
diff --git toolkit/components/resistfingerprinting/nsRFPService.h toolkit/components/resistfingerprinting/nsRFPService.h
132
index cf1f688bb992..bad80383883b 100644
133
--- toolkit/components/resistfingerprinting/nsRFPService.h
134
+++ toolkit/components/resistfingerprinting/nsRFPService.h
135
@@ -49,6 +49,9 @@ public:
136
   static uint32_t GetSpoofedDroppedFrames(double aTime, uint32_t aWidth, uint32_t aHeight);
137
   static uint32_t GetSpoofedPresentedFrames(double aTime, uint32_t aWidth, uint32_t aHeight);
138
 
139
+  // This method generates the spoofed value of User Agent.
140
+  static nsresult GetSpoofedUserAgent(nsACString &userAgent);
141
+
142
 private:
143
   nsresult Init();
144
 
(-)a/www/firefox/files/patch-bug1401573 (-27 lines)
Removed Link Here
1
commit d0ed05261f20
2
Author: jason laster <jlaster@mozilla.com>
3
Date:   Wed Sep 20 10:52:54 2017 -0400
4
5
    Bug 1401573 - Fix PoE, Link, and linux issue. r=nchevobbe
6
    
7
    MozReview-Commit-ID: 35TA6bhW1Wr
8
---
9
 devtools/client/debugger/new/debugger.js           | 68 +++++++++++++++++-----
10
 devtools/client/debugger/new/panel.js              | 27 ++++++++-
11
 .../new/test/mochitest/browser_dbg-expressions.js  |  2 +-
12
 3 files changed, 79 insertions(+), 18 deletions(-)
13
14
diff --git devtools/client/debugger/new/debugger.js devtools/client/debugger/new/debugger.js
15
index f52a3e380ab6..c1213180cb13 100644
16
--- devtools/client/debugger/new/debugger.js
17
+++ devtools/client/debugger/new/debugger.js
18
@@ -29493,7 +29493,8 @@ return /******/ (function(modules) { // webpackBootstr
19
 	}
20
 
21
 	function getKeyForOS(os, action) {
22
-	  return KEYS[os][action];
23
+         var osActions = KEYS[os] || KEYS.Linux;
24
+         return osActions[action];
25
 	}
26
 
27
 	function formatKey(action) {
(-)a/www/firefox/files/patch-bug1409680 (-27 lines)
Removed Link Here
1
Bug 1409680 - Extend --disable-debug-symbols to Rust code.
2
3
This reduces disk I/O and memory usage during build that already lacks
4
debugging symbols from C++ code, allowing to use more jobs on 32bit hosts.
5
6
--disable-debug-symbols build on FreeBSD 10.3 i386 (8 cores) host:
7
Max RSS before:  libxul - 612 Mb, libgkrust - 1908 Mb
8
Max RSS after:   libxul - 444 Mb, libgkrust - 1471 Mb
9
Binary before:   libxul - 203 Mb, libgkrust -  732 Mb
10
Binary after:    libxul - 123 Mb, libgkrust -  301 Mb
11
12
--- config/rules.mk.orig	2017-09-14 20:15:53 UTC
13
+++ config/rules.mk
14
@@ -906,11 +906,13 @@ ifdef MOZ_USING_SCCACHE
15
 sccache_wrap := RUSTC_WRAPPER='$(CCACHE)'
16
 endif
17
 
18
+ifdef MOZ_DEBUG_SYMBOLS
19
 # XXX hack to work around dsymutil failing on cross-OSX builds (bug 1380381)
20
 ifeq ($(HOST_OS_ARCH)-$(OS_ARCH),Linux-Darwin)
21
 default_rustflags += -C debuginfo=1
22
 else
23
 default_rustflags += -C debuginfo=2
24
+endif
25
 endif
26
 
27
 # We use the + prefix to pass down the jobserver fds to cargo, but we
(-)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.7',
264
+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.5.1',
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))
(-)b/www/firefox/files/patch-build-pgo-profileserver.py (-10 / +10 lines)
Lines 1-11 Link Here
1
--- build/pgo/profileserver.py.orig	2011-02-24 21:49:47.000000000 +0100
1
--- build/pgo/profileserver.py.orig	2017-09-15 04:15:39 UTC
2
+++ build/pgo/profileserver.py	2011-02-24 21:50:30.000000000 +0100
2
+++ build/pgo/profileserver.py
3
@@ -59,7 +59,7 @@ if __name__ == '__main__':
3
@@ -87,7 +87,7 @@ if __name__ == '__main__':
4
       env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog)
4
             env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog)
5
       print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"]
5
             print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"]
6
 
6
 
7
-    cmdargs = ["http://localhost:%d/index.html" % PORT]
7
-        cmdargs = ["http://localhost:%d/index.html" % PORT]
8
+    cmdargs = ["http://127.0.0.1:%d/index.html" % PORT]
8
+        cmdargs = ["http://127.0.0.1:%d/index.html" % PORT]
9
     runner = FirefoxRunner(profile=profile,
9
         runner = FirefoxRunner(profile=profile,
10
                            binary=build.get_binary_path(where="staged-package"),
10
                                binary=build.get_binary_path(
11
                            cmdargs=cmdargs,
11
                                    where="staged-package"),
(-)a/www/firefox/files/patch-servo17934 (-53 lines)
Removed Link Here
1
commit 4cbdfa028752
2
Author: Manish Goregaokar <manishsmail@gmail.com>
3
Date:   Tue Aug 1 12:57:42 2017 -0500
4
5
    servo: Merge #17934 - Remove doc comment on statement (from Manishearth:doc-comment); r=canaltinova
6
    
7
    rustc warns about these now
8
    
9
    Source-Repo: https://github.com/servo/servo
10
    Source-Revision: b49311c65a083a9b8eb03741bf7ea980b64f1e03
11
    
12
    --HG--
13
    extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
14
    extra : subtree_revision : 6b3c7d7f4ffeb9e271c52d418cda42cac5dd378d
15
---
16
 servo/components/style/values/specified/image.rs | 6 +++---
17
 1 file changed, 3 insertions(+), 3 deletions(-)
18
19
diff --git servo/components/style/values/specified/image.rs servo/components/style/values/specified/image.rs
20
index 37ed00ccf443..687c6f17d432 100644
21
--- servo/components/style/values/specified/image.rs
22
+++ servo/components/style/values/specified/image.rs
23
@@ -686,14 +686,14 @@ impl LineDirection {
24
         input.try(|i| {
25
             let to_ident = i.try(|i| i.expect_ident_matching("to"));
26
             match *compat_mode {
27
-                /// `to` keyword is mandatory in modern syntax.
28
+                // `to` keyword is mandatory in modern syntax.
29
                 CompatMode::Modern => to_ident?,
30
                 // Fall back to Modern compatibility mode in case there is a `to` keyword.
31
                 // According to Gecko, `-moz-linear-gradient(to ...)` should serialize like
32
                 // `linear-gradient(to ...)`.
33
                 CompatMode::Moz if to_ident.is_ok() => *compat_mode = CompatMode::Modern,
34
-                /// There is no `to` keyword in webkit prefixed syntax. If it's consumed,
35
-                /// parsing should throw an error.
36
+                // There is no `to` keyword in webkit prefixed syntax. If it's consumed,
37
+                // parsing should throw an error.
38
                 CompatMode::WebKit if to_ident.is_ok() => {
39
                     return Err(SelectorParseError::UnexpectedIdent("to".into()).into())
40
                 },
41
diff --git servo/components/style/properties/gecko.mako.rs servo/components/style/properties/gecko.mako.rs
42
index 37ed00ccf443..687c6f17d432 100644
43
--- servo/components/style/properties/gecko.mako.rs
44
+++ servo/components/style/properties/gecko.mako.rs
45
@@ -2081,7 +2081,7 @@ fn static_assert() {
46
             return (parent_size, parent_unconstrained_size)
47
         }
48
 
49
-        /// XXXManishearth this should also handle text zoom
50
+        // XXXManishearth this should also handle text zoom
51
         let min = Au(parent.gecko.mScriptMinSize);
52
 
53
         let scale = (parent.gecko.mScriptSizeMultiplier as f32).powi(delta as i32);
(-)a/www/firefox/files/patch-servo17969 (-110 lines)
Removed Link Here
1
commit 9f5c1f2e4b5b
2
Author: Manish Goregaokar <manishsmail@gmail.com>
3
Date:   Thu Aug 3 16:27:12 2017 -0500
4
5
    servo: Merge #17969 - Update stylo code to work on nightly (from Manishearth:rustup); r=emilio
6
    
7
    r=emilio https://bugzilla.mozilla.org/show_bug.cgi?id=1386887
8
    
9
    Source-Repo: https://github.com/servo/servo
10
    Source-Revision: 7cee7d7fcc4194e410fa8a308a77d37ac452778a
11
    
12
    --HG--
13
    extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
14
    extra : subtree_revision : d9c874ebcfa1e64c86265d0ed2e5cff65d9133be
15
---
16
 servo/components/style/gecko/generated/bindings.rs | 12 +++++++++---
17
 servo/components/style/gecko/wrapper.rs            |  7 ++++++-
18
 servo/ports/geckolib/glue.rs                       |  3 ++-
19
 3 files changed, 17 insertions(+), 5 deletions(-)
20
21
diff --git servo/components/style/gecko/generated/bindings.rs servo/components/style/gecko/generated/bindings.rs
22
index e46bdfe1e1ea..b6703ab95bf7 100644
23
--- servo/components/style/gecko/generated/bindings.rs
24
+++ servo/components/style/gecko/generated/bindings.rs
25
@@ -8,6 +8,7 @@ type nsAString_internal = nsAString;
26
 pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues;
27
 pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>;
28
 pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData;
29
+pub type RawServoAnimationValueTableBorrowed<'a> = &'a ();
30
 use gecko_bindings::structs::mozilla::css::GridTemplateAreasValue;
31
 use gecko_bindings::structs::mozilla::css::ErrorReporter;
32
 use gecko_bindings::structs::mozilla::css::ImageValue;
33
@@ -37,7 +38,7 @@ use gecko_bindings::structs::RawServoStyleRule;
34
 use gecko_bindings::structs::RawGeckoPresContext;
35
 use gecko_bindings::structs::RawGeckoPresContextOwned;
36
 use gecko_bindings::structs::RawGeckoStyleAnimationList;
37
-use gecko_bindings::structs::RawGeckoStyleChildrenIteratorBorrowedMut;
38
+use gecko_bindings::structs::RawGeckoStyleChildrenIterator;
39
 use gecko_bindings::structs::RawGeckoServoStyleRuleList;
40
 use gecko_bindings::structs::RawGeckoURLExtraData;
41
 use gecko_bindings::structs::RawGeckoXBLBinding;
42
@@ -320,6 +321,10 @@ pub type RawGeckoServoAnimationValueListBorrowed<'a> = &'a RawGeckoServoAnimatio
43
 pub type RawGeckoServoAnimationValueListBorrowedOrNull<'a> = Option<&'a RawGeckoServoAnimationValueList>;
44
 pub type RawGeckoServoAnimationValueListBorrowedMut<'a> = &'a mut RawGeckoServoAnimationValueList;
45
 pub type RawGeckoServoAnimationValueListBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoServoAnimationValueList>;
46
+pub type RawGeckoStyleChildrenIteratorBorrowed<'a> = &'a RawGeckoStyleChildrenIterator;
47
+pub type RawGeckoStyleChildrenIteratorBorrowedOrNull<'a> = Option<&'a RawGeckoStyleChildrenIterator>;
48
+pub type RawGeckoStyleChildrenIteratorBorrowedMut<'a> = &'a mut RawGeckoStyleChildrenIterator;
49
+pub type RawGeckoStyleChildrenIteratorBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoStyleChildrenIterator>;
50
 pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong<ServoCssRules>;
51
 pub type ServoCssRulesBorrowed<'a> = &'a ServoCssRules;
52
 pub type ServoCssRulesBorrowedOrNull<'a> = Option<&'a ServoCssRules>;
53
@@ -840,7 +845,7 @@ extern "C" {
54
 }
55
 extern "C" {
56
     pub fn Gecko_AnimationGetBaseStyle(aBaseStyles:
57
-                                           *mut ::std::os::raw::c_void,
58
+                                           RawServoAnimationValueTableBorrowed,
59
                                        aProperty: nsCSSPropertyID)
60
      -> RawServoAnimationValueBorrowedOrNull;
61
 }
62
@@ -2602,7 +2607,8 @@ extern "C" {
63
 extern "C" {
64
     pub fn Servo_AnimationCompose(animation_values:
65
                                       RawServoAnimationValueMapBorrowedMut,
66
-                                  base_values: *mut ::std::os::raw::c_void,
67
+                                  base_values:
68
+                                      RawServoAnimationValueTableBorrowed,
69
                                   property: nsCSSPropertyID,
70
                                   animation_segment:
71
                                       RawGeckoAnimationPropertySegmentBorrowed,
72
diff --git servo/components/style/gecko/wrapper.rs servo/components/style/gecko/wrapper.rs
73
index dae898692313..6d62f54951cc 100644
74
--- servo/components/style/gecko/wrapper.rs
75
+++ servo/components/style/gecko/wrapper.rs
76
@@ -387,7 +387,12 @@ impl<'a> Iterator for GeckoChildrenIterator<'a> {
77
                 curr
78
             },
79
             GeckoChildrenIterator::GeckoIterator(ref mut it) => unsafe {
80
-                Gecko_GetNextStyleChild(it).map(GeckoNode)
81
+                // We do this unsafe lengthening of the lifetime here because
82
+                // structs::StyleChildrenIterator is actually StyleChildrenIterator<'a>,
83
+                // however we can't express this easily with bindgen, and it would
84
+                // introduce functions with two input lifetimes into bindgen,
85
+                // which would be out of scope for elision.
86
+                Gecko_GetNextStyleChild(&mut * (it as *mut _)).map(GeckoNode)
87
             }
88
         }
89
     }
90
diff --git servo/ports/geckolib/glue.rs servo/ports/geckolib/glue.rs
91
index 367d24ff87b2..e69959f3710b 100644
92
--- servo/ports/geckolib/glue.rs
93
+++ servo/ports/geckolib/glue.rs
94
@@ -59,6 +59,7 @@ use style::gecko_bindings::bindings::RawGeckoServoStyleRuleListBorrowedMut;
95
 use style::gecko_bindings::bindings::RawServoAnimationValueBorrowed;
96
 use style::gecko_bindings::bindings::RawServoAnimationValueMapBorrowedMut;
97
 use style::gecko_bindings::bindings::RawServoAnimationValueStrong;
98
+use style::gecko_bindings::bindings::RawServoAnimationValueTableBorrowed;
99
 use style::gecko_bindings::bindings::RawServoStyleRuleBorrowed;
100
 use style::gecko_bindings::bindings::ServoStyleContextBorrowedOrNull;
101
 use style::gecko_bindings::bindings::nsTArrayBorrowed_uintptr_t;
102
@@ -374,7 +375,7 @@ pub extern "C" fn Servo_AnimationValues_ComputeDistance(from: RawServoAnimationV
103
 
104
 #[no_mangle]
105
 pub extern "C" fn Servo_AnimationCompose(raw_value_map: RawServoAnimationValueMapBorrowedMut,
106
-                                         base_values: *mut ::std::os::raw::c_void,
107
+                                         base_values: RawServoAnimationValueTableBorrowed,
108
                                          css_property: nsCSSPropertyID,
109
                                          segment: RawGeckoAnimationPropertySegmentBorrowed,
110
                                          last_segment: RawGeckoAnimationPropertySegmentBorrowed,
(-)a/www/firefox/files/patch-servo18046 (-763 lines)
Removed Link Here
1
commit ea9c8db790e4
2
Author: Simon Sapin <simon.sapin@exyr.org>
3
Date:   Tue Aug 15 07:31:04 2017 -0500
4
5
    servo: Merge #18046 - Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) (from servo:rustup); r=emilio
6
    
7
    Source-Repo: https://github.com/servo/servo
8
    Source-Revision: 7d9b82b9efa7b10a2e34d93df5ac535d99518f7a
9
    
10
    --HG--
11
    extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
12
    extra : subtree_revision : e1b3d113c3edaea3c4c07f8b206f2e02922e3caf
13
---
14
 servo/Cargo.lock                                   |  6 +++---
15
 servo/components/devtools/lib.rs                   |  2 +-
16
 servo/components/layout/animation.rs               |  2 +-
17
 servo/components/layout/construct.rs               |  6 +++---
18
 servo/components/layout/display_list_builder.rs    |  2 +-
19
 servo/components/layout/flex.rs                    |  6 +++---
20
 servo/components/layout/inline.rs                  |  4 ++--
21
 servo/components/layout/sequential.rs              |  2 +-
22
 servo/components/layout/table_cell.rs              |  2 +-
23
 servo/components/layout/text.rs                    |  2 +-
24
 servo/components/net/cookie_storage.rs             |  2 +-
25
 servo/components/profile/heartbeats.rs             |  4 ++--
26
 servo/components/script/dom/bindings/js.rs         |  4 ++--
27
 servo/components/script/dom/cssstyledeclaration.rs |  8 ++++----
28
 servo/components/script/dom/cssstylerule.rs        |  2 +-
29
 servo/components/script/dom/document.rs            | 12 ++++++------
30
 servo/components/script/dom/medialist.rs           |  4 ++--
31
 servo/components/script/dom/range.rs               |  4 ++--
32
 .../script/dom/servoparser/async_html.rs           |  4 ++--
33
 servo/components/script/dom/url.rs                 |  4 ++--
34
 servo/components/script/dom/vrdisplay.rs           |  2 +-
35
 .../components/script/dom/webglrenderingcontext.rs |  2 +-
36
 servo/components/script/dom/xmlhttprequest.rs      |  2 +-
37
 servo/components/script/lib.rs                     |  1 -
38
 .../script_plugins/unrooted_must_root.rs           | 22 +++++++++++++++-------
39
 servo/components/selectors/matching.rs             |  2 +-
40
 servo/components/selectors/parser.rs               |  2 +-
41
 .../style/invalidation/element/invalidator.rs      |  2 +-
42
 servo/components/style/matching.rs                 |  2 +-
43
 .../components/style/properties/properties.mako.rs |  2 +-
44
 servo/components/style/style_adjuster.rs           |  2 +-
45
 servo/components/style/style_resolver.rs           |  2 +-
46
 servo/components/style/stylesheets/rule_list.rs    |  2 +-
47
 servo/components/style/stylesheets/rule_parser.rs  |  2 +-
48
 .../components/style/stylesheets/rules_iterator.rs |  2 +-
49
 servo/components/style/values/animated/color.rs    |  2 +-
50
 servo/components/style/values/computed/border.rs   |  2 +-
51
 servo/components/webdriver_server/lib.rs           |  2 +-
52
 servo/rust-commit-hash                             |  2 +-
53
 servo/tests/unit/style/stylist.rs                  | 13 -------------
54
 40 files changed, 73 insertions(+), 79 deletions(-)
55
56
diff --git servo/Cargo.lock servo/Cargo.lock
57
index 50dd6e1a785a..2aa7bd8ea3dd 100644
58
--- servo/Cargo.lock
59
+++ servo/Cargo.lock
60
@@ -3577,7 +3577,7 @@ version = "0.1.4"
61
 source = "registry+https://github.com/rust-lang/crates.io-index"
62
 dependencies = [
63
  "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
64
- "xcb 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
65
+ "xcb 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
66
 ]
67
 
68
 [[package]]
69
@@ -3592,7 +3592,7 @@ dependencies = [
70
 
71
 [[package]]
72
 name = "xcb"
73
-version = "0.7.6"
74
+version = "0.7.7"
75
 source = "registry+https://github.com/rust-lang/crates.io-index"
76
 dependencies = [
77
  "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
78
@@ -3918,7 +3918,7 @@ dependencies = [
79
 "checksum x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db27c597c187da52194a4b8232e7d869503911aab9ff726fefb76d7a830f78ed"
80
 "checksum x11-clipboard 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "731230b8edcbb9d99247105e4c9ec0a538594d50ad68d2afa8662195f9db2973"
81
 "checksum x11-dl 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "326c500cdc166fd7c70dd8c8a829cd5c0ce7be5a5d98c25817de2b9bdc67faf8"
82
-"checksum xcb 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "63e3a849b73e4e1905e4f4d48f1750429bc86ea9f473632ab382a6f69ecb6b33"
83
+"checksum xcb 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "7cede38417fcdf2f0a9d8abf1cea1c1b066320a8a316e9583a0d717c334fafb2"
84
 "checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61"
85
 "checksum xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "12ea8eda4b1eb72f02d148402e23832d56a33f55d8c1b2d5bcdde91d79d47cb1"
86
 "checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
87
diff --git servo/components/devtools/lib.rs servo/components/devtools/lib.rs
88
index d5a2764a7102..6a25696eaed7 100644
89
--- servo/components/devtools/lib.rs
90
+++ servo/components/devtools/lib.rs
91
@@ -306,7 +306,7 @@ fn run_server(sender: Sender<DevtoolsControlMsg>,
92
                 columnNumber: console_message.columnNumber,
93
             },
94
         };
95
-        for mut stream in &mut *console_actor.streams.borrow_mut() {
96
+        for stream in &mut *console_actor.streams.borrow_mut() {
97
             stream.write_json_packet(&msg);
98
         }
99
     }
100
diff --git servo/components/layout/animation.rs servo/components/layout/animation.rs
101
index e4a2782c1271..ebbba82fcc6a 100644
102
--- servo/components/layout/animation.rs
103
+++ servo/components/layout/animation.rs
104
@@ -39,7 +39,7 @@ pub fn update_animation_state(constellation_chan: &IpcSender<ConstellationMsg>,
105
             // run.
106
             if let Some(ref mut animations) = running_animations.get_mut(node) {
107
                 // TODO: This being linear is probably not optimal.
108
-                for mut anim in animations.iter_mut() {
109
+                for anim in animations.iter_mut() {
110
                     if let Animation::Keyframes(_, ref anim_name, ref mut anim_state) = *anim {
111
                         if *name == *anim_name {
112
                             debug!("update_animation_state: Found other animation {}", name);
113
diff --git servo/components/layout/construct.rs servo/components/layout/construct.rs
114
index c863219941e4..7ef391b42183 100644
115
--- servo/components/layout/construct.rs
116
+++ servo/components/layout/construct.rs
117
@@ -1921,7 +1921,7 @@ impl Legalizer {
118
     /// true for anonymous block children of flex flows.
119
     fn try_to_add_child(&mut self, context: &SharedStyleContext, parent: &mut FlowRef, child: &mut FlowRef)
120
                         -> bool {
121
-        let mut parent = self.stack.last_mut().unwrap_or(parent);
122
+        let parent = self.stack.last_mut().unwrap_or(parent);
123
         let (parent_class, child_class) = (parent.class(), child.class());
124
         match (parent_class, child_class) {
125
             (FlowClass::TableWrapper, FlowClass::Table) |
126
@@ -1962,7 +1962,7 @@ impl Legalizer {
127
                     } else {
128
                         IS_BLOCK_FLEX_ITEM
129
                     };
130
-                    let mut block = FlowRef::deref_mut(&mut block_wrapper).as_mut_block();
131
+                    let block = FlowRef::deref_mut(&mut block_wrapper).as_mut_block();
132
                     block.base.flags.insert(MARGINS_CANNOT_COLLAPSE);
133
                     block.fragment.flags.insert(flag);
134
                 }
135
@@ -1979,7 +1979,7 @@ impl Legalizer {
136
                     } else {
137
                         IS_BLOCK_FLEX_ITEM
138
                     };
139
-                    let mut block = FlowRef::deref_mut(child).as_mut_block();
140
+                    let block = FlowRef::deref_mut(child).as_mut_block();
141
                     block.base.flags.insert(MARGINS_CANNOT_COLLAPSE);
142
                     block.fragment.flags.insert(flag);
143
                 }
144
diff --git servo/components/layout/display_list_builder.rs servo/components/layout/display_list_builder.rs
145
index f8b26899b57d..783574afd2a3 100644
146
--- servo/components/layout/display_list_builder.rs
147
+++ servo/components/layout/display_list_builder.rs
148
@@ -2718,7 +2718,7 @@ impl InlineFlowDisplayListBuilding for InlineFlow {
149
         self.base.scroll_root_id = Some(state.current_scroll_root_id);
150
         self.base.clip = state.clip_stack.last().cloned().unwrap_or_else(max_rect);
151
 
152
-        for mut fragment in self.fragments.fragments.iter_mut() {
153
+        for fragment in self.fragments.fragments.iter_mut() {
154
             let previous_containing_block_scroll_root_id = state.containing_block_scroll_root_id;
155
             if establishes_containing_block_for_absolute(fragment.style.get_box().position) {
156
                 state.containing_block_scroll_root_id = state.current_scroll_root_id;
157
diff --git servo/components/layout/flex.rs servo/components/layout/flex.rs
158
index 353c939f58b9..d79580f8cd0d 100644
159
--- servo/components/layout/flex.rs
160
+++ servo/components/layout/flex.rs
161
@@ -415,7 +415,7 @@ impl FlexFlow {
162
 
163
         let items = &mut self.items[start..];
164
         let mut children = self.block_flow.base.children.random_access_mut();
165
-        for mut item in items {
166
+        for item in items {
167
             let kid = children.get(item.index);
168
             item.init_sizes(kid, container_size, self.main_mode);
169
             let outer_main_size = item.outer_main_size(kid, self.main_mode);
170
@@ -607,7 +607,7 @@ impl FlexFlow {
171
 
172
             let mut children = self.block_flow.base.children.random_access_mut();
173
             for item in items.iter_mut() {
174
-                let mut block = children.get(item.index).as_mut_block();
175
+                let block = children.get(item.index).as_mut_block();
176
 
177
                 block.base.block_container_writing_mode = container_mode;
178
                 block.base.block_container_inline_size = inline_size;
179
@@ -659,7 +659,7 @@ impl FlexFlow {
180
 
181
         let mut children = self.block_flow.base.children.random_access_mut();
182
         for item in &mut self.items {
183
-            let mut base = flow::mut_base(children.get(item.index));
184
+            let base = flow::mut_base(children.get(item.index));
185
             if !self.main_reverse {
186
                 base.position.start.b = cur_b;
187
                 cur_b = cur_b + base.position.size.block;
188
diff --git servo/components/layout/inline.rs servo/components/layout/inline.rs
189
index d5813d9bea22..10e091c3c66d 100644
190
--- servo/components/layout/inline.rs
191
+++ servo/components/layout/inline.rs
192
@@ -435,7 +435,7 @@ impl LineBreaker {
193
             return
194
         }
195
         let last_fragment_index = self.pending_line.range.end() - FragmentIndex(1);
196
-        let mut fragment = &mut self.new_fragments[last_fragment_index.get() as usize];
197
+        let fragment = &mut self.new_fragments[last_fragment_index.get() as usize];
198
 
199
         let old_fragment_inline_size = fragment.border_box.size.inline;
200
 
201
@@ -1047,7 +1047,7 @@ impl InlineFlow {
202
         let space_per_expansion_opportunity = slack_inline_size / expansion_opportunities as i32;
203
         for fragment_index in line.range.each_index() {
204
             let fragment = fragments.get_mut(fragment_index.to_usize());
205
-            let mut scanned_text_fragment_info = match fragment.specific {
206
+            let scanned_text_fragment_info = match fragment.specific {
207
                 SpecificFragmentInfo::ScannedText(ref mut info) if !info.range.is_empty() => info,
208
                 _ => continue
209
             };
210
diff --git servo/components/layout/sequential.rs servo/components/layout/sequential.rs
211
index f6f8ce429e4f..4986ebb6c852 100644
212
--- servo/components/layout/sequential.rs
213
+++ servo/components/layout/sequential.rs
214
@@ -133,7 +133,7 @@ pub fn store_overflow(layout_context: &LayoutContext, flow: &mut Flow) {
215
         return;
216
     }
217
 
218
-    for mut kid in flow::mut_base(flow).child_iter_mut() {
219
+    for kid in flow::mut_base(flow).child_iter_mut() {
220
         store_overflow(layout_context, kid);
221
     }
222
 
223
diff --git servo/components/layout/table_cell.rs servo/components/layout/table_cell.rs
224
index 7ef02e28db65..fd807989b463 100644
225
--- servo/components/layout/table_cell.rs
226
+++ servo/components/layout/table_cell.rs
227
@@ -136,7 +136,7 @@ impl TableCellFlow {
228
         }
229
 
230
         for kid in flow::mut_base(self).children.iter_mut() {
231
-            let mut kid_base = flow::mut_base(kid);
232
+            let kid_base = flow::mut_base(kid);
233
             if !kid_base.flags.contains(IS_ABSOLUTELY_POSITIONED) {
234
                 kid_base.position.start.b += offset
235
             }
236
diff --git servo/components/layout/text.rs servo/components/layout/text.rs
237
index 6e1c7b2a43a1..9a207a2bb84e 100644
238
--- servo/components/layout/text.rs
239
+++ servo/components/layout/text.rs
240
@@ -460,7 +460,7 @@ fn split_first_fragment_at_newline_if_necessary(fragments: &mut LinkedList<Fragm
241
     }
242
 
243
     let new_fragment = {
244
-        let mut first_fragment = fragments.front_mut().unwrap();
245
+        let first_fragment = fragments.front_mut().unwrap();
246
         let string_before;
247
         let selection_before;
248
         {
249
diff --git servo/components/net/cookie_storage.rs servo/components/net/cookie_storage.rs
250
index f255f57b56d2..b3147ef4dd32 100644
251
--- servo/components/net/cookie_storage.rs
252
+++ servo/components/net/cookie_storage.rs
253
@@ -103,7 +103,7 @@ impl CookieStorage {
254
 
255
         // Step 12
256
         let domain = reg_host(&cookie.cookie.domain().as_ref().unwrap_or(&""));
257
-        let mut cookies = self.cookies_map.entry(domain).or_insert(vec![]);
258
+        let cookies = self.cookies_map.entry(domain).or_insert(vec![]);
259
 
260
         if cookies.len() == self.max_per_host {
261
             let old_len = cookies.len();
262
diff --git servo/components/profile/heartbeats.rs servo/components/profile/heartbeats.rs
263
index 4661dad61836..0d474fe3a111 100644
264
--- servo/components/profile/heartbeats.rs
265
+++ servo/components/profile/heartbeats.rs
266
@@ -33,7 +33,7 @@ pub fn cleanup() {
267
         )
268
     );
269
     if let Some(mut hbs) = hbs_opt_box {
270
-        for (_, mut v) in hbs.iter_mut() {
271
+        for (_, v) in hbs.iter_mut() {
272
             // log any remaining heartbeat records before dropping
273
             log_heartbeat_records(v);
274
         }
275
@@ -65,7 +65,7 @@ pub fn maybe_heartbeat(category: &ProfilerCategory,
276
                 if !(*hbs_ptr).contains_key(category) {
277
                     maybe_create_heartbeat(&mut (*hbs_ptr), category.clone());
278
                 }
279
-                if let Some(mut h) = (*hbs_ptr).get_mut(category) {
280
+                if let Some(h) = (*hbs_ptr).get_mut(category) {
281
                     (*h).heartbeat(0, 1, start_time, end_time, start_energy, end_energy);
282
                 }
283
             }
284
diff --git servo/components/script/dom/bindings/js.rs servo/components/script/dom/bindings/js.rs
285
index 975ddeda13b0..abfd9f47eff1 100644
286
--- servo/components/script/dom/bindings/js.rs
287
+++ servo/components/script/dom/bindings/js.rs
288
@@ -469,7 +469,7 @@ impl RootCollection {
289
     /// Start tracking a stack-based root
290
     unsafe fn root(&self, untracked_reflector: *const Reflector) {
291
         debug_assert!(thread_state::get().is_script());
292
-        let mut roots = &mut *self.roots.get();
293
+        let roots = &mut *self.roots.get();
294
         roots.push(untracked_reflector);
295
         assert!(!(*untracked_reflector).get_jsobject().is_null())
296
     }
297
@@ -479,7 +479,7 @@ impl RootCollection {
298
         assert!(!tracked_reflector.is_null());
299
         assert!(!(*tracked_reflector).get_jsobject().is_null());
300
         debug_assert!(thread_state::get().is_script());
301
-        let mut roots = &mut *self.roots.get();
302
+        let roots = &mut *self.roots.get();
303
         match roots.iter().rposition(|r| *r == tracked_reflector) {
304
             Some(idx) => {
305
                 roots.remove(idx);
306
diff --git servo/components/script/dom/cssstyledeclaration.rs servo/components/script/dom/cssstyledeclaration.rs
307
index 0732c9af9e45..ddf085b34913 100644
308
--- servo/components/script/dom/cssstyledeclaration.rs
309
+++ servo/components/script/dom/cssstyledeclaration.rs
310
@@ -238,7 +238,7 @@ impl CSSStyleDeclaration {
311
             return Err(Error::NoModificationAllowed);
312
         }
313
 
314
-        self.owner.mutate_associated_block(|ref mut pdb, mut changed| {
315
+        self.owner.mutate_associated_block(|pdb, changed| {
316
             if value.is_empty() {
317
                 // Step 3
318
                 *changed = pdb.remove_property(&id);
319
@@ -360,7 +360,7 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
320
             _ => return Ok(()),
321
         };
322
 
323
-        self.owner.mutate_associated_block(|ref mut pdb, mut changed| {
324
+        self.owner.mutate_associated_block(|pdb, changed| {
325
             // Step 5 & 6
326
             *changed = pdb.set_importance(&id, importance);
327
         });
328
@@ -388,7 +388,7 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
329
         };
330
 
331
         let mut string = String::new();
332
-        self.owner.mutate_associated_block(|mut pdb, mut changed| {
333
+        self.owner.mutate_associated_block(|pdb, changed| {
334
             pdb.property_value_to_css(&id, &mut string).unwrap();
335
             *changed = pdb.remove_property(&id);
336
         });
337
@@ -438,7 +438,7 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration {
338
         }
339
 
340
         let quirks_mode = window.Document().quirks_mode();
341
-        self.owner.mutate_associated_block(|mut pdb, mut _changed| {
342
+        self.owner.mutate_associated_block(|pdb, _changed| {
343
             // Step 3
344
             *pdb = parse_style_attribute(&value,
345
                                          &self.owner.base_url(),
346
diff --git servo/components/script/dom/cssstylerule.rs servo/components/script/dom/cssstylerule.rs
347
index ea121ef900a9..12e9cdcc8694 100644
348
--- servo/components/script/dom/cssstylerule.rs
349
+++ servo/components/script/dom/cssstylerule.rs
350
@@ -99,7 +99,7 @@ impl CSSStyleRuleMethods for CSSStyleRule {
351
         if let Ok(mut s) = SelectorList::parse(&parser, &mut css_parser) {
352
             // This mirrors what we do in CSSStyleOwner::mutate_associated_block.
353
             let mut guard = self.cssrule.shared_lock().write();
354
-            let mut stylerule = self.stylerule.write_with(&mut guard);
355
+            let stylerule = self.stylerule.write_with(&mut guard);
356
             mem::swap(&mut stylerule.selectors, &mut s);
357
             // It seems like we will want to avoid having to invalidate all
358
             // stylesheets eventually!
359
diff --git servo/components/script/dom/document.rs servo/components/script/dom/document.rs
360
index 90ea06fbe7b4..71bb02eaa364 100644
361
--- servo/components/script/dom/document.rs
362
+++ servo/components/script/dom/document.rs
363
@@ -633,7 +633,7 @@ impl Document {
364
         // reset_form_owner_for_listeners -> reset_form_owner -> GetElementById
365
         {
366
             let mut id_map = self.id_map.borrow_mut();
367
-            let mut elements = id_map.entry(id.clone()).or_insert(Vec::new());
368
+            let elements = id_map.entry(id.clone()).or_insert(Vec::new());
369
             elements.insert_pre_order(element, root.r().upcast::<Node>());
370
         }
371
         self.reset_form_owner_for_listeners(&id);
372
@@ -642,7 +642,7 @@ impl Document {
373
     pub fn register_form_id_listener<T: ?Sized + FormControl>(&self, id: DOMString, listener: &T) {
374
         let mut map = self.form_id_listener_map.borrow_mut();
375
         let listener = listener.to_element();
376
-        let mut set = map.entry(Atom::from(id)).or_insert(HashSet::new());
377
+        let set = map.entry(Atom::from(id)).or_insert(HashSet::new());
378
         set.insert(JS::from_ref(listener));
379
     }
380
 
381
@@ -1572,7 +1572,7 @@ impl Document {
382
     /// https://html.spec.whatwg.org/multipage/#dom-window-cancelanimationframe
383
     pub fn cancel_animation_frame(&self, ident: u32) {
384
         let mut list = self.animation_frame_list.borrow_mut();
385
-        if let Some(mut pair) = list.iter_mut().find(|pair| pair.0 == ident) {
386
+        if let Some(pair) = list.iter_mut().find(|pair| pair.0 == ident) {
387
             pair.1 = None;
388
         }
389
     }
390
@@ -2399,7 +2399,7 @@ impl Document {
391
         if entry.snapshot.is_none() {
392
             entry.snapshot = Some(Snapshot::new(el.html_element_in_html_document()));
393
         }
394
-        let mut snapshot = entry.snapshot.as_mut().unwrap();
395
+        let snapshot = entry.snapshot.as_mut().unwrap();
396
         if snapshot.state.is_none() {
397
             snapshot.state = Some(el.state());
398
         }
399
@@ -2426,7 +2426,7 @@ impl Document {
400
             entry.hint.insert(RESTYLE_SELF);
401
         }
402
 
403
-        let mut snapshot = entry.snapshot.as_mut().unwrap();
404
+        let snapshot = entry.snapshot.as_mut().unwrap();
405
         if attr.local_name() == &local_name!("id") {
406
             snapshot.id_changed = true;
407
         } else if attr.local_name() == &local_name!("class") {
408
@@ -4028,7 +4028,7 @@ impl PendingInOrderScriptVec {
409
 
410
     fn loaded(&self, element: &HTMLScriptElement, result: ScriptResult) {
411
         let mut scripts = self.scripts.borrow_mut();
412
-        let mut entry = scripts.iter_mut().find(|entry| &*entry.element == element).unwrap();
413
+        let entry = scripts.iter_mut().find(|entry| &*entry.element == element).unwrap();
414
         entry.loaded(result);
415
     }
416
 
417
diff --git servo/components/script/dom/medialist.rs servo/components/script/dom/medialist.rs
418
index 0064d0445095..ae20f5aa0422 100644
419
--- servo/components/script/dom/medialist.rs
420
+++ servo/components/script/dom/medialist.rs
421
@@ -63,7 +63,7 @@ impl MediaListMethods for MediaList {
422
     // https://drafts.csswg.org/cssom/#dom-medialist-mediatext
423
     fn SetMediaText(&self, value: DOMString) {
424
         let mut guard = self.shared_lock().write();
425
-        let mut media_queries = self.media_queries.write_with(&mut guard);
426
+        let media_queries = self.media_queries.write_with(&mut guard);
427
         // Step 2
428
         if value.is_empty() {
429
             // Step 1
430
@@ -154,7 +154,7 @@ impl MediaListMethods for MediaList {
431
         // Step 3
432
         let m_serialized = m.unwrap().to_css_string();
433
         let mut guard = self.shared_lock().write();
434
-        let mut media_list = self.media_queries.write_with(&mut guard);
435
+        let media_list = self.media_queries.write_with(&mut guard);
436
         let new_vec = media_list.media_queries.drain(..)
437
                                 .filter(|q| m_serialized != q.to_css_string())
438
                                 .collect();
439
diff --git servo/components/script/dom/range.rs servo/components/script/dom/range.rs
440
index fa849a0fc1a2..1e65caedc9dd 100644
441
--- servo/components/script/dom/range.rs
442
+++ servo/components/script/dom/range.rs
443
@@ -1049,7 +1049,7 @@ impl WeakRangeVec {
444
         let offset = context.index();
445
         let parent = context.parent;
446
         unsafe {
447
-            let mut ranges = &mut *self.cell.get();
448
+            let ranges = &mut *self.cell.get();
449
 
450
             ranges.update(|entry| {
451
                 let range = entry.root().unwrap();
452
@@ -1076,7 +1076,7 @@ impl WeakRangeVec {
453
         }
454
 
455
         unsafe {
456
-            let mut ranges = &mut *self.cell.get();
457
+            let ranges = &mut *self.cell.get();
458
 
459
             ranges.update(|entry| {
460
                 let range = entry.root().unwrap();
461
diff --git servo/components/script/dom/servoparser/async_html.rs servo/components/script/dom/servoparser/async_html.rs
462
index 59411fda1c73..70d2008f49f6 100644
463
--- servo/components/script/dom/servoparser/async_html.rs
464
+++ servo/components/script/dom/servoparser/async_html.rs
465
@@ -568,7 +568,7 @@ impl TreeSink for Sink {
466
         }
467
         let node = self.new_parse_node();
468
         {
469
-            let mut data = self.get_parse_node_data_mut(&target.id);
470
+            let data = self.get_parse_node_data_mut(&target.id);
471
             data.contents = Some(node.clone());
472
         }
473
         self.send_op(ParseOperation::GetTemplateContents { target: target.id, contents: node.id });
474
@@ -596,7 +596,7 @@ impl TreeSink for Sink {
475
         let mut node = self.new_parse_node();
476
         node.qual_name = Some(name.clone());
477
         {
478
-            let mut node_data = self.get_parse_node_data_mut(&node.id);
479
+            let node_data = self.get_parse_node_data_mut(&node.id);
480
             node_data.is_integration_point = html_attrs.iter()
481
             .any(|attr| {
482
                 let attr_value = &String::from(attr.value.clone());
483
diff --git servo/components/script/dom/url.rs servo/components/script/dom/url.rs
484
index a02a735638fc..41de4dcc0c72 100644
485
--- servo/components/script/dom/url.rs
486
+++ servo/components/script/dom/url.rs
487
@@ -96,8 +96,8 @@ impl URL {
488
 
489
     // https://w3c.github.io/FileAPI/#dfn-createObjectURL
490
     pub fn CreateObjectURL(global: &GlobalScope, blob: &Blob) -> DOMString {
491
-        /// XXX: Second field is an unicode-serialized Origin, it is a temporary workaround
492
-        ///      and should not be trusted. See issue https://github.com/servo/servo/issues/11722
493
+        // XXX: Second field is an unicode-serialized Origin, it is a temporary workaround
494
+        //      and should not be trusted. See issue https://github.com/servo/servo/issues/11722
495
         let origin = get_blob_origin(&global.get_url());
496
 
497
         let id = blob.get_blob_url_id();
498
diff --git servo/components/script/dom/vrdisplay.rs servo/components/script/dom/vrdisplay.rs
499
index 3f73a577fad7..54f06fb928f2 100644
500
--- servo/components/script/dom/vrdisplay.rs
501
+++ servo/components/script/dom/vrdisplay.rs
502
@@ -268,7 +268,7 @@ impl VRDisplayMethods for VRDisplay {
503
     fn CancelAnimationFrame(&self, handle: u32) {
504
         if self.presenting.get() {
505
             let mut list = self.raf_callback_list.borrow_mut();
506
-            if let Some(mut pair) = list.iter_mut().find(|pair| pair.0 == handle) {
507
+            if let Some(pair) = list.iter_mut().find(|pair| pair.0 == handle) {
508
                 pair.1 = None;
509
             }
510
         } else {
511
diff --git servo/components/script/dom/webglrenderingcontext.rs servo/components/script/dom/webglrenderingcontext.rs
512
index 73d4ddba1b90..62c92b42785c 100644
513
--- servo/components/script/dom/webglrenderingcontext.rs
514
+++ servo/components/script/dom/webglrenderingcontext.rs
515
@@ -2434,7 +2434,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext {
516
         }
517
 
518
         typedarray!(in(cx) let mut pixels_data: ArrayBufferView = pixels);
519
-        let (array_type, mut data) = match { pixels_data.as_mut() } {
520
+        let (array_type, data) = match { pixels_data.as_mut() } {
521
             Ok(data) => (data.get_array_type(), data.as_mut_slice()),
522
             Err(_) => return Err(Error::Type("Not an ArrayBufferView".to_owned())),
523
         };
524
diff --git servo/components/script/dom/xmlhttprequest.rs servo/components/script/dom/xmlhttprequest.rs
525
index 6ed2dda1851f..e6652d79d706 100644
526
--- servo/components/script/dom/xmlhttprequest.rs
527
+++ servo/components/script/dom/xmlhttprequest.rs
528
@@ -627,7 +627,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest {
529
 
530
                 if !content_type_set {
531
                     let ct = request.headers.get_mut::<ContentType>();
532
-                    if let Some(mut ct) = ct {
533
+                    if let Some(ct) = ct {
534
                         if let Some(encoding) = encoding {
535
                             for param in &mut (ct.0).2 {
536
                                 if param.0 == MimeAttr::Charset {
537
diff --git servo/components/script/lib.rs servo/components/script/lib.rs
538
index e1a1ab592cb7..5824d6f2e490 100644
539
--- servo/components/script/lib.rs
540
+++ servo/components/script/lib.rs
541
@@ -9,7 +9,6 @@
542
 #![feature(mpsc_select)]
543
 #![feature(nonzero)]
544
 #![feature(on_unimplemented)]
545
-#![feature(option_entry)]
546
 #![feature(plugin)]
547
 #![feature(proc_macro)]
548
 #![feature(stmt_expr_attributes)]
549
diff --git servo/components/script_plugins/unrooted_must_root.rs servo/components/script_plugins/unrooted_must_root.rs
550
index 5dbd2b1a3bdd..f3f5e60ab62a 100644
551
--- servo/components/script_plugins/unrooted_must_root.rs
552
+++ servo/components/script_plugins/unrooted_must_root.rs
553
@@ -182,7 +182,7 @@ impl<'a, 'b, 'tcx> visit::Visitor<'tcx> for FnDefVisitor<'a, 'b, 'tcx> {
554
         }
555
 
556
         match expr.node {
557
-            /// Trait casts from #[must_root] types are not allowed
558
+            // Trait casts from #[must_root] types are not allowed
559
             hir::ExprCast(ref subexpr, _) => require_rooted(cx, self.in_new_function, &*subexpr),
560
             // This catches assignments... the main point of this would be to catch mutable
561
             // references to `JS<T>`.
562
@@ -206,13 +206,21 @@ impl<'a, 'b, 'tcx> visit::Visitor<'tcx> for FnDefVisitor<'a, 'b, 'tcx> {
563
     fn visit_pat(&mut self, pat: &'tcx hir::Pat) {
564
         let cx = self.cx;
565
 
566
-        if let hir::PatKind::Binding(hir::BindingMode::BindByValue(_), _, _, _) = pat.node {
567
-            let ty = cx.tables.pat_ty(pat);
568
-            if is_unrooted_ty(cx, ty, self.in_new_function) {
569
-                cx.span_lint(UNROOTED_MUST_ROOT,
570
-                            pat.span,
571
-                            &format!("Expression of type {:?} must be rooted", ty))
572
+        // We want to detect pattern bindings that move a value onto the stack.
573
+        // When "default binding modes" https://github.com/rust-lang/rust/issues/42640
574
+        // are implemented, the `Unannotated` case could cause false-positives.
575
+        // These should be fixable by adding an explicit `ref`.
576
+        match pat.node {
577
+            hir::PatKind::Binding(hir::BindingAnnotation::Unannotated, _, _, _) |
578
+            hir::PatKind::Binding(hir::BindingAnnotation::Mutable, _, _, _) => {
579
+                let ty = cx.tables.pat_ty(pat);
580
+                if is_unrooted_ty(cx, ty, self.in_new_function) {
581
+                    cx.span_lint(UNROOTED_MUST_ROOT,
582
+                                pat.span,
583
+                                &format!("Expression of type {:?} must be rooted", ty))
584
+                }
585
             }
586
+            _ => {}
587
         }
588
 
589
         visit::walk_pat(self, pat);
590
diff --git servo/components/selectors/matching.rs servo/components/selectors/matching.rs
591
index 7bd9814d26fb..8f6b2fa6aa54 100644
592
--- servo/components/selectors/matching.rs
593
+++ servo/components/selectors/matching.rs
594
@@ -458,7 +458,7 @@ where
595
 /// Matches a complex selector.
596
 pub fn matches_complex_selector<E, F>(mut iter: SelectorIter<E::Impl>,
597
                                       element: &E,
598
-                                      mut context: &mut LocalMatchingContext<E::Impl>,
599
+                                      context: &mut LocalMatchingContext<E::Impl>,
600
                                       flags_setter: &mut F)
601
                                       -> bool
602
     where E: Element,
603
diff --git servo/components/selectors/parser.rs servo/components/selectors/parser.rs
604
index 490399ce38ce..6b2c1f2b4e86 100644
605
--- servo/components/selectors/parser.rs
606
+++ servo/components/selectors/parser.rs
607
@@ -1464,7 +1464,7 @@ fn parse_negation<'i, 't, P, E, Impl>(parser: &P,
608
 fn parse_compound_selector<'i, 't, P, E, Impl>(
609
     parser: &P,
610
     input: &mut CssParser<'i, 't>,
611
-    mut builder: &mut SelectorBuilder<Impl>)
612
+    builder: &mut SelectorBuilder<Impl>)
613
     -> Result<bool, ParseError<'i, SelectorParseError<'i, E>>>
614
     where P: Parser<'i, Impl=Impl, Error=E>, Impl: SelectorImpl
615
 {
616
diff --git servo/components/style/invalidation/element/invalidator.rs servo/components/style/invalidation/element/invalidator.rs
617
index 848c5cd13dc8..b8510ba3169b 100644
618
--- servo/components/style/invalidation/element/invalidator.rs
619
+++ servo/components/style/invalidation/element/invalidator.rs
620
@@ -154,7 +154,7 @@ impl<'a, 'b: 'a, E> TreeStyleInvalidator<'a, 'b, E>
621
             trace!(" > visitedness change, force subtree restyle");
622
             // We can't just return here because there may also be attribute
623
             // changes as well that imply additional hints.
624
-            let mut data = self.data.as_mut().unwrap();
625
+            let data = self.data.as_mut().unwrap();
626
             data.restyle.hint.insert(RestyleHint::restyle_subtree());
627
         }
628
 
629
diff --git servo/components/style/matching.rs servo/components/style/matching.rs
630
index b62bc54bf768..f58d7cd123e6 100644
631
--- servo/components/style/matching.rs
632
+++ servo/components/style/matching.rs
633
@@ -440,7 +440,7 @@ pub trait MatchMethods : TElement {
634
     fn finish_restyle(
635
         &self,
636
         context: &mut StyleContext<Self>,
637
-        mut data: &mut ElementData,
638
+        data: &mut ElementData,
639
         mut new_styles: ElementStyles,
640
         important_rules_changed: bool,
641
     ) -> ChildCascadeRequirement {
642
diff --git servo/components/style/properties/properties.mako.rs servo/components/style/properties/properties.mako.rs
643
index d98e173db5ba..81ff00fb6d5e 100644
644
--- servo/components/style/properties/properties.mako.rs
645
+++ servo/components/style/properties/properties.mako.rs
646
@@ -3364,7 +3364,7 @@ pub fn modify_border_style_for_inline_sides(style: &mut Arc<ComputedValues>,
647
                 return;
648
             }
649
         }
650
-        let mut style = Arc::make_mut(style);
651
+        let style = Arc::make_mut(style);
652
         let border = Arc::make_mut(&mut style.border);
653
         match side {
654
             PhysicalSide::Left => {
655
diff --git servo/components/style/style_adjuster.rs servo/components/style/style_adjuster.rs
656
index 366641ebe0bc..6e51fa74072a 100644
657
--- servo/components/style/style_adjuster.rs
658
+++ servo/components/style/style_adjuster.rs
659
@@ -269,7 +269,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
660
 
661
         if overflow_x != original_overflow_x ||
662
            overflow_y != original_overflow_y {
663
-            let mut box_style = self.style.mutate_box();
664
+            let box_style = self.style.mutate_box();
665
             box_style.set_overflow_x(overflow_x);
666
             box_style.set_overflow_y(overflow_y);
667
         }
668
diff --git servo/components/style/style_resolver.rs servo/components/style/style_resolver.rs
669
index cf512c4fbdd2..3fc1d57cc8f7 100644
670
--- servo/components/style/style_resolver.rs
671
+++ servo/components/style/style_resolver.rs
672
@@ -247,7 +247,7 @@ where
673
                         Some(&*primary_style.style)
674
                     };
675
 
676
-                for (i, mut inputs) in pseudo_array.iter_mut().enumerate() {
677
+                for (i, inputs) in pseudo_array.iter_mut().enumerate() {
678
                     if let Some(inputs) = inputs.take() {
679
                         let pseudo = PseudoElement::from_eager_index(i);
680
                         pseudo_styles.set(
681
diff --git servo/components/style/stylesheets/rule_list.rs servo/components/style/stylesheets/rule_list.rs
682
index 82e78015400d..14b3dc5e7696 100644
683
--- servo/components/style/stylesheets/rule_list.rs
684
+++ servo/components/style/stylesheets/rule_list.rs
685
@@ -150,7 +150,7 @@ impl CssRulesHelpers for RawOffsetArc<Locked<CssRules>> {
686
 
687
         {
688
             let mut write_guard = lock.write();
689
-            let mut rules = self.write_with(&mut write_guard);
690
+            let rules = self.write_with(&mut write_guard);
691
             // Step 5
692
             // Computes the maximum allowed parser state at a given index.
693
             let rev_state = rules.0.get(index).map_or(State::Body, CssRule::rule_state);
694
diff --git servo/components/style/stylesheets/rule_parser.rs servo/components/style/stylesheets/rule_parser.rs
695
index 007d7e11026e..f0d224e498a7 100644
696
--- servo/components/style/stylesheets/rule_parser.rs
697
+++ servo/components/style/stylesheets/rule_parser.rs
698
@@ -209,7 +209,7 @@ impl<'a, 'i> AtRuleParser<'i> for TopLevelRuleParser<'a> {
699
                 let id = register_namespace(&url)
700
                     .map_err(|()| StyleParseError::UnspecifiedError)?;
701
 
702
-                let mut namespaces = self.namespaces.as_mut().unwrap();
703
+                let namespaces = self.namespaces.as_mut().unwrap();
704
 
705
                 let opt_prefix = if let Ok(prefix) = prefix_result {
706
                     let prefix = Prefix::from(prefix.as_ref());
707
diff --git servo/components/style/stylesheets/rules_iterator.rs servo/components/style/stylesheets/rules_iterator.rs
708
index 95a3ab8b3885..65e1b637ae52 100644
709
--- servo/components/style/stylesheets/rules_iterator.rs
710
+++ servo/components/style/stylesheets/rules_iterator.rs
711
@@ -70,7 +70,7 @@ impl<'a, 'b, C> Iterator for RulesIterator<'a, 'b, C>
712
 
713
             let rule;
714
             let sub_iter = {
715
-                let mut nested_iter = self.stack.last_mut().unwrap();
716
+                let nested_iter = self.stack.last_mut().unwrap();
717
                 rule = match nested_iter.next() {
718
                     Some(r) => r,
719
                     None => {
720
diff --git servo/components/webdriver_server/lib.rs servo/components/webdriver_server/lib.rs
721
index bd2f667f9892..28a4885f0d41 100644
722
--- servo/components/webdriver_server/lib.rs
723
+++ servo/components/webdriver_server/lib.rs
724
@@ -702,7 +702,7 @@ impl Handler {
725
     fn handle_set_timeouts(&mut self,
726
                            parameters: &TimeoutsParameters)
727
                            -> WebDriverResult<WebDriverResponse> {
728
-        let mut session = self.session
729
+        let session = self.session
730
             .as_mut()
731
             .ok_or(WebDriverError::new(ErrorStatus::SessionNotCreated, ""))?;
732
 
733
diff --git servo/rust-commit-hash servo/rust-commit-hash
734
index d4f08fe97644..a08d23cd1a71 100644
735
--- servo/rust-commit-hash
736
+++ servo/rust-commit-hash
737
@@ -1 +1 @@
738
-599be0d18f4c6ddf36366d2a5a2ca6dc65886896
739
+13d94d5fa8129a34f5c77a1bcd76983f5aed2434
740
diff --git servo/tests/unit/style/stylist.rs servo/tests/unit/style/stylist.rs
741
index da9a9478957a..52067b501788 100644
742
--- servo/tests/unit/style/stylist.rs
743
+++ servo/tests/unit/style/stylist.rs
744
@@ -51,19 +51,6 @@ fn get_mock_rules(css_selectors: &[&str]) -> (Vec<Vec<Rule>>, SharedRwLock) {
745
     }).collect(), shared_lock)
746
 }
747
 
748
-fn get_mock_map(selectors: &[&str]) -> (SelectorMap<Rule>, SharedRwLock) {
749
-    let mut map = SelectorMap::<Rule>::new();
750
-    let (selector_rules, shared_lock) = get_mock_rules(selectors);
751
-
752
-    for rules in selector_rules.into_iter() {
753
-        for rule in rules.into_iter() {
754
-            map.insert(rule, QuirksMode::NoQuirks)
755
-        }
756
-    }
757
-
758
-    (map, shared_lock)
759
-}
760
-
761
 fn parse_selectors(selectors: &[&str]) -> Vec<Selector<SelectorImpl>> {
762
     selectors.iter()
763
              .map(|x| SelectorParser::parse_author_origin_no_namespace(x).unwrap().0
(-)a/www/firefox/files/patch-servo18126 (-232 lines)
Removed Link Here
1
commit f0acf27d189d
2
Author: Simon Sapin <simon.sapin@exyr.org>
3
Date:   Thu Aug 17 11:05:32 2017 -0500
4
5
    servo: Merge #18126 - geckolib: Fix some warnings (treated as error) new in Rust Nigthly (from servo:glow-fox); r=emilio
6
    
7
    Source-Repo: https://github.com/servo/servo
8
    Source-Revision: cc86ca2bcdec5e89ee5279085ea38db63ef41af9
9
    
10
    --HG--
11
    extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
12
    extra : subtree_revision : 0586dbc81f1411c89821605a6dae4ebd0af8f0d5
13
---
14
 servo/components/style/gecko/conversions.rs            |  2 +-
15
 servo/components/style/gecko/wrapper.rs                |  2 +-
16
 .../style/gecko_bindings/sugar/ns_t_array.rs           |  4 ++--
17
 servo/components/style/properties/gecko.mako.rs        | 18 +++++++++---------
18
 servo/components/style/style_adjuster.rs               |  4 ++--
19
 servo/ports/geckolib/glue.rs                           | 12 ++++++------
20
 6 files changed, 21 insertions(+), 21 deletions(-)
21
22
diff --git servo/components/style/gecko/conversions.rs servo/components/style/gecko/conversions.rs
23
index 8f3fb6bf2d0f..51015997c5c1 100644
24
--- servo/components/style/gecko/conversions.rs
25
+++ servo/components/style/gecko/conversions.rs
26
@@ -348,7 +348,7 @@ impl nsStyleImage {
27
             // NB: stops are guaranteed to be none in the gecko side by
28
             // default.
29
 
30
-            let mut gecko_stop = unsafe {
31
+            let gecko_stop = unsafe {
32
                 &mut (*gecko_gradient).mStops[index]
33
             };
34
             let mut coord = nsStyleCoord::null();
35
diff --git servo/components/style/gecko/wrapper.rs servo/components/style/gecko/wrapper.rs
36
index 034dd94590e2..c402ddaf15bd 100644
37
--- servo/components/style/gecko/wrapper.rs
38
+++ servo/components/style/gecko/wrapper.rs
39
@@ -424,7 +424,7 @@ impl<'lb> GeckoXBLBinding<'lb> {
40
         }
41
     }
42
 
43
-    fn each_xbl_stylist<F>(self, mut f: &mut F)
44
+    fn each_xbl_stylist<F>(self, f: &mut F)
45
     where
46
         F: FnMut(&Stylist),
47
     {
48
diff --git servo/components/style/gecko_bindings/sugar/ns_t_array.rs servo/components/style/gecko_bindings/sugar/ns_t_array.rs
49
index 6bc389702f54..068e10ddea1b 100644
50
--- servo/components/style/gecko_bindings/sugar/ns_t_array.rs
51
+++ servo/components/style/gecko_bindings/sugar/ns_t_array.rs
52
@@ -90,7 +90,7 @@ impl<T> nsTArray<T> {
53
         // this can leak
54
         debug_assert!(len >= self.len() as u32);
55
         self.ensure_capacity(len as usize);
56
-        let mut header = self.header_mut();
57
+        let header = self.header_mut();
58
         header.mLength = len;
59
     }
60
 
61
@@ -99,7 +99,7 @@ impl<T> nsTArray<T> {
62
     /// This will not leak since it only works on POD types (and thus doesn't assert)
63
     pub unsafe fn set_len_pod(&mut self, len: u32) where T: Copy {
64
         self.ensure_capacity(len as usize);
65
-        let mut header = unsafe { self.header_mut() };
66
+        let header = unsafe { self.header_mut() };
67
         header.mLength = len;
68
     }
69
 }
70
diff --git servo/components/style/properties/gecko.mako.rs servo/components/style/properties/gecko.mako.rs
71
index 9a2ab2135fc5..bc41ef139af5 100644
72
--- servo/components/style/properties/gecko.mako.rs
73
+++ servo/components/style/properties/gecko.mako.rs
74
@@ -4136,14 +4136,14 @@ fn static_assert() {
75
                     fn init_shadow(filter: &mut nsStyleFilter) -> &mut nsCSSShadowArray {
76
                         unsafe {
77
                             let ref mut union = filter.__bindgen_anon_1;
78
-                            let mut shadow_array: &mut *mut nsCSSShadowArray = union.mDropShadow.as_mut();
79
+                            let shadow_array: &mut *mut nsCSSShadowArray = union.mDropShadow.as_mut();
80
                             *shadow_array = Gecko_NewCSSShadowArray(1);
81
 
82
                             &mut **shadow_array
83
                         }
84
                     }
85
 
86
-                    let mut gecko_shadow = init_shadow(gecko_filter);
87
+                    let gecko_shadow = init_shadow(gecko_filter);
88
                     gecko_shadow.mArray[0].set_from_simple_shadow(shadow);
89
                 },
90
                 Url(ref url) => {
91
@@ -4665,14 +4665,14 @@ fn static_assert() {
92
                     unsafe {
93
                         // We have to be very careful to avoid a copy here!
94
                         let ref mut union = ${ident}.__bindgen_anon_1;
95
-                        let mut shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut();
96
+                        let shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut();
97
                         *shape = Gecko_NewBasicShape(ty);
98
                         &mut **shape
99
                     }
100
                 }
101
                 match servo_shape {
102
                     BasicShape::Inset(inset) => {
103
-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Inset);
104
+                        let shape = init_shape(${ident}, StyleBasicShapeType::Inset);
105
                         unsafe { shape.mCoordinates.set_len(4) };
106
 
107
                         // set_len() can't call constructors, so the coordinates
108
@@ -4694,7 +4694,7 @@ fn static_assert() {
109
                         set_corners_from_radius(inset.round, &mut shape.mRadius);
110
                     }
111
                     BasicShape::Circle(circ) => {
112
-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Circle);
113
+                        let shape = init_shape(${ident}, StyleBasicShapeType::Circle);
114
                         unsafe { shape.mCoordinates.set_len(1) };
115
                         shape.mCoordinates[0].leaky_set_null();
116
                         circ.radius.to_gecko_style_coord(&mut shape.mCoordinates[0]);
117
@@ -4702,7 +4702,7 @@ fn static_assert() {
118
                         shape.mPosition = circ.position.into();
119
                     }
120
                     BasicShape::Ellipse(el) => {
121
-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Ellipse);
122
+                        let shape = init_shape(${ident}, StyleBasicShapeType::Ellipse);
123
                         unsafe { shape.mCoordinates.set_len(2) };
124
                         shape.mCoordinates[0].leaky_set_null();
125
                         el.semiaxis_x.to_gecko_style_coord(&mut shape.mCoordinates[0]);
126
@@ -4712,7 +4712,7 @@ fn static_assert() {
127
                         shape.mPosition = el.position.into();
128
                     }
129
                     BasicShape::Polygon(poly) => {
130
-                        let mut shape = init_shape(${ident}, StyleBasicShapeType::Polygon);
131
+                        let shape = init_shape(${ident}, StyleBasicShapeType::Polygon);
132
                         unsafe {
133
                             shape.mCoordinates.set_len(poly.coordinates.len() as u32 * 2);
134
                         }
135
@@ -4797,7 +4797,7 @@ clip-path
136
             bindings::Gecko_nsStyleSVG_SetDashArrayLength(&mut self.gecko, v.len() as u32);
137
         }
138
 
139
-        for (mut gecko, servo) in self.gecko.mStrokeDasharray.iter_mut().zip(v) {
140
+        for (gecko, servo) in self.gecko.mStrokeDasharray.iter_mut().zip(v) {
141
             match servo {
142
                 Either::First(number) => gecko.set_value(CoordDataValue::Factor(number)),
143
                 Either::Second(lop) => gecko.set(lop),
144
@@ -4885,7 +4885,7 @@ clip-path
145
         }
146
 
147
         self.gecko.mContextPropsBits = 0;
148
-        for (mut gecko, servo) in self.gecko.mContextProps.iter_mut().zip(v) {
149
+        for (gecko, servo) in self.gecko.mContextProps.iter_mut().zip(v) {
150
             if servo.0 == atom!("fill") {
151
                 self.gecko.mContextPropsBits |= structs::NS_STYLE_CONTEXT_PROPERTY_FILL as u8;
152
             } else if servo.0 == atom!("stroke") {
153
diff --git servo/components/style/style_adjuster.rs servo/components/style/style_adjuster.rs
154
index 03b15916b237..366641ebe0bc 100644
155
--- servo/components/style/style_adjuster.rs
156
+++ servo/components/style/style_adjuster.rs
157
@@ -167,7 +167,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
158
         // When 'contain: paint', update overflow from 'visible' to 'clip'.
159
         if self.style.get_box().clone_contain().contains(contain::PAINT) {
160
             if self.style.get_box().clone_overflow_x() == overflow::visible {
161
-                let mut box_style = self.style.mutate_box();
162
+                let box_style = self.style.mutate_box();
163
                 box_style.set_overflow_x(overflow::_moz_hidden_unscrollable);
164
                 box_style.set_overflow_y(overflow::_moz_hidden_unscrollable);
165
             }
166
@@ -182,7 +182,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> {
167
         use properties::longhands::font_style::computed_value::T as font_style;
168
         use properties::longhands::font_weight::computed_value::T as font_weight;
169
         if self.style.get_font().clone__moz_math_variant() != moz_math_variant::none {
170
-            let mut font_style = self.style.mutate_font();
171
+            let font_style = self.style.mutate_font();
172
             // Sadly we don't have a nice name for the computed value
173
             // of "font-weight: normal".
174
             font_style.set_font_weight(font_weight::normal());
175
diff --git servo/ports/geckolib/glue.rs servo/ports/geckolib/glue.rs
176
index 977728286fc3..fa09bee29553 100644
177
--- servo/ports/geckolib/glue.rs
178
+++ servo/ports/geckolib/glue.rs
179
@@ -815,7 +815,7 @@ pub extern "C" fn Servo_StyleSet_AppendStyleSheet(
180
 ) {
181
     let global_style_data = &*GLOBAL_STYLE_DATA;
182
     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
183
-    let mut data = &mut *data;
184
+    let data = &mut *data;
185
     let guard = global_style_data.shared_lock.read();
186
     data.stylesheets.append_stylesheet(
187
         &data.stylist,
188
@@ -867,7 +867,7 @@ pub extern "C" fn Servo_StyleSet_PrependStyleSheet(
189
 ) {
190
     let global_style_data = &*GLOBAL_STYLE_DATA;
191
     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
192
-    let mut data = &mut *data;
193
+    let data = &mut *data;
194
     let guard = global_style_data.shared_lock.read();
195
     data.stylesheets.prepend_stylesheet(
196
         &data.stylist,
197
@@ -885,7 +885,7 @@ pub extern "C" fn Servo_StyleSet_InsertStyleSheetBefore(
198
 ) {
199
     let global_style_data = &*GLOBAL_STYLE_DATA;
200
     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
201
-    let mut data = &mut *data;
202
+    let data = &mut *data;
203
     let guard = global_style_data.shared_lock.read();
204
     data.stylesheets.insert_stylesheet_before(
205
         &data.stylist,
206
@@ -903,7 +903,7 @@ pub extern "C" fn Servo_StyleSet_RemoveStyleSheet(
207
 ) {
208
     let global_style_data = &*GLOBAL_STYLE_DATA;
209
     let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut();
210
-    let mut data = &mut *data;
211
+    let data = &mut *data;
212
     let guard = global_style_data.shared_lock.read();
213
     data.stylesheets.remove_stylesheet(
214
         &data.stylist,
215
@@ -1274,7 +1274,7 @@ pub extern "C" fn Servo_StyleRule_GetSpecificityAtIndex(
216
     specificity: *mut u64
217
 ) {
218
     read_locked_arc(rule, |rule: &StyleRule| {
219
-        let mut specificity =  unsafe { specificity.as_mut().unwrap() };
220
+        let specificity =  unsafe { specificity.as_mut().unwrap() };
221
         let index = index as usize;
222
         if index >= rule.selectors.0.len() {
223
             *specificity = 0;
224
@@ -2775,7 +2775,7 @@ pub extern "C" fn Servo_NoteExplicitHints(element: RawGeckoElementBorrowed,
225
 pub extern "C" fn Servo_TakeChangeHint(element: RawGeckoElementBorrowed,
226
                                        was_restyled: *mut bool) -> nsChangeHint
227
 {
228
-    let mut was_restyled =  unsafe { was_restyled.as_mut().unwrap() };
229
+    let was_restyled =  unsafe { was_restyled.as_mut().unwrap() };
230
     let element = GeckoElement(element);
231
 
232
     let damage = match element.mutate_data() {

Return to bug 222693