From 482187562eda0b00859a70a867c76388c0c734c4 Mon Sep 17 00:00:00 2001 From: jbeich Date: Wed, 27 Sep 2017 04:12:34 +0000 Subject: [PATCH] www/firefox: update to 57.0 Changes: https://www.mozilla.org/firefox/57.0/releasenotes/ PR: 222693 Tested by: pi, tobik, TrueOS Security: f78eac48-c3d1-4666-8de5-63ceea25a578 MFH: 2017Q4 --- Mk/Uses/gecko.mk | 4 +- www/firefox-i18n/Makefile | 6 +- www/firefox-i18n/distinfo | 382 +++++----- www/firefox/Makefile | 13 +- www/firefox/distinfo | 6 +- www/firefox/files/patch-bug1384701 | 796 --------------------- www/firefox/files/patch-bug1386887 | 89 --- www/firefox/files/patch-bug1386957 | 14 - www/firefox/files/patch-bug1393283 | 144 ---- www/firefox/files/patch-bug1401573 | 27 - www/firefox/files/patch-bug1409680 | 27 - www/firefox/files/patch-bug847568 | 2 +- www/firefox/files/patch-build-pgo-profileserver.py | 20 +- www/firefox/files/patch-servo17934 | 53 -- www/firefox/files/patch-servo17969 | 110 --- www/firefox/files/patch-servo18046 | 763 -------------------- www/firefox/files/patch-servo18126 | 232 ------ 17 files changed, 216 insertions(+), 2472 deletions(-) delete mode 100644 www/firefox/files/patch-bug1384701 delete mode 100644 www/firefox/files/patch-bug1386887 delete mode 100644 www/firefox/files/patch-bug1386957 delete mode 100644 www/firefox/files/patch-bug1393283 delete mode 100644 www/firefox/files/patch-bug1401573 delete mode 100644 www/firefox/files/patch-bug1409680 delete mode 100644 www/firefox/files/patch-servo17934 delete mode 100644 www/firefox/files/patch-servo17969 delete mode 100644 www/firefox/files/patch-servo18046 delete mode 100644 www/firefox/files/patch-servo18126 diff --git a/Mk/Uses/gecko.mk b/Mk/Uses/gecko.mk index 1be490172a79..432c60edd28e 100644 --- a/Mk/Uses/gecko.mk +++ b/Mk/Uses/gecko.mk @@ -37,12 +37,12 @@ RUN_DEPENDS+= libxul>=45:www/libxul .elif ${gecko_ARGS:Mfirefox} _GECKO_DEFAULT_VERSION= 52 -_GECKO_VERSIONS= 52 56 +_GECKO_VERSIONS= 52 57 _GECKO_TYPE= firefox # Dependence lines for different Firefox versions 52_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox-esr -56_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox +57_DEPENDS= ${LOCALBASE}/lib/firefox/firefox:www/firefox .if exists(${LOCALBASE}/bin/firefox) _GECKO_INSTALLED_VER!= ${LOCALBASE}/bin/firefox --version 2>/dev/null diff --git a/www/firefox-i18n/Makefile b/www/firefox-i18n/Makefile index 2d34e53e1fbe..97434b1330cf 100644 --- a/www/firefox-i18n/Makefile +++ b/www/firefox-i18n/Makefile @@ -2,10 +2,10 @@ # $FreeBSD$ PORTNAME= firefox-i18n -PORTVERSION= 56.0.2 +PORTVERSION= 57.0 CATEGORIES= www MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-i686/xpi \ - MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/linux-i686/xpi + MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build3/linux-i686/xpi PKGNAMEPREFIX= DISTFILES= ${FIREFOX_I18N_:S/$/.xpi/} DIST_SUBDIR= xpi/${DISTNAME} @@ -15,7 +15,7 @@ COMMENT= Localized interface for Firefox EXTRACT_DEPENDS= zip:archivers/zip -USES= zip:infozip gecko:firefox,56,build +USES= zip:infozip gecko:firefox,57,build USE_XPI= firefox NO_ARCH= yes diff --git a/www/firefox-i18n/distinfo b/www/firefox-i18n/distinfo index 5361ed4719b4..93494c9f047c 100644 --- a/www/firefox-i18n/distinfo +++ b/www/firefox-i18n/distinfo @@ -1,191 +1,191 @@ -TIMESTAMP = 1508873487 -SHA256 (xpi/firefox-i18n-56.0.2/ach.xpi) = a78c4900c9dac71ea312d5ceda13987f4f8418ab078374c0e292cd30ce79aa23 -SIZE (xpi/firefox-i18n-56.0.2/ach.xpi) = 454896 -SHA256 (xpi/firefox-i18n-56.0.2/af.xpi) = e0ea5e99eb7cedd0c3893ae4baa3ca2af7f814bc069dcbf921069dcaba762fc6 -SIZE (xpi/firefox-i18n-56.0.2/af.xpi) = 456214 -SHA256 (xpi/firefox-i18n-56.0.2/an.xpi) = 18e3c4e6f85fb296bd955b110ba2c6a381ba4ba8de3a0e2990bc4618f9438593 -SIZE (xpi/firefox-i18n-56.0.2/an.xpi) = 475863 -SHA256 (xpi/firefox-i18n-56.0.2/ar.xpi) = c8dcb494321e5ef34092b7555ec67147461b387803df895c30858314f0509acb -SIZE (xpi/firefox-i18n-56.0.2/ar.xpi) = 500711 -SHA256 (xpi/firefox-i18n-56.0.2/as.xpi) = e77f99a72083b49e30f453d1f40ac670e42e6a637b8bb4e7c914f74b24e6b582 -SIZE (xpi/firefox-i18n-56.0.2/as.xpi) = 508237 -SHA256 (xpi/firefox-i18n-56.0.2/ast.xpi) = e4fe6028af88b67dce678e6a1215cda2c2aa0cbe76eb95947c46e08d93bb23bc -SIZE (xpi/firefox-i18n-56.0.2/ast.xpi) = 469157 -SHA256 (xpi/firefox-i18n-56.0.2/az.xpi) = 5d9cd26da6e1afe41c9d032054b066a9e0a13f7cfd9701e8126147f405ae6f1a -SIZE (xpi/firefox-i18n-56.0.2/az.xpi) = 484984 -SHA256 (xpi/firefox-i18n-56.0.2/be.xpi) = 647318eb3b3060ba2384ecf4b4b96fb70fb54f1428c20f776d8d99f75eed5f49 -SIZE (xpi/firefox-i18n-56.0.2/be.xpi) = 531385 -SHA256 (xpi/firefox-i18n-56.0.2/bg.xpi) = a844374d3453747f30382acf6019d379596f812f68d49ba7245a18993cea5ffb -SIZE (xpi/firefox-i18n-56.0.2/bg.xpi) = 528789 -SHA256 (xpi/firefox-i18n-56.0.2/bn-BD.xpi) = caafe8df84189999ed513e4f88e91f8b8c35e8a1d13fa54bd54f3a0654ec1f02 -SIZE (xpi/firefox-i18n-56.0.2/bn-BD.xpi) = 542772 -SHA256 (xpi/firefox-i18n-56.0.2/bn-IN.xpi) = 4278938cf3be47f2e7a865a2221c10f383b8c7930f71b2bd0c4ce09c1ff8a3c8 -SIZE (xpi/firefox-i18n-56.0.2/bn-IN.xpi) = 534450 -SHA256 (xpi/firefox-i18n-56.0.2/br.xpi) = 65e8b0a3e55e99701e0ecfb9cdb0775afc0946f23eab34d4ada4f0d973d2076d -SIZE (xpi/firefox-i18n-56.0.2/br.xpi) = 464256 -SHA256 (xpi/firefox-i18n-56.0.2/bs.xpi) = fef54b5ba9231eaedbe216c1f9e7c86d831ed032d1fcd6e5dd15a06619ad69ac -SIZE (xpi/firefox-i18n-56.0.2/bs.xpi) = 472256 -SHA256 (xpi/firefox-i18n-56.0.2/ca.xpi) = 11dc866f5f2a16622fa45c36c174150293e123bfd970890e4403ed224d6e4eb6 -SIZE (xpi/firefox-i18n-56.0.2/ca.xpi) = 480364 -SHA256 (xpi/firefox-i18n-56.0.2/cak.xpi) = 1ed05bcdb3977850ae21847f70122111ff459cc6669130ec9db5ccf11dde117f -SIZE (xpi/firefox-i18n-56.0.2/cak.xpi) = 489507 -SHA256 (xpi/firefox-i18n-56.0.2/cs.xpi) = 1191121195a77ec1315ec379b307819f1ce6b15bfa1bb9fc31ec0148cb08bcf5 -SIZE (xpi/firefox-i18n-56.0.2/cs.xpi) = 485090 -SHA256 (xpi/firefox-i18n-56.0.2/cy.xpi) = a04d0d37f46b89d2aba85eebc1524daba41b3a6db468e61a924e83b2814d8845 -SIZE (xpi/firefox-i18n-56.0.2/cy.xpi) = 466288 -SHA256 (xpi/firefox-i18n-56.0.2/da.xpi) = 3822d31c6b83317216f5124d603d9a8b8180a06d2407426dd90b71891c155f0c -SIZE (xpi/firefox-i18n-56.0.2/da.xpi) = 460091 -SHA256 (xpi/firefox-i18n-56.0.2/de.xpi) = ee02b96baf96be7e69ff12f06576a270e48ca454cc8f93c51070ebdd9c2a03f7 -SIZE (xpi/firefox-i18n-56.0.2/de.xpi) = 473856 -SHA256 (xpi/firefox-i18n-56.0.2/dsb.xpi) = 227588519f2ae092f6cbf0531287c5c36b7037c3355cc0d9e0e024d4e84472e3 -SIZE (xpi/firefox-i18n-56.0.2/dsb.xpi) = 489897 -SHA256 (xpi/firefox-i18n-56.0.2/el.xpi) = ace7c78e28297ea4dcc90a2b8c2881afc812a2416ae4cdba499749349bc2d3f3 -SIZE (xpi/firefox-i18n-56.0.2/el.xpi) = 554120 -SHA256 (xpi/firefox-i18n-56.0.2/en-GB.xpi) = 55fb37a478f2521b1b1543498d373ade08126c3ac71127bfbde504d8a3f95e16 -SIZE (xpi/firefox-i18n-56.0.2/en-GB.xpi) = 447375 -SHA256 (xpi/firefox-i18n-56.0.2/en-US.xpi) = 618f390c9a36aed65860d6ad20444c9c6224471d0a394de92a21262291327ff2 -SIZE (xpi/firefox-i18n-56.0.2/en-US.xpi) = 446951 -SHA256 (xpi/firefox-i18n-56.0.2/en-ZA.xpi) = 2fa254426d945152e9eb01cc02a8f86415fa5425aefed9825bd1dea9b6d0b76a -SIZE (xpi/firefox-i18n-56.0.2/en-ZA.xpi) = 445916 -SHA256 (xpi/firefox-i18n-56.0.2/eo.xpi) = f1d9e7acc5bb36a2acfb1659ad0857e5d2c9800836d096f41ceb87977a6e7377 -SIZE (xpi/firefox-i18n-56.0.2/eo.xpi) = 468952 -SHA256 (xpi/firefox-i18n-56.0.2/es-AR.xpi) = 12f34c15fb4cf11e5c007ea19a97f91370a66e192cc3c0aed5405659be36eaa3 -SIZE (xpi/firefox-i18n-56.0.2/es-AR.xpi) = 475449 -SHA256 (xpi/firefox-i18n-56.0.2/es-CL.xpi) = 5239da279a01681c00ece001d1477abba04b41d50fd442e761140ba93b68870f -SIZE (xpi/firefox-i18n-56.0.2/es-CL.xpi) = 479922 -SHA256 (xpi/firefox-i18n-56.0.2/es-ES.xpi) = 98b7422e833226916953ac89201652f406f84c805d293ab949adae475fc03a7c -SIZE (xpi/firefox-i18n-56.0.2/es-ES.xpi) = 365631 -SHA256 (xpi/firefox-i18n-56.0.2/es-MX.xpi) = 9516c169b883f8208c996f461221e9bb917e2e56c1f67d01f67026a8f5de3a1b -SIZE (xpi/firefox-i18n-56.0.2/es-MX.xpi) = 482565 -SHA256 (xpi/firefox-i18n-56.0.2/et.xpi) = dff5cbe5b933511fc10c1209dde31c45a521c9e687d909f4915eaf3eac8a3ad3 -SIZE (xpi/firefox-i18n-56.0.2/et.xpi) = 462104 -SHA256 (xpi/firefox-i18n-56.0.2/eu.xpi) = d47fe44fcab9328102334596678fe89289d8de44cd9018e13e1bcc70823ec6ec -SIZE (xpi/firefox-i18n-56.0.2/eu.xpi) = 467884 -SHA256 (xpi/firefox-i18n-56.0.2/fa.xpi) = 8f25e71eb0ee9ad9e90d9948012713013ee03b6fe1b3837b1d903c5102be0a93 -SIZE (xpi/firefox-i18n-56.0.2/fa.xpi) = 522909 -SHA256 (xpi/firefox-i18n-56.0.2/ff.xpi) = b8416ca244cb8c99744dc3c6daa55d893754ed051ea9731f57b49edc2f0e18f1 -SIZE (xpi/firefox-i18n-56.0.2/ff.xpi) = 463098 -SHA256 (xpi/firefox-i18n-56.0.2/fi.xpi) = 1c6ecc0d72a500f5a77a8fdde5e288ce2c578bc1b1de3d1a062e6d7a71765130 -SIZE (xpi/firefox-i18n-56.0.2/fi.xpi) = 461923 -SHA256 (xpi/firefox-i18n-56.0.2/fr.xpi) = 3aa8e3e74e35a4e1ca948cb83b42bb9b2c95ec6abdbc8b0872129f6f75d4e2e1 -SIZE (xpi/firefox-i18n-56.0.2/fr.xpi) = 484561 -SHA256 (xpi/firefox-i18n-56.0.2/fy-NL.xpi) = 21b16ee4d0a232d6860c9fa6db296544e13e9500796451a98adebcdf35f88c66 -SIZE (xpi/firefox-i18n-56.0.2/fy-NL.xpi) = 478044 -SHA256 (xpi/firefox-i18n-56.0.2/ga-IE.xpi) = 4d780a2c0f362742f069842ae2d7ddf3dd8177e66405c9c570ef52b2e7de1f32 -SIZE (xpi/firefox-i18n-56.0.2/ga-IE.xpi) = 489379 -SHA256 (xpi/firefox-i18n-56.0.2/gd.xpi) = 9e4e1ffc31853fe3e0d4e9e23cd1ccdf0be1b50182cefc9581b902370a3ae2fc -SIZE (xpi/firefox-i18n-56.0.2/gd.xpi) = 476927 -SHA256 (xpi/firefox-i18n-56.0.2/gl.xpi) = 7dc3615f3eca3bc09472207b8d78644923526dd51651a6a04cf8449bf78cca4b -SIZE (xpi/firefox-i18n-56.0.2/gl.xpi) = 466468 -SHA256 (xpi/firefox-i18n-56.0.2/gn.xpi) = 32d64cb5ceb3a8b53abafd0699d9697f190e137155484fc06968efe3ab2da294 -SIZE (xpi/firefox-i18n-56.0.2/gn.xpi) = 485790 -SHA256 (xpi/firefox-i18n-56.0.2/gu-IN.xpi) = 574654d88abc8d620d5d29c09a281738ff463f8a0e09386373005a4c33cd7adf -SIZE (xpi/firefox-i18n-56.0.2/gu-IN.xpi) = 513740 -SHA256 (xpi/firefox-i18n-56.0.2/he.xpi) = aa4437d071736c8009ff81f79cf51348fa7ce02d82dd603cc08c00997de79ddc -SIZE (xpi/firefox-i18n-56.0.2/he.xpi) = 488495 -SHA256 (xpi/firefox-i18n-56.0.2/hi-IN.xpi) = 9faa3d8242f2e13e82334c91018137a23a88374d6d8bcbdbca0bac69b709487d -SIZE (xpi/firefox-i18n-56.0.2/hi-IN.xpi) = 538303 -SHA256 (xpi/firefox-i18n-56.0.2/hr.xpi) = 78ea8859fc47c3fd35055ad7dacd3c89192619f637d1b10a5515db49c1aabd63 -SIZE (xpi/firefox-i18n-56.0.2/hr.xpi) = 475058 -SHA256 (xpi/firefox-i18n-56.0.2/hsb.xpi) = 7e868a01a8c881319703dd2d40aa7a90a2a6afda350a93cdee785c1cee3e334c -SIZE (xpi/firefox-i18n-56.0.2/hsb.xpi) = 487599 -SHA256 (xpi/firefox-i18n-56.0.2/hu.xpi) = ba7c06ffe790cb31450c47ffc73c0ef402e759e8d6798c284ab3004aa9b1a154 -SIZE (xpi/firefox-i18n-56.0.2/hu.xpi) = 490102 -SHA256 (xpi/firefox-i18n-56.0.2/hy-AM.xpi) = 5a78e97fe3b0a106a9839714e2a811d52501e5c427ba9c943bdcbdd2beb303cb -SIZE (xpi/firefox-i18n-56.0.2/hy-AM.xpi) = 527711 -SHA256 (xpi/firefox-i18n-56.0.2/id.xpi) = 916e89bb2bf8fcd0671a1cfe34944643e3f3bb1aeccf6bc7b86329e1f3261cb3 -SIZE (xpi/firefox-i18n-56.0.2/id.xpi) = 459066 -SHA256 (xpi/firefox-i18n-56.0.2/is.xpi) = f424cf833f52cb6a57933e6173bad7a1df2e01b9233feb0abfab0e9f3fd13a78 -SIZE (xpi/firefox-i18n-56.0.2/is.xpi) = 467447 -SHA256 (xpi/firefox-i18n-56.0.2/it.xpi) = 49e286eecc3e31a2581f728783f25717b994e466a1329f5121efff04d3400ccd -SIZE (xpi/firefox-i18n-56.0.2/it.xpi) = 358695 -SHA256 (xpi/firefox-i18n-56.0.2/ja.xpi) = f981b5dd41b2d2479034720d4d8d4ec98b936e5d4b092e954057a3135b802d93 -SIZE (xpi/firefox-i18n-56.0.2/ja.xpi) = 527926 -SHA256 (xpi/firefox-i18n-56.0.2/ka.xpi) = c84ec7d427a84290cc760cf35a900a188621c7c8fbc3b48f63d7c000642eb3c1 -SIZE (xpi/firefox-i18n-56.0.2/ka.xpi) = 509096 -SHA256 (xpi/firefox-i18n-56.0.2/kab.xpi) = e8ffa26d1acef0cfb554eced0b86656c4ac504b5459bb8fd3eb86c5292df7b3e -SIZE (xpi/firefox-i18n-56.0.2/kab.xpi) = 477420 -SHA256 (xpi/firefox-i18n-56.0.2/kk.xpi) = 5c918b32273f6a107c6a8d78be58c9e757884dcc28951949db39bba705c95d37 -SIZE (xpi/firefox-i18n-56.0.2/kk.xpi) = 534932 -SHA256 (xpi/firefox-i18n-56.0.2/km.xpi) = 52c280027d92449fda3cd321a091b2f65f401d417bff7fdce692191b748f99c2 -SIZE (xpi/firefox-i18n-56.0.2/km.xpi) = 549344 -SHA256 (xpi/firefox-i18n-56.0.2/kn.xpi) = 03120c4eb742e750c46f266fceb69cd1a8b97d3cf5bd0f2a55485d25af502272 -SIZE (xpi/firefox-i18n-56.0.2/kn.xpi) = 545517 -SHA256 (xpi/firefox-i18n-56.0.2/ko.xpi) = 60171b4d104a456df4a7fc60dc506eaa0ced1a32a216461bbddd2a215200f61b -SIZE (xpi/firefox-i18n-56.0.2/ko.xpi) = 502895 -SHA256 (xpi/firefox-i18n-56.0.2/lij.xpi) = b0b07f9e4be734145b6472ef506b4cb99c85eea98ece31dad6efa2003d59f893 -SIZE (xpi/firefox-i18n-56.0.2/lij.xpi) = 467275 -SHA256 (xpi/firefox-i18n-56.0.2/lt.xpi) = 09302dfb196300ae49c47cf4a9a1ac9ec4df954defa8abd19bdd985852af94b5 -SIZE (xpi/firefox-i18n-56.0.2/lt.xpi) = 488753 -SHA256 (xpi/firefox-i18n-56.0.2/lv.xpi) = 9f47b7ef87c55320d6d67a15f61a87b0cc9e891a5aeac382badfe3e3b27b51e4 -SIZE (xpi/firefox-i18n-56.0.2/lv.xpi) = 481628 -SHA256 (xpi/firefox-i18n-56.0.2/mai.xpi) = f16a670648ebdc3b914620d7fbe4f6095952f65c658901ecfcfbbc37645f5fdb -SIZE (xpi/firefox-i18n-56.0.2/mai.xpi) = 524702 -SHA256 (xpi/firefox-i18n-56.0.2/mk.xpi) = e537b92b6af439a1c1b9e667939f146b7a2ad17eae3d4f9075d1ad70bb958b0f -SIZE (xpi/firefox-i18n-56.0.2/mk.xpi) = 507818 -SHA256 (xpi/firefox-i18n-56.0.2/ml.xpi) = 5714a5481f111e1467a596973c824e9d09cb1e464cc74c332582d5079b495efd -SIZE (xpi/firefox-i18n-56.0.2/ml.xpi) = 547547 -SHA256 (xpi/firefox-i18n-56.0.2/mr.xpi) = 2993e10fa67e526691859805b5bf928be5607d59ceedbbb7aa68962688fa6723 -SIZE (xpi/firefox-i18n-56.0.2/mr.xpi) = 536673 -SHA256 (xpi/firefox-i18n-56.0.2/ms.xpi) = 7b4a6353a3b2e6e2fc923dc43191c0bc463aeacc9d9eaadb032f93f00376b6df -SIZE (xpi/firefox-i18n-56.0.2/ms.xpi) = 466107 -SHA256 (xpi/firefox-i18n-56.0.2/my.xpi) = 9ef461ae9ec46bc6198456411232ed37a0ed68f11d4bc587d2b8b4d8247868d5 -SIZE (xpi/firefox-i18n-56.0.2/my.xpi) = 536722 -SHA256 (xpi/firefox-i18n-56.0.2/nb-NO.xpi) = ee407654fbfad2523ec72fc921b9072772bacc231636b460ac239c406a43132f -SIZE (xpi/firefox-i18n-56.0.2/nb-NO.xpi) = 465575 -SHA256 (xpi/firefox-i18n-56.0.2/nl.xpi) = bbba1d13636b0f03868d202893eb995f3112a56ac2453bbdde6b8fb856fe49b1 -SIZE (xpi/firefox-i18n-56.0.2/nl.xpi) = 469053 -SHA256 (xpi/firefox-i18n-56.0.2/nn-NO.xpi) = 8120d52f0e9a0ecd870a0ea0d3b887df12b129d3bfda7c83f09e4036907d08e6 -SIZE (xpi/firefox-i18n-56.0.2/nn-NO.xpi) = 466208 -SHA256 (xpi/firefox-i18n-56.0.2/or.xpi) = 325acd5539ec48f65320ff0f5768fbdced82c788750f7c0cd00bf2a264751e32 -SIZE (xpi/firefox-i18n-56.0.2/or.xpi) = 518165 -SHA256 (xpi/firefox-i18n-56.0.2/pa-IN.xpi) = 2e3bcfc268606f1496226ca549df40e9c6b8b9f972cdd7f84d4d5c4b32173294 -SIZE (xpi/firefox-i18n-56.0.2/pa-IN.xpi) = 509046 -SHA256 (xpi/firefox-i18n-56.0.2/pl.xpi) = c6123361207e67bfd6f859c65c369fa0b22561fbb46b548d9b322433f209a712 -SIZE (xpi/firefox-i18n-56.0.2/pl.xpi) = 377524 -SHA256 (xpi/firefox-i18n-56.0.2/pt-BR.xpi) = 3a45de0fd1d0b18123e4f97de1de8f57c043a8c621a02f5267643fc5fb12c8bf -SIZE (xpi/firefox-i18n-56.0.2/pt-BR.xpi) = 470954 -SHA256 (xpi/firefox-i18n-56.0.2/pt-PT.xpi) = b8412464435c2e3c79017bc7ecc6b7b7d7715b1b47d0ca5f6e7c320d2c2b87d1 -SIZE (xpi/firefox-i18n-56.0.2/pt-PT.xpi) = 472803 -SHA256 (xpi/firefox-i18n-56.0.2/rm.xpi) = 2054926b1f43459aa857234466b686553555e2afc2e6072ef3883f28b2ebc676 -SIZE (xpi/firefox-i18n-56.0.2/rm.xpi) = 467019 -SHA256 (xpi/firefox-i18n-56.0.2/ro.xpi) = d69ce50c34f429d4a6724b4b8d954bb3f78e5a7fb42302c2e9de9e5f870c4e0e -SIZE (xpi/firefox-i18n-56.0.2/ro.xpi) = 470785 -SHA256 (xpi/firefox-i18n-56.0.2/ru.xpi) = 2339cce445c2c01de77fd89079c121301dfcc082f9f8e3b0f640d0f42a648cac -SIZE (xpi/firefox-i18n-56.0.2/ru.xpi) = 541437 -SHA256 (xpi/firefox-i18n-56.0.2/si.xpi) = 79c3fa18f421923b48505b74e39cd4fab474685584bb5daf71f41ebd8a388402 -SIZE (xpi/firefox-i18n-56.0.2/si.xpi) = 515921 -SHA256 (xpi/firefox-i18n-56.0.2/sk.xpi) = 0292ae81d9ae0af15489b2b420f3156cb2f7266cd881deaa4c9e164c987271c7 -SIZE (xpi/firefox-i18n-56.0.2/sk.xpi) = 495563 -SHA256 (xpi/firefox-i18n-56.0.2/sl.xpi) = bea8af482218c1bfde800e3461f64d008b46b1419745127fe838a29724098b5f -SIZE (xpi/firefox-i18n-56.0.2/sl.xpi) = 473806 -SHA256 (xpi/firefox-i18n-56.0.2/son.xpi) = 6f93b52c42355adafc0778516defce16af99a17ee41ec0d25003ab39bfc6dda1 -SIZE (xpi/firefox-i18n-56.0.2/son.xpi) = 464322 -SHA256 (xpi/firefox-i18n-56.0.2/sq.xpi) = 867d12980a8d3ee7ae28faa4f09f63ed405f9ea18b6c0c776da8194ecda937ed -SIZE (xpi/firefox-i18n-56.0.2/sq.xpi) = 479511 -SHA256 (xpi/firefox-i18n-56.0.2/sr.xpi) = b300ada0279186be68dbf292d41d446828acc71e3dcca94cf88a2ef34b38abc9 -SIZE (xpi/firefox-i18n-56.0.2/sr.xpi) = 504487 -SHA256 (xpi/firefox-i18n-56.0.2/sv-SE.xpi) = 0ccdf643e1f62ff1e41ceb3fe9c35191aece0efcbfc6b24293f88f7ef1d55043 -SIZE (xpi/firefox-i18n-56.0.2/sv-SE.xpi) = 473949 -SHA256 (xpi/firefox-i18n-56.0.2/ta.xpi) = 0186d38239a9db92394562eb70a6960eeeee052abce62bc3672c8644a37cb859 -SIZE (xpi/firefox-i18n-56.0.2/ta.xpi) = 530646 -SHA256 (xpi/firefox-i18n-56.0.2/te.xpi) = 789359330bdfefb1fc379582b098c040cdb6a46f770e2c80b1695a7eb634db40 -SIZE (xpi/firefox-i18n-56.0.2/te.xpi) = 549585 -SHA256 (xpi/firefox-i18n-56.0.2/th.xpi) = abeb0f7ff018d44efbcea4cba5c0c62a78f42f6395ea1535f757f2045064c880 -SIZE (xpi/firefox-i18n-56.0.2/th.xpi) = 520297 -SHA256 (xpi/firefox-i18n-56.0.2/tr.xpi) = b3798722e3a732e422a1fbff8d1c9ca7716b3fe9b2f21cc219432ec998556e26 -SIZE (xpi/firefox-i18n-56.0.2/tr.xpi) = 480549 -SHA256 (xpi/firefox-i18n-56.0.2/uk.xpi) = 6854f076f5ef93e72a4f38f03a8dadc61e3a2f8afa402783bbd00bcc63b6f14f -SIZE (xpi/firefox-i18n-56.0.2/uk.xpi) = 535436 -SHA256 (xpi/firefox-i18n-56.0.2/ur.xpi) = 01a4d64725be568e148d88dab405545f76a24a695d499a236a2be0599489324a -SIZE (xpi/firefox-i18n-56.0.2/ur.xpi) = 527354 -SHA256 (xpi/firefox-i18n-56.0.2/uz.xpi) = 79092d2f830adbf05cc884aa014fa9348e3449fa206cf91286d5bfb40ebe729c -SIZE (xpi/firefox-i18n-56.0.2/uz.xpi) = 475101 -SHA256 (xpi/firefox-i18n-56.0.2/vi.xpi) = 65633b00c1a124a23bfda2bdb7666ab8e12e113c956930cc975f838e3de04038 -SIZE (xpi/firefox-i18n-56.0.2/vi.xpi) = 487150 -SHA256 (xpi/firefox-i18n-56.0.2/xh.xpi) = af99554dc838c042310acbb0a7c2623d61ff3b3045667cf301cffeb29821c008 -SIZE (xpi/firefox-i18n-56.0.2/xh.xpi) = 477838 -SHA256 (xpi/firefox-i18n-56.0.2/zh-CN.xpi) = f2a1bb04222fbca3845b00694342a74c8d54cbf1a64104d96f1856879aed0abf -SIZE (xpi/firefox-i18n-56.0.2/zh-CN.xpi) = 498979 -SHA256 (xpi/firefox-i18n-56.0.2/zh-TW.xpi) = 8c547d631522048d060be5305c277024e8038386dcad232ed742b1edf14a9471 -SIZE (xpi/firefox-i18n-56.0.2/zh-TW.xpi) = 497765 +TIMESTAMP = 1510006447 +SHA256 (xpi/firefox-i18n-57.0/ach.xpi) = ff5bbdfcca5270cf978173eb13ce10bfb4b51dbd1faeb9b69c50f689a1eb3dc4 +SIZE (xpi/firefox-i18n-57.0/ach.xpi) = 441112 +SHA256 (xpi/firefox-i18n-57.0/af.xpi) = 65459a5914dba1de876bee7d867699ff033a9722a957675f973b5cf1213366b9 +SIZE (xpi/firefox-i18n-57.0/af.xpi) = 442205 +SHA256 (xpi/firefox-i18n-57.0/an.xpi) = d24b77cfdf3d5badd492c04f5984171bedbafcee31fb447930925e2c911e5261 +SIZE (xpi/firefox-i18n-57.0/an.xpi) = 462777 +SHA256 (xpi/firefox-i18n-57.0/ar.xpi) = 06b0d8f7f34eb661f8f4944c26ddeee81e84bb00dd07dec4f1f06e54f1cdbe6f +SIZE (xpi/firefox-i18n-57.0/ar.xpi) = 488159 +SHA256 (xpi/firefox-i18n-57.0/as.xpi) = 8229d02b5f8b88dea2a6e8f83db6c335c951ebf786f4d73fe28dde8457ae4d59 +SIZE (xpi/firefox-i18n-57.0/as.xpi) = 491074 +SHA256 (xpi/firefox-i18n-57.0/ast.xpi) = 0f46b1d36c23ec86656208241e692f2f4fef6338285dd54621939a53672d497d +SIZE (xpi/firefox-i18n-57.0/ast.xpi) = 455503 +SHA256 (xpi/firefox-i18n-57.0/az.xpi) = 68db90d2cc24227407dc20cb8721b5f89ae875fc3e0248981bf5349b2348030d +SIZE (xpi/firefox-i18n-57.0/az.xpi) = 466042 +SHA256 (xpi/firefox-i18n-57.0/be.xpi) = 9e9c151874180d2ccf6ac1e7e7a59a5d2e72f9543bb6c128416fad177a2f01cb +SIZE (xpi/firefox-i18n-57.0/be.xpi) = 516091 +SHA256 (xpi/firefox-i18n-57.0/bg.xpi) = 10c386468c1d34676a7d4e3992f14d853cd29f61bd1d12b04f3f1b66ebb8993b +SIZE (xpi/firefox-i18n-57.0/bg.xpi) = 510349 +SHA256 (xpi/firefox-i18n-57.0/bn-BD.xpi) = 11b541a18a34fee16337dd8648a36e45b6c5371e9c17a845985120e6a7b1997d +SIZE (xpi/firefox-i18n-57.0/bn-BD.xpi) = 527188 +SHA256 (xpi/firefox-i18n-57.0/bn-IN.xpi) = f8c912705b760607456a140506f3120e9d7c9f0ee17508d4cbd1eb3e18bc895d +SIZE (xpi/firefox-i18n-57.0/bn-IN.xpi) = 516175 +SHA256 (xpi/firefox-i18n-57.0/br.xpi) = 4c76bf9c4b39dac467de391527072ca6d81c83a9ccbead46dbbbb76a8ab7c252 +SIZE (xpi/firefox-i18n-57.0/br.xpi) = 451865 +SHA256 (xpi/firefox-i18n-57.0/bs.xpi) = 4d3c483b4e3a20a852ddb5fe6a0d1f447366310dee446317017ebdf332e129c1 +SIZE (xpi/firefox-i18n-57.0/bs.xpi) = 459649 +SHA256 (xpi/firefox-i18n-57.0/ca.xpi) = 21fc2934acb751e89badbf215aad67085c310cbb627e44277d9592aaf213a837 +SIZE (xpi/firefox-i18n-57.0/ca.xpi) = 466640 +SHA256 (xpi/firefox-i18n-57.0/cak.xpi) = 95c3cff1bd43dc2f14e99a0c10d8f101beb4e940f810279a2912571ddeff6326 +SIZE (xpi/firefox-i18n-57.0/cak.xpi) = 475934 +SHA256 (xpi/firefox-i18n-57.0/cs.xpi) = c579929028397c8f93ed7193cc4f2a6511a5b503d59d02d6599701d7fab393db +SIZE (xpi/firefox-i18n-57.0/cs.xpi) = 469456 +SHA256 (xpi/firefox-i18n-57.0/cy.xpi) = 3442262d271a47173226ae327be47524ab0237b0ebaea73c61c61177463f81fa +SIZE (xpi/firefox-i18n-57.0/cy.xpi) = 455787 +SHA256 (xpi/firefox-i18n-57.0/da.xpi) = 538e9cce1e72af3ce6c6bbfe0a310529099dc95100546974e8b0a228860854a3 +SIZE (xpi/firefox-i18n-57.0/da.xpi) = 448415 +SHA256 (xpi/firefox-i18n-57.0/de.xpi) = bb4c883efe6f393ed47d91712901ca0bff04951db9e83ab5c981811e60512461 +SIZE (xpi/firefox-i18n-57.0/de.xpi) = 460812 +SHA256 (xpi/firefox-i18n-57.0/dsb.xpi) = 51ef0a8a83770dab060779d6b34478a60d080e743b8c446b791a89236161f29e +SIZE (xpi/firefox-i18n-57.0/dsb.xpi) = 479506 +SHA256 (xpi/firefox-i18n-57.0/el.xpi) = 2009672fb40a593061fba725ad6fb5c6b52b330a7724e3e5203c8885df5fce81 +SIZE (xpi/firefox-i18n-57.0/el.xpi) = 534482 +SHA256 (xpi/firefox-i18n-57.0/en-GB.xpi) = f24741f6461582b52678ee67262ea5a3c7538de741c5546d6ea6e15026e4af61 +SIZE (xpi/firefox-i18n-57.0/en-GB.xpi) = 435523 +SHA256 (xpi/firefox-i18n-57.0/en-US.xpi) = 629fd830ad4a5261391aa0a380f4c9e1dc63d2dfb539d9ae3a603b7650573eb5 +SIZE (xpi/firefox-i18n-57.0/en-US.xpi) = 437987 +SHA256 (xpi/firefox-i18n-57.0/en-ZA.xpi) = f1d21809cccea7d4bc649b7337ebde96f3b42185d154e603dbae241e5d8876d1 +SIZE (xpi/firefox-i18n-57.0/en-ZA.xpi) = 432019 +SHA256 (xpi/firefox-i18n-57.0/eo.xpi) = 599314153f217433a53671ac0c118be5a6953094bcd94fe8230f192ca5d8995a +SIZE (xpi/firefox-i18n-57.0/eo.xpi) = 454908 +SHA256 (xpi/firefox-i18n-57.0/es-AR.xpi) = 6f6d9805f9bba0fac0afce20bdfb1116c1c441cb5463fc271e8a3cec2cfe2bfe +SIZE (xpi/firefox-i18n-57.0/es-AR.xpi) = 462978 +SHA256 (xpi/firefox-i18n-57.0/es-CL.xpi) = 141b2502ed61b7ac439910c252c6de9388ab6a6783fb290e77208367317b4fdc +SIZE (xpi/firefox-i18n-57.0/es-CL.xpi) = 465514 +SHA256 (xpi/firefox-i18n-57.0/es-ES.xpi) = 73409303fc344d642f2343fd683694b534291c6ca5a8f8c63ee27b13e2ffe8ab +SIZE (xpi/firefox-i18n-57.0/es-ES.xpi) = 353623 +SHA256 (xpi/firefox-i18n-57.0/es-MX.xpi) = 69825e5bcd24a4479a8fa46a632acfd0553819054c6a9436b975c09b7289495e +SIZE (xpi/firefox-i18n-57.0/es-MX.xpi) = 468091 +SHA256 (xpi/firefox-i18n-57.0/et.xpi) = e5683bf2280fd070dad6855af2f60bd433d9200af66ec0976f5045d5d44e8e30 +SIZE (xpi/firefox-i18n-57.0/et.xpi) = 447277 +SHA256 (xpi/firefox-i18n-57.0/eu.xpi) = 562f0ad72e23e6b37969c6b75fd7343cbceb67cfb3db570525b796c3a214b2b2 +SIZE (xpi/firefox-i18n-57.0/eu.xpi) = 454671 +SHA256 (xpi/firefox-i18n-57.0/fa.xpi) = 39891a98174cdf50dfea0a69e896049ef8aa66be1c694149eb7da3ff421045a2 +SIZE (xpi/firefox-i18n-57.0/fa.xpi) = 510827 +SHA256 (xpi/firefox-i18n-57.0/ff.xpi) = 0b9a56e8b6378b13db3011957c9e040c3b2e74afe8de34d0333b9029b15d3f38 +SIZE (xpi/firefox-i18n-57.0/ff.xpi) = 454014 +SHA256 (xpi/firefox-i18n-57.0/fi.xpi) = b81be3f2dd15873dae20b4eced377e3e8d3b40de59d7735c72444e87dc7f476e +SIZE (xpi/firefox-i18n-57.0/fi.xpi) = 446242 +SHA256 (xpi/firefox-i18n-57.0/fr.xpi) = 59578e90b9832f216d01755cd52bc5956fa646bc420131f3b00ce09faa8d6271 +SIZE (xpi/firefox-i18n-57.0/fr.xpi) = 472720 +SHA256 (xpi/firefox-i18n-57.0/fy-NL.xpi) = e413938e6671a1a98cfff44f70712961a26e70ef9c5f217d1adc315be0b23308 +SIZE (xpi/firefox-i18n-57.0/fy-NL.xpi) = 465242 +SHA256 (xpi/firefox-i18n-57.0/ga-IE.xpi) = 563933a54d94fa031fb309157d806b50e694ae42e6723d9a5b6e442fd5d53f21 +SIZE (xpi/firefox-i18n-57.0/ga-IE.xpi) = 475962 +SHA256 (xpi/firefox-i18n-57.0/gd.xpi) = 69089bd588762270bd6592b544ed7886b4d092b915cdabb4ffee6c9c499ed924 +SIZE (xpi/firefox-i18n-57.0/gd.xpi) = 465121 +SHA256 (xpi/firefox-i18n-57.0/gl.xpi) = ca5195dad2f043d4b530b414061c92f835fe0f9c2f0e8a64de0e3a73079e4e6d +SIZE (xpi/firefox-i18n-57.0/gl.xpi) = 452030 +SHA256 (xpi/firefox-i18n-57.0/gn.xpi) = a118e4b81c47da417fe79af3d95788e04aaf42d433e8984d026851c41cd5ee11 +SIZE (xpi/firefox-i18n-57.0/gn.xpi) = 471954 +SHA256 (xpi/firefox-i18n-57.0/gu-IN.xpi) = 0cf3579447aa63d495d5ee744d7b7dcd16eb6779c8e398f75a3c12841c1f2461 +SIZE (xpi/firefox-i18n-57.0/gu-IN.xpi) = 511989 +SHA256 (xpi/firefox-i18n-57.0/he.xpi) = a2c770fab1787623f9a62a5579e7e2f5e8561ba38f8223ef11c75227abd5c7f3 +SIZE (xpi/firefox-i18n-57.0/he.xpi) = 471920 +SHA256 (xpi/firefox-i18n-57.0/hi-IN.xpi) = a07ecdd23d74ea5ae916b4a94ad513696e4000f703ea3e06cdff9c579748e1c2 +SIZE (xpi/firefox-i18n-57.0/hi-IN.xpi) = 526109 +SHA256 (xpi/firefox-i18n-57.0/hr.xpi) = f88a0964a4e55a4b904e3e466d78f853b58f99007f920277651b4176f48c1cbd +SIZE (xpi/firefox-i18n-57.0/hr.xpi) = 460720 +SHA256 (xpi/firefox-i18n-57.0/hsb.xpi) = bbdb24808af0f07be665ffc8cadf687ef30c47075d0b1ef78a58311ddbf99f7f +SIZE (xpi/firefox-i18n-57.0/hsb.xpi) = 476500 +SHA256 (xpi/firefox-i18n-57.0/hu.xpi) = 23767b357e4ae9a470605a7bf5e5231301ffe3d65fea8e11c07f82f53e1fd9c2 +SIZE (xpi/firefox-i18n-57.0/hu.xpi) = 476603 +SHA256 (xpi/firefox-i18n-57.0/hy-AM.xpi) = 8106177a21fbfb382dfe26b6106ba35128a03fc25d06b492f948c7a661303add +SIZE (xpi/firefox-i18n-57.0/hy-AM.xpi) = 510824 +SHA256 (xpi/firefox-i18n-57.0/id.xpi) = a3cce07b6c2369bfed1c47af5fd3de8254603efe8b7d3e3929ddba32d824237a +SIZE (xpi/firefox-i18n-57.0/id.xpi) = 444040 +SHA256 (xpi/firefox-i18n-57.0/is.xpi) = b608ebb8f34a93968fcef85d1c463e32489e999b92197f9b21b094d76db29767 +SIZE (xpi/firefox-i18n-57.0/is.xpi) = 452655 +SHA256 (xpi/firefox-i18n-57.0/it.xpi) = b035b10133444b23fbef2c66c8548fdd6703ec304d8a854c5fbec42e79f9778a +SIZE (xpi/firefox-i18n-57.0/it.xpi) = 347170 +SHA256 (xpi/firefox-i18n-57.0/ja.xpi) = a7e3af1bbc6bdf3ec139e77e3cc1e39b072dd68b0a434ef96cc288e7424eea8c +SIZE (xpi/firefox-i18n-57.0/ja.xpi) = 508551 +SHA256 (xpi/firefox-i18n-57.0/ka.xpi) = 09dd38e2f51b0228dd0302e4afcc6ee6f6f2d89956172c27518cb9c7423e155e +SIZE (xpi/firefox-i18n-57.0/ka.xpi) = 492355 +SHA256 (xpi/firefox-i18n-57.0/kab.xpi) = f673912bcc909e9046008803886cf4322653871e7b5b121645566c2b92b5fc39 +SIZE (xpi/firefox-i18n-57.0/kab.xpi) = 462530 +SHA256 (xpi/firefox-i18n-57.0/kk.xpi) = 4d93c3e6f982f4b10d614f6d237f8fac8887c347f1ce11aa6728d0918d552a87 +SIZE (xpi/firefox-i18n-57.0/kk.xpi) = 519248 +SHA256 (xpi/firefox-i18n-57.0/km.xpi) = 11cb79e402ba96e678fa27bdbd39bb7ec48533eac89f884334b65ad9335eef54 +SIZE (xpi/firefox-i18n-57.0/km.xpi) = 530079 +SHA256 (xpi/firefox-i18n-57.0/kn.xpi) = 1230fe7d27fbc3af7196b7258bee255b4d85dd232c117a0a4d515ddef74328c9 +SIZE (xpi/firefox-i18n-57.0/kn.xpi) = 531315 +SHA256 (xpi/firefox-i18n-57.0/ko.xpi) = 1d992cbc4f30bff88b40d46c55ceef223f7b66ad489e073a859655461edacb28 +SIZE (xpi/firefox-i18n-57.0/ko.xpi) = 487304 +SHA256 (xpi/firefox-i18n-57.0/lij.xpi) = 4e9e6e0661c4bea860128dd870596154e68c3367624fd6cbc690e2c341157f21 +SIZE (xpi/firefox-i18n-57.0/lij.xpi) = 452340 +SHA256 (xpi/firefox-i18n-57.0/lt.xpi) = ce3bdff82d4f6baef44d2913e4da76b83e50dd0c9e3102e444425d379e2347f7 +SIZE (xpi/firefox-i18n-57.0/lt.xpi) = 474955 +SHA256 (xpi/firefox-i18n-57.0/lv.xpi) = 25bb6e484402d0c7909544031c2fe84f04b8cb0d563c902427542ca8b0f0a996 +SIZE (xpi/firefox-i18n-57.0/lv.xpi) = 465242 +SHA256 (xpi/firefox-i18n-57.0/mai.xpi) = 7f3dafefb77ef7d5e73dd9a762b9d51f05c7c739933561b3a0d53c7798fff9d9 +SIZE (xpi/firefox-i18n-57.0/mai.xpi) = 507395 +SHA256 (xpi/firefox-i18n-57.0/mk.xpi) = ac348da0f832916715da5111083a4e2b72a7d16b9c96c04a1cc4d5d3e6c862a7 +SIZE (xpi/firefox-i18n-57.0/mk.xpi) = 490852 +SHA256 (xpi/firefox-i18n-57.0/ml.xpi) = a4be2963a72230143283d674ddcc3c28c5f09636524af145f5f53ecce0322572 +SIZE (xpi/firefox-i18n-57.0/ml.xpi) = 528255 +SHA256 (xpi/firefox-i18n-57.0/mr.xpi) = 410200d49c82a8ba5a0ecae914e1da3f04798506d9625acbc10c5ed3b99cec9d +SIZE (xpi/firefox-i18n-57.0/mr.xpi) = 521289 +SHA256 (xpi/firefox-i18n-57.0/ms.xpi) = c1b61b1325581a5c2d927a675b19e9d2e34c708bbc45ce5f6c03f386de5b33e5 +SIZE (xpi/firefox-i18n-57.0/ms.xpi) = 451254 +SHA256 (xpi/firefox-i18n-57.0/my.xpi) = 512cb14ae373275c4755c478ac1dce4c51be15cde0b2aaaca5b29c3e45df0a5b +SIZE (xpi/firefox-i18n-57.0/my.xpi) = 517702 +SHA256 (xpi/firefox-i18n-57.0/nb-NO.xpi) = a57311847934d5dcff18066ff7bd323f2c2406fa3df4c8e258b8d9d0939b1be8 +SIZE (xpi/firefox-i18n-57.0/nb-NO.xpi) = 451556 +SHA256 (xpi/firefox-i18n-57.0/nl.xpi) = 25973c35d308af09a7c5809f84037bc74176eb133cb556e4942ed8ca54915585 +SIZE (xpi/firefox-i18n-57.0/nl.xpi) = 457659 +SHA256 (xpi/firefox-i18n-57.0/nn-NO.xpi) = eb127fad8c44a4721fc1cf1d901d0c2aff16041b8bc54d2d3951b03bfac94600 +SIZE (xpi/firefox-i18n-57.0/nn-NO.xpi) = 452003 +SHA256 (xpi/firefox-i18n-57.0/or.xpi) = dc0f59099e8d0592b3e61d8d5c88ae22b9a1067fd89911b7799f8b43d13a2f6b +SIZE (xpi/firefox-i18n-57.0/or.xpi) = 500863 +SHA256 (xpi/firefox-i18n-57.0/pa-IN.xpi) = 33348a739ae6b01c3629def78a855ea6ea816e0253b696e58ba9ccbff3fa37d6 +SIZE (xpi/firefox-i18n-57.0/pa-IN.xpi) = 495270 +SHA256 (xpi/firefox-i18n-57.0/pl.xpi) = fff4c80385e9eec79ec93d4fc35f84301fa28c8a527591196d719f675c9ffe2b +SIZE (xpi/firefox-i18n-57.0/pl.xpi) = 364229 +SHA256 (xpi/firefox-i18n-57.0/pt-BR.xpi) = 345c47dde41fb0348dc1cc4d629fc78becd123e2c87eb1e33f1ca50eea77373c +SIZE (xpi/firefox-i18n-57.0/pt-BR.xpi) = 456485 +SHA256 (xpi/firefox-i18n-57.0/pt-PT.xpi) = b77f50f7b02a78dc24dc32e9bff82b46bf2e37a62f978c1fe5ac172f6bf63f26 +SIZE (xpi/firefox-i18n-57.0/pt-PT.xpi) = 459998 +SHA256 (xpi/firefox-i18n-57.0/rm.xpi) = 695b5483ecc003296cd25b0b441c73c73c475457466fd7cff3f39a8491a44910 +SIZE (xpi/firefox-i18n-57.0/rm.xpi) = 451057 +SHA256 (xpi/firefox-i18n-57.0/ro.xpi) = 591ecab4f6e3869da69e612f847a832a802050471655565d29aa8c76febe7b7e +SIZE (xpi/firefox-i18n-57.0/ro.xpi) = 455509 +SHA256 (xpi/firefox-i18n-57.0/ru.xpi) = 3b7355af69378f3bf0642d8f93c2c1fb6a9665ddd5a2b6aec4865baa8cd7713f +SIZE (xpi/firefox-i18n-57.0/ru.xpi) = 527005 +SHA256 (xpi/firefox-i18n-57.0/si.xpi) = 3392da245426ca4480b478455b61b6d53fe5741e7c0c3772a610e622b0248715 +SIZE (xpi/firefox-i18n-57.0/si.xpi) = 498323 +SHA256 (xpi/firefox-i18n-57.0/sk.xpi) = 5ac2035fdb85fb5bb789b6f2723e69bd23e6a15f6a4dfb184c08100aafead6ba +SIZE (xpi/firefox-i18n-57.0/sk.xpi) = 480395 +SHA256 (xpi/firefox-i18n-57.0/sl.xpi) = 6c55623bb30635ac67abcd3fab3b4cc30de5fefea2ae0bbb99f15be7c7843245 +SIZE (xpi/firefox-i18n-57.0/sl.xpi) = 459376 +SHA256 (xpi/firefox-i18n-57.0/son.xpi) = ac13a973cacd9e4c84401cd11095c0a0f307d07ebb0719174adcfcf957188316 +SIZE (xpi/firefox-i18n-57.0/son.xpi) = 450929 +SHA256 (xpi/firefox-i18n-57.0/sq.xpi) = 2b999472e0e6550b63782d15aa713bac47b3ddcf8a212673a30fd6e55090215c +SIZE (xpi/firefox-i18n-57.0/sq.xpi) = 465050 +SHA256 (xpi/firefox-i18n-57.0/sr.xpi) = 75849a57f9b44b73445b302279dcb626389670a20dc3a404ad5db774c3ceaa00 +SIZE (xpi/firefox-i18n-57.0/sr.xpi) = 487002 +SHA256 (xpi/firefox-i18n-57.0/sv-SE.xpi) = 87ec5cbe45db203cfd1fd49ab7d2fb78df72fdcd4867e2dcc16727463100bb06 +SIZE (xpi/firefox-i18n-57.0/sv-SE.xpi) = 459664 +SHA256 (xpi/firefox-i18n-57.0/ta.xpi) = 74382122b90dbd76d128d5a860d40ddc839f315ee7cecbcdb73c2fbf20169199 +SIZE (xpi/firefox-i18n-57.0/ta.xpi) = 513225 +SHA256 (xpi/firefox-i18n-57.0/te.xpi) = a40de1d2174392d96bda8cfe65c8e374f4c833add0e1719d6c44616b571e6855 +SIZE (xpi/firefox-i18n-57.0/te.xpi) = 530692 +SHA256 (xpi/firefox-i18n-57.0/th.xpi) = 9d7cff5544312d33d44a2728f095e095e646ae2cd904e014fe69ca8016440884 +SIZE (xpi/firefox-i18n-57.0/th.xpi) = 502450 +SHA256 (xpi/firefox-i18n-57.0/tr.xpi) = fa1e8613954cae82fa460eb840af561df5857320a33ec5a1f8b032e3ed558dee +SIZE (xpi/firefox-i18n-57.0/tr.xpi) = 465580 +SHA256 (xpi/firefox-i18n-57.0/uk.xpi) = b477818ae7061f7523625380e93fbe9bdfc385279e7e96cb06e98e6ed5915d86 +SIZE (xpi/firefox-i18n-57.0/uk.xpi) = 518137 +SHA256 (xpi/firefox-i18n-57.0/ur.xpi) = d9b3f9e18241a5abb31906792bae33c6b6b579631678c97236291e388e8bc195 +SIZE (xpi/firefox-i18n-57.0/ur.xpi) = 511133 +SHA256 (xpi/firefox-i18n-57.0/uz.xpi) = 4d4fe1f56e5c86f779753eed44f1b5d3f1cceb3a6f46950d175ed31c9f7ff39d +SIZE (xpi/firefox-i18n-57.0/uz.xpi) = 461693 +SHA256 (xpi/firefox-i18n-57.0/vi.xpi) = ce81dbf85ddd901acb8c9cf7cfd331d2dfe6f4a7f5e4d799d664ff867bd5d40b +SIZE (xpi/firefox-i18n-57.0/vi.xpi) = 471319 +SHA256 (xpi/firefox-i18n-57.0/xh.xpi) = be4d359e06a8a10cfda658a6e7c1e13ff857fd767d76882bedfd1aada3a6900c +SIZE (xpi/firefox-i18n-57.0/xh.xpi) = 464460 +SHA256 (xpi/firefox-i18n-57.0/zh-CN.xpi) = 040736b596b614e55ac09aefa3e9f04211f16cb257ea0c2d274ca0df99b787b6 +SIZE (xpi/firefox-i18n-57.0/zh-CN.xpi) = 483624 +SHA256 (xpi/firefox-i18n-57.0/zh-TW.xpi) = fa5cf52246a289bc91d60519697977cbd6f999f5bda7eb715cb8303af543b752 +SIZE (xpi/firefox-i18n-57.0/zh-TW.xpi) = 482346 diff --git a/www/firefox/Makefile b/www/firefox/Makefile index d1136fd17020..b86e7c9befcc 100644 --- a/www/firefox/Makefile +++ b/www/firefox/Makefile @@ -2,27 +2,26 @@ # $FreeBSD$ PORTNAME= firefox -DISTVERSION= 56.0.2 +DISTVERSION= 57.0 DISTVERSIONSUFFIX=.source -PORTREVISION= 8 PORTEPOCH= 1 CATEGORIES= www ipv6 MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ - MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source + MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build3/source MAINTAINER= gecko@FreeBSD.org COMMENT= Web browser based on the browser portion of Mozilla -BUILD_DEPENDS= nspr>=4.16:devel/nspr \ - nss>=3.32.1:security/nss \ +BUILD_DEPENDS= nspr>=4.17:devel/nspr \ + nss>=3.33:security/nss \ icu>=59.1,1:devel/icu \ libevent>=2.1.8:devel/libevent \ - harfbuzz>=1.4.7:print/harfbuzz \ + harfbuzz>=1.5.1:print/harfbuzz \ graphite2>=1.3.10:graphics/graphite2 \ png>=1.6.31:graphics/png \ libvorbis>=1.3.5,3:audio/libvorbis \ libvpx>=1.5.0:multimedia/libvpx \ - sqlite3>=3.19.3:databases/sqlite3 \ + sqlite3>=3.20.1:databases/sqlite3 \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \ v4l_compat>0:multimedia/v4l_compat \ autoconf-2.13:devel/autoconf213 \ diff --git a/www/firefox/distinfo b/www/firefox/distinfo index 1294136080e5..993466e97aef 100644 --- a/www/firefox/distinfo +++ b/www/firefox/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1508873487 -SHA256 (firefox-56.0.2.source.tar.xz) = 6f7d284c31383a9860d7b52f05f866526d5a7c31e3ef2959d79122ba074f5ca1 -SIZE (firefox-56.0.2.source.tar.xz) = 255658916 +TIMESTAMP = 1510265773 +SHA256 (firefox-57.0.source.tar.xz) = a68e0a891af2e52423aa8416e2812361da04675f243f6465d805d8b3d4ca7494 +SIZE (firefox-57.0.source.tar.xz) = 250650020 diff --git a/www/firefox/files/patch-bug1384701 b/www/firefox/files/patch-bug1384701 deleted file mode 100644 index 142d5430d266..000000000000 --- a/www/firefox/files/patch-bug1384701 +++ /dev/null @@ -1,796 +0,0 @@ -diff --git widget/gtk/nsLookAndFeel.cpp widget/gtk/nsLookAndFeel.cpp -index 6bb3e27c6653..f4c35d82200a 100644 ---- widget/gtk/nsLookAndFeel.cpp -+++ widget/gtk/nsLookAndFeel.cpp -@@ -29,11 +29,9 @@ - - #include "mozilla/gfx/2D.h" - --#if MOZ_WIDGET_GTK != 2 - #include - #include "WidgetStyleCache.h" - #include "prenv.h" --#endif - - using mozilla::LookAndFeel; - -@@ -49,9 +47,6 @@ using mozilla::LookAndFeel; - - nsLookAndFeel::nsLookAndFeel() - : nsXPLookAndFeel(), --#if (MOZ_WIDGET_GTK == 2) -- mStyle(nullptr), --#endif - mDefaultFontCached(false), mButtonFontCached(false), - mFieldFontCached(false), mMenuFontCached(false), - mInitialized(false) -@@ -66,12 +61,8 @@ nsLookAndFeel::NativeInit() - - nsLookAndFeel::~nsLookAndFeel() - { --#if (MOZ_WIDGET_GTK == 2) -- g_object_unref(mStyle); --#endif - } - --#if MOZ_WIDGET_GTK != 2 - // Modifies color |*aDest| as if a pattern of color |aSource| was painted with - // CAIRO_OPERATOR_OVER to a surface with color |*aDest|. - static void -@@ -228,42 +219,19 @@ GetBorderColors(GtkStyleContext* aContext, - *aDarkColor = GDK_RGBA_TO_NS_RGBA(darkColor); - return ret; - } --#endif - - nsresult - nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - { - EnsureInit(); - --#if (MOZ_WIDGET_GTK == 3) - GdkRGBA gdk_color; --#endif - nsresult res = NS_OK; - - switch (aID) { - // These colors don't seem to be used for anything anymore in Mozilla - // (except here at least TextSelectBackground and TextSelectForeground) - // The CSS2 colors below are used. --#if (MOZ_WIDGET_GTK == 2) -- case eColorID_WindowBackground: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]); -- break; -- case eColorID_WindowForeground: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]); -- break; -- case eColorID_WidgetBackground: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID_WidgetForeground: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]); -- break; -- case eColorID_WidgetSelectBackground: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_SELECTED]); -- break; -- case eColorID_WidgetSelectForeground: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_SELECTED]); -- break; --#else - case eColorID_WindowBackground: - case eColorID_WidgetBackground: - case eColorID_TextBackground: -@@ -303,35 +271,12 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - case eColorID__moz_html_cellhighlighttext: - aColor = sTextSelectedText; - break; --#endif - case eColorID_Widget3DHighlight: - aColor = NS_RGB(0xa0,0xa0,0xa0); - break; - case eColorID_Widget3DShadow: - aColor = NS_RGB(0x40,0x40,0x40); - break; --#if (MOZ_WIDGET_GTK == 2) -- case eColorID_TextBackground: -- // not used? -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]); -- break; -- case eColorID_TextForeground: -- // not used? -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]); -- break; -- case eColorID_TextSelectBackground: -- case eColorID_IMESelectedRawTextBackground: -- case eColorID_IMESelectedConvertedTextBackground: -- // still used -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_SELECTED]); -- break; -- case eColorID_TextSelectForeground: -- case eColorID_IMESelectedRawTextForeground: -- case eColorID_IMESelectedConvertedTextForeground: -- // still used -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_SELECTED]); -- break; --#endif - case eColorID_IMERawInputBackground: - case eColorID_IMEConvertedTextBackground: - aColor = NS_TRANSPARENT; -@@ -352,53 +297,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - aColor = NS_RGB(0xff, 0, 0); - break; - --#if (MOZ_WIDGET_GTK == 2) -- // css2 http://www.w3.org/TR/REC-CSS2/ui.html#system-colors -- case eColorID_activeborder: -- // active window border -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID_activecaption: -- // active window caption background -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID_appworkspace: -- // MDI background color -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID_background: -- // desktop background -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID_captiontext: -- // text in active window caption, size box, and scrollbar arrow box (!) -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]); -- break; -- case eColorID_graytext: -- // disabled text in windows, menus, etc. -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_INSENSITIVE]); -- break; -- case eColorID_highlight: -- // background of selected item -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_SELECTED]); -- break; -- case eColorID_highlighttext: -- // text of selected item -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_SELECTED]); -- break; -- case eColorID_inactiveborder: -- // inactive window border -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID_inactivecaption: -- // inactive window caption -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_INSENSITIVE]); -- break; -- case eColorID_inactivecaptiontext: -- // text in inactive window caption -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_INSENSITIVE]); -- break; --#else - // css2 http://www.w3.org/TR/REC-CSS2/ui.html#system-colors - case eColorID_activeborder: { - // active window border -@@ -433,7 +331,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - ReleaseStyleContext(style); - break; - } --#endif - case eColorID_infobackground: - // tooltip background color - aColor = sInfoBackground; -@@ -452,11 +349,7 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - break; - case eColorID_scrollbar: - // scrollbar gray area --#if (MOZ_WIDGET_GTK == 2) -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_ACTIVE]); --#else - aColor = sMozScrollbar; --#endif - break; - - case eColorID_threedlightshadow: -@@ -465,11 +358,7 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - case eColorID_threedface: - case eColorID_buttonface: - // 3-D face color --#if (MOZ_WIDGET_GTK == 3) - aColor = sMozWindowBackground; --#else -- aColor = sButtonBackground; --#endif - break; - - case eColorID_buttontext: -@@ -491,56 +380,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - aColor = sFrameInnerDarkBorder; - break; - --#if (MOZ_WIDGET_GTK == 2) -- case eColorID_threeddarkshadow: -- // 3-D shadow outer edge color -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->black); -- break; -- -- case eColorID_window: -- case eColorID_windowframe: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- -- case eColorID_windowtext: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]); -- break; -- -- case eColorID__moz_eventreerow: -- case eColorID__moz_field: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_NORMAL]); -- break; -- case eColorID__moz_fieldtext: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_NORMAL]); -- break; -- case eColorID__moz_dialog: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_NORMAL]); -- break; -- case eColorID__moz_dialogtext: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_NORMAL]); -- break; -- case eColorID__moz_dragtargetzone: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_SELECTED]); -- break; -- case eColorID__moz_buttondefault: -- // default button border color -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->black); -- break; -- case eColorID__moz_buttonhoverface: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->bg[GTK_STATE_PRELIGHT]); -- break; -- case eColorID__moz_buttonhovertext: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->fg[GTK_STATE_PRELIGHT]); -- break; -- case eColorID__moz_cellhighlight: -- case eColorID__moz_html_cellhighlight: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->base[GTK_STATE_ACTIVE]); -- break; -- case eColorID__moz_cellhighlighttext: -- case eColorID__moz_html_cellhighlighttext: -- aColor = GDK_COLOR_TO_NS_RGB(mStyle->text[GTK_STATE_ACTIVE]); -- break; --#else - case eColorID_threeddarkshadow: - // Hardcode to black - aColor = NS_RGB(0x00,0x00,0x00); -@@ -574,7 +413,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - case eColorID__moz_buttonhovertext: - aColor = sButtonHoverText; - break; --#endif - case eColorID__moz_menuhover: - aColor = sMenuHover; - break; -@@ -590,11 +428,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - case eColorID__moz_comboboxtext: - aColor = sComboBoxText; - break; --#if (MOZ_WIDGET_GTK == 2) -- case eColorID__moz_combobox: -- aColor = sComboBoxBackground; -- break; --#endif - case eColorID__moz_menubartext: - aColor = sMenuBarText; - break; -@@ -602,11 +435,7 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - aColor = sMenuBarHoverText; - break; - case eColorID__moz_gtk_info_bar_text: --#if (MOZ_WIDGET_GTK == 3) - aColor = sInfoBarText; --#else -- aColor = sInfoText; --#endif - break; - default: - /* default color is BLACK */ -@@ -618,27 +447,6 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor& aColor) - return res; - } - --#if (MOZ_WIDGET_GTK == 2) --static void darken_gdk_color(GdkColor *src, GdkColor *dest) --{ -- gdouble red; -- gdouble green; -- gdouble blue; -- -- red = (gdouble) src->red / 65535.0; -- green = (gdouble) src->green / 65535.0; -- blue = (gdouble) src->blue / 65535.0; -- -- red *= 0.93; -- green *= 0.93; -- blue *= 0.93; -- -- dest->red = red * 65535.0; -- dest->green = green * 65535.0; -- dest->blue = blue * 65535.0; --} --#endif -- - static int32_t CheckWidgetStyle(GtkWidget* aWidget, const char* aStyle, int32_t aResult) { - gboolean value = FALSE; - gtk_widget_style_get(aWidget, aStyle, &value, nullptr); -@@ -826,14 +634,8 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult) - res = NS_ERROR_NOT_IMPLEMENTED; - break; - case eIntID_TouchEnabled: --#if MOZ_WIDGET_GTK == 3 - aResult = mozilla::widget::WidgetUtils::IsTouchDeviceSupportPresent(); - break; --#else -- aResult = 0; -- res = NS_ERROR_NOT_IMPLEMENTED; --#endif -- break; - case eIntID_MacGraphiteTheme: - aResult = 0; - res = NS_ERROR_NOT_IMPLEMENTED; -@@ -905,24 +707,20 @@ nsLookAndFeel::GetFloatImpl(FloatID aID, float &aResult) - } - - static void --GetSystemFontInfo(GtkWidget *aWidget, -+GetSystemFontInfo(GtkStyleContext *aStyle, - nsString *aFontName, - gfxFontStyle *aFontStyle) - { -- GtkSettings *settings = gtk_widget_get_settings(aWidget); -- - aFontStyle->style = NS_FONT_STYLE_NORMAL; - -- gchar *fontname; -- g_object_get(settings, "gtk-font-name", &fontname, nullptr); -- -+ // As in -+ // https://git.gnome.org/browse/gtk+/tree/gtk/gtkwidget.c?h=3.22.19#n10333 - PangoFontDescription *desc; -- desc = pango_font_description_from_string(fontname); -+ gtk_style_context_get(aStyle, gtk_style_context_get_state(aStyle), -+ "font", &desc, nullptr); - - aFontStyle->systemFont = true; - -- g_free(fontname); -- - NS_NAMED_LITERAL_STRING(quote, "\""); - NS_ConvertUTF8toUTF16 family(pango_font_description_get_family(desc)); - *aFontName = quote + family + quote; -@@ -953,96 +751,28 @@ GetSystemFontInfo(GtkWidget *aWidget, - pango_font_description_free(desc); - } - --static void --GetSystemFontInfo(LookAndFeel::FontID aID, -- nsString *aFontName, -- gfxFontStyle *aFontStyle) --{ -- if (aID == LookAndFeel::eFont_Widget) { -- GtkWidget *label = gtk_label_new("M"); -- GtkWidget *parent = gtk_fixed_new(); -- GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); -- -- gtk_container_add(GTK_CONTAINER(parent), label); -- gtk_container_add(GTK_CONTAINER(window), parent); -- -- gtk_widget_ensure_style(label); -- GetSystemFontInfo(label, aFontName, aFontStyle); -- gtk_widget_destroy(window); // no unref, windows are different -- -- } else if (aID == LookAndFeel::eFont_Button) { -- GtkWidget *label = gtk_label_new("M"); -- GtkWidget *parent = gtk_fixed_new(); -- GtkWidget *button = gtk_button_new(); -- GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); -- -- gtk_container_add(GTK_CONTAINER(button), label); -- gtk_container_add(GTK_CONTAINER(parent), button); -- gtk_container_add(GTK_CONTAINER(window), parent); -- -- gtk_widget_ensure_style(label); -- GetSystemFontInfo(label, aFontName, aFontStyle); -- gtk_widget_destroy(window); // no unref, windows are different -- -- } else if (aID == LookAndFeel::eFont_Field) { -- GtkWidget *entry = gtk_entry_new(); -- GtkWidget *parent = gtk_fixed_new(); -- GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); -- -- gtk_container_add(GTK_CONTAINER(parent), entry); -- gtk_container_add(GTK_CONTAINER(window), parent); -- -- gtk_widget_ensure_style(entry); -- GetSystemFontInfo(entry, aFontName, aFontStyle); -- gtk_widget_destroy(window); // no unref, windows are different -- -- } else { -- MOZ_ASSERT(aID == LookAndFeel::eFont_Menu, "unexpected font ID"); -- GtkWidget *accel_label = gtk_accel_label_new("M"); -- GtkWidget *menuitem = gtk_menu_item_new(); -- GtkWidget *menu = gtk_menu_new(); -- g_object_ref_sink(menu); -- -- gtk_container_add(GTK_CONTAINER(menuitem), accel_label); -- gtk_menu_shell_append((GtkMenuShell *)GTK_MENU(menu), menuitem); -- -- gtk_widget_ensure_style(accel_label); -- GetSystemFontInfo(accel_label, aFontName, aFontStyle); -- g_object_unref(menu); -- } --} -- - bool - nsLookAndFeel::GetFontImpl(FontID aID, nsString& aFontName, - gfxFontStyle& aFontStyle, - float aDevPixPerCSSPixel) - { -- nsString *cachedFontName = nullptr; -- gfxFontStyle *cachedFontStyle = nullptr; -- bool *isCached = nullptr; -- - switch (aID) { - case eFont_Menu: // css2 - case eFont_PullDownMenu: // css3 -- cachedFontName = &mMenuFontName; -- cachedFontStyle = &mMenuFontStyle; -- isCached = &mMenuFontCached; -- aID = eFont_Menu; -- break; -+ aFontName = mMenuFontName; -+ aFontStyle = mMenuFontStyle; -+ return true; - - case eFont_Field: // css3 - case eFont_List: // css3 -- cachedFontName = &mFieldFontName; -- cachedFontStyle = &mFieldFontStyle; -- isCached = &mFieldFontCached; -- aID = eFont_Field; -- break; -+ aFontName = mFieldFontName; -+ aFontStyle = mFieldFontStyle; -+ return true; - - case eFont_Button: // css3 -- cachedFontName = &mButtonFontName; -- cachedFontStyle = &mButtonFontStyle; -- isCached = &mButtonFontCached; -- break; -+ aFontName = mButtonFontName; -+ aFontStyle = mButtonFontStyle; -+ return true; - - case eFont_Caption: // css2 - case eFont_Icon: // css2 -@@ -1057,21 +787,11 @@ nsLookAndFeel::GetFontImpl(FontID aID, nsString& aFontName, - case eFont_Dialog: // css3 - case eFont_Tooltips: // moz - case eFont_Widget: // moz -- cachedFontName = &mDefaultFontName; -- cachedFontStyle = &mDefaultFontStyle; -- isCached = &mDefaultFontCached; -- aID = eFont_Widget; -- break; -- } -- -- if (!*isCached) { -- GetSystemFontInfo(aID, cachedFontName, cachedFontStyle); -- *isCached = true; -+ default: -+ aFontName = mDefaultFontName; -+ aFontStyle = mDefaultFontStyle; -+ return true; - } -- -- aFontName = *cachedFontName; -- aFontStyle = *cachedFontStyle; -- return true; - } - - void -@@ -1087,70 +807,6 @@ nsLookAndFeel::EnsureInit() - // gtk does non threadsafe refcounting - MOZ_ASSERT(NS_IsMainThread()); - --#if (MOZ_WIDGET_GTK == 2) -- NS_ASSERTION(!mStyle, "already initialized"); -- // GtkInvisibles come with a refcount that is not floating -- // (since their initialization code calls g_object_ref_sink) and -- // their destroy code releases that reference (which means they -- // have to be explicitly destroyed, since calling unref enough -- // to cause destruction would lead to *another* unref). -- // However, this combination means that it's actually still ok -- // to use the normal pattern, which is to g_object_ref_sink -- // after construction, and then destroy *and* unref when we're -- // done. (Though we could skip the g_object_ref_sink and the -- // corresponding g_object_unref, but that's particular to -- // GtkInvisibles and GtkWindows.) -- GtkWidget *widget = gtk_invisible_new(); -- g_object_ref_sink(widget); // effectively g_object_ref (see above) -- -- gtk_widget_ensure_style(widget); -- mStyle = gtk_style_copy(gtk_widget_get_style(widget)); -- -- gtk_widget_destroy(widget); -- g_object_unref(widget); -- -- // tooltip foreground and background -- GtkStyle *style = gtk_rc_get_style_by_paths(gtk_settings_get_default(), -- "gtk-tooltips", "GtkWindow", -- GTK_TYPE_WINDOW); -- if (style) { -- sInfoBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]); -- sInfoText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]); -- } -- -- // menu foreground & menu background -- GtkWidget *accel_label = gtk_accel_label_new("M"); -- GtkWidget *menuitem = gtk_menu_item_new(); -- GtkWidget *menu = gtk_menu_new(); -- -- g_object_ref_sink(menu); -- -- gtk_container_add(GTK_CONTAINER(menuitem), accel_label); -- gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); -- -- gtk_widget_set_style(accel_label, nullptr); -- gtk_widget_set_style(menu, nullptr); -- gtk_widget_realize(menu); -- gtk_widget_realize(accel_label); -- -- style = gtk_widget_get_style(accel_label); -- if (style) { -- sMenuText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]); -- } -- -- style = gtk_widget_get_style(menu); -- if (style) { -- sMenuBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]); -- } -- -- style = gtk_widget_get_style(menuitem); -- if (style) { -- sMenuHover = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_PRELIGHT]); -- sMenuHoverText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_PRELIGHT]); -- } -- -- g_object_unref(menu); --#else - GdkRGBA color; - GtkStyleContext *style; - -@@ -1195,6 +851,12 @@ nsLookAndFeel::EnsureInit() - } - } - -+ // The label is not added to a parent widget, but shared for constructing -+ // different style contexts. The node hierarchy is constructed only on -+ // the label style context. -+ GtkWidget *labelWidget = gtk_label_new("M"); -+ g_object_ref_sink(labelWidget); -+ - // Scrollbar colors - style = ClaimStyleContext(MOZ_GTK_SCROLLBAR_TROUGH_VERTICAL); - gtk_style_context_get_background_color(style, GTK_STATE_FLAG_NORMAL, &color); -@@ -1208,6 +870,13 @@ nsLookAndFeel::EnsureInit() - gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color); - sMozWindowText = GDK_RGBA_TO_NS_RGBA(color); - ReleaseStyleContext(style); -+ style = ClaimStyleContext(MOZ_GTK_WINDOW_CONTAINER); -+ { -+ GtkStyleContext* labelStyle = CreateStyleForWidget(labelWidget, style); -+ GetSystemFontInfo(labelStyle, &mDefaultFontName, &mDefaultFontStyle); -+ g_object_unref(labelStyle); -+ } -+ ReleaseStyleContext(style); - - // tooltip foreground and background - style = ClaimStyleContext(MOZ_GTK_TOOLTIP); -@@ -1224,6 +893,9 @@ nsLookAndFeel::EnsureInit() - { - GtkStyleContext* accelStyle = - CreateStyleForWidget(gtk_accel_label_new("M"), style); -+ -+ GetSystemFontInfo(accelStyle, &mMenuFontName, &mMenuFontStyle); -+ - gtk_style_context_get_color(accelStyle, GTK_STATE_FLAG_NORMAL, &color); - sMenuText = GDK_RGBA_TO_NS_RGBA(color); - gtk_style_context_get_color(accelStyle, GTK_STATE_FLAG_INSENSITIVE, &color); -@@ -1243,17 +915,8 @@ nsLookAndFeel::EnsureInit() - gtk_style_context_get_color(style, GTK_STATE_FLAG_PRELIGHT, &color); - sMenuHoverText = GDK_RGBA_TO_NS_RGBA(color); - ReleaseStyleContext(style); --#endif - -- // button styles - GtkWidget *parent = gtk_fixed_new(); -- GtkWidget *button = gtk_button_new(); -- GtkWidget *label = gtk_label_new("M"); --#if (MOZ_WIDGET_GTK == 2) -- GtkWidget *combobox = gtk_combo_box_new(); -- GtkWidget *comboboxLabel = gtk_label_new("M"); -- gtk_container_add(GTK_CONTAINER(combobox), comboboxLabel); --#endif - GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); - GtkWidget *treeView = gtk_tree_view_new(); - GtkWidget *linkButton = gtk_link_button_new("http://example.com/"); -@@ -1262,94 +925,14 @@ nsLookAndFeel::EnsureInit() - GtkWidget *entry = gtk_entry_new(); - GtkWidget *textView = gtk_text_view_new(); - -- gtk_container_add(GTK_CONTAINER(button), label); -- gtk_container_add(GTK_CONTAINER(parent), button); - gtk_container_add(GTK_CONTAINER(parent), treeView); - gtk_container_add(GTK_CONTAINER(parent), linkButton); --#if (MOZ_WIDGET_GTK == 2) -- gtk_container_add(GTK_CONTAINER(parent), combobox); --#endif - gtk_container_add(GTK_CONTAINER(parent), menuBar); - gtk_menu_shell_append(GTK_MENU_SHELL(menuBar), menuBarItem); - gtk_container_add(GTK_CONTAINER(window), parent); - gtk_container_add(GTK_CONTAINER(parent), entry); - gtk_container_add(GTK_CONTAINER(parent), textView); - --#if (MOZ_WIDGET_GTK == 2) -- gtk_widget_set_style(button, nullptr); -- gtk_widget_set_style(label, nullptr); -- gtk_widget_set_style(treeView, nullptr); -- gtk_widget_set_style(linkButton, nullptr); -- gtk_widget_set_style(combobox, nullptr); -- gtk_widget_set_style(comboboxLabel, nullptr); -- gtk_widget_set_style(menuBar, nullptr); -- gtk_widget_set_style(entry, nullptr); -- -- gtk_widget_realize(button); -- gtk_widget_realize(label); -- gtk_widget_realize(treeView); -- gtk_widget_realize(linkButton); -- gtk_widget_realize(combobox); -- gtk_widget_realize(comboboxLabel); -- gtk_widget_realize(menuBar); -- gtk_widget_realize(entry); -- -- style = gtk_widget_get_style(label); -- if (style) { -- sButtonText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]); -- } -- -- style = gtk_widget_get_style(comboboxLabel); -- if (style) { -- sComboBoxText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]); -- } -- style = gtk_widget_get_style(combobox); -- if (style) { -- sComboBoxBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]); -- } -- -- style = gtk_widget_get_style(menuBar); -- if (style) { -- sMenuBarText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_NORMAL]); -- sMenuBarHoverText = GDK_COLOR_TO_NS_RGB(style->fg[GTK_STATE_SELECTED]); -- } -- -- // GTK's guide to fancy odd row background colors: -- // 1) Check if a theme explicitly defines an odd row color -- // 2) If not, check if it defines an even row color, and darken it -- // slightly by a hardcoded value (gtkstyle.c) -- // 3) If neither are defined, take the base background color and -- // darken that by a hardcoded value -- colorValuePtr = nullptr; -- gtk_widget_style_get(treeView, -- "odd-row-color", &colorValuePtr, -- nullptr); -- -- if (colorValuePtr) { -- colorValue = *colorValuePtr; -- } else { -- gtk_widget_style_get(treeView, -- "even-row-color", &colorValuePtr, -- nullptr); -- if (colorValuePtr) -- darken_gdk_color(colorValuePtr, &colorValue); -- else -- darken_gdk_color(&treeView->style->base[GTK_STATE_NORMAL], &colorValue); -- } -- -- sOddCellBackground = GDK_COLOR_TO_NS_RGB(colorValue); -- if (colorValuePtr) -- gdk_color_free(colorValuePtr); -- -- style = gtk_widget_get_style(button); -- if (style) { -- sButtonBackground = GDK_COLOR_TO_NS_RGB(style->bg[GTK_STATE_NORMAL]); -- sFrameOuterLightBorder = -- GDK_COLOR_TO_NS_RGB(style->light[GTK_STATE_NORMAL]); -- sFrameInnerDarkBorder = -- GDK_COLOR_TO_NS_RGB(style->dark[GTK_STATE_NORMAL]); -- } --#else - // Text colors - GdkRGBA bgColor; - // If the text window background is translucent, then the background of -@@ -1381,8 +964,10 @@ nsLookAndFeel::EnsureInit() - // Button text color - style = ClaimStyleContext(MOZ_GTK_BUTTON); - { -- GtkStyleContext* labelStyle = -- CreateStyleForWidget(gtk_label_new("M"), style); -+ GtkStyleContext* labelStyle = CreateStyleForWidget(labelWidget, style); -+ -+ GetSystemFontInfo(labelStyle, &mButtonFontName, &mButtonFontStyle); -+ - gtk_style_context_get_color(labelStyle, GTK_STATE_FLAG_NORMAL, &color); - sButtonText = GDK_RGBA_TO_NS_RGBA(color); - gtk_style_context_get_color(labelStyle, GTK_STATE_FLAG_PRELIGHT, &color); -@@ -1446,7 +1031,6 @@ nsLookAndFeel::EnsureInit() - gtk_style_context_add_class(style, GTK_STYLE_CLASS_INFO); - gtk_style_context_get_color(style, GTK_STATE_FLAG_NORMAL, &color); - sInfoBarText = GDK_RGBA_TO_NS_RGBA(color); --#endif - // Some themes have a unified menu bar, and support window dragging on it - gboolean supports_menubar_drag = FALSE; - GParamSpec *param_spec = -@@ -1493,7 +1074,11 @@ nsLookAndFeel::EnsureInit() - "cursor-aspect-ratio", &sCaretRatio, - nullptr); - -+ GetSystemFontInfo(gtk_widget_get_style_context(entry), -+ &mFieldFontName, &mFieldFontStyle); -+ - gtk_widget_destroy(window); -+ g_object_unref(labelWidget); - } - - // virtual -@@ -1515,11 +1100,6 @@ nsLookAndFeel::RefreshImpl() - mFieldFontCached = false; - mMenuFontCached = false; - --#if (MOZ_WIDGET_GTK == 2) -- g_object_unref(mStyle); -- mStyle = nullptr; --#endif -- - mInitialized = false; - } - -diff --git widget/gtk/nsLookAndFeel.h widget/gtk/nsLookAndFeel.h -index 9a4015e95415..38cd51c056d6 100644 ---- widget/gtk/nsLookAndFeel.h -+++ widget/gtk/nsLookAndFeel.h -@@ -33,9 +33,6 @@ public: - virtual bool GetEchoPasswordImpl(); - - protected: --#if (MOZ_WIDGET_GTK == 2) -- struct _GtkStyle *mStyle; --#endif - - // Cached fonts - bool mDefaultFontCached; -@@ -63,7 +60,6 @@ protected: - nscolor sMenuHoverText; - nscolor sButtonText; - nscolor sButtonHoverText; -- nscolor sButtonBackground; - nscolor sFrameOuterLightBorder; - nscolor sFrameInnerDarkBorder; - nscolor sOddCellBackground; -@@ -77,9 +73,7 @@ protected: - nscolor sTextSelectedText; - nscolor sTextSelectedBackground; - nscolor sMozScrollbar; --#if (MOZ_WIDGET_GTK == 3) - nscolor sInfoBarText; --#endif - char16_t sInvisibleCharacter; - float sCaretRatio; - bool sMenuSupportsDrag; diff --git a/www/firefox/files/patch-bug1386887 b/www/firefox/files/patch-bug1386887 deleted file mode 100644 index 7421a8d84012..000000000000 --- a/www/firefox/files/patch-bug1386887 +++ /dev/null @@ -1,89 +0,0 @@ -commit efbe3a9af876 -Author: Manish Goregaokar -Date: Wed Aug 2 11:24:35 2017 -0700 - - Bug 1386887 - Clean up FFI lifetimes to work on nightly; r=emilio - - MozReview-Commit-ID: 5WAIVd6p2du ---- - layout/style/ServoBindingList.h | 4 ++-- - layout/style/ServoBindingTypes.h | 2 ++ - layout/style/ServoBindings.h | 4 ++-- - layout/style/ServoBindings.toml | 4 +++- - 4 files changed, 9 insertions(+), 5 deletions(-) - -diff --git layout/style/ServoBindingList.h layout/style/ServoBindingList.h -index 6c669ebb3d3e..87ade14ea4de 100644 ---- layout/style/ServoBindingList.h -+++ layout/style/ServoBindingList.h -@@ -379,10 +379,10 @@ SERVO_BINDING_FUNC(Servo_DeclarationBlock_HasCSSWideKeyword, bool, - nsCSSPropertyID property) - // Compose animation value for a given property. - // |base_values| is nsRefPtrHashtable. --// We use void* to avoid exposing nsRefPtrHashtable in FFI. -+// We use RawServoAnimationValueTableBorrowed to avoid exposing nsRefPtrHashtable in FFI. - SERVO_BINDING_FUNC(Servo_AnimationCompose, void, - RawServoAnimationValueMapBorrowedMut animation_values, -- void* base_values, -+ RawServoAnimationValueTableBorrowed base_values, - nsCSSPropertyID property, - RawGeckoAnimationPropertySegmentBorrowed animation_segment, - RawGeckoAnimationPropertySegmentBorrowed last_segment, -diff --git layout/style/ServoBindingTypes.h layout/style/ServoBindingTypes.h -index aaf4fc27e1b9..69be15ee9f51 100644 ---- layout/style/ServoBindingTypes.h -+++ layout/style/ServoBindingTypes.h -@@ -54,6 +54,8 @@ class nsXBLBinding; - using mozilla::dom::StyleChildrenIterator; - using mozilla::ServoElementSnapshot; - -+typedef void* RawServoAnimationValueTableBorrowed; -+ - typedef nsINode RawGeckoNode; - typedef mozilla::dom::Element RawGeckoElement; - typedef nsIDocument RawGeckoDocument; -diff --git layout/style/ServoBindings.h layout/style/ServoBindings.h -index 493ca63f932b..c6ced6d1fedb 100644 ---- layout/style/ServoBindings.h -+++ layout/style/ServoBindings.h -@@ -268,9 +268,9 @@ double Gecko_GetPositionInSegment( - // Get servo's AnimationValue for |aProperty| from the cached base style - // |aBaseStyles|. - // |aBaseStyles| is nsRefPtrHashtable. --// We use void* to avoid exposing nsRefPtrHashtable in FFI. -+// We use RawServoAnimationValueTableBorrowed to avoid exposing nsRefPtrHashtable in FFI. - RawServoAnimationValueBorrowedOrNull Gecko_AnimationGetBaseStyle( -- void* aBaseStyles, -+ RawServoAnimationValueTableBorrowed aBaseStyles, - nsCSSPropertyID aProperty); - void Gecko_StyleTransition_SetUnsupportedProperty( - mozilla::StyleTransition* aTransition, -diff --git layout/style/ServoBindings.toml layout/style/ServoBindings.toml -index 11e372541235..3c3902beea80 100644 ---- layout/style/ServoBindings.toml -+++ layout/style/ServoBindings.toml -@@ -357,6 +357,7 @@ raw-lines = [ - "pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues;", - "pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>;", - "pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData;", -+ "pub type RawServoAnimationValueTableBorrowed<'a> = &'a ();" - ] - whitelist-functions = ["Servo_.*", "Gecko_.*"] - structs-types = [ -@@ -389,7 +390,7 @@ structs-types = [ - "RawGeckoPresContext", - "RawGeckoPresContextOwned", - "RawGeckoStyleAnimationList", -- "RawGeckoStyleChildrenIteratorBorrowedMut", -+ "RawGeckoStyleChildrenIterator", - "RawGeckoServoStyleRuleList", - "RawGeckoURLExtraData", - "RawGeckoXBLBinding", -@@ -526,6 +527,7 @@ servo-borrow-types = [ - "RawGeckoFontFaceRuleList", - "RawGeckoServoStyleRuleList", - "RawGeckoServoAnimationValueList", -+ "RawGeckoStyleChildrenIterator", - ] - fixups = [ - # hack for gecko-owned string diff --git a/www/firefox/files/patch-bug1386957 b/www/firefox/files/patch-bug1386957 deleted file mode 100644 index 34b38c5c1298..000000000000 --- a/www/firefox/files/patch-bug1386957 +++ /dev/null @@ -1,14 +0,0 @@ -https://github.com/kinetiknz/cubeb/commit/16f9ccc064f2 - ---- media/libcubeb/src/cubeb_jack.cpp.orig 2017-07-07 05:37:16 UTC -+++ media/libcubeb/src/cubeb_jack.cpp -@@ -8,7 +8,9 @@ - */ - #define _DEFAULT_SOURCE - #define _BSD_SOURCE -+#ifndef __FreeBSD__ - #define _POSIX_SOURCE -+#endif - #include - #include - #include diff --git a/www/firefox/files/patch-bug1393283 b/www/firefox/files/patch-bug1393283 deleted file mode 100644 index 0a4b9327ea2b..000000000000 --- a/www/firefox/files/patch-bug1393283 +++ /dev/null @@ -1,144 +0,0 @@ -commit d20c7d929c84 -Author: Ethan -Date: Fri Sep 1 17:29:44 2017 +0800 - - Bug 1393283 - Use the last ESR version as the spoofed Firefox version. r=tihuang, r=mcmanus ---- - .../test/browser/browser_navigator.js | 2 +- - netwerk/protocol/http/nsHttpHandler.cpp | 16 +++---- - .../resistfingerprinting/nsRFPService.cpp | 56 ++++++++++++++++++++++ - .../components/resistfingerprinting/nsRFPService.h | 3 ++ - 4 files changed, 66 insertions(+), 11 deletions(-) - -diff --git browser/components/resistfingerprinting/test/browser/browser_navigator.js browser/components/resistfingerprinting/test/browser/browser_navigator.js -index 25c393d8bb2a..9f52e34a9451 100644 ---- browser/components/resistfingerprinting/test/browser/browser_navigator.js -+++ browser/components/resistfingerprinting/test/browser/browser_navigator.js -@@ -91,7 +91,7 @@ add_task(async function setup() { - - let appInfo = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo); - let appVersion = parseInt(appInfo.version); -- let spoofedVersion = appVersion - (appVersion % 10); -+ let spoofedVersion = appVersion - ((appVersion - 3) % 7); - spoofedUserAgent = `Mozilla/5.0 (${SPOOFED_OSCPU}; rv:${spoofedVersion}.0) Gecko/20100101 Firefox/${spoofedVersion}.0`; - }); - -diff --git netwerk/protocol/http/nsHttpHandler.cpp netwerk/protocol/http/nsHttpHandler.cpp -index 31d0f8832732..b957d835b52f 100644 ---- netwerk/protocol/http/nsHttpHandler.cpp -+++ netwerk/protocol/http/nsHttpHandler.cpp -@@ -461,16 +461,12 @@ nsHttpHandler::Init() - mAppVersion.AssignLiteral(MOZ_APP_UA_VERSION); - } - -- // Generating the spoofed userAgent for fingerprinting resistance. -- // The browser version will be rounded down to a multiple of 10. -- // By doing so, the anonymity group will cover more versions instead of one -- // version. -- uint32_t spoofedVersion = mAppVersion.ToInteger(&rv); -- if (NS_SUCCEEDED(rv)) { -- spoofedVersion = spoofedVersion - (spoofedVersion % 10); -- mSpoofedUserAgent.Assign(nsPrintfCString( -- "Mozilla/5.0 (%s; rv:%d.0) Gecko/%s Firefox/%d.0", -- SPOOFED_OSCPU, spoofedVersion, LEGACY_BUILD_ID, spoofedVersion)); -+ // Generating the spoofed User Agent for fingerprinting resistance. -+ rv = nsRFPService::GetSpoofedUserAgent(mSpoofedUserAgent); -+ if (NS_FAILED(rv)) { -+ // Empty mSpoofedUserAgent to make sure the unsuccessful spoofed UA string -+ // will not be used anywhere. -+ mSpoofedUserAgent.Truncate(); - } - - mSessionStartTime = NowInSeconds(); -diff --git toolkit/components/resistfingerprinting/nsRFPService.cpp toolkit/components/resistfingerprinting/nsRFPService.cpp -index 94554200c3b8..96a2940c04a0 100644 ---- toolkit/components/resistfingerprinting/nsRFPService.cpp -+++ toolkit/components/resistfingerprinting/nsRFPService.cpp -@@ -18,10 +18,13 @@ - #include "nsServiceManagerUtils.h" - #include "nsString.h" - #include "nsXULAppAPI.h" -+#include "nsPrintfCString.h" - - #include "nsIObserverService.h" - #include "nsIPrefBranch.h" - #include "nsIPrefService.h" -+#include "nsIXULAppInfo.h" -+#include "nsIXULRuntime.h" - #include "nsJSUtils.h" - - #include "prenv.h" -@@ -162,6 +165,59 @@ nsRFPService::GetSpoofedPresentedFrames(double aTime, uint32_t aWidth, uint32_t - return NSToIntFloor(time * sVideoFramesPerSec * ((100 - boundedDroppedRatio) / 100.0)); - } - -+/* static */ -+nsresult -+nsRFPService::GetSpoofedUserAgent(nsACString &userAgent) -+{ -+ // This function generates the spoofed value of User Agent. -+ // We spoof the values of the platform and Firefox version, which could be -+ // used as fingerprinting sources to identify individuals. -+ // Reference of the format of User Agent: -+ // https://developer.mozilla.org/en-US/docs/Web/API/NavigatorID/userAgent -+ // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent -+ -+ nsresult rv; -+ nsCOMPtr appInfo = -+ do_GetService("@mozilla.org/xre/app-info;1", &rv); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ nsAutoCString appVersion; -+ rv = appInfo->GetVersion(appVersion); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ // The browser version will be spoofed as the last ESR version. -+ // By doing so, the anonymity group will cover more versions instead of one -+ // version. -+ uint32_t firefoxVersion = appVersion.ToInteger(&rv); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ // Starting from Firefox 10, Firefox ESR was released once every seven -+ // Firefox releases, e.g. Firefox 10, 17, 24, 31, and so on. -+ // We infer the last and closest ESR version based on this rule. -+ nsCOMPtr runtime = -+ do_GetService("@mozilla.org/xre/runtime;1", &rv); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ nsAutoCString updateChannel; -+ rv = runtime->GetDefaultUpdateChannel(updateChannel); -+ NS_ENSURE_SUCCESS(rv, rv); -+ -+ // If we are running in Firefox ESR, determine whether the formula of ESR -+ // version has changed. Once changed, we must update the formula in this -+ // function. -+ if (updateChannel.Equals("esr")) { -+ MOZ_ASSERT(((firefoxVersion % 7) == 3), -+ "Please udpate ESR version formula in nsRFPService.cpp"); -+ } -+ -+ uint32_t spoofedVersion = firefoxVersion - ((firefoxVersion - 3) % 7); -+ userAgent.Assign(nsPrintfCString( -+ "Mozilla/5.0 (%s; rv:%d.0) Gecko/%s Firefox/%d.0", -+ SPOOFED_OSCPU, spoofedVersion, LEGACY_BUILD_ID, spoofedVersion)); -+ -+ return rv; -+} -+ - nsresult - nsRFPService::Init() - { -diff --git toolkit/components/resistfingerprinting/nsRFPService.h toolkit/components/resistfingerprinting/nsRFPService.h -index cf1f688bb992..bad80383883b 100644 ---- toolkit/components/resistfingerprinting/nsRFPService.h -+++ toolkit/components/resistfingerprinting/nsRFPService.h -@@ -49,6 +49,9 @@ public: - static uint32_t GetSpoofedDroppedFrames(double aTime, uint32_t aWidth, uint32_t aHeight); - static uint32_t GetSpoofedPresentedFrames(double aTime, uint32_t aWidth, uint32_t aHeight); - -+ // This method generates the spoofed value of User Agent. -+ static nsresult GetSpoofedUserAgent(nsACString &userAgent); -+ - private: - nsresult Init(); - diff --git a/www/firefox/files/patch-bug1401573 b/www/firefox/files/patch-bug1401573 deleted file mode 100644 index 22fc6f569a59..000000000000 --- a/www/firefox/files/patch-bug1401573 +++ /dev/null @@ -1,27 +0,0 @@ -commit d0ed05261f20 -Author: jason laster -Date: Wed Sep 20 10:52:54 2017 -0400 - - Bug 1401573 - Fix PoE, Link, and linux issue. r=nchevobbe - - MozReview-Commit-ID: 35TA6bhW1Wr ---- - devtools/client/debugger/new/debugger.js | 68 +++++++++++++++++----- - devtools/client/debugger/new/panel.js | 27 ++++++++- - .../new/test/mochitest/browser_dbg-expressions.js | 2 +- - 3 files changed, 79 insertions(+), 18 deletions(-) - -diff --git devtools/client/debugger/new/debugger.js devtools/client/debugger/new/debugger.js -index f52a3e380ab6..c1213180cb13 100644 ---- devtools/client/debugger/new/debugger.js -+++ devtools/client/debugger/new/debugger.js -@@ -29493,7 +29493,8 @@ return /******/ (function(modules) { // webpackBootstr - } - - function getKeyForOS(os, action) { -- return KEYS[os][action]; -+ var osActions = KEYS[os] || KEYS.Linux; -+ return osActions[action]; - } - - function formatKey(action) { diff --git a/www/firefox/files/patch-bug1409680 b/www/firefox/files/patch-bug1409680 deleted file mode 100644 index 37c71ec234b2..000000000000 --- a/www/firefox/files/patch-bug1409680 +++ /dev/null @@ -1,27 +0,0 @@ -Bug 1409680 - Extend --disable-debug-symbols to Rust code. - -This reduces disk I/O and memory usage during build that already lacks -debugging symbols from C++ code, allowing to use more jobs on 32bit hosts. - ---disable-debug-symbols build on FreeBSD 10.3 i386 (8 cores) host: -Max RSS before: libxul - 612 Mb, libgkrust - 1908 Mb -Max RSS after: libxul - 444 Mb, libgkrust - 1471 Mb -Binary before: libxul - 203 Mb, libgkrust - 732 Mb -Binary after: libxul - 123 Mb, libgkrust - 301 Mb - ---- config/rules.mk.orig 2017-09-14 20:15:53 UTC -+++ config/rules.mk -@@ -906,11 +906,13 @@ ifdef MOZ_USING_SCCACHE - sccache_wrap := RUSTC_WRAPPER='$(CCACHE)' - endif - -+ifdef MOZ_DEBUG_SYMBOLS - # XXX hack to work around dsymutil failing on cross-OSX builds (bug 1380381) - ifeq ($(HOST_OS_ARCH)-$(OS_ARCH),Linux-Darwin) - default_rustflags += -C debuginfo=1 - else - default_rustflags += -C debuginfo=2 -+endif - endif - - # We use the + prefix to pass down the jobserver fds to cargo, but we diff --git a/www/firefox/files/patch-bug847568 b/www/firefox/files/patch-bug847568 index c2c40cc26b26..ed16b8d7caac 100644 --- a/www/firefox/files/patch-bug847568 +++ b/www/firefox/files/patch-bug847568 @@ -261,7 +261,7 @@ index 9297e4d6f501..d8e273887e4b 100644 +option('--with-system-harfbuzz', + help="Use system harfbuzz (located with pkgconfig)") + -+system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.4.7', ++system_harfbuzz = pkg_check_modules('MOZ_HARFBUZZ', 'harfbuzz >= 1.5.1', + when='--with-system-harfbuzz') + +set_config('MOZ_SYSTEM_HARFBUZZ', depends_if(system_harfbuzz)(lambda _: True)) diff --git a/www/firefox/files/patch-build-pgo-profileserver.py b/www/firefox/files/patch-build-pgo-profileserver.py index 31a3a0889c0a..aec54852f395 100644 --- a/www/firefox/files/patch-build-pgo-profileserver.py +++ b/www/firefox/files/patch-build-pgo-profileserver.py @@ -1,11 +1,11 @@ ---- build/pgo/profileserver.py.orig 2011-02-24 21:49:47.000000000 +0100 -+++ build/pgo/profileserver.py 2011-02-24 21:50:30.000000000 +0100 -@@ -59,7 +59,7 @@ if __name__ == '__main__': - env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog) - print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"] +--- build/pgo/profileserver.py.orig 2017-09-15 04:15:39 UTC ++++ build/pgo/profileserver.py +@@ -87,7 +87,7 @@ if __name__ == '__main__': + env["MOZ_JAR_LOG_FILE"] = os.path.abspath(jarlog) + print "jarlog: %s" % env["MOZ_JAR_LOG_FILE"] -- cmdargs = ["http://localhost:%d/index.html" % PORT] -+ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT] - runner = FirefoxRunner(profile=profile, - binary=build.get_binary_path(where="staged-package"), - cmdargs=cmdargs, +- cmdargs = ["http://localhost:%d/index.html" % PORT] ++ cmdargs = ["http://127.0.0.1:%d/index.html" % PORT] + runner = FirefoxRunner(profile=profile, + binary=build.get_binary_path( + where="staged-package"), diff --git a/www/firefox/files/patch-servo17934 b/www/firefox/files/patch-servo17934 deleted file mode 100644 index c6e4193a1f6c..000000000000 --- a/www/firefox/files/patch-servo17934 +++ /dev/null @@ -1,53 +0,0 @@ -commit 4cbdfa028752 -Author: Manish Goregaokar -Date: Tue Aug 1 12:57:42 2017 -0500 - - servo: Merge #17934 - Remove doc comment on statement (from Manishearth:doc-comment); r=canaltinova - - rustc warns about these now - - Source-Repo: https://github.com/servo/servo - Source-Revision: b49311c65a083a9b8eb03741bf7ea980b64f1e03 - - --HG-- - extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear - extra : subtree_revision : 6b3c7d7f4ffeb9e271c52d418cda42cac5dd378d ---- - servo/components/style/values/specified/image.rs | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git servo/components/style/values/specified/image.rs servo/components/style/values/specified/image.rs -index 37ed00ccf443..687c6f17d432 100644 ---- servo/components/style/values/specified/image.rs -+++ servo/components/style/values/specified/image.rs -@@ -686,14 +686,14 @@ impl LineDirection { - input.try(|i| { - let to_ident = i.try(|i| i.expect_ident_matching("to")); - match *compat_mode { -- /// `to` keyword is mandatory in modern syntax. -+ // `to` keyword is mandatory in modern syntax. - CompatMode::Modern => to_ident?, - // Fall back to Modern compatibility mode in case there is a `to` keyword. - // According to Gecko, `-moz-linear-gradient(to ...)` should serialize like - // `linear-gradient(to ...)`. - CompatMode::Moz if to_ident.is_ok() => *compat_mode = CompatMode::Modern, -- /// There is no `to` keyword in webkit prefixed syntax. If it's consumed, -- /// parsing should throw an error. -+ // There is no `to` keyword in webkit prefixed syntax. If it's consumed, -+ // parsing should throw an error. - CompatMode::WebKit if to_ident.is_ok() => { - return Err(SelectorParseError::UnexpectedIdent("to".into()).into()) - }, -diff --git servo/components/style/properties/gecko.mako.rs servo/components/style/properties/gecko.mako.rs -index 37ed00ccf443..687c6f17d432 100644 ---- servo/components/style/properties/gecko.mako.rs -+++ servo/components/style/properties/gecko.mako.rs -@@ -2081,7 +2081,7 @@ fn static_assert() { - return (parent_size, parent_unconstrained_size) - } - -- /// XXXManishearth this should also handle text zoom -+ // XXXManishearth this should also handle text zoom - let min = Au(parent.gecko.mScriptMinSize); - - let scale = (parent.gecko.mScriptSizeMultiplier as f32).powi(delta as i32); diff --git a/www/firefox/files/patch-servo17969 b/www/firefox/files/patch-servo17969 deleted file mode 100644 index ca16754b987f..000000000000 --- a/www/firefox/files/patch-servo17969 +++ /dev/null @@ -1,110 +0,0 @@ -commit 9f5c1f2e4b5b -Author: Manish Goregaokar -Date: Thu Aug 3 16:27:12 2017 -0500 - - servo: Merge #17969 - Update stylo code to work on nightly (from Manishearth:rustup); r=emilio - - r=emilio https://bugzilla.mozilla.org/show_bug.cgi?id=1386887 - - Source-Repo: https://github.com/servo/servo - Source-Revision: 7cee7d7fcc4194e410fa8a308a77d37ac452778a - - --HG-- - extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear - extra : subtree_revision : d9c874ebcfa1e64c86265d0ed2e5cff65d9133be ---- - servo/components/style/gecko/generated/bindings.rs | 12 +++++++++--- - servo/components/style/gecko/wrapper.rs | 7 ++++++- - servo/ports/geckolib/glue.rs | 3 ++- - 3 files changed, 17 insertions(+), 5 deletions(-) - -diff --git servo/components/style/gecko/generated/bindings.rs servo/components/style/gecko/generated/bindings.rs -index e46bdfe1e1ea..b6703ab95bf7 100644 ---- servo/components/style/gecko/generated/bindings.rs -+++ servo/components/style/gecko/generated/bindings.rs -@@ -8,6 +8,7 @@ type nsAString_internal = nsAString; - pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues; - pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>; - pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData; -+pub type RawServoAnimationValueTableBorrowed<'a> = &'a (); - use gecko_bindings::structs::mozilla::css::GridTemplateAreasValue; - use gecko_bindings::structs::mozilla::css::ErrorReporter; - use gecko_bindings::structs::mozilla::css::ImageValue; -@@ -37,7 +38,7 @@ use gecko_bindings::structs::RawServoStyleRule; - use gecko_bindings::structs::RawGeckoPresContext; - use gecko_bindings::structs::RawGeckoPresContextOwned; - use gecko_bindings::structs::RawGeckoStyleAnimationList; --use gecko_bindings::structs::RawGeckoStyleChildrenIteratorBorrowedMut; -+use gecko_bindings::structs::RawGeckoStyleChildrenIterator; - use gecko_bindings::structs::RawGeckoServoStyleRuleList; - use gecko_bindings::structs::RawGeckoURLExtraData; - use gecko_bindings::structs::RawGeckoXBLBinding; -@@ -320,6 +321,10 @@ pub type RawGeckoServoAnimationValueListBorrowed<'a> = &'a RawGeckoServoAnimatio - pub type RawGeckoServoAnimationValueListBorrowedOrNull<'a> = Option<&'a RawGeckoServoAnimationValueList>; - pub type RawGeckoServoAnimationValueListBorrowedMut<'a> = &'a mut RawGeckoServoAnimationValueList; - pub type RawGeckoServoAnimationValueListBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoServoAnimationValueList>; -+pub type RawGeckoStyleChildrenIteratorBorrowed<'a> = &'a RawGeckoStyleChildrenIterator; -+pub type RawGeckoStyleChildrenIteratorBorrowedOrNull<'a> = Option<&'a RawGeckoStyleChildrenIterator>; -+pub type RawGeckoStyleChildrenIteratorBorrowedMut<'a> = &'a mut RawGeckoStyleChildrenIterator; -+pub type RawGeckoStyleChildrenIteratorBorrowedMutOrNull<'a> = Option<&'a mut RawGeckoStyleChildrenIterator>; - pub type ServoCssRulesStrong = ::gecko_bindings::sugar::ownership::Strong; - pub type ServoCssRulesBorrowed<'a> = &'a ServoCssRules; - pub type ServoCssRulesBorrowedOrNull<'a> = Option<&'a ServoCssRules>; -@@ -840,7 +845,7 @@ extern "C" { - } - extern "C" { - pub fn Gecko_AnimationGetBaseStyle(aBaseStyles: -- *mut ::std::os::raw::c_void, -+ RawServoAnimationValueTableBorrowed, - aProperty: nsCSSPropertyID) - -> RawServoAnimationValueBorrowedOrNull; - } -@@ -2602,7 +2607,8 @@ extern "C" { - extern "C" { - pub fn Servo_AnimationCompose(animation_values: - RawServoAnimationValueMapBorrowedMut, -- base_values: *mut ::std::os::raw::c_void, -+ base_values: -+ RawServoAnimationValueTableBorrowed, - property: nsCSSPropertyID, - animation_segment: - RawGeckoAnimationPropertySegmentBorrowed, -diff --git servo/components/style/gecko/wrapper.rs servo/components/style/gecko/wrapper.rs -index dae898692313..6d62f54951cc 100644 ---- servo/components/style/gecko/wrapper.rs -+++ servo/components/style/gecko/wrapper.rs -@@ -387,7 +387,12 @@ impl<'a> Iterator for GeckoChildrenIterator<'a> { - curr - }, - GeckoChildrenIterator::GeckoIterator(ref mut it) => unsafe { -- Gecko_GetNextStyleChild(it).map(GeckoNode) -+ // We do this unsafe lengthening of the lifetime here because -+ // structs::StyleChildrenIterator is actually StyleChildrenIterator<'a>, -+ // however we can't express this easily with bindgen, and it would -+ // introduce functions with two input lifetimes into bindgen, -+ // which would be out of scope for elision. -+ Gecko_GetNextStyleChild(&mut * (it as *mut _)).map(GeckoNode) - } - } - } -diff --git servo/ports/geckolib/glue.rs servo/ports/geckolib/glue.rs -index 367d24ff87b2..e69959f3710b 100644 ---- servo/ports/geckolib/glue.rs -+++ servo/ports/geckolib/glue.rs -@@ -59,6 +59,7 @@ use style::gecko_bindings::bindings::RawGeckoServoStyleRuleListBorrowedMut; - use style::gecko_bindings::bindings::RawServoAnimationValueBorrowed; - use style::gecko_bindings::bindings::RawServoAnimationValueMapBorrowedMut; - use style::gecko_bindings::bindings::RawServoAnimationValueStrong; -+use style::gecko_bindings::bindings::RawServoAnimationValueTableBorrowed; - use style::gecko_bindings::bindings::RawServoStyleRuleBorrowed; - use style::gecko_bindings::bindings::ServoStyleContextBorrowedOrNull; - use style::gecko_bindings::bindings::nsTArrayBorrowed_uintptr_t; -@@ -374,7 +375,7 @@ pub extern "C" fn Servo_AnimationValues_ComputeDistance(from: RawServoAnimationV - - #[no_mangle] - pub extern "C" fn Servo_AnimationCompose(raw_value_map: RawServoAnimationValueMapBorrowedMut, -- base_values: *mut ::std::os::raw::c_void, -+ base_values: RawServoAnimationValueTableBorrowed, - css_property: nsCSSPropertyID, - segment: RawGeckoAnimationPropertySegmentBorrowed, - last_segment: RawGeckoAnimationPropertySegmentBorrowed, diff --git a/www/firefox/files/patch-servo18046 b/www/firefox/files/patch-servo18046 deleted file mode 100644 index 574e91f8831f..000000000000 --- a/www/firefox/files/patch-servo18046 +++ /dev/null @@ -1,763 +0,0 @@ -commit ea9c8db790e4 -Author: Simon Sapin -Date: Tue Aug 15 07:31:04 2017 -0500 - - servo: Merge #18046 - Upgrade to rustc 1.21.0-nightly (13d94d5fa 2017-08-10) (from servo:rustup); r=emilio - - Source-Repo: https://github.com/servo/servo - Source-Revision: 7d9b82b9efa7b10a2e34d93df5ac535d99518f7a - - --HG-- - extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear - extra : subtree_revision : e1b3d113c3edaea3c4c07f8b206f2e02922e3caf ---- - servo/Cargo.lock | 6 +++--- - servo/components/devtools/lib.rs | 2 +- - servo/components/layout/animation.rs | 2 +- - servo/components/layout/construct.rs | 6 +++--- - servo/components/layout/display_list_builder.rs | 2 +- - servo/components/layout/flex.rs | 6 +++--- - servo/components/layout/inline.rs | 4 ++-- - servo/components/layout/sequential.rs | 2 +- - servo/components/layout/table_cell.rs | 2 +- - servo/components/layout/text.rs | 2 +- - servo/components/net/cookie_storage.rs | 2 +- - servo/components/profile/heartbeats.rs | 4 ++-- - servo/components/script/dom/bindings/js.rs | 4 ++-- - servo/components/script/dom/cssstyledeclaration.rs | 8 ++++---- - servo/components/script/dom/cssstylerule.rs | 2 +- - servo/components/script/dom/document.rs | 12 ++++++------ - servo/components/script/dom/medialist.rs | 4 ++-- - servo/components/script/dom/range.rs | 4 ++-- - .../script/dom/servoparser/async_html.rs | 4 ++-- - servo/components/script/dom/url.rs | 4 ++-- - servo/components/script/dom/vrdisplay.rs | 2 +- - .../components/script/dom/webglrenderingcontext.rs | 2 +- - servo/components/script/dom/xmlhttprequest.rs | 2 +- - servo/components/script/lib.rs | 1 - - .../script_plugins/unrooted_must_root.rs | 22 +++++++++++++++------- - servo/components/selectors/matching.rs | 2 +- - servo/components/selectors/parser.rs | 2 +- - .../style/invalidation/element/invalidator.rs | 2 +- - servo/components/style/matching.rs | 2 +- - .../components/style/properties/properties.mako.rs | 2 +- - servo/components/style/style_adjuster.rs | 2 +- - servo/components/style/style_resolver.rs | 2 +- - servo/components/style/stylesheets/rule_list.rs | 2 +- - servo/components/style/stylesheets/rule_parser.rs | 2 +- - .../components/style/stylesheets/rules_iterator.rs | 2 +- - servo/components/style/values/animated/color.rs | 2 +- - servo/components/style/values/computed/border.rs | 2 +- - servo/components/webdriver_server/lib.rs | 2 +- - servo/rust-commit-hash | 2 +- - servo/tests/unit/style/stylist.rs | 13 ------------- - 40 files changed, 73 insertions(+), 79 deletions(-) - -diff --git servo/Cargo.lock servo/Cargo.lock -index 50dd6e1a785a..2aa7bd8ea3dd 100644 ---- servo/Cargo.lock -+++ servo/Cargo.lock -@@ -3577,7 +3577,7 @@ version = "0.1.4" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "error-chain 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "xcb 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", -+ "xcb 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", - ] - - [[package]] -@@ -3592,7 +3592,7 @@ dependencies = [ - - [[package]] - name = "xcb" --version = "0.7.6" -+version = "0.7.7" - source = "registry+https://github.com/rust-lang/crates.io-index" - dependencies = [ - "libc 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -3918,7 +3918,7 @@ dependencies = [ - "checksum x11 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db27c597c187da52194a4b8232e7d869503911aab9ff726fefb76d7a830f78ed" - "checksum x11-clipboard 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "731230b8edcbb9d99247105e4c9ec0a538594d50ad68d2afa8662195f9db2973" - "checksum x11-dl 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "326c500cdc166fd7c70dd8c8a829cd5c0ce7be5a5d98c25817de2b9bdc67faf8" --"checksum xcb 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "63e3a849b73e4e1905e4f4d48f1750429bc86ea9f473632ab382a6f69ecb6b33" -+"checksum xcb 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "7cede38417fcdf2f0a9d8abf1cea1c1b066320a8a316e9583a0d717c334fafb2" - "checksum xdg 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a66b7c2281ebde13cf4391d70d4c7e5946c3c25e72a7b859ca8f677dcd0b0c61" - "checksum xi-unicode 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "12ea8eda4b1eb72f02d148402e23832d56a33f55d8c1b2d5bcdde91d79d47cb1" - "checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562" -diff --git servo/components/devtools/lib.rs servo/components/devtools/lib.rs -index d5a2764a7102..6a25696eaed7 100644 ---- servo/components/devtools/lib.rs -+++ servo/components/devtools/lib.rs -@@ -306,7 +306,7 @@ fn run_server(sender: Sender, - columnNumber: console_message.columnNumber, - }, - }; -- for mut stream in &mut *console_actor.streams.borrow_mut() { -+ for stream in &mut *console_actor.streams.borrow_mut() { - stream.write_json_packet(&msg); - } - } -diff --git servo/components/layout/animation.rs servo/components/layout/animation.rs -index e4a2782c1271..ebbba82fcc6a 100644 ---- servo/components/layout/animation.rs -+++ servo/components/layout/animation.rs -@@ -39,7 +39,7 @@ pub fn update_animation_state(constellation_chan: &IpcSender, - // run. - if let Some(ref mut animations) = running_animations.get_mut(node) { - // TODO: This being linear is probably not optimal. -- for mut anim in animations.iter_mut() { -+ for anim in animations.iter_mut() { - if let Animation::Keyframes(_, ref anim_name, ref mut anim_state) = *anim { - if *name == *anim_name { - debug!("update_animation_state: Found other animation {}", name); -diff --git servo/components/layout/construct.rs servo/components/layout/construct.rs -index c863219941e4..7ef391b42183 100644 ---- servo/components/layout/construct.rs -+++ servo/components/layout/construct.rs -@@ -1921,7 +1921,7 @@ impl Legalizer { - /// true for anonymous block children of flex flows. - fn try_to_add_child(&mut self, context: &SharedStyleContext, parent: &mut FlowRef, child: &mut FlowRef) - -> bool { -- let mut parent = self.stack.last_mut().unwrap_or(parent); -+ let parent = self.stack.last_mut().unwrap_or(parent); - let (parent_class, child_class) = (parent.class(), child.class()); - match (parent_class, child_class) { - (FlowClass::TableWrapper, FlowClass::Table) | -@@ -1962,7 +1962,7 @@ impl Legalizer { - } else { - IS_BLOCK_FLEX_ITEM - }; -- let mut block = FlowRef::deref_mut(&mut block_wrapper).as_mut_block(); -+ let block = FlowRef::deref_mut(&mut block_wrapper).as_mut_block(); - block.base.flags.insert(MARGINS_CANNOT_COLLAPSE); - block.fragment.flags.insert(flag); - } -@@ -1979,7 +1979,7 @@ impl Legalizer { - } else { - IS_BLOCK_FLEX_ITEM - }; -- let mut block = FlowRef::deref_mut(child).as_mut_block(); -+ let block = FlowRef::deref_mut(child).as_mut_block(); - block.base.flags.insert(MARGINS_CANNOT_COLLAPSE); - block.fragment.flags.insert(flag); - } -diff --git servo/components/layout/display_list_builder.rs servo/components/layout/display_list_builder.rs -index f8b26899b57d..783574afd2a3 100644 ---- servo/components/layout/display_list_builder.rs -+++ servo/components/layout/display_list_builder.rs -@@ -2718,7 +2718,7 @@ impl InlineFlowDisplayListBuilding for InlineFlow { - self.base.scroll_root_id = Some(state.current_scroll_root_id); - self.base.clip = state.clip_stack.last().cloned().unwrap_or_else(max_rect); - -- for mut fragment in self.fragments.fragments.iter_mut() { -+ for fragment in self.fragments.fragments.iter_mut() { - let previous_containing_block_scroll_root_id = state.containing_block_scroll_root_id; - if establishes_containing_block_for_absolute(fragment.style.get_box().position) { - state.containing_block_scroll_root_id = state.current_scroll_root_id; -diff --git servo/components/layout/flex.rs servo/components/layout/flex.rs -index 353c939f58b9..d79580f8cd0d 100644 ---- servo/components/layout/flex.rs -+++ servo/components/layout/flex.rs -@@ -415,7 +415,7 @@ impl FlexFlow { - - let items = &mut self.items[start..]; - let mut children = self.block_flow.base.children.random_access_mut(); -- for mut item in items { -+ for item in items { - let kid = children.get(item.index); - item.init_sizes(kid, container_size, self.main_mode); - let outer_main_size = item.outer_main_size(kid, self.main_mode); -@@ -607,7 +607,7 @@ impl FlexFlow { - - let mut children = self.block_flow.base.children.random_access_mut(); - for item in items.iter_mut() { -- let mut block = children.get(item.index).as_mut_block(); -+ let block = children.get(item.index).as_mut_block(); - - block.base.block_container_writing_mode = container_mode; - block.base.block_container_inline_size = inline_size; -@@ -659,7 +659,7 @@ impl FlexFlow { - - let mut children = self.block_flow.base.children.random_access_mut(); - for item in &mut self.items { -- let mut base = flow::mut_base(children.get(item.index)); -+ let base = flow::mut_base(children.get(item.index)); - if !self.main_reverse { - base.position.start.b = cur_b; - cur_b = cur_b + base.position.size.block; -diff --git servo/components/layout/inline.rs servo/components/layout/inline.rs -index d5813d9bea22..10e091c3c66d 100644 ---- servo/components/layout/inline.rs -+++ servo/components/layout/inline.rs -@@ -435,7 +435,7 @@ impl LineBreaker { - return - } - let last_fragment_index = self.pending_line.range.end() - FragmentIndex(1); -- let mut fragment = &mut self.new_fragments[last_fragment_index.get() as usize]; -+ let fragment = &mut self.new_fragments[last_fragment_index.get() as usize]; - - let old_fragment_inline_size = fragment.border_box.size.inline; - -@@ -1047,7 +1047,7 @@ impl InlineFlow { - let space_per_expansion_opportunity = slack_inline_size / expansion_opportunities as i32; - for fragment_index in line.range.each_index() { - let fragment = fragments.get_mut(fragment_index.to_usize()); -- let mut scanned_text_fragment_info = match fragment.specific { -+ let scanned_text_fragment_info = match fragment.specific { - SpecificFragmentInfo::ScannedText(ref mut info) if !info.range.is_empty() => info, - _ => continue - }; -diff --git servo/components/layout/sequential.rs servo/components/layout/sequential.rs -index f6f8ce429e4f..4986ebb6c852 100644 ---- servo/components/layout/sequential.rs -+++ servo/components/layout/sequential.rs -@@ -133,7 +133,7 @@ pub fn store_overflow(layout_context: &LayoutContext, flow: &mut Flow) { - return; - } - -- for mut kid in flow::mut_base(flow).child_iter_mut() { -+ for kid in flow::mut_base(flow).child_iter_mut() { - store_overflow(layout_context, kid); - } - -diff --git servo/components/layout/table_cell.rs servo/components/layout/table_cell.rs -index 7ef02e28db65..fd807989b463 100644 ---- servo/components/layout/table_cell.rs -+++ servo/components/layout/table_cell.rs -@@ -136,7 +136,7 @@ impl TableCellFlow { - } - - for kid in flow::mut_base(self).children.iter_mut() { -- let mut kid_base = flow::mut_base(kid); -+ let kid_base = flow::mut_base(kid); - if !kid_base.flags.contains(IS_ABSOLUTELY_POSITIONED) { - kid_base.position.start.b += offset - } -diff --git servo/components/layout/text.rs servo/components/layout/text.rs -index 6e1c7b2a43a1..9a207a2bb84e 100644 ---- servo/components/layout/text.rs -+++ servo/components/layout/text.rs -@@ -460,7 +460,7 @@ fn split_first_fragment_at_newline_if_necessary(fragments: &mut LinkedList { - roots.remove(idx); -diff --git servo/components/script/dom/cssstyledeclaration.rs servo/components/script/dom/cssstyledeclaration.rs -index 0732c9af9e45..ddf085b34913 100644 ---- servo/components/script/dom/cssstyledeclaration.rs -+++ servo/components/script/dom/cssstyledeclaration.rs -@@ -238,7 +238,7 @@ impl CSSStyleDeclaration { - return Err(Error::NoModificationAllowed); - } - -- self.owner.mutate_associated_block(|ref mut pdb, mut changed| { -+ self.owner.mutate_associated_block(|pdb, changed| { - if value.is_empty() { - // Step 3 - *changed = pdb.remove_property(&id); -@@ -360,7 +360,7 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration { - _ => return Ok(()), - }; - -- self.owner.mutate_associated_block(|ref mut pdb, mut changed| { -+ self.owner.mutate_associated_block(|pdb, changed| { - // Step 5 & 6 - *changed = pdb.set_importance(&id, importance); - }); -@@ -388,7 +388,7 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration { - }; - - let mut string = String::new(); -- self.owner.mutate_associated_block(|mut pdb, mut changed| { -+ self.owner.mutate_associated_block(|pdb, changed| { - pdb.property_value_to_css(&id, &mut string).unwrap(); - *changed = pdb.remove_property(&id); - }); -@@ -438,7 +438,7 @@ impl CSSStyleDeclarationMethods for CSSStyleDeclaration { - } - - let quirks_mode = window.Document().quirks_mode(); -- self.owner.mutate_associated_block(|mut pdb, mut _changed| { -+ self.owner.mutate_associated_block(|pdb, _changed| { - // Step 3 - *pdb = parse_style_attribute(&value, - &self.owner.base_url(), -diff --git servo/components/script/dom/cssstylerule.rs servo/components/script/dom/cssstylerule.rs -index ea121ef900a9..12e9cdcc8694 100644 ---- servo/components/script/dom/cssstylerule.rs -+++ servo/components/script/dom/cssstylerule.rs -@@ -99,7 +99,7 @@ impl CSSStyleRuleMethods for CSSStyleRule { - if let Ok(mut s) = SelectorList::parse(&parser, &mut css_parser) { - // This mirrors what we do in CSSStyleOwner::mutate_associated_block. - let mut guard = self.cssrule.shared_lock().write(); -- let mut stylerule = self.stylerule.write_with(&mut guard); -+ let stylerule = self.stylerule.write_with(&mut guard); - mem::swap(&mut stylerule.selectors, &mut s); - // It seems like we will want to avoid having to invalidate all - // stylesheets eventually! -diff --git servo/components/script/dom/document.rs servo/components/script/dom/document.rs -index 90ea06fbe7b4..71bb02eaa364 100644 ---- servo/components/script/dom/document.rs -+++ servo/components/script/dom/document.rs -@@ -633,7 +633,7 @@ impl Document { - // reset_form_owner_for_listeners -> reset_form_owner -> GetElementById - { - let mut id_map = self.id_map.borrow_mut(); -- let mut elements = id_map.entry(id.clone()).or_insert(Vec::new()); -+ let elements = id_map.entry(id.clone()).or_insert(Vec::new()); - elements.insert_pre_order(element, root.r().upcast::()); - } - self.reset_form_owner_for_listeners(&id); -@@ -642,7 +642,7 @@ impl Document { - pub fn register_form_id_listener(&self, id: DOMString, listener: &T) { - let mut map = self.form_id_listener_map.borrow_mut(); - let listener = listener.to_element(); -- let mut set = map.entry(Atom::from(id)).or_insert(HashSet::new()); -+ let set = map.entry(Atom::from(id)).or_insert(HashSet::new()); - set.insert(JS::from_ref(listener)); - } - -@@ -1572,7 +1572,7 @@ impl Document { - /// https://html.spec.whatwg.org/multipage/#dom-window-cancelanimationframe - pub fn cancel_animation_frame(&self, ident: u32) { - let mut list = self.animation_frame_list.borrow_mut(); -- if let Some(mut pair) = list.iter_mut().find(|pair| pair.0 == ident) { -+ if let Some(pair) = list.iter_mut().find(|pair| pair.0 == ident) { - pair.1 = None; - } - } -@@ -2399,7 +2399,7 @@ impl Document { - if entry.snapshot.is_none() { - entry.snapshot = Some(Snapshot::new(el.html_element_in_html_document())); - } -- let mut snapshot = entry.snapshot.as_mut().unwrap(); -+ let snapshot = entry.snapshot.as_mut().unwrap(); - if snapshot.state.is_none() { - snapshot.state = Some(el.state()); - } -@@ -2426,7 +2426,7 @@ impl Document { - entry.hint.insert(RESTYLE_SELF); - } - -- let mut snapshot = entry.snapshot.as_mut().unwrap(); -+ let snapshot = entry.snapshot.as_mut().unwrap(); - if attr.local_name() == &local_name!("id") { - snapshot.id_changed = true; - } else if attr.local_name() == &local_name!("class") { -@@ -4028,7 +4028,7 @@ impl PendingInOrderScriptVec { - - fn loaded(&self, element: &HTMLScriptElement, result: ScriptResult) { - let mut scripts = self.scripts.borrow_mut(); -- let mut entry = scripts.iter_mut().find(|entry| &*entry.element == element).unwrap(); -+ let entry = scripts.iter_mut().find(|entry| &*entry.element == element).unwrap(); - entry.loaded(result); - } - -diff --git servo/components/script/dom/medialist.rs servo/components/script/dom/medialist.rs -index 0064d0445095..ae20f5aa0422 100644 ---- servo/components/script/dom/medialist.rs -+++ servo/components/script/dom/medialist.rs -@@ -63,7 +63,7 @@ impl MediaListMethods for MediaList { - // https://drafts.csswg.org/cssom/#dom-medialist-mediatext - fn SetMediaText(&self, value: DOMString) { - let mut guard = self.shared_lock().write(); -- let mut media_queries = self.media_queries.write_with(&mut guard); -+ let media_queries = self.media_queries.write_with(&mut guard); - // Step 2 - if value.is_empty() { - // Step 1 -@@ -154,7 +154,7 @@ impl MediaListMethods for MediaList { - // Step 3 - let m_serialized = m.unwrap().to_css_string(); - let mut guard = self.shared_lock().write(); -- let mut media_list = self.media_queries.write_with(&mut guard); -+ let media_list = self.media_queries.write_with(&mut guard); - let new_vec = media_list.media_queries.drain(..) - .filter(|q| m_serialized != q.to_css_string()) - .collect(); -diff --git servo/components/script/dom/range.rs servo/components/script/dom/range.rs -index fa849a0fc1a2..1e65caedc9dd 100644 ---- servo/components/script/dom/range.rs -+++ servo/components/script/dom/range.rs -@@ -1049,7 +1049,7 @@ impl WeakRangeVec { - let offset = context.index(); - let parent = context.parent; - unsafe { -- let mut ranges = &mut *self.cell.get(); -+ let ranges = &mut *self.cell.get(); - - ranges.update(|entry| { - let range = entry.root().unwrap(); -@@ -1076,7 +1076,7 @@ impl WeakRangeVec { - } - - unsafe { -- let mut ranges = &mut *self.cell.get(); -+ let ranges = &mut *self.cell.get(); - - ranges.update(|entry| { - let range = entry.root().unwrap(); -diff --git servo/components/script/dom/servoparser/async_html.rs servo/components/script/dom/servoparser/async_html.rs -index 59411fda1c73..70d2008f49f6 100644 ---- servo/components/script/dom/servoparser/async_html.rs -+++ servo/components/script/dom/servoparser/async_html.rs -@@ -568,7 +568,7 @@ impl TreeSink for Sink { - } - let node = self.new_parse_node(); - { -- let mut data = self.get_parse_node_data_mut(&target.id); -+ let data = self.get_parse_node_data_mut(&target.id); - data.contents = Some(node.clone()); - } - self.send_op(ParseOperation::GetTemplateContents { target: target.id, contents: node.id }); -@@ -596,7 +596,7 @@ impl TreeSink for Sink { - let mut node = self.new_parse_node(); - node.qual_name = Some(name.clone()); - { -- let mut node_data = self.get_parse_node_data_mut(&node.id); -+ let node_data = self.get_parse_node_data_mut(&node.id); - node_data.is_integration_point = html_attrs.iter() - .any(|attr| { - let attr_value = &String::from(attr.value.clone()); -diff --git servo/components/script/dom/url.rs servo/components/script/dom/url.rs -index a02a735638fc..41de4dcc0c72 100644 ---- servo/components/script/dom/url.rs -+++ servo/components/script/dom/url.rs -@@ -96,8 +96,8 @@ impl URL { - - // https://w3c.github.io/FileAPI/#dfn-createObjectURL - pub fn CreateObjectURL(global: &GlobalScope, blob: &Blob) -> DOMString { -- /// XXX: Second field is an unicode-serialized Origin, it is a temporary workaround -- /// and should not be trusted. See issue https://github.com/servo/servo/issues/11722 -+ // XXX: Second field is an unicode-serialized Origin, it is a temporary workaround -+ // and should not be trusted. See issue https://github.com/servo/servo/issues/11722 - let origin = get_blob_origin(&global.get_url()); - - let id = blob.get_blob_url_id(); -diff --git servo/components/script/dom/vrdisplay.rs servo/components/script/dom/vrdisplay.rs -index 3f73a577fad7..54f06fb928f2 100644 ---- servo/components/script/dom/vrdisplay.rs -+++ servo/components/script/dom/vrdisplay.rs -@@ -268,7 +268,7 @@ impl VRDisplayMethods for VRDisplay { - fn CancelAnimationFrame(&self, handle: u32) { - if self.presenting.get() { - let mut list = self.raf_callback_list.borrow_mut(); -- if let Some(mut pair) = list.iter_mut().find(|pair| pair.0 == handle) { -+ if let Some(pair) = list.iter_mut().find(|pair| pair.0 == handle) { - pair.1 = None; - } - } else { -diff --git servo/components/script/dom/webglrenderingcontext.rs servo/components/script/dom/webglrenderingcontext.rs -index 73d4ddba1b90..62c92b42785c 100644 ---- servo/components/script/dom/webglrenderingcontext.rs -+++ servo/components/script/dom/webglrenderingcontext.rs -@@ -2434,7 +2434,7 @@ impl WebGLRenderingContextMethods for WebGLRenderingContext { - } - - typedarray!(in(cx) let mut pixels_data: ArrayBufferView = pixels); -- let (array_type, mut data) = match { pixels_data.as_mut() } { -+ let (array_type, data) = match { pixels_data.as_mut() } { - Ok(data) => (data.get_array_type(), data.as_mut_slice()), - Err(_) => return Err(Error::Type("Not an ArrayBufferView".to_owned())), - }; -diff --git servo/components/script/dom/xmlhttprequest.rs servo/components/script/dom/xmlhttprequest.rs -index 6ed2dda1851f..e6652d79d706 100644 ---- servo/components/script/dom/xmlhttprequest.rs -+++ servo/components/script/dom/xmlhttprequest.rs -@@ -627,7 +627,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { - - if !content_type_set { - let ct = request.headers.get_mut::(); -- if let Some(mut ct) = ct { -+ if let Some(ct) = ct { - if let Some(encoding) = encoding { - for param in &mut (ct.0).2 { - if param.0 == MimeAttr::Charset { -diff --git servo/components/script/lib.rs servo/components/script/lib.rs -index e1a1ab592cb7..5824d6f2e490 100644 ---- servo/components/script/lib.rs -+++ servo/components/script/lib.rs -@@ -9,7 +9,6 @@ - #![feature(mpsc_select)] - #![feature(nonzero)] - #![feature(on_unimplemented)] --#![feature(option_entry)] - #![feature(plugin)] - #![feature(proc_macro)] - #![feature(stmt_expr_attributes)] -diff --git servo/components/script_plugins/unrooted_must_root.rs servo/components/script_plugins/unrooted_must_root.rs -index 5dbd2b1a3bdd..f3f5e60ab62a 100644 ---- servo/components/script_plugins/unrooted_must_root.rs -+++ servo/components/script_plugins/unrooted_must_root.rs -@@ -182,7 +182,7 @@ impl<'a, 'b, 'tcx> visit::Visitor<'tcx> for FnDefVisitor<'a, 'b, 'tcx> { - } - - match expr.node { -- /// Trait casts from #[must_root] types are not allowed -+ // Trait casts from #[must_root] types are not allowed - hir::ExprCast(ref subexpr, _) => require_rooted(cx, self.in_new_function, &*subexpr), - // This catches assignments... the main point of this would be to catch mutable - // references to `JS`. -@@ -206,13 +206,21 @@ impl<'a, 'b, 'tcx> visit::Visitor<'tcx> for FnDefVisitor<'a, 'b, 'tcx> { - fn visit_pat(&mut self, pat: &'tcx hir::Pat) { - let cx = self.cx; - -- if let hir::PatKind::Binding(hir::BindingMode::BindByValue(_), _, _, _) = pat.node { -- let ty = cx.tables.pat_ty(pat); -- if is_unrooted_ty(cx, ty, self.in_new_function) { -- cx.span_lint(UNROOTED_MUST_ROOT, -- pat.span, -- &format!("Expression of type {:?} must be rooted", ty)) -+ // We want to detect pattern bindings that move a value onto the stack. -+ // When "default binding modes" https://github.com/rust-lang/rust/issues/42640 -+ // are implemented, the `Unannotated` case could cause false-positives. -+ // These should be fixable by adding an explicit `ref`. -+ match pat.node { -+ hir::PatKind::Binding(hir::BindingAnnotation::Unannotated, _, _, _) | -+ hir::PatKind::Binding(hir::BindingAnnotation::Mutable, _, _, _) => { -+ let ty = cx.tables.pat_ty(pat); -+ if is_unrooted_ty(cx, ty, self.in_new_function) { -+ cx.span_lint(UNROOTED_MUST_ROOT, -+ pat.span, -+ &format!("Expression of type {:?} must be rooted", ty)) -+ } - } -+ _ => {} - } - - visit::walk_pat(self, pat); -diff --git servo/components/selectors/matching.rs servo/components/selectors/matching.rs -index 7bd9814d26fb..8f6b2fa6aa54 100644 ---- servo/components/selectors/matching.rs -+++ servo/components/selectors/matching.rs -@@ -458,7 +458,7 @@ where - /// Matches a complex selector. - pub fn matches_complex_selector(mut iter: SelectorIter, - element: &E, -- mut context: &mut LocalMatchingContext, -+ context: &mut LocalMatchingContext, - flags_setter: &mut F) - -> bool - where E: Element, -diff --git servo/components/selectors/parser.rs servo/components/selectors/parser.rs -index 490399ce38ce..6b2c1f2b4e86 100644 ---- servo/components/selectors/parser.rs -+++ servo/components/selectors/parser.rs -@@ -1464,7 +1464,7 @@ fn parse_negation<'i, 't, P, E, Impl>(parser: &P, - fn parse_compound_selector<'i, 't, P, E, Impl>( - parser: &P, - input: &mut CssParser<'i, 't>, -- mut builder: &mut SelectorBuilder) -+ builder: &mut SelectorBuilder) - -> Result>> - where P: Parser<'i, Impl=Impl, Error=E>, Impl: SelectorImpl - { -diff --git servo/components/style/invalidation/element/invalidator.rs servo/components/style/invalidation/element/invalidator.rs -index 848c5cd13dc8..b8510ba3169b 100644 ---- servo/components/style/invalidation/element/invalidator.rs -+++ servo/components/style/invalidation/element/invalidator.rs -@@ -154,7 +154,7 @@ impl<'a, 'b: 'a, E> TreeStyleInvalidator<'a, 'b, E> - trace!(" > visitedness change, force subtree restyle"); - // We can't just return here because there may also be attribute - // changes as well that imply additional hints. -- let mut data = self.data.as_mut().unwrap(); -+ let data = self.data.as_mut().unwrap(); - data.restyle.hint.insert(RestyleHint::restyle_subtree()); - } - -diff --git servo/components/style/matching.rs servo/components/style/matching.rs -index b62bc54bf768..f58d7cd123e6 100644 ---- servo/components/style/matching.rs -+++ servo/components/style/matching.rs -@@ -440,7 +440,7 @@ pub trait MatchMethods : TElement { - fn finish_restyle( - &self, - context: &mut StyleContext, -- mut data: &mut ElementData, -+ data: &mut ElementData, - mut new_styles: ElementStyles, - important_rules_changed: bool, - ) -> ChildCascadeRequirement { -diff --git servo/components/style/properties/properties.mako.rs servo/components/style/properties/properties.mako.rs -index d98e173db5ba..81ff00fb6d5e 100644 ---- servo/components/style/properties/properties.mako.rs -+++ servo/components/style/properties/properties.mako.rs -@@ -3364,7 +3364,7 @@ pub fn modify_border_style_for_inline_sides(style: &mut Arc, - return; - } - } -- let mut style = Arc::make_mut(style); -+ let style = Arc::make_mut(style); - let border = Arc::make_mut(&mut style.border); - match side { - PhysicalSide::Left => { -diff --git servo/components/style/style_adjuster.rs servo/components/style/style_adjuster.rs -index 366641ebe0bc..6e51fa74072a 100644 ---- servo/components/style/style_adjuster.rs -+++ servo/components/style/style_adjuster.rs -@@ -269,7 +269,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> { - - if overflow_x != original_overflow_x || - overflow_y != original_overflow_y { -- let mut box_style = self.style.mutate_box(); -+ let box_style = self.style.mutate_box(); - box_style.set_overflow_x(overflow_x); - box_style.set_overflow_y(overflow_y); - } -diff --git servo/components/style/style_resolver.rs servo/components/style/style_resolver.rs -index cf512c4fbdd2..3fc1d57cc8f7 100644 ---- servo/components/style/style_resolver.rs -+++ servo/components/style/style_resolver.rs -@@ -247,7 +247,7 @@ where - Some(&*primary_style.style) - }; - -- for (i, mut inputs) in pseudo_array.iter_mut().enumerate() { -+ for (i, inputs) in pseudo_array.iter_mut().enumerate() { - if let Some(inputs) = inputs.take() { - let pseudo = PseudoElement::from_eager_index(i); - pseudo_styles.set( -diff --git servo/components/style/stylesheets/rule_list.rs servo/components/style/stylesheets/rule_list.rs -index 82e78015400d..14b3dc5e7696 100644 ---- servo/components/style/stylesheets/rule_list.rs -+++ servo/components/style/stylesheets/rule_list.rs -@@ -150,7 +150,7 @@ impl CssRulesHelpers for RawOffsetArc> { - - { - let mut write_guard = lock.write(); -- let mut rules = self.write_with(&mut write_guard); -+ let rules = self.write_with(&mut write_guard); - // Step 5 - // Computes the maximum allowed parser state at a given index. - let rev_state = rules.0.get(index).map_or(State::Body, CssRule::rule_state); -diff --git servo/components/style/stylesheets/rule_parser.rs servo/components/style/stylesheets/rule_parser.rs -index 007d7e11026e..f0d224e498a7 100644 ---- servo/components/style/stylesheets/rule_parser.rs -+++ servo/components/style/stylesheets/rule_parser.rs -@@ -209,7 +209,7 @@ impl<'a, 'i> AtRuleParser<'i> for TopLevelRuleParser<'a> { - let id = register_namespace(&url) - .map_err(|()| StyleParseError::UnspecifiedError)?; - -- let mut namespaces = self.namespaces.as_mut().unwrap(); -+ let namespaces = self.namespaces.as_mut().unwrap(); - - let opt_prefix = if let Ok(prefix) = prefix_result { - let prefix = Prefix::from(prefix.as_ref()); -diff --git servo/components/style/stylesheets/rules_iterator.rs servo/components/style/stylesheets/rules_iterator.rs -index 95a3ab8b3885..65e1b637ae52 100644 ---- servo/components/style/stylesheets/rules_iterator.rs -+++ servo/components/style/stylesheets/rules_iterator.rs -@@ -70,7 +70,7 @@ impl<'a, 'b, C> Iterator for RulesIterator<'a, 'b, C> - - let rule; - let sub_iter = { -- let mut nested_iter = self.stack.last_mut().unwrap(); -+ let nested_iter = self.stack.last_mut().unwrap(); - rule = match nested_iter.next() { - Some(r) => r, - None => { -diff --git servo/components/webdriver_server/lib.rs servo/components/webdriver_server/lib.rs -index bd2f667f9892..28a4885f0d41 100644 ---- servo/components/webdriver_server/lib.rs -+++ servo/components/webdriver_server/lib.rs -@@ -702,7 +702,7 @@ impl Handler { - fn handle_set_timeouts(&mut self, - parameters: &TimeoutsParameters) - -> WebDriverResult { -- let mut session = self.session -+ let session = self.session - .as_mut() - .ok_or(WebDriverError::new(ErrorStatus::SessionNotCreated, ""))?; - -diff --git servo/rust-commit-hash servo/rust-commit-hash -index d4f08fe97644..a08d23cd1a71 100644 ---- servo/rust-commit-hash -+++ servo/rust-commit-hash -@@ -1 +1 @@ --599be0d18f4c6ddf36366d2a5a2ca6dc65886896 -+13d94d5fa8129a34f5c77a1bcd76983f5aed2434 -diff --git servo/tests/unit/style/stylist.rs servo/tests/unit/style/stylist.rs -index da9a9478957a..52067b501788 100644 ---- servo/tests/unit/style/stylist.rs -+++ servo/tests/unit/style/stylist.rs -@@ -51,19 +51,6 @@ fn get_mock_rules(css_selectors: &[&str]) -> (Vec>, SharedRwLock) { - }).collect(), shared_lock) - } - --fn get_mock_map(selectors: &[&str]) -> (SelectorMap, SharedRwLock) { -- let mut map = SelectorMap::::new(); -- let (selector_rules, shared_lock) = get_mock_rules(selectors); -- -- for rules in selector_rules.into_iter() { -- for rule in rules.into_iter() { -- map.insert(rule, QuirksMode::NoQuirks) -- } -- } -- -- (map, shared_lock) --} -- - fn parse_selectors(selectors: &[&str]) -> Vec> { - selectors.iter() - .map(|x| SelectorParser::parse_author_origin_no_namespace(x).unwrap().0 diff --git a/www/firefox/files/patch-servo18126 b/www/firefox/files/patch-servo18126 deleted file mode 100644 index ec5e77ad94e0..000000000000 --- a/www/firefox/files/patch-servo18126 +++ /dev/null @@ -1,232 +0,0 @@ -commit f0acf27d189d -Author: Simon Sapin -Date: Thu Aug 17 11:05:32 2017 -0500 - - servo: Merge #18126 - geckolib: Fix some warnings (treated as error) new in Rust Nigthly (from servo:glow-fox); r=emilio - - Source-Repo: https://github.com/servo/servo - Source-Revision: cc86ca2bcdec5e89ee5279085ea38db63ef41af9 - - --HG-- - extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear - extra : subtree_revision : 0586dbc81f1411c89821605a6dae4ebd0af8f0d5 ---- - servo/components/style/gecko/conversions.rs | 2 +- - servo/components/style/gecko/wrapper.rs | 2 +- - .../style/gecko_bindings/sugar/ns_t_array.rs | 4 ++-- - servo/components/style/properties/gecko.mako.rs | 18 +++++++++--------- - servo/components/style/style_adjuster.rs | 4 ++-- - servo/ports/geckolib/glue.rs | 12 ++++++------ - 6 files changed, 21 insertions(+), 21 deletions(-) - -diff --git servo/components/style/gecko/conversions.rs servo/components/style/gecko/conversions.rs -index 8f3fb6bf2d0f..51015997c5c1 100644 ---- servo/components/style/gecko/conversions.rs -+++ servo/components/style/gecko/conversions.rs -@@ -348,7 +348,7 @@ impl nsStyleImage { - // NB: stops are guaranteed to be none in the gecko side by - // default. - -- let mut gecko_stop = unsafe { -+ let gecko_stop = unsafe { - &mut (*gecko_gradient).mStops[index] - }; - let mut coord = nsStyleCoord::null(); -diff --git servo/components/style/gecko/wrapper.rs servo/components/style/gecko/wrapper.rs -index 034dd94590e2..c402ddaf15bd 100644 ---- servo/components/style/gecko/wrapper.rs -+++ servo/components/style/gecko/wrapper.rs -@@ -424,7 +424,7 @@ impl<'lb> GeckoXBLBinding<'lb> { - } - } - -- fn each_xbl_stylist(self, mut f: &mut F) -+ fn each_xbl_stylist(self, f: &mut F) - where - F: FnMut(&Stylist), - { -diff --git servo/components/style/gecko_bindings/sugar/ns_t_array.rs servo/components/style/gecko_bindings/sugar/ns_t_array.rs -index 6bc389702f54..068e10ddea1b 100644 ---- servo/components/style/gecko_bindings/sugar/ns_t_array.rs -+++ servo/components/style/gecko_bindings/sugar/ns_t_array.rs -@@ -90,7 +90,7 @@ impl nsTArray { - // this can leak - debug_assert!(len >= self.len() as u32); - self.ensure_capacity(len as usize); -- let mut header = self.header_mut(); -+ let header = self.header_mut(); - header.mLength = len; - } - -@@ -99,7 +99,7 @@ impl nsTArray { - /// This will not leak since it only works on POD types (and thus doesn't assert) - pub unsafe fn set_len_pod(&mut self, len: u32) where T: Copy { - self.ensure_capacity(len as usize); -- let mut header = unsafe { self.header_mut() }; -+ let header = unsafe { self.header_mut() }; - header.mLength = len; - } - } -diff --git servo/components/style/properties/gecko.mako.rs servo/components/style/properties/gecko.mako.rs -index 9a2ab2135fc5..bc41ef139af5 100644 ---- servo/components/style/properties/gecko.mako.rs -+++ servo/components/style/properties/gecko.mako.rs -@@ -4136,14 +4136,14 @@ fn static_assert() { - fn init_shadow(filter: &mut nsStyleFilter) -> &mut nsCSSShadowArray { - unsafe { - let ref mut union = filter.__bindgen_anon_1; -- let mut shadow_array: &mut *mut nsCSSShadowArray = union.mDropShadow.as_mut(); -+ let shadow_array: &mut *mut nsCSSShadowArray = union.mDropShadow.as_mut(); - *shadow_array = Gecko_NewCSSShadowArray(1); - - &mut **shadow_array - } - } - -- let mut gecko_shadow = init_shadow(gecko_filter); -+ let gecko_shadow = init_shadow(gecko_filter); - gecko_shadow.mArray[0].set_from_simple_shadow(shadow); - }, - Url(ref url) => { -@@ -4665,14 +4665,14 @@ fn static_assert() { - unsafe { - // We have to be very careful to avoid a copy here! - let ref mut union = ${ident}.__bindgen_anon_1; -- let mut shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut(); -+ let shape: &mut *mut StyleBasicShape = union.mBasicShape.as_mut(); - *shape = Gecko_NewBasicShape(ty); - &mut **shape - } - } - match servo_shape { - BasicShape::Inset(inset) => { -- let mut shape = init_shape(${ident}, StyleBasicShapeType::Inset); -+ let shape = init_shape(${ident}, StyleBasicShapeType::Inset); - unsafe { shape.mCoordinates.set_len(4) }; - - // set_len() can't call constructors, so the coordinates -@@ -4694,7 +4694,7 @@ fn static_assert() { - set_corners_from_radius(inset.round, &mut shape.mRadius); - } - BasicShape::Circle(circ) => { -- let mut shape = init_shape(${ident}, StyleBasicShapeType::Circle); -+ let shape = init_shape(${ident}, StyleBasicShapeType::Circle); - unsafe { shape.mCoordinates.set_len(1) }; - shape.mCoordinates[0].leaky_set_null(); - circ.radius.to_gecko_style_coord(&mut shape.mCoordinates[0]); -@@ -4702,7 +4702,7 @@ fn static_assert() { - shape.mPosition = circ.position.into(); - } - BasicShape::Ellipse(el) => { -- let mut shape = init_shape(${ident}, StyleBasicShapeType::Ellipse); -+ let shape = init_shape(${ident}, StyleBasicShapeType::Ellipse); - unsafe { shape.mCoordinates.set_len(2) }; - shape.mCoordinates[0].leaky_set_null(); - el.semiaxis_x.to_gecko_style_coord(&mut shape.mCoordinates[0]); -@@ -4712,7 +4712,7 @@ fn static_assert() { - shape.mPosition = el.position.into(); - } - BasicShape::Polygon(poly) => { -- let mut shape = init_shape(${ident}, StyleBasicShapeType::Polygon); -+ let shape = init_shape(${ident}, StyleBasicShapeType::Polygon); - unsafe { - shape.mCoordinates.set_len(poly.coordinates.len() as u32 * 2); - } -@@ -4797,7 +4797,7 @@ clip-path - bindings::Gecko_nsStyleSVG_SetDashArrayLength(&mut self.gecko, v.len() as u32); - } - -- for (mut gecko, servo) in self.gecko.mStrokeDasharray.iter_mut().zip(v) { -+ for (gecko, servo) in self.gecko.mStrokeDasharray.iter_mut().zip(v) { - match servo { - Either::First(number) => gecko.set_value(CoordDataValue::Factor(number)), - Either::Second(lop) => gecko.set(lop), -@@ -4885,7 +4885,7 @@ clip-path - } - - self.gecko.mContextPropsBits = 0; -- for (mut gecko, servo) in self.gecko.mContextProps.iter_mut().zip(v) { -+ for (gecko, servo) in self.gecko.mContextProps.iter_mut().zip(v) { - if servo.0 == atom!("fill") { - self.gecko.mContextPropsBits |= structs::NS_STYLE_CONTEXT_PROPERTY_FILL as u8; - } else if servo.0 == atom!("stroke") { -diff --git servo/components/style/style_adjuster.rs servo/components/style/style_adjuster.rs -index 03b15916b237..366641ebe0bc 100644 ---- servo/components/style/style_adjuster.rs -+++ servo/components/style/style_adjuster.rs -@@ -167,7 +167,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> { - // When 'contain: paint', update overflow from 'visible' to 'clip'. - if self.style.get_box().clone_contain().contains(contain::PAINT) { - if self.style.get_box().clone_overflow_x() == overflow::visible { -- let mut box_style = self.style.mutate_box(); -+ let box_style = self.style.mutate_box(); - box_style.set_overflow_x(overflow::_moz_hidden_unscrollable); - box_style.set_overflow_y(overflow::_moz_hidden_unscrollable); - } -@@ -182,7 +182,7 @@ impl<'a, 'b: 'a> StyleAdjuster<'a, 'b> { - use properties::longhands::font_style::computed_value::T as font_style; - use properties::longhands::font_weight::computed_value::T as font_weight; - if self.style.get_font().clone__moz_math_variant() != moz_math_variant::none { -- let mut font_style = self.style.mutate_font(); -+ let font_style = self.style.mutate_font(); - // Sadly we don't have a nice name for the computed value - // of "font-weight: normal". - font_style.set_font_weight(font_weight::normal()); -diff --git servo/ports/geckolib/glue.rs servo/ports/geckolib/glue.rs -index 977728286fc3..fa09bee29553 100644 ---- servo/ports/geckolib/glue.rs -+++ servo/ports/geckolib/glue.rs -@@ -815,7 +815,7 @@ pub extern "C" fn Servo_StyleSet_AppendStyleSheet( - ) { - let global_style_data = &*GLOBAL_STYLE_DATA; - let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); -- let mut data = &mut *data; -+ let data = &mut *data; - let guard = global_style_data.shared_lock.read(); - data.stylesheets.append_stylesheet( - &data.stylist, -@@ -867,7 +867,7 @@ pub extern "C" fn Servo_StyleSet_PrependStyleSheet( - ) { - let global_style_data = &*GLOBAL_STYLE_DATA; - let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); -- let mut data = &mut *data; -+ let data = &mut *data; - let guard = global_style_data.shared_lock.read(); - data.stylesheets.prepend_stylesheet( - &data.stylist, -@@ -885,7 +885,7 @@ pub extern "C" fn Servo_StyleSet_InsertStyleSheetBefore( - ) { - let global_style_data = &*GLOBAL_STYLE_DATA; - let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); -- let mut data = &mut *data; -+ let data = &mut *data; - let guard = global_style_data.shared_lock.read(); - data.stylesheets.insert_stylesheet_before( - &data.stylist, -@@ -903,7 +903,7 @@ pub extern "C" fn Servo_StyleSet_RemoveStyleSheet( - ) { - let global_style_data = &*GLOBAL_STYLE_DATA; - let mut data = PerDocumentStyleData::from_ffi(raw_data).borrow_mut(); -- let mut data = &mut *data; -+ let data = &mut *data; - let guard = global_style_data.shared_lock.read(); - data.stylesheets.remove_stylesheet( - &data.stylist, -@@ -1274,7 +1274,7 @@ pub extern "C" fn Servo_StyleRule_GetSpecificityAtIndex( - specificity: *mut u64 - ) { - read_locked_arc(rule, |rule: &StyleRule| { -- let mut specificity = unsafe { specificity.as_mut().unwrap() }; -+ let specificity = unsafe { specificity.as_mut().unwrap() }; - let index = index as usize; - if index >= rule.selectors.0.len() { - *specificity = 0; -@@ -2775,7 +2775,7 @@ pub extern "C" fn Servo_NoteExplicitHints(element: RawGeckoElementBorrowed, - pub extern "C" fn Servo_TakeChangeHint(element: RawGeckoElementBorrowed, - was_restyled: *mut bool) -> nsChangeHint - { -- let mut was_restyled = unsafe { was_restyled.as_mut().unwrap() }; -+ let was_restyled = unsafe { was_restyled.as_mut().unwrap() }; - let element = GeckoElement(element); - - let damage = match element.mutate_data() {