FreeBSD Bugzilla – Attachment 201365 Details for
Bug 235161
mail/thunderbird: update to 60.5.0
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
update thunderbird to 60.5.0 (rc2)
thunderbird_60_5_0_rc2.diff (text/plain), 110.73 KB, created by
Christoph Moench-Tegeder
on 2019-01-23 19:19:34 UTC
(
hide
)
Description:
update thunderbird to 60.5.0 (rc2)
Filename:
MIME Type:
Creator:
Christoph Moench-Tegeder
Created:
2019-01-23 19:19:34 UTC
Size:
110.73 KB
patch
obsolete
>diff --git a/mail/thunderbird-i18n/Makefile b/mail/thunderbird-i18n/Makefile >index 5c6ae78e4c49..307181f5ec88 100644 >--- a/mail/thunderbird-i18n/Makefile >+++ b/mail/thunderbird-i18n/Makefile >@@ -2,11 +2,10 @@ > # $FreeBSD$ > > PORTNAME= thunderbird-i18n >-PORTVERSION= 60.4.0 >-PORTREVISION= 1 >+PORTVERSION= 60.5.0 > CATEGORIES= mail news net-im > MASTER_SITES= MOZILLA/${PORTNAME:S|-i18n||}/releases/${DISTVERSION}/linux-x86_64/xpi \ >- MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build1/linux-x86_64/xpi >+ MOZILLA/${PORTNAME:S|-i18n||}/candidates/${DISTVERSION}-candidates/build2/linux-x86_64/xpi > PKGNAMEPREFIX= > DISTFILES= ${THUNDERBIRD_I18N_:S/$/.xpi/} > DIST_SUBDIR= xpi/${DISTNAME} >diff --git a/mail/thunderbird-i18n/distinfo b/mail/thunderbird-i18n/distinfo >index 258b7df5d355..2b513ee69f0f 100644 >--- a/mail/thunderbird-i18n/distinfo >+++ b/mail/thunderbird-i18n/distinfo >@@ -1,117 +1,117 @@ >-TIMESTAMP = 1545056672 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ar.xpi) = 142ca421e384f1015446fe16073d21ce17f9306ee5c12fa050991943e1eb2198 >-SIZE (xpi/thunderbird-i18n-60.4.0/ar.xpi) = 627179 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ast.xpi) = 555a5a195dddb34423f2f8516c5d2cc01e65364363b7611961af4ae018fc8f8a >-SIZE (xpi/thunderbird-i18n-60.4.0/ast.xpi) = 560866 >-SHA256 (xpi/thunderbird-i18n-60.4.0/be.xpi) = 4388d058e653c4ffde2c83602a989fb57f4ce08276e7ea15fc5fb2e4703c525b >-SIZE (xpi/thunderbird-i18n-60.4.0/be.xpi) = 659078 >-SHA256 (xpi/thunderbird-i18n-60.4.0/bg.xpi) = b014bfad34c97890852438e727b9cfe03cd28334c2c04b7e8244d15952a1ed18 >-SIZE (xpi/thunderbird-i18n-60.4.0/bg.xpi) = 665511 >-SHA256 (xpi/thunderbird-i18n-60.4.0/br.xpi) = e73c7458d16b365db3b1274fd450259e5e44e50bf7350d14d412b45a719594f2 >-SIZE (xpi/thunderbird-i18n-60.4.0/br.xpi) = 581592 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ca.xpi) = 2969084ad12be6b86959e62918c2605186c0320053a113e33aff795c14574eb2 >-SIZE (xpi/thunderbird-i18n-60.4.0/ca.xpi) = 591970 >-SHA256 (xpi/thunderbird-i18n-60.4.0/cs.xpi) = 62865800afe20ae855e911f1f3b6cfcfdd3a59ac7c099ae73d00764b2b085d27 >-SIZE (xpi/thunderbird-i18n-60.4.0/cs.xpi) = 611200 >-SHA256 (xpi/thunderbird-i18n-60.4.0/cy.xpi) = 0831ea66281fe261ed6e9fc91b30ac5fc7eb3a6ad7ddaf50545cbeee27f3e3ea >-SIZE (xpi/thunderbird-i18n-60.4.0/cy.xpi) = 582232 >-SHA256 (xpi/thunderbird-i18n-60.4.0/da.xpi) = 3fa9fd37a51c99250f6239145bf267a290971e8a2d1683b117dce051997c9db2 >-SIZE (xpi/thunderbird-i18n-60.4.0/da.xpi) = 570806 >-SHA256 (xpi/thunderbird-i18n-60.4.0/de.xpi) = 7ec556ef2eb0b7b894548d51def1900cfdcf901d7e965dd70867bbe744d82297 >-SIZE (xpi/thunderbird-i18n-60.4.0/de.xpi) = 582574 >-SHA256 (xpi/thunderbird-i18n-60.4.0/dsb.xpi) = 8014269f81c9fb155609c2ad62514537c9bf2003443aa12f46165e6a801191fb >-SIZE (xpi/thunderbird-i18n-60.4.0/dsb.xpi) = 613758 >-SHA256 (xpi/thunderbird-i18n-60.4.0/el.xpi) = ff45f720f86509532dc5f20086bc8909b50f34c9e5c7b56e750171735e1ddf46 >-SIZE (xpi/thunderbird-i18n-60.4.0/el.xpi) = 691054 >-SHA256 (xpi/thunderbird-i18n-60.4.0/en-GB.xpi) = fbe50c8af4e3c6e454d760a0561ae59bc4190a4be40e6042408c0f8178c05680 >-SIZE (xpi/thunderbird-i18n-60.4.0/en-GB.xpi) = 550355 >-SHA256 (xpi/thunderbird-i18n-60.4.0/en-US.xpi) = 76a86cc8331ef41d51a7586ce55858eb785919253df1aa737daa222293d36a21 >-SIZE (xpi/thunderbird-i18n-60.4.0/en-US.xpi) = 546990 >-SHA256 (xpi/thunderbird-i18n-60.4.0/es-AR.xpi) = 353ed430557068607bb5484eb5b40986ba01e1b963f6943c08a2b73b4ef09753 >-SIZE (xpi/thunderbird-i18n-60.4.0/es-AR.xpi) = 595047 >-SHA256 (xpi/thunderbird-i18n-60.4.0/es-ES.xpi) = c1ccb289d140cf1d3485839ef6f6a8c5e3ac5d26a6345190a6856ae1e96b4e7e >-SIZE (xpi/thunderbird-i18n-60.4.0/es-ES.xpi) = 492211 >-SHA256 (xpi/thunderbird-i18n-60.4.0/et.xpi) = 4e4e5ef4101834eeef4fa6d7512d4317481e34b5d46f7d7f3764a1da999ccbfd >-SIZE (xpi/thunderbird-i18n-60.4.0/et.xpi) = 570866 >-SHA256 (xpi/thunderbird-i18n-60.4.0/eu.xpi) = 58a4160e6f4523afb8fe3af1c60af4350d771db21c109f94d1967d005cd5cb4f >-SIZE (xpi/thunderbird-i18n-60.4.0/eu.xpi) = 577579 >-SHA256 (xpi/thunderbird-i18n-60.4.0/fi.xpi) = 465802cc33b6354d78bfb3a9b7dfe36c58cd25f39e457c2794219704df0cc9cd >-SIZE (xpi/thunderbird-i18n-60.4.0/fi.xpi) = 575754 >-SHA256 (xpi/thunderbird-i18n-60.4.0/fr.xpi) = e23b17cf928ea9c463431d55fc6fca44187d60c6e3fba9979afdc6ad9948f526 >-SIZE (xpi/thunderbird-i18n-60.4.0/fr.xpi) = 608465 >-SHA256 (xpi/thunderbird-i18n-60.4.0/fy-NL.xpi) = c345f58742f45dd064f7f3f16c28ad50c8412660b32e9be2544ea60915ce7201 >-SIZE (xpi/thunderbird-i18n-60.4.0/fy-NL.xpi) = 590033 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ga-IE.xpi) = 54d43b63f461be233e52badeef707686fc628ffb1a0b80a00832f7a87d53dea9 >-SIZE (xpi/thunderbird-i18n-60.4.0/ga-IE.xpi) = 603505 >-SHA256 (xpi/thunderbird-i18n-60.4.0/gd.xpi) = 3981da8cefc8c9849e1b6e8a8ef1a9b6eca19d0a916f940d6d2ec849191c0876 >-SIZE (xpi/thunderbird-i18n-60.4.0/gd.xpi) = 599260 >-SHA256 (xpi/thunderbird-i18n-60.4.0/gl.xpi) = 7b71884496d24cc458f6aa580cab747e278c0f539cd7b6801a9a00ac38685ac2 >-SIZE (xpi/thunderbird-i18n-60.4.0/gl.xpi) = 576547 >-SHA256 (xpi/thunderbird-i18n-60.4.0/he.xpi) = bb29e592ad55635b225ae012591e7a4899095821b08c94e746e1dd5fcc466644 >-SIZE (xpi/thunderbird-i18n-60.4.0/he.xpi) = 618364 >-SHA256 (xpi/thunderbird-i18n-60.4.0/hr.xpi) = 463a1cdffa202f988ff6ccb625b2d3ac1189fedc7b45133a6325607ce6a9fdd3 >-SIZE (xpi/thunderbird-i18n-60.4.0/hr.xpi) = 583460 >-SHA256 (xpi/thunderbird-i18n-60.4.0/hsb.xpi) = cc4a5af252c25cd01addfa830c2c5e94f0cbcff23df38971ec1f558074463d1b >-SIZE (xpi/thunderbird-i18n-60.4.0/hsb.xpi) = 611322 >-SHA256 (xpi/thunderbird-i18n-60.4.0/hu.xpi) = b7844fb21de6f0869cd73f6fbcb1776d75b868d4eef5280eda07b244300a0db5 >-SIZE (xpi/thunderbird-i18n-60.4.0/hu.xpi) = 615345 >-SHA256 (xpi/thunderbird-i18n-60.4.0/hy-AM.xpi) = 9b3329ad59e683df79f9e40559ac2e027e529bc8087fe90ec2348ad7718aa98b >-SIZE (xpi/thunderbird-i18n-60.4.0/hy-AM.xpi) = 649712 >-SHA256 (xpi/thunderbird-i18n-60.4.0/id.xpi) = e26ea9111f48d48485660191b95eb065712ecb1ddcf113f53cbc36972351368d >-SIZE (xpi/thunderbird-i18n-60.4.0/id.xpi) = 568858 >-SHA256 (xpi/thunderbird-i18n-60.4.0/is.xpi) = adc63dd5fa09654d263f73a2bfe651be8483a1f58ec781320a8b0c9cfd387f90 >-SIZE (xpi/thunderbird-i18n-60.4.0/is.xpi) = 579046 >-SHA256 (xpi/thunderbird-i18n-60.4.0/it.xpi) = 1b91e4cc527100aab2dee8c15cf6dcb630d37f5d0e8dce1005bf2e830f67b475 >-SIZE (xpi/thunderbird-i18n-60.4.0/it.xpi) = 477499 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ja.xpi) = 4ddd943c4b21a89ef2ffdeddec7c4b5aed94cb0adcb687b8cbf50c04f1c79848 >-SIZE (xpi/thunderbird-i18n-60.4.0/ja.xpi) = 653343 >-SHA256 (xpi/thunderbird-i18n-60.4.0/kab.xpi) = bb95a60fe9c8a78fdd5de483bd61a030c2bbaecc53a7d45ac1703887b463650e >-SIZE (xpi/thunderbird-i18n-60.4.0/kab.xpi) = 595238 >-SHA256 (xpi/thunderbird-i18n-60.4.0/kk.xpi) = 49f655e7b9cce450b2a201b44d37a4739cfcfc75488ddace684247354233a52d >-SIZE (xpi/thunderbird-i18n-60.4.0/kk.xpi) = 670450 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ko.xpi) = c108fdb6457f9d5863b18de01bac6e4488653dd341d4c83ffaec0be2b3c8e7c2 >-SIZE (xpi/thunderbird-i18n-60.4.0/ko.xpi) = 619729 >-SHA256 (xpi/thunderbird-i18n-60.4.0/lt.xpi) = 292f23da6c0cce6b58305c51809282f84c0b011052542fdbb10646c6e5858e76 >-SIZE (xpi/thunderbird-i18n-60.4.0/lt.xpi) = 605440 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ms.xpi) = 5ebb43dd174cd459d7742ec2c8f2aad2d4d10386717170f34a539574a83d3894 >-SIZE (xpi/thunderbird-i18n-60.4.0/ms.xpi) = 574307 >-SHA256 (xpi/thunderbird-i18n-60.4.0/nb-NO.xpi) = b445050869f3fa33909344cbb20c15be4a68d207c046577ff2e825db57de45be >-SIZE (xpi/thunderbird-i18n-60.4.0/nb-NO.xpi) = 578233 >-SHA256 (xpi/thunderbird-i18n-60.4.0/nl.xpi) = 90b0e41ab9637804ff8cab1ff2974a625784a08e69d15cd5b81c88aafcf0d452 >-SIZE (xpi/thunderbird-i18n-60.4.0/nl.xpi) = 583913 >-SHA256 (xpi/thunderbird-i18n-60.4.0/nn-NO.xpi) = 89dea4f22c65ada7e81d014cd006ec14fca89dbbdf2fd94a55786b687e4c7bd5 >-SIZE (xpi/thunderbird-i18n-60.4.0/nn-NO.xpi) = 577653 >-SHA256 (xpi/thunderbird-i18n-60.4.0/pl.xpi) = 34e5cc92b559f57e808205b6029035c8a6817d25d554bf9a7179bd4ff30c39f4 >-SIZE (xpi/thunderbird-i18n-60.4.0/pl.xpi) = 480723 >-SHA256 (xpi/thunderbird-i18n-60.4.0/pt-BR.xpi) = 495c5fbbf026aaafa42077515a2fbadb55d43cc4ee8f8787be9e05d7941eee7e >-SIZE (xpi/thunderbird-i18n-60.4.0/pt-BR.xpi) = 585017 >-SHA256 (xpi/thunderbird-i18n-60.4.0/pt-PT.xpi) = 92fd8404c5a8068e34fdac8a5b98cfe240c35d55cb39ee69a5dfcefc51ebdac2 >-SIZE (xpi/thunderbird-i18n-60.4.0/pt-PT.xpi) = 593185 >-SHA256 (xpi/thunderbird-i18n-60.4.0/rm.xpi) = bf7a352d7a657f09fe1cc58f5c244cd60175c5c7b7f8680c17a00392e0cecfa0 >-SIZE (xpi/thunderbird-i18n-60.4.0/rm.xpi) = 578383 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ro.xpi) = 41a19cac8bd9de6b88166135ae9589d67285ea036354be364ee1d67a00d4430d >-SIZE (xpi/thunderbird-i18n-60.4.0/ro.xpi) = 584307 >-SHA256 (xpi/thunderbird-i18n-60.4.0/ru.xpi) = 2a344065f7c5c99e82a04e0e68bd048ed3973f65a6754086b47dcb30604e7759 >-SIZE (xpi/thunderbird-i18n-60.4.0/ru.xpi) = 694705 >-SHA256 (xpi/thunderbird-i18n-60.4.0/si.xpi) = a0c089fb064aeb91406b1d01db52dba3bac4acb6a476de5ffd22365aad4cca4a >-SIZE (xpi/thunderbird-i18n-60.4.0/si.xpi) = 643791 >-SHA256 (xpi/thunderbird-i18n-60.4.0/sk.xpi) = b8bcc8ddc26071e0715e94ee2019887ce344e9aff7f3a4a935045425cdb2a854 >-SIZE (xpi/thunderbird-i18n-60.4.0/sk.xpi) = 612216 >-SHA256 (xpi/thunderbird-i18n-60.4.0/sl.xpi) = 3069b15f8d89dbe2aa4bcbde4cfd565cf7c4bc6afcbc65dfcfe95145191a581d >-SIZE (xpi/thunderbird-i18n-60.4.0/sl.xpi) = 589946 >-SHA256 (xpi/thunderbird-i18n-60.4.0/sq.xpi) = 3af0514bab03075e44857f8567a3bfdacc5c99549694b9af0d9d499ccb7bfcb8 >-SIZE (xpi/thunderbird-i18n-60.4.0/sq.xpi) = 593096 >-SHA256 (xpi/thunderbird-i18n-60.4.0/sr.xpi) = 6da1aefdc798f589ce3c6f41cc37099f345cdaaaea9851aedbbd3cf6256c49d5 >-SIZE (xpi/thunderbird-i18n-60.4.0/sr.xpi) = 637720 >-SHA256 (xpi/thunderbird-i18n-60.4.0/sv-SE.xpi) = e295ff95f42cb223c06385b1def1c95cbca0222f475763db410664a8d134ad8a >-SIZE (xpi/thunderbird-i18n-60.4.0/sv-SE.xpi) = 594077 >-SHA256 (xpi/thunderbird-i18n-60.4.0/tr.xpi) = 193170d3b22752635146fd825b7e350d29133aa4b2fdda6e82e5a6e7cc386d7e >-SIZE (xpi/thunderbird-i18n-60.4.0/tr.xpi) = 598009 >-SHA256 (xpi/thunderbird-i18n-60.4.0/uk.xpi) = 6b5a6d4396fec63d35c86a4657e4d1f4a8adcc3ee1587f4e37d5c0809f45035c >-SIZE (xpi/thunderbird-i18n-60.4.0/uk.xpi) = 684154 >-SHA256 (xpi/thunderbird-i18n-60.4.0/vi.xpi) = df16c0f5e69eaa3a2c62e35774e3ced68a87930ed8124737aea9aeb7000d2d6f >-SIZE (xpi/thunderbird-i18n-60.4.0/vi.xpi) = 638420 >-SHA256 (xpi/thunderbird-i18n-60.4.0/zh-CN.xpi) = 124b2d5e34fdc4d2336bc42170590c4185ab3eae593230f3d13b1c95df373320 >-SIZE (xpi/thunderbird-i18n-60.4.0/zh-CN.xpi) = 622465 >-SHA256 (xpi/thunderbird-i18n-60.4.0/zh-TW.xpi) = b2584a3419bb723a1f97a4cd1588528e4d62bdb03dcce3840b36a399e40c4b29 >-SIZE (xpi/thunderbird-i18n-60.4.0/zh-TW.xpi) = 626189 >+TIMESTAMP = 1548238106 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ar.xpi) = 396a13fc6535a68fb1c0f754243b220f6bcfec2a186a5567b9369147ff3975d0 >+SIZE (xpi/thunderbird-i18n-60.5.0/ar.xpi) = 627179 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ast.xpi) = 7563dbb731f7ea8f9a13dbec1f3a295fc89839fe484b6a2fda57be6eec5e2ce2 >+SIZE (xpi/thunderbird-i18n-60.5.0/ast.xpi) = 559643 >+SHA256 (xpi/thunderbird-i18n-60.5.0/be.xpi) = a098bc35e3703e422ed548883216d534b8aef0ef47a446aa2acd6955b0fdac29 >+SIZE (xpi/thunderbird-i18n-60.5.0/be.xpi) = 659079 >+SHA256 (xpi/thunderbird-i18n-60.5.0/bg.xpi) = 647d26bf395c3f885617f1a970ea67e1436ae266d0d9c8b089490e1e12afb1ac >+SIZE (xpi/thunderbird-i18n-60.5.0/bg.xpi) = 669318 >+SHA256 (xpi/thunderbird-i18n-60.5.0/br.xpi) = 75c2b8578e5cc30035b9f6faad4feab1c43d83a1ed95ec45c9f4d8ab0bfd0c4b >+SIZE (xpi/thunderbird-i18n-60.5.0/br.xpi) = 580371 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ca.xpi) = d9e87182418d6c89ba332a4e78078f81e9aac14fe0abce255b673122c0735f71 >+SIZE (xpi/thunderbird-i18n-60.5.0/ca.xpi) = 591971 >+SHA256 (xpi/thunderbird-i18n-60.5.0/cs.xpi) = 1dc5fd93a43b997adb28fc7ac24ba1a25e040d02ebd7a7978f8d6bce318f22e0 >+SIZE (xpi/thunderbird-i18n-60.5.0/cs.xpi) = 611203 >+SHA256 (xpi/thunderbird-i18n-60.5.0/cy.xpi) = 6039174a0c761416ef49f0face6f88b4d79a49fa56c4bb473bb5cee750a3e208 >+SIZE (xpi/thunderbird-i18n-60.5.0/cy.xpi) = 586038 >+SHA256 (xpi/thunderbird-i18n-60.5.0/da.xpi) = 4d515134ef90ff95523ff687088bebcacec23ed8fbe4f6d616b68ae0710f249a >+SIZE (xpi/thunderbird-i18n-60.5.0/da.xpi) = 570807 >+SHA256 (xpi/thunderbird-i18n-60.5.0/de.xpi) = 1664dd8842851d29647dbb1fcfa4ecafb9501b5ab358302bcbacb77cab634559 >+SIZE (xpi/thunderbird-i18n-60.5.0/de.xpi) = 582575 >+SHA256 (xpi/thunderbird-i18n-60.5.0/dsb.xpi) = e0f34880b25f7d1e361dc8b502405918a51d402d0c14370f863259d5609bd6d5 >+SIZE (xpi/thunderbird-i18n-60.5.0/dsb.xpi) = 617569 >+SHA256 (xpi/thunderbird-i18n-60.5.0/el.xpi) = 510d046f3bb350a7d5847834d37fa3895209df1d2bf609dd826af594404e2e53 >+SIZE (xpi/thunderbird-i18n-60.5.0/el.xpi) = 694860 >+SHA256 (xpi/thunderbird-i18n-60.5.0/en-GB.xpi) = e8fa1a81c509b42e630a0d51eef58b0f027b6a9a6b648cfabb407cd4e1ef5d15 >+SIZE (xpi/thunderbird-i18n-60.5.0/en-GB.xpi) = 553895 >+SHA256 (xpi/thunderbird-i18n-60.5.0/en-US.xpi) = 6bd4ee055fa3c7dc6b2756220b4cc192ff4c2b1509662fc02bbbbd77d83276d1 >+SIZE (xpi/thunderbird-i18n-60.5.0/en-US.xpi) = 550807 >+SHA256 (xpi/thunderbird-i18n-60.5.0/es-AR.xpi) = f31f9ddd6f2bd7f14b7ba660dca44a44d1ce63f6b696fcf3402de508a44fdf84 >+SIZE (xpi/thunderbird-i18n-60.5.0/es-AR.xpi) = 595048 >+SHA256 (xpi/thunderbird-i18n-60.5.0/es-ES.xpi) = f328d5a6e0e3c155da02acb7f22264941f85991b587c8c73554eba4bc0ec6658 >+SIZE (xpi/thunderbird-i18n-60.5.0/es-ES.xpi) = 492211 >+SHA256 (xpi/thunderbird-i18n-60.5.0/et.xpi) = 68329563dc48cc899007d846d1d1c78bc4690d54955e2e377ac204284aa3a4fc >+SIZE (xpi/thunderbird-i18n-60.5.0/et.xpi) = 570867 >+SHA256 (xpi/thunderbird-i18n-60.5.0/eu.xpi) = 96c124681a083f7d44a1a27fe8cabd287b73152a0aba324ecc89c099f07ebe2b >+SIZE (xpi/thunderbird-i18n-60.5.0/eu.xpi) = 581384 >+SHA256 (xpi/thunderbird-i18n-60.5.0/fi.xpi) = 2fbc3ebbeda7770dad1031056dd8568decc68e92041043c2fa537580d68be3b6 >+SIZE (xpi/thunderbird-i18n-60.5.0/fi.xpi) = 575755 >+SHA256 (xpi/thunderbird-i18n-60.5.0/fr.xpi) = 8b7e334e832ca60dc5f5972df0e070a0bc64aa3d21f9f4fd4a0a4fb09eab68a7 >+SIZE (xpi/thunderbird-i18n-60.5.0/fr.xpi) = 608467 >+SHA256 (xpi/thunderbird-i18n-60.5.0/fy-NL.xpi) = d4e058e7449baaa68a87f6147081ab849134e3c487c5a46ebe874ee769f380f5 >+SIZE (xpi/thunderbird-i18n-60.5.0/fy-NL.xpi) = 593851 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ga-IE.xpi) = 565c05ad8e1841c06571e9877d7e1dbdd0d3b2dcb7caecdd525cb24684e1ee7c >+SIZE (xpi/thunderbird-i18n-60.5.0/ga-IE.xpi) = 603506 >+SHA256 (xpi/thunderbird-i18n-60.5.0/gd.xpi) = 6526a9b5e70600234a5bce76548fc8aa30bfabb4bab081991a0ec28f375e11ef >+SIZE (xpi/thunderbird-i18n-60.5.0/gd.xpi) = 599262 >+SHA256 (xpi/thunderbird-i18n-60.5.0/gl.xpi) = bc3ae2e961b058a37e5977ec23d1a3636c1547f424b913680b01b312e31c2eb8 >+SIZE (xpi/thunderbird-i18n-60.5.0/gl.xpi) = 580353 >+SHA256 (xpi/thunderbird-i18n-60.5.0/he.xpi) = fb735a51a263d7c12624b106b4b11afe55b4192b6c3752cd5a3de10f0ea4589b >+SIZE (xpi/thunderbird-i18n-60.5.0/he.xpi) = 617144 >+SHA256 (xpi/thunderbird-i18n-60.5.0/hr.xpi) = 46ab5cd64c814a6f8f930539e7757ec6d859c652c121be09f7d0984e15feb945 >+SIZE (xpi/thunderbird-i18n-60.5.0/hr.xpi) = 582238 >+SHA256 (xpi/thunderbird-i18n-60.5.0/hsb.xpi) = 58dfbff6977c8c0144c4bf9a40d60915b248620c391c9a814ad53825ced57daf >+SIZE (xpi/thunderbird-i18n-60.5.0/hsb.xpi) = 615132 >+SHA256 (xpi/thunderbird-i18n-60.5.0/hu.xpi) = bb5ded142be6f62c0aeac040d7720fd12558ae5b2cf1c62cfb4de10a507cd97a >+SIZE (xpi/thunderbird-i18n-60.5.0/hu.xpi) = 615346 >+SHA256 (xpi/thunderbird-i18n-60.5.0/hy-AM.xpi) = 0cae5f9e6e9ba0317a508335bfe430ae1efc4ec259c8c535373a6b1004801ab6 >+SIZE (xpi/thunderbird-i18n-60.5.0/hy-AM.xpi) = 653530 >+SHA256 (xpi/thunderbird-i18n-60.5.0/id.xpi) = f0b0710ba277f373bdfff2c161ca97300fc773c400f0505430ba9a2163a511e5 >+SIZE (xpi/thunderbird-i18n-60.5.0/id.xpi) = 568861 >+SHA256 (xpi/thunderbird-i18n-60.5.0/is.xpi) = 40781ed3bbf9af0bbff1c2a144c101505192480e49f599d69af19aadc9cbee38 >+SIZE (xpi/thunderbird-i18n-60.5.0/is.xpi) = 579047 >+SHA256 (xpi/thunderbird-i18n-60.5.0/it.xpi) = 22803ad551daed6a6101b2c856a79386240a4fceeb4160e83dcde0c0e2944d06 >+SIZE (xpi/thunderbird-i18n-60.5.0/it.xpi) = 477500 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ja.xpi) = 3bb74a119f76062428ba889723e6e878dabed760757a90bb247ec19d1ce58e0e >+SIZE (xpi/thunderbird-i18n-60.5.0/ja.xpi) = 653342 >+SHA256 (xpi/thunderbird-i18n-60.5.0/kab.xpi) = f04752503fa8884e6aa814977b7ddbf1651378fe9f971553a1d6f258da032a1b >+SIZE (xpi/thunderbird-i18n-60.5.0/kab.xpi) = 594016 >+SHA256 (xpi/thunderbird-i18n-60.5.0/kk.xpi) = c62955e2fc253b1f7a685089dc399317d8889680144cb804a20dd2e1b56a962a >+SIZE (xpi/thunderbird-i18n-60.5.0/kk.xpi) = 669231 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ko.xpi) = bd8c8e5000ffd97577a74f3866489bc941e02d4a98b8543233821b334b215191 >+SIZE (xpi/thunderbird-i18n-60.5.0/ko.xpi) = 619730 >+SHA256 (xpi/thunderbird-i18n-60.5.0/lt.xpi) = 5d51778174d5043fb79d2339afa3952934bddd1c29020a1256e6e14e0b8ad9af >+SIZE (xpi/thunderbird-i18n-60.5.0/lt.xpi) = 605441 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ms.xpi) = 715cb9b93e28839c5f939952a0c6929f5b11bbe294ffc7ef82c5f1f5146f75ab >+SIZE (xpi/thunderbird-i18n-60.5.0/ms.xpi) = 574307 >+SHA256 (xpi/thunderbird-i18n-60.5.0/nb-NO.xpi) = 1c8bb1cedbfd2a297f11947b1b99bef28690e26d33be826a55e04efa3c3f4611 >+SIZE (xpi/thunderbird-i18n-60.5.0/nb-NO.xpi) = 577003 >+SHA256 (xpi/thunderbird-i18n-60.5.0/nl.xpi) = 830b93c1afad284e406f12df76f5fe5fb011fdafbd4ce9f10e44284a5a4a1fc5 >+SIZE (xpi/thunderbird-i18n-60.5.0/nl.xpi) = 583914 >+SHA256 (xpi/thunderbird-i18n-60.5.0/nn-NO.xpi) = a33c9e8b7dcffeb1702b12c25c6a719096d65d69dc85877c066a35babb4b2824 >+SIZE (xpi/thunderbird-i18n-60.5.0/nn-NO.xpi) = 576422 >+SHA256 (xpi/thunderbird-i18n-60.5.0/pl.xpi) = 1a5b60e65adfb3f4024d25165e3e864ffb210166e61dff47bb9abdbea2b99dcb >+SIZE (xpi/thunderbird-i18n-60.5.0/pl.xpi) = 480725 >+SHA256 (xpi/thunderbird-i18n-60.5.0/pt-BR.xpi) = 8fbbb1022f49ca9fce1aa1481afff4ed377d1281e9da3d3a3f51faf42b4ab0b0 >+SIZE (xpi/thunderbird-i18n-60.5.0/pt-BR.xpi) = 588834 >+SHA256 (xpi/thunderbird-i18n-60.5.0/pt-PT.xpi) = b7f8f9e440778e3a19929ce6f04c98af905767b888a87380a108b28f8455426f >+SIZE (xpi/thunderbird-i18n-60.5.0/pt-PT.xpi) = 593186 >+SHA256 (xpi/thunderbird-i18n-60.5.0/rm.xpi) = b8de1432cb2440d07ed0624367dca3629f0494dd6a5f3052c7f7e5b6df715c54 >+SIZE (xpi/thunderbird-i18n-60.5.0/rm.xpi) = 578384 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ro.xpi) = 03e25d7e493d13f156e75885dd5adc4686202d01976750c433169f3ba2bbdf62 >+SIZE (xpi/thunderbird-i18n-60.5.0/ro.xpi) = 584308 >+SHA256 (xpi/thunderbird-i18n-60.5.0/ru.xpi) = 2b4398c00a09d7a1a306933d25fced39bbc73b1455ff816f7a288aae70b8bcc5 >+SIZE (xpi/thunderbird-i18n-60.5.0/ru.xpi) = 694705 >+SHA256 (xpi/thunderbird-i18n-60.5.0/si.xpi) = bd82a180d5f2081505a3ff8c09de9936511d1d616e9947c913c5d45ae0105ca4 >+SIZE (xpi/thunderbird-i18n-60.5.0/si.xpi) = 647596 >+SHA256 (xpi/thunderbird-i18n-60.5.0/sk.xpi) = 26901d561b82c040e733fe061829c9d688b4869cf4ff5dcda3d84b3e1178a0a5 >+SIZE (xpi/thunderbird-i18n-60.5.0/sk.xpi) = 612216 >+SHA256 (xpi/thunderbird-i18n-60.5.0/sl.xpi) = 202dfacbe227291e69e81ff96540aac1e3444209d62b083c172fc23c72d54ee2 >+SIZE (xpi/thunderbird-i18n-60.5.0/sl.xpi) = 589947 >+SHA256 (xpi/thunderbird-i18n-60.5.0/sq.xpi) = 82fc6083998e6362b0bfc8e263edad82346463a226eddc6b04bcf7fb380b6788 >+SIZE (xpi/thunderbird-i18n-60.5.0/sq.xpi) = 593096 >+SHA256 (xpi/thunderbird-i18n-60.5.0/sr.xpi) = dc931da27dda3502cd22abf0837afaecda15160476758e5e2aa194d517bb463f >+SIZE (xpi/thunderbird-i18n-60.5.0/sr.xpi) = 641527 >+SHA256 (xpi/thunderbird-i18n-60.5.0/sv-SE.xpi) = f1be900c89ec7b88b7b3511360729b0b237d01f10d26aaad2857a8f9d295bc9b >+SIZE (xpi/thunderbird-i18n-60.5.0/sv-SE.xpi) = 594079 >+SHA256 (xpi/thunderbird-i18n-60.5.0/tr.xpi) = c1a1b0135c22ab60c2a6542fb1571413e9d78d5a70a4efa57e798b6998381971 >+SIZE (xpi/thunderbird-i18n-60.5.0/tr.xpi) = 598010 >+SHA256 (xpi/thunderbird-i18n-60.5.0/uk.xpi) = a3e95424e17a6b370c510aba63ee49521beddb7b843971e540b2ae7e7785747f >+SIZE (xpi/thunderbird-i18n-60.5.0/uk.xpi) = 684154 >+SHA256 (xpi/thunderbird-i18n-60.5.0/vi.xpi) = 24367d6109f0e0a996e3623e15aaa75a84a8373b7a025edf7e84e8f56421b315 >+SIZE (xpi/thunderbird-i18n-60.5.0/vi.xpi) = 637199 >+SHA256 (xpi/thunderbird-i18n-60.5.0/zh-CN.xpi) = ccb35f028c1741133ba6449858fd543fc9fad93d17c1887df55dd5e751f2799f >+SIZE (xpi/thunderbird-i18n-60.5.0/zh-CN.xpi) = 626283 >+SHA256 (xpi/thunderbird-i18n-60.5.0/zh-TW.xpi) = 08ce589a9ee4e41ab1d23338dcc9758b6eb866cfdf27cee44e6cfa7fbc460c59 >+SIZE (xpi/thunderbird-i18n-60.5.0/zh-TW.xpi) = 626190 >diff --git a/mail/thunderbird/Makefile b/mail/thunderbird/Makefile >index 864e976d2fde..7d29d9bca885 100644 >--- a/mail/thunderbird/Makefile >+++ b/mail/thunderbird/Makefile >@@ -2,18 +2,17 @@ > # $FreeBSD$ > > PORTNAME= thunderbird >-DISTVERSION= 60.4.0 >-PORTREVISION= 3 >+DISTVERSION= 60.5.0 > CATEGORIES= mail news net-im ipv6 > MASTER_SITES= MOZILLA/${PORTNAME}/releases/${DISTVERSION}/source \ >- MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build1/source >+ MOZILLA/${PORTNAME}/candidates/${DISTVERSION}-candidates/build2/source > DISTFILES= ${DISTNAME}.source${EXTRACT_SUFX} > > MAINTAINER= gecko@FreeBSD.org > COMMENT= Mozilla Thunderbird is standalone mail and news that stands above > > BUILD_DEPENDS= nspr>=4.19:devel/nspr \ >- nss>=3.36.1:security/nss \ >+ nss>=3.36.7:security/nss \ > icu>=59.1,1:devel/icu \ > libevent>=2.1.8:devel/libevent \ > harfbuzz>=1.7.6:print/harfbuzz \ >diff --git a/mail/thunderbird/distinfo b/mail/thunderbird/distinfo >index 8885e2c2ed75..efec9a2204c3 100644 >--- a/mail/thunderbird/distinfo >+++ b/mail/thunderbird/distinfo >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1545056672 >-SHA256 (thunderbird-60.4.0.source.tar.xz) = 27a6cdd9cfdd7ce70b1d193c64739db6be6b39eec308f0122d8472a6cd243e75 >-SIZE (thunderbird-60.4.0.source.tar.xz) = 284938284 >+TIMESTAMP = 1548237843 >+SHA256 (thunderbird-60.5.0.source.tar.xz) = 6f96e87e832e4089c69418db64e19afd54a0acefe3e0364087a8bc6f442b9566 >+SIZE (thunderbird-60.5.0.source.tar.xz) = 285636196 >diff --git a/mail/thunderbird/files/patch-bug1375074 b/mail/thunderbird/files/patch-bug1375074 >index cede1e474e22..7289d1e34a86 100644 >--- a/mail/thunderbird/files/patch-bug1375074 >+++ b/mail/thunderbird/files/patch-bug1375074 >@@ -40,43 +40,44 @@ diff --git js/src/vm/UnboxedObject.cpp js/src/vm/UnboxedObject.cpp > index c8c178965c488..5badf328ede4f 100644 > --- js/src/vm/UnboxedObject.cpp > +++ js/src/vm/UnboxedObject.cpp >-@@ -95,7 +95,15 @@ UnboxedLayout::makeConstructorCode(JSContext* cx, HandleObjectGroup group) >+@@ -86,8 +86,15 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = > #endif > > #ifdef JS_CODEGEN_ARM64 >-- // ARM64 communicates stack address via sp, but uses a pseudo-sp for addressing. >-+ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for >-+ // addressing. The register we use for PSP may however also be used by >-+ // calling code, and it is nonvolatile, so save it. Do this as a special >-+ // case first because the generic save/restore code needs the PSP to be >-+ // initialized already. >-+ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); >-+ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); >+- // ARM64 communicates stack address via sp, but uses a pseudo-sp for >+- // addressing. >++ // ARM64 communicates stack address via sp, but uses a pseudo-sp (PSP) for >++ // addressing. The register we use for PSP may however also be used by >++ // calling code, and it is nonvolatile, so save it. Do this as a special >++ // case first because the generic save/restore code needs the PSP to be >++ // initialized already. >++ MOZ_ASSERT(PseudoStackPointer64.Is(masm.GetStackPointer64())); >++ masm.Str(PseudoStackPointer64, vixl::MemOperand(sp, -16, vixl::PreIndex)); > + >-+ // Initialize the PSP from the SP. >- masm.initStackPtr(); >++ // Initialize the PSP from the SP. >+ masm.initStackPtr(); > #endif > >-@@ -233,7 +241,22 @@ UnboxedLayout::makeConstructorCode(JSContext* cx, HandleObjectGroup group) >- masm.pop(ScratchDoubleReg); >- masm.PopRegsInMask(savedNonVolatileRegisters); >+@@ -239,7 +246,22 @@ static const uintptr_t CLEAR_CONSTRUCTOR_CODE_TOKEN = >+ if (ScratchDoubleReg.volatile_()) masm.pop(ScratchDoubleReg); >+ masm.PopRegsInMask(savedNonVolatileRegisters); > > +#ifdef JS_CODEGEN_ARM64 >-+ // Now restore the value that was in the PSP register on entry, and return. >++ // Now restore the value that was in the PSP register on entry, and return. > + >-+ // Obtain the correct SP from the PSP. >-+ masm.Mov(sp, PseudoStackPointer64); >++ // Obtain the correct SP from the PSP. >++ masm.Mov(sp, PseudoStackPointer64); > + >-+ // Restore the saved value of the PSP register, this value is whatever the >-+ // caller had saved in it, not any actual SP value, and it must not be >-+ // overwritten subsequently. >-+ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); >++ // Restore the saved value of the PSP register, this value is whatever the >++ // caller had saved in it, not any actual SP value, and it must not be >++ // overwritten subsequently. >++ masm.Ldr(PseudoStackPointer64, vixl::MemOperand(sp, 16, vixl::PostIndex)); > + >-+ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. >-+ masm.Ret(vixl::lr); >++ // Perform a plain Ret(), as abiret() will move SP <- PSP and that is wrong. >++ masm.Ret(vixl::lr); > +#else >- masm.abiret(); >+ masm.abiret(); > +#endif > >- masm.bind(&failureStoreOther); >+ masm.bind(&failureStoreOther); > >diff --git a/mail/thunderbird/files/patch-bug1411481 b/mail/thunderbird/files/patch-bug1411481 >index d8e9992e264b..10ee86b96544 100644 >--- a/mail/thunderbird/files/patch-bug1411481 >+++ b/mail/thunderbird/files/patch-bug1411481 >@@ -15,71 +15,69 @@ diff --git dom/canvas/CanvasRenderingContext2D.cpp dom/canvas/CanvasRenderingCon > index ef3f868bdbf7..8666564b4d0c 100644 > --- dom/canvas/CanvasRenderingContext2D.cpp > +++ dom/canvas/CanvasRenderingContext2D.cpp >-@@ -1438,7 +1438,8 @@ CanvasRenderingContext2D::AllowOpenGLCanvas() const >+@@ -1358,7 +1358,8 @@ bool CanvasRenderingContext2D::AllowOpenGLCanvas() con > // HTMLCanvasElement::GetCompositorBackendType would return LAYERS_NONE > // as well, so it wouldn't help much. > > - return (mCompositorBackend == LayersBackend::LAYERS_OPENGL) && > + return (mCompositorBackend == LayersBackend::LAYERS_OPENGL || > + mCompositorBackend == LayersBackend::LAYERS_WR) && >- gfxPlatform::GetPlatform()->AllowOpenGLCanvas(); >+ gfxPlatform::GetPlatform()->AllowOpenGLCanvas(); > } > > diff --git gfx/thebes/gfxPlatform.cpp gfx/thebes/gfxPlatform.cpp > index b9beea68d8c5..82635f9ab3ce 100644 > --- gfx/thebes/gfxPlatform.cpp > +++ gfx/thebes/gfxPlatform.cpp >-@@ -1386,7 +1386,8 @@ bool gfxPlatform::AllowOpenGLCanvas() >- // so we let content process always assume correct compositor backend. >+@@ -1341,7 +1341,8 @@ bool gfxPlatform::AllowOpenGLCanvas() { > // The callers have to do the right thing. >- bool correctBackend = !XRE_IsParentProcess() || >-- ((mCompositorBackend == LayersBackend::LAYERS_OPENGL) && >-+ ((mCompositorBackend == LayersBackend::LAYERS_OPENGL || >-+ mCompositorBackend == LayersBackend::LAYERS_WR) && >- (GetContentBackendFor(mCompositorBackend) == BackendType::SKIA)); >+ bool correctBackend = >+ !XRE_IsParentProcess() || >+- ((mCompositorBackend == LayersBackend::LAYERS_OPENGL) && >++ ((mCompositorBackend == LayersBackend::LAYERS_OPENGL || >++ mCompositorBackend == LayersBackend::LAYERS_WR) && >+ (GetContentBackendFor(mCompositorBackend) == BackendType::SKIA)); > > if (gfxPrefs::CanvasAzureAccelerated() && correctBackend) { > diff --git gfx/thebes/gfxPlatform.h gfx/thebes/gfxPlatform.h > index c988eb1168a8..3bbf2b763f26 100644 > --- gfx/thebes/gfxPlatform.h > +++ gfx/thebes/gfxPlatform.h >-@@ -286,7 +286,7 @@ public: >- /// asking for it, we will examine the commands in the first few seconds >- /// of the canvas usage, and potentially change to accelerated or >- /// non-accelerated canvas. >-- bool AllowOpenGLCanvas(); >-+ virtual bool AllowOpenGLCanvas(); >- virtual void InitializeSkiaCacheLimits(); >+@@ -265,7 +265,7 @@ class gfxPlatform { >+ /// asking for it, we will examine the commands in the first few seconds >+ /// of the canvas usage, and potentially change to accelerated or >+ /// non-accelerated canvas. >+- bool AllowOpenGLCanvas(); >++ virtual bool AllowOpenGLCanvas(); >+ virtual void InitializeSkiaCacheLimits(); > >- static bool AsyncPanZoomEnabled(); >+ static bool AsyncPanZoomEnabled(); > diff --git gfx/thebes/gfxWindowsPlatform.cpp gfx/thebes/gfxWindowsPlatform.cpp > index 9ba6f40c6cc0..4d65791d075f 100644 > --- gfx/thebes/gfxWindowsPlatform.cpp > +++ gfx/thebes/gfxWindowsPlatform.cpp >-@@ -509,6 +509,13 @@ gfxWindowsPlatform::UpdateRenderMode() >+@@ -466,6 +466,11 @@ void gfxWindowsPlatform::UpdateRenderMode() { > } > } > >-+bool >-+gfxWindowsPlatform::AllowOpenGLCanvas() >-+{ >++bool gfxWindowsPlatform::AllowOpenGLCanvas() { > + // OpenGL canvas is not supported on windows > + return false; > +} > + >- mozilla::gfx::BackendType >- gfxWindowsPlatform::GetContentBackendFor(mozilla::layers::LayersBackend aLayers) >- { >+ mozilla::gfx::BackendType gfxWindowsPlatform::GetContentBackendFor( >+ mozilla::layers::LayersBackend aLayers) { >+ mozilla::gfx::BackendType defaultBackend = > diff --git gfx/thebes/gfxWindowsPlatform.h gfx/thebes/gfxWindowsPlatform.h > index 47048de8f5f5..47ec0e9e5547 100644 > --- gfx/thebes/gfxWindowsPlatform.h > +++ gfx/thebes/gfxWindowsPlatform.h >-@@ -174,6 +174,8 @@ public: >- void SchedulePaintIfDeviceReset() override; >- void CheckForContentOnlyDeviceReset(); >+@@ -171,6 +171,8 @@ class gfxWindowsPlatform : public gfxPlatform { >+ void SchedulePaintIfDeviceReset() override; >+ void CheckForContentOnlyDeviceReset(); > >-+ bool AllowOpenGLCanvas() override; >++ bool AllowOpenGLCanvas() override; > + >- mozilla::gfx::BackendType GetContentBackendFor(mozilla::layers::LayersBackend aLayers) override; >+ mozilla::gfx::BackendType GetContentBackendFor( >+ mozilla::layers::LayersBackend aLayers) override; > >- mozilla::gfx::BackendType GetPreferredCanvasBackend() override; >diff --git a/mail/thunderbird/files/patch-bug1438678 b/mail/thunderbird/files/patch-bug1438678 >index 47e8dec9ad5b..9758b775eca9 100644 >--- a/mail/thunderbird/files/patch-bug1438678 >+++ b/mail/thunderbird/files/patch-bug1438678 >@@ -82,7 +82,7 @@ index e27f3eedc1b1..60be7005354b 100644 > > #include "ContentParent.h" > #include "TabParent.h" >-@@ -1998,61 +1999,56 @@ ContentParent::LaunchSubprocess(ProcessPriority aInitialPriority /* = PROCESS_PR >+@@ -1857,64 +1858,56 @@ bool ContentParent::LaunchSubprocess( > extraArgs.push_back(idStr); > extraArgs.push_back(IsForBrowser() ? "-isForBrowser" : "-notForBrowser"); > >@@ -100,31 +100,34 @@ index e27f3eedc1b1..60be7005354b 100644 > > - for (unsigned int i = 0; i < prefsLen; i++) { > - const char* prefName = ContentPrefs::GetEarlyPref(i); >-- MOZ_ASSERT(i == 0 || strcmp(prefName, ContentPrefs::GetEarlyPref(i - 1)) > 0, >-- "Content process preferences should be sorted alphabetically."); >+- MOZ_ASSERT( >+- i == 0 || strcmp(prefName, ContentPrefs::GetEarlyPref(i - 1)) > 0, >+- "Content process preferences should be sorted alphabetically."); > - > - if (!Preferences::MustSendToContentProcesses(prefName)) { > - continue; > - } > - > - switch (Preferences::GetType(prefName)) { >-- case nsIPrefBranch::PREF_INT: >-- intPrefs.Append(nsPrintfCString("%u:%d|", i, Preferences::GetInt(prefName))); >-- break; >-- case nsIPrefBranch::PREF_BOOL: >-- boolPrefs.Append(nsPrintfCString("%u:%d|", i, Preferences::GetBool(prefName))); >-- break; >-- case nsIPrefBranch::PREF_STRING: { >-- nsAutoCString value; >-- Preferences::GetCString(prefName, value); >-- stringPrefs.Append(nsPrintfCString("%u:%d;%s|", i, value.Length(), value.get())); >-- } >-- break; >-- case nsIPrefBranch::PREF_INVALID: >-- break; >-- default: >-- printf("preference type: %x\n", Preferences::GetType(prefName)); >-- MOZ_CRASH(); >+- case nsIPrefBranch::PREF_INT: >+- intPrefs.Append( >+- nsPrintfCString("%u:%d|", i, Preferences::GetInt(prefName))); >+- break; >+- case nsIPrefBranch::PREF_BOOL: >+- boolPrefs.Append( >+- nsPrintfCString("%u:%d|", i, Preferences::GetBool(prefName))); >+- break; >+- case nsIPrefBranch::PREF_STRING: { >+- nsAutoCString value; >+- Preferences::GetCString(prefName, value); >+- stringPrefs.Append( >+- nsPrintfCString("%u:%d;%s|", i, value.Length(), value.get())); >+- } break; >+- case nsIPrefBranch::PREF_INVALID: >+- break; >+- default: >+- printf("preference type: %x\n", Preferences::GetType(prefName)); >+- MOZ_CRASH(); > - } > + // Set up the shared memory. > + base::SharedMemory shm; >@@ -133,12 +136,12 @@ index e27f3eedc1b1..60be7005354b 100644 > + NS_ERROR("failed to create shared memory in the parent"); > + MarkAsDead(); > + return false; >-+ } >+ } > + if (!shm.Map(prefs.Length())) { > + NS_ERROR("failed to map shared memory in the parent"); > + MarkAsDead(); > + return false; >- } >++ } > > - nsCString schedulerPrefs = Scheduler::GetPrefs(); > + // Copy the serialized prefs into the shared memory. >@@ -164,7 +167,7 @@ index e27f3eedc1b1..60be7005354b 100644 > + mSubprocess->AddHandleToShare(prefsHandle); > + extraArgs.push_back("-prefsHandle"); > + extraArgs.push_back( >-+ nsPrintfCString("%zu", reinterpret_cast<uintptr_t>(prefsHandle)).get()); >++ nsPrintfCString("%zu", reinterpret_cast<uintptr_t>(prefsHandle)).get()); > +#else > + // In contrast, Unix fds are per-process. So remap the fd to a fixed one that > + // will be used in the child. >@@ -175,18 +178,18 @@ index e27f3eedc1b1..60be7005354b 100644 > + // remapping so it doesn't get closed in the child. > + mSubprocess->AddFdToRemap(shm.handle().fd, kPrefsFileDescriptor); > +#endif >-+ >+ > + // Pass the length via a command flag. > + extraArgs.push_back("-prefsLen"); > + extraArgs.push_back(nsPrintfCString("%zu", uintptr_t(prefs.Length())).get()); >- >++ > // Scheduler prefs need to be handled differently because the scheduler needs > // to start up in the content process before the normal preferences service. > + nsCString schedulerPrefs = Scheduler::GetPrefs(); > extraArgs.push_back("-schedulerPrefs"); > extraArgs.push_back(schedulerPrefs.get()); > >-@@ -2061,6 +2057,7 @@ ContentParent::LaunchSubprocess(ProcessPriority aInitialPriority /* = PROCESS_PR >+@@ -1923,6 +1916,7 @@ bool ContentParent::LaunchSubprocess( > } > > if (!mSubprocess->LaunchAndWaitForProcessHandle(extraArgs)) { >@@ -215,24 +218,18 @@ index e3c1f16910c6..2441c8cb9224 100644 > #include "mozilla/SandboxSettings.h" > #include "nsAppDirectoryServiceDefs.h" > #include "nsDirectoryService.h" >-@@ -81,6 +82,16 @@ SetUpSandboxEnvironment() >+@@ -76,14 +77,21 @@ static void SetUpSandboxEnvironment() { > } > #endif > > +#ifdef ANDROID > +static int gPrefsFd = -1; > + >-+void >-+SetPrefsFd(int aFd) >-+{ >-+ gPrefsFd = aFd; >-+} >++void SetPrefsFd(int aFd) { gPrefsFd = aFd; } > +#endif > + >- bool >- ContentProcess::Init(int aArgc, char* aArgv[]) >- { >-@@ -88,9 +99,10 @@ ContentProcess::Init(int aArgc, char* aArgv[]) >+ bool ContentProcess::Init(int aArgc, char* aArgv[]) { >+ // If passed in grab the application path for xpcom init > bool foundAppdir = false; > bool foundChildID = false; > bool foundIsForBrowser = false; >@@ -246,7 +243,7 @@ index e3c1f16910c6..2441c8cb9224 100644 > bool foundSchedulerPrefs = false; > > uint64_t childID; >-@@ -103,7 +115,8 @@ ContentProcess::Init(int aArgc, char* aArgv[]) >+@@ -96,7 +104,8 @@ bool ContentProcess::Init(int aArgc, char* aArgv[]) { > #endif > > char* schedulerPrefs = nullptr; >@@ -256,17 +253,20 @@ index e3c1f16910c6..2441c8cb9224 100644 > for (int idx = aArgc; idx > 0; idx--) { > if (!aArgv[idx]) { > continue; >-@@ -134,54 +147,24 @@ ContentProcess::Init(int aArgc, char* aArgv[]) >+@@ -128,55 +137,24 @@ bool ContentProcess::Init(int aArgc, char* aArgv[]) { > } > isForBrowser = strcmp(aArgv[idx], "-notForBrowser"); > foundIsForBrowser = true; > - } else if (!strcmp(aArgv[idx], "-intPrefs")) { >-- char* str = aArgv[idx + 1]; >++#ifdef XP_WIN >++ } else if (!strcmp(aArgv[idx], "-prefsHandle")) { >+ char* str = aArgv[idx + 1]; > - while (*str) { > - int32_t index = strtol(str, &str, 10); > - MOZ_ASSERT(str[0] == ':'); > - str++; >-- MaybePrefValue value(PrefValue(static_cast<int32_t>(strtol(str, &str, 10)))); >+- MaybePrefValue value( >+- PrefValue(static_cast<int32_t>(strtol(str, &str, 10)))); > - MOZ_ASSERT(str[0] == '|'); > - str++; > - // XXX: we assume these values as default values, which may not be >@@ -278,8 +278,14 @@ index e3c1f16910c6..2441c8cb9224 100644 > - } > - foundIntPrefs = true; > - } else if (!strcmp(aArgv[idx], "-boolPrefs")) { >-+#ifdef XP_WIN >-+ } else if (!strcmp(aArgv[idx], "-prefsHandle")) { >++ MOZ_ASSERT(str[0] != '\0'); >++ // ContentParent uses %zu to print a word-sized unsigned integer. So even >++ // though strtoull() returns a long long int, it will fit in a uintptr_t. >++ prefsHandle = reinterpret_cast<HANDLE>(strtoull(str, &str, 10)); >++ MOZ_ASSERT(str[0] == '\0'); >++ foundPrefsHandle = true; >++#endif >++ } else if (!strcmp(aArgv[idx], "-prefsLen")) { > char* str = aArgv[idx + 1]; > - while (*str) { > - int32_t index = strtol(str, &str, 10); >@@ -294,15 +300,7 @@ index e3c1f16910c6..2441c8cb9224 100644 > - } > - foundBoolPrefs = true; > - } else if (!strcmp(aArgv[idx], "-stringPrefs")) { >-+ MOZ_ASSERT(str[0] != '\0'); >-+ // ContentParent uses %zu to print a word-sized unsigned integer. So even >-+ // though strtoull() returns a long long int, it will fit in a uintptr_t. >-+ prefsHandle = reinterpret_cast<HANDLE>(strtoull(str, &str, 10)); >-+ MOZ_ASSERT(str[0] == '\0'); >-+ foundPrefsHandle = true; >-+#endif >-+ } else if (!strcmp(aArgv[idx], "-prefsLen")) { >- char* str = aArgv[idx + 1]; >+- char* str = aArgv[idx + 1]; > - while (*str) { > - int32_t index = strtol(str, &str, 10); > - MOZ_ASSERT(str[0] == ':'); >@@ -327,25 +325,22 @@ index e3c1f16910c6..2441c8cb9224 100644 > } else if (!strcmp(aArgv[idx], "-schedulerPrefs")) { > schedulerPrefs = aArgv[idx + 1]; > foundSchedulerPrefs = true; >-@@ -209,21 +192,43 @@ ContentProcess::Init(int aArgc, char* aArgv[]) >- bool allFound = foundAppdir >- && foundChildID >- && foundIsForBrowser >-- && foundIntPrefs >-- && foundBoolPrefs >-- && foundStringPrefs >-- && foundSchedulerPrefs; >+@@ -201,19 +179,42 @@ bool ContentProcess::Init(int aArgc, char* aArgv[]) { >+ #endif /* XP_MACOSX && MOZ_CONTENT_SANDBOX */ >+ >+ bool allFound = foundAppdir && foundChildID && foundIsForBrowser && >+- foundIntPrefs && foundBoolPrefs && foundStringPrefs && >+- foundSchedulerPrefs; > - >-+ && foundPrefsLen >-+ && foundSchedulerPrefs >++ foundPrefsLen && foundSchedulerPrefs > +#ifdef XP_WIN >-+ && foundPrefsHandle >++ && foundPrefsHandle > +#endif > #if defined(XP_MACOSX) && defined(MOZ_CONTENT_SANDBOX) > - allFound &= foundProfile; >-+ && foundProfile >++ && foundProfile > #endif >-+ && true; >++ && true; > > if (allFound) { > break; >@@ -376,13 +371,13 @@ index e3c1f16910c6..2441c8cb9224 100644 > + prefsLen); > + > Scheduler::SetPrefs(schedulerPrefs); >- mContent.Init(IOThreadChild::message_loop(), >- ParentPid(), >+ mContent.Init(IOThreadChild::message_loop(), ParentPid(), >+ IOThreadChild::channel(), childID, isForBrowser); > diff --git dom/ipc/ContentProcess.h dom/ipc/ContentProcess.h > index a3854c761e10..6582c94da496 100644 > --- dom/ipc/ContentProcess.h > +++ dom/ipc/ContentProcess.h >-@@ -49,6 +49,11 @@ private: >+@@ -45,6 +45,11 @@ class ContentProcess : public mozilla::ipc::ProcessChi > DISALLOW_EVIL_CONSTRUCTORS(ContentProcess); > }; > >@@ -391,18 +386,19 @@ index a3854c761e10..6582c94da496 100644 > +void SetPrefsFd(int aFd); > +#endif > + >- } // namespace dom >- } // namespace mozilla >+ } // namespace dom >+ } // namespace mozilla > > diff --git ipc/chromium/src/base/process_util_win.cc ipc/chromium/src/base/process_util_win.cc > index 3ed54cd744ac..46667985cd71 100644 > --- ipc/chromium/src/base/process_util_win.cc > +++ ipc/chromium/src/base/process_util_win.cc >-@@ -354,6 +354,10 @@ bool LaunchApp(const std::wstring& cmdline, >+@@ -320,6 +320,11 @@ bool LaunchApp(const std::wstring& cmdline, const Laun > LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList = NULL; > std::vector<HANDLE> handlesToInherit; > for (HANDLE h : options.handles_to_inherit) { >-+ if (SetHandleInformation(h, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT) == 0) { >++ if (SetHandleInformation(h, HANDLE_FLAG_INHERIT, HANDLE_FLAG_INHERIT) == >++ 0) { > + MOZ_DIAGNOSTIC_ASSERT(false, "SetHandleInformation failed"); > + return false; > + } >@@ -413,19 +409,19 @@ diff --git ipc/glue/GeckoChildProcessHost.cpp ipc/glue/GeckoChildProcessHost.cpp > index d18ed9edd4ca..3be1c51d10bb 100644 > --- ipc/glue/GeckoChildProcessHost.cpp > +++ ipc/glue/GeckoChildProcessHost.cpp >-@@ -1030,9 +1030,6 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt >+@@ -1018,9 +1018,6 @@ bool GeckoChildProcessHost::PerformAsyncLaunchInternal > > if (!CrashReporter::IsDummy()) { > PROsfd h = PR_FileDesc2NativeHandle(crashAnnotationWritePipe); >--# if defined(MOZ_SANDBOX) >+-#if defined(MOZ_SANDBOX) > - mSandboxBroker.AddHandleToShare(reinterpret_cast<HANDLE>(h)); >--# endif // defined(MOZ_SANDBOX) >+-#endif // defined(MOZ_SANDBOX) > mLaunchOptions->handles_to_inherit.push_back(reinterpret_cast<HANDLE>(h)); > std::string hStr = std::to_string(h); > cmdLine.AppendLooseValue(UTF8ToWide(hStr)); >-@@ -1043,6 +1040,11 @@ GeckoChildProcessHost::PerformAsyncLaunchInternal(std::vector<std::string>& aExt >+@@ -1031,6 +1028,11 @@ bool GeckoChildProcessHost::PerformAsyncLaunchInternal > >- # if defined(MOZ_SANDBOX) >+ #if defined(MOZ_SANDBOX) > if (shouldSandboxCurrentProcess) { > + // Mark the handles to inherit as inheritable. > + for (HANDLE h : mLaunchOptions->handles_to_inherit) { >@@ -434,24 +430,25 @@ index d18ed9edd4ca..3be1c51d10bb 100644 > + > if (mSandboxBroker.LaunchApp(cmdLine.program().c_str(), > cmdLine.command_line_string().c_str(), >- mLaunchOptions->env_map, >-@@ -1180,7 +1182,7 @@ GeckoChildProcessHost::LaunchAndroidService(const char* type, >- const base::file_handle_mapping_vector& fds_to_remap, >- ProcessHandle* process_handle) >- { >+ mLaunchOptions->env_map, mProcessType, >+@@ -1154,7 +1156,7 @@ void GeckoChildProcessHost::LaunchAndroidService( >+ const char* type, const std::vector<std::string>& argv, >+ const base::file_handle_mapping_vector& fds_to_remap, >+ ProcessHandle* process_handle) { > - MOZ_ASSERT((fds_to_remap.size() > 0) && (fds_to_remap.size() <= 3)); > + MOZ_RELEASE_ASSERT((2 <= fds_to_remap.size()) && (fds_to_remap.size() <= 4)); > JNIEnv* const env = mozilla::jni::GetEnvForThread(); > MOZ_ASSERT(env); > >-@@ -1189,21 +1191,25 @@ GeckoChildProcessHost::LaunchAndroidService(const char* type, >+@@ -1164,23 +1166,26 @@ void GeckoChildProcessHost::LaunchAndroidService( > for (int ix = 0; ix < argvSize; ix++) { > jargs->SetElement(ix, jni::StringParam(argv[ix].c_str(), env)); > } > - base::file_handle_mapping_vector::const_iterator it = fds_to_remap.begin(); > - int32_t ipcFd = it->first; > - it++; >-- // If the Crash Reporter is disabled, there will not be a second file descriptor. >+- // If the Crash Reporter is disabled, there will not be a second file >+- // descriptor. > + > + // XXX: this processing depends entirely on the internals of > + // ContentParent::LaunchSubprocess() >@@ -475,9 +472,11 @@ index d18ed9edd4ca..3be1c51d10bb 100644 > + crashFd = fds_to_remap[2].first; > + crashAnnotationFd = fds_to_remap[3].first; > } >-- int32_t handle = java::GeckoProcessManager::Start(type, jargs, ipcFd, crashFd, crashAnnotationFd); >+- int32_t handle = java::GeckoProcessManager::Start(type, jargs, ipcFd, crashFd, >+- crashAnnotationFd); > + >-+ int32_t handle = java::GeckoProcessManager::Start(type, jargs, prefsFd, ipcFd, crashFd, crashAnnotationFd); >++ int32_t handle = java::GeckoProcessManager::Start(type, jargs, prefsFd, ipcFd, >++ crashFd, crashAnnotationFd); > > if (process_handle) { > *process_handle = handle; >@@ -485,8 +484,8 @@ diff --git ipc/glue/GeckoChildProcessHost.h ipc/glue/GeckoChildProcessHost.h > index 631c42066bc7..0345e221abcc 100644 > --- ipc/glue/GeckoChildProcessHost.h > +++ ipc/glue/GeckoChildProcessHost.h >-@@ -103,6 +103,16 @@ public: >- } >+@@ -94,6 +94,16 @@ class GeckoChildProcessHost : public ChildProcessHost >+ task_t GetChildTask() { return mChildTask; } > #endif > > +#ifdef XP_WIN >@@ -676,22 +675,22 @@ diff --git modules/libpref/Preferences.cpp modules/libpref/Preferences.cpp > index 330ed4a09b54..b884591c9271 100644 > --- modules/libpref/Preferences.cpp > +++ modules/libpref/Preferences.cpp >-@@ -2920,7 +2920,7 @@ public: >+@@ -2637,7 +2637,7 @@ class AddPreferencesMemoryReporterRunnable : public Ru > >- } // namespace >+ } // namespace > > -// A list of prefs sent early from the parent, via the command line. > +// A list of prefs sent early from the parent, via shared memory. > static InfallibleTArray<dom::Pref>* gEarlyDomPrefs; > > /* static */ already_AddRefed<Preferences> >-@@ -3081,11 +3081,130 @@ NS_IMPL_ISUPPORTS(Preferences, >+@@ -2782,12 +2782,123 @@ Preferences::~Preferences() { >+ NS_IMPL_ISUPPORTS(Preferences, nsIPrefService, nsIObserver, nsIPrefBranch, > nsISupportsWeakReference) > >- /* static */ void >--Preferences::SetEarlyPreferences(const nsTArray<dom::Pref>* aDomPrefs) >-+Preferences::SerializeEarlyPreferences(nsCString& aStr) >-+{ >+-/* static */ void Preferences::SetEarlyPreferences( >+- const nsTArray<dom::Pref>* aDomPrefs) { >++/* static */ void Preferences::SerializeEarlyPreferences(nsCString& aStr) { > + MOZ_RELEASE_ASSERT(InitStaticMembers()); > + > + nsAutoCStringN<256> boolPrefs, intPrefs, stringPrefs; >@@ -711,17 +710,17 @@ index 330ed4a09b54..b884591c9271 100644 > + switch (pref->Type()) { > + case PrefType::Bool: > + boolPrefs.Append( >-+ nsPrintfCString("%u:%d|", i, Preferences::GetBool(prefName))); >++ nsPrintfCString("%u:%d|", i, Preferences::GetBool(prefName))); > + break; > + case PrefType::Int: > + intPrefs.Append( >-+ nsPrintfCString("%u:%d|", i, Preferences::GetInt(prefName))); >++ nsPrintfCString("%u:%d|", i, Preferences::GetInt(prefName))); > + break; > + case PrefType::String: { > + nsAutoCString value; > + Preferences::GetCString(prefName, value); > + stringPrefs.Append( >-+ nsPrintfCString("%u:%d;%s|", i, value.Length(), value.get())); >++ nsPrintfCString("%u:%d;%s|", i, value.Length(), value.get())); > + } break; > + case PrefType::None: > + break; >@@ -741,15 +740,14 @@ index 330ed4a09b54..b884591c9271 100644 > + aStr.Append('\0'); > +} > + >-+/* static */ void >-+Preferences::DeserializeEarlyPreferences(char* aStr, size_t aStrLen) >- { >++/* static */ void Preferences::DeserializeEarlyPreferences(char* aStr, >++ size_t aStrLen) { > MOZ_ASSERT(!XRE_IsParentProcess()); > > - gEarlyDomPrefs = new InfallibleTArray<dom::Pref>(mozilla::Move(*aDomPrefs)); > + MOZ_ASSERT(!gEarlyDomPrefs); > + gEarlyDomPrefs = new InfallibleTArray<dom::Pref>(); >-+ >+ > + char* p = aStr; > + > + // XXX: we assume these pref values are default values, which may not be >@@ -767,9 +765,7 @@ index 330ed4a09b54..b884591c9271 100644 > + MOZ_ASSERT(p[0] == '|'); > + p++; > + dom::Pref pref(nsCString(dom::ContentPrefs::GetEarlyPref(index)), >-+ /* isLocked */ false, >-+ value, >-+ dom::MaybePrefValue()); >++ /* isLocked */ false, value, dom::MaybePrefValue()); > + gEarlyDomPrefs->AppendElement(pref); > + } > + p++; >@@ -780,13 +776,11 @@ index 330ed4a09b54..b884591c9271 100644 > + MOZ_ASSERT(p[0] == ':'); > + p++; > + dom::MaybePrefValue value( >-+ dom::PrefValue(static_cast<int32_t>(strtol(p, &p, 10)))); >++ dom::PrefValue(static_cast<int32_t>(strtol(p, &p, 10)))); > + MOZ_ASSERT(p[0] == '|'); > + p++; > + dom::Pref pref(nsCString(dom::ContentPrefs::GetEarlyPref(index)), >-+ /* isLocked */ false, >-+ value, >-+ dom::MaybePrefValue()); >++ /* isLocked */ false, value, dom::MaybePrefValue()); > + gEarlyDomPrefs->AppendElement(pref); > + } > + p++; >@@ -801,9 +795,7 @@ index 330ed4a09b54..b884591c9271 100644 > + p++; > + dom::MaybePrefValue value(dom::PrefValue(nsCString(p, length))); > + dom::Pref pref(nsCString(dom::ContentPrefs::GetEarlyPref(index)), >-+ /* isLocked */ false, >-+ value, >-+ dom::MaybePrefValue()); >++ /* isLocked */ false, value, dom::MaybePrefValue()); > + gEarlyDomPrefs->AppendElement(pref); > + p += length + 1; > + MOZ_ASSERT(*(p - 1) == '|'); >@@ -815,25 +807,25 @@ index 330ed4a09b54..b884591c9271 100644 > + // We finished parsing on a '\0'. That should be the last char in the shared > + // memory. > + MOZ_ASSERT(aStr + aStrLen - 1 == p); >- >++ > #ifdef DEBUG > MOZ_ASSERT(gPhase == ContentProcessPhase::eNoPrefsSet); >-@@ -4298,15 +4417,6 @@ Preferences::HasUserValue(const char* aPrefName) >- return pref && pref->HasUserValue(); >- } >+ gPhase = ContentProcessPhase::eEarlyPrefsSet; >+@@ -3894,14 +4005,6 @@ static nsresult pref_ReadPrefFromJar(nsZipArchive* aJa > >--/* static */ bool >--Preferences::MustSendToContentProcesses(const char* aPrefName) >--{ >+ Pref* pref = pref_HashTableLookup(aPrefName); >+ return pref && pref->HasUserValue(); >+-} >+- >+-/* static */ bool Preferences::MustSendToContentProcesses( >+- const char* aPrefName) { > - NS_ENSURE_TRUE(InitStaticMembers(), false); > - > - Pref* pref = pref_HashTableLookup(aPrefName); > - return pref && pref->MustSendToContentProcesses(); >--} >-- >- /* static */ int32_t >- Preferences::GetType(const char* aPrefName) >- { >+ } >+ >+ /* static */ int32_t Preferences::GetType(const char* aPrefName) { > diff --git modules/libpref/Preferences.h modules/libpref/Preferences.h > index 1cb825ecbfe5..c149db62b525 100644 > --- modules/libpref/Preferences.h >@@ -848,9 +840,9 @@ index 1cb825ecbfe5..c149db62b525 100644 > +#endif > + > // Keep this in sync with PrefType in parser/src/lib.rs. >- enum class PrefValueKind : uint8_t >- { >-@@ -230,9 +235,6 @@ public: >+ enum class PrefValueKind : uint8_t { Default, User }; >+ >+@@ -191,9 +196,6 @@ class Preferences final : public nsIPrefService, > // Whether the pref has a user value or not. > static bool HasUserValue(const char* aPref); > >@@ -860,7 +852,7 @@ index 1cb825ecbfe5..c149db62b525 100644 > // Adds/Removes the observer for the root pref branch. See nsIPrefBranch.idl > // for details. > static nsresult AddStrongObserver(nsIObserver* aObserver, const char* aPref); >-@@ -328,11 +330,12 @@ public: >+@@ -277,11 +279,12 @@ class Preferences final : public nsIPrefService, > > // When a content process is created these methods are used to pass prefs in > // bulk from the parent process. "Early" preferences are ones that are needed >@@ -881,21 +873,23 @@ diff --git mozglue/android/APKOpen.cpp mozglue/android/APKOpen.cpp > index 5f1ef55b605e..b57192488725 100644 > --- mozglue/android/APKOpen.cpp > +++ mozglue/android/APKOpen.cpp >-@@ -392,7 +392,7 @@ FreeArgv(char** argv, int argc) >- } >- >+@@ -378,7 +378,8 @@ static void FreeArgv(char** argv, int argc) { > extern "C" APKOPEN_EXPORT void MOZ_JNICALL >--Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jobjectArray jargs, int ipcFd, int crashFd, int crashAnnotationFd) >-+Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jobjectArray jargs, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd) >- { >+ Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv* jenv, jclass jc, >+ jobjectArray jargs, >+- int ipcFd, int crashFd, >++ int prefsFd, int ipcFd, >++ int crashFd, >+ int crashAnnotationFd) { > int argc = 0; > char** argv = CreateArgvFromObjectArray(jenv, jargs, &argc); >-@@ -407,7 +407,7 @@ Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(JNIEnv *jenv, jclass jc, jo >+@@ -393,7 +394,8 @@ Java_org_mozilla_gecko_mozglue_GeckoLoader_nativeRun(J > gBootstrap->GeckoStart(jenv, argv, argc, sAppData); > ElfLoader::Singleton.ExpectShutdown(true); > } else { > - gBootstrap->XRE_SetAndroidChildFds(jenv, ipcFd, crashFd, crashAnnotationFd); >-+ gBootstrap->XRE_SetAndroidChildFds(jenv, prefsFd, ipcFd, crashFd, crashAnnotationFd); >++ gBootstrap->XRE_SetAndroidChildFds(jenv, prefsFd, ipcFd, crashFd, >++ crashAnnotationFd); > gBootstrap->XRE_SetProcessType(argv[argc - 1]); > > XREChildData childData; >@@ -903,14 +897,17 @@ diff --git toolkit/xre/Bootstrap.cpp toolkit/xre/Bootstrap.cpp > index 5688519822a9..7e857969a4fb 100644 > --- toolkit/xre/Bootstrap.cpp > +++ toolkit/xre/Bootstrap.cpp >-@@ -78,8 +78,8 @@ public: >+@@ -71,9 +71,11 @@ class BootstrapImpl final : public Bootstrap { > ::GeckoStart(aEnv, argv, argc, aAppData); > } > >-- virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) override { >+- virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aIPCFd, int aCrashFd, >++ virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aPrefsFd, int aIPCFd, >++ int aCrashFd, >+ int aCrashAnnotationFd) override { > - ::XRE_SetAndroidChildFds(aEnv, aIPCFd, aCrashFd, aCrashAnnotationFd); >-+ virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aPrefsFd, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) override { >-+ ::XRE_SetAndroidChildFds(aEnv, aPrefsFd, aIPCFd, aCrashFd, aCrashAnnotationFd); >++ ::XRE_SetAndroidChildFds(aEnv, aPrefsFd, aIPCFd, aCrashFd, >++ aCrashAnnotationFd); > } > #endif > >@@ -918,12 +915,14 @@ diff --git toolkit/xre/Bootstrap.h toolkit/xre/Bootstrap.h > index 686d0a38e324..77adcef80e1f 100644 > --- toolkit/xre/Bootstrap.h > +++ toolkit/xre/Bootstrap.h >-@@ -113,7 +113,7 @@ public: >- #ifdef MOZ_WIDGET_ANDROID >- virtual void GeckoStart(JNIEnv* aEnv, char** argv, int argc, const StaticXREAppData& aAppData) = 0; >- >-- virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) = 0; >-+ virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aPrefsFd, int aIPCFd, int aCrashFd, int aCrashAnnotationFd) = 0; >+@@ -112,8 +112,8 @@ class Bootstrap { >+ virtual void GeckoStart(JNIEnv* aEnv, char** argv, int argc, >+ const StaticXREAppData& aAppData) = 0; >+ >+- virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aIPCFd, int aCrashFd, >+- int aCrashAnnotationFd) = 0; >++ virtual void XRE_SetAndroidChildFds(JNIEnv* aEnv, int aPrefsFd, int aIPCFd, >++ int aCrashFd, int aCrashAnnotationFd) = 0; > #endif > > #ifdef LIBFUZZER >@@ -931,13 +930,13 @@ diff --git toolkit/xre/nsEmbedFunctions.cpp toolkit/xre/nsEmbedFunctions.cpp > index 53bd2bc2eb47..83184e97ba92 100644 > --- toolkit/xre/nsEmbedFunctions.cpp > +++ toolkit/xre/nsEmbedFunctions.cpp >-@@ -243,9 +243,10 @@ GeckoProcessType sChildProcessType = GeckoProcessType_Default; >+@@ -226,9 +226,10 @@ GeckoProcessType sChildProcessType = GeckoProcessType_ >+ } // namespace mozilla > > #if defined(MOZ_WIDGET_ANDROID) >- void >--XRE_SetAndroidChildFds (JNIEnv* env, int ipcFd, int crashFd, int crashAnnotationFd) >-+XRE_SetAndroidChildFds (JNIEnv* env, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd) >- { >+-void XRE_SetAndroidChildFds(JNIEnv* env, int ipcFd, int crashFd, >++void XRE_SetAndroidChildFds(JNIEnv* env, int prefsFd, int ipcFd, int crashFd, >+ int crashAnnotationFd) { > mozilla::jni::SetGeckoThreadEnv(env); > + mozilla::dom::SetPrefsFd(prefsFd); > IPC::Channel::SetClientChannelFd(ipcFd); >@@ -989,12 +988,13 @@ diff --git xpcom/build/nsXULAppAPI.h xpcom/build/nsXULAppAPI.h > index 94f6daf864c9..d6ac10d51d76 100644 > --- xpcom/build/nsXULAppAPI.h > +++ xpcom/build/nsXULAppAPI.h >-@@ -398,7 +398,7 @@ XRE_API(const char*, >+@@ -378,7 +378,8 @@ XRE_API(const char*, XRE_ChildProcessTypeToString, > > #if defined(MOZ_WIDGET_ANDROID) >- XRE_API(void, >-- XRE_SetAndroidChildFds, (JNIEnv* env, int ipcFd, int crashFd, int crashAnnotationFd)) >-+ XRE_SetAndroidChildFds, (JNIEnv* env, int prefsFd, int ipcFd, int crashFd, int crashAnnotationFd)) >- #endif // defined(MOZ_WIDGET_ANDROID) >+ XRE_API(void, XRE_SetAndroidChildFds, >+- (JNIEnv * env, int ipcFd, int crashFd, int crashAnnotationFd)) >++ (JNIEnv * env, int prefsFd, int ipcFd, int crashFd, >++ int crashAnnotationFd)) >+ #endif // defined(MOZ_WIDGET_ANDROID) > >- XRE_API(void, >+ XRE_API(void, XRE_SetProcessType, (const char* aProcessTypeString)) >diff --git a/mail/thunderbird/files/patch-bug1442583 b/mail/thunderbird/files/patch-bug1442583 >index ca2aa7057396..902a5f268283 100644 >--- a/mail/thunderbird/files/patch-bug1442583 >+++ b/mail/thunderbird/files/patch-bug1442583 >@@ -21,19 +21,23 @@ index e763a9d68dc17..8a6d50b6a7845 100644 > > #include "gc/Memory.h" > +#ifdef JS_CODEGEN_ARM64 >-+# include "jit/arm64/vixl/Cpu-vixl.h" >++#include "jit/arm64/vixl/Cpu-vixl.h" > +#endif > #include "threading/LockGuard.h" > #include "threading/Mutex.h" > #include "util/Windows.h" >-@@ -621,6 +624,10 @@ js::jit::DeallocateExecutableMemory(void* addr, size_t bytes) >- bool >- js::jit::InitProcessExecutableMemory() >- { >+@@ -574,7 +577,13 @@ void js::jit::DeallocateExecutableMemory(void* addr, s >+ execMemory.deallocate(addr, bytes, /* decommit = */ true); >+ } >+ >+-bool js::jit::InitProcessExecutableMemory() { return execMemory.init(); } >++bool js::jit::InitProcessExecutableMemory() { > +#ifdef JS_CODEGEN_ARM64 >-+ // Initialize instruction cache flushing. >-+ vixl::CPU::SetUp(); >++ // Initialize instruction cache flushing. >++ vixl::CPU::SetUp(); > +#endif >- return execMemory.init(); >- } >++ return execMemory.init(); >++} >+ >+ void js::jit::ReleaseProcessExecutableMemory() { execMemory.release(); } > >diff --git a/mail/thunderbird/files/patch-bug1447359 b/mail/thunderbird/files/patch-bug1447359 >index 8116d9aece4f..e99792bfef47 100644 >--- a/mail/thunderbird/files/patch-bug1447359 >+++ b/mail/thunderbird/files/patch-bug1447359 >@@ -15,31 +15,31 @@ diff --git js/src/jit/arm64/MacroAssembler-arm64-inl.h js/src/jit/arm64/MacroAss > index 7061cbfd93ebb..190442f7afa0a 100644 > --- js/src/jit/arm64/MacroAssembler-arm64-inl.h > +++ js/src/jit/arm64/MacroAssembler-arm64-inl.h >-@@ -359,6 +359,7 @@ MacroAssembler::sub32FromStackPtrWithPatch(Register dest) >- { >- vixl::UseScratchRegisterScope temps(this); >- const ARMRegister scratch = temps.AcquireX(); >-+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 3); >- CodeOffset offs = CodeOffset(currentOffset()); >- movz(scratch, 0, 0); >- movk(scratch, 0, 16); >+@@ -268,6 +268,7 @@ void MacroAssembler::add64(Imm64 imm, Register64 dest) >+ CodeOffset MacroAssembler::sub32FromStackPtrWithPatch(Register dest) { >+ vixl::UseScratchRegisterScope temps(this); >+ const ARMRegister scratch = temps.AcquireX(); >++ AutoForbidPools afp(this, /* max number of instructions in scope = */ 3); >+ CodeOffset offs = CodeOffset(currentOffset()); >+ movz(scratch, 0, 0); >+ movk(scratch, 0, 16); > diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssembler-arm64.cpp > index 7b599b7e9d610..4e8fdb6a67019 100644 > --- js/src/jit/arm64/MacroAssembler-arm64.cpp > +++ js/src/jit/arm64/MacroAssembler-arm64.cpp >-@@ -707,6 +707,7 @@ MacroAssembler::patchFarJump(CodeOffset farJump, uint32_t targetOffset) >- CodeOffset >- MacroAssembler::nopPatchableToCall(const wasm::CallSiteDesc& desc) >- { >-+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1); >- CodeOffset offset(currentOffset()); >- Nop(); >- append(desc, CodeOffset(currentOffset())); >-@@ -1077,6 +1078,7 @@ MacroAssembler::comment(const char* msg) >- CodeOffset >- MacroAssembler::wasmTrapInstruction() >- { >-+ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1); >- CodeOffset offs(currentOffset()); >- Unreachable(); >- return offs; >+@@ -666,6 +666,7 @@ void MacroAssembler::patchNearJumpToNop(uint8_t* jump) >+ } >+ >+ CodeOffset MacroAssembler::nopPatchableToCall(const wasm::CallSiteDesc& desc) { >++ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1); >+ CodeOffset offset(currentOffset()); >+ Nop(); >+ append(desc, CodeOffset(currentOffset())); >+@@ -1002,6 +1003,7 @@ void MacroAssembler::comment(const char* msg) { Assemb >+ // wasm support >+ >+ CodeOffset MacroAssembler::wasmTrapInstruction() { >++ AutoForbidPools afp(this, /* max number of instructions in scope = */ 1); >+ CodeOffset offs(currentOffset()); >+ Unreachable(); >+ return offs; >diff --git a/mail/thunderbird/files/patch-bug1451292 b/mail/thunderbird/files/patch-bug1451292 >index b318ab619bb0..54e30883f3e3 100644 >--- a/mail/thunderbird/files/patch-bug1451292 >+++ b/mail/thunderbird/files/patch-bug1451292 >@@ -19,15 +19,15 @@ diff --git js/src/jit/arm64/MacroAssembler-arm64.cpp js/src/jit/arm64/MacroAssem > index 4ea64b1225d00..a212de0ec2f45 100644 > --- js/src/jit/arm64/MacroAssembler-arm64.cpp > +++ js/src/jit/arm64/MacroAssembler-arm64.cpp >-@@ -237,8 +237,9 @@ MacroAssemblerCompat::profilerEnterFrame(RegisterOrSP framePtr, Register scratch >- void >- MacroAssemblerCompat::breakpoint() >- { >-- static int code = 0xA77; >-- Brk((code++) & 0xffff); >-+ // Note, other payloads are possible, but GDB is known to misinterpret them >-+ // sometimes and iloop on the breakpoint instead of stopping properly. >-+ Brk(0); >+@@ -249,8 +249,9 @@ void MacroAssemblerCompat::profilerEnterFrame(Register >+ } >+ >+ void MacroAssemblerCompat::breakpoint() { >+- static int code = 0xA77; >+- Brk((code++) & 0xffff); >++ // Note, other payloads are possible, but GDB is known to misinterpret them >++ // sometimes and iloop on the breakpoint instead of stopping properly. >++ Brk(0); > } > > // Either `any` is valid or `sixtyfour` is valid. Return a 32-bit ARMRegister >diff --git a/mail/thunderbird/files/patch-bug1456556 b/mail/thunderbird/files/patch-bug1456556 >index 4b2ccb7e1ffc..d7f3b4f690c5 100644 >--- a/mail/thunderbird/files/patch-bug1456556 >+++ b/mail/thunderbird/files/patch-bug1456556 >@@ -11,12 +11,12 @@ diff --git dom/fetch/FetchConsumer.cpp dom/fetch/FetchConsumer.cpp > index 134bf7f2e703a..3c3687fea1d5a 100644 > --- dom/fetch/FetchConsumer.cpp > +++ dom/fetch/FetchConsumer.cpp >-@@ -582,7 +582,7 @@ FetchBodyConsumer<Derived>::ContinueConsumeBody(nsresult aStatus, >- RefPtr<Promise> localPromise = mConsumePromise.forget(); >+@@ -560,7 +560,7 @@ void FetchBodyConsumer<Derived>::ContinueConsumeBody(n > > RefPtr<FetchBodyConsumer<Derived>> self = this; >-- auto autoReleaseObject = mozilla::MakeScopeExit([&] { >-+ auto autoReleaseObject = mozilla::MakeScopeExit([self] { >- self->ReleaseObject(); >- }); >+ auto autoReleaseObject = >+- mozilla::MakeScopeExit([&] { self->ReleaseObject(); }); >++ mozilla::MakeScopeExit([self] { self->ReleaseObject(); }); > >+ if (aShuttingDown) { >+ // If shutting down, we don't want to resolve any promise. >diff --git a/mail/thunderbird/files/patch-bug1500850 b/mail/thunderbird/files/patch-bug1500850 >deleted file mode 100644 >index 906d91a5d8ab..000000000000 >--- a/mail/thunderbird/files/patch-bug1500850 >+++ /dev/null >@@ -1,26 +0,0 @@ >-commit 4425b9140c4c >-Author: Martin Stransky <stransky@redhat.com> >-Date: Mon Oct 22 09:14:07 2018 +0000 >- >- Bug 1500850 - [Wayland] Add missing dbus header dbus-glib-lowlevel.h. r=jhorak, a=RyanVM >- >- Differential Revision: https://phabricator.services.mozilla.com/D9365 >- >- --HG-- >- extra : source : 5203edd6ea29e4b73681674d2a5268dd6a310102 >---- >- widget/xremoteclient/DBusRemoteClient.cpp | 1 + >- 1 file changed, 1 insertion(+) >- >-diff --git widget/xremoteclient/DBusRemoteClient.cpp widget/xremoteclient/DBusRemoteClient.cpp >-index ba5bda06201d..b2f03dccc133 100644 >---- widget/xremoteclient/DBusRemoteClient.cpp >-+++ widget/xremoteclient/DBusRemoteClient.cpp >-@@ -13,6 +13,7 @@ >- #include "nsPrintfCString.h" >- >- #include <dlfcn.h> >-+#include <dbus/dbus-glib-lowlevel.h> >- >- using mozilla::LogLevel; >- static mozilla::LazyLogModule sRemoteLm("DBusRemoteClient"); >diff --git a/mail/thunderbird/files/patch-z-bug1436911 b/mail/thunderbird/files/patch-z-bug1436911 >index 22556194a653..c60f388ca00e 100644 >--- a/mail/thunderbird/files/patch-z-bug1436911 >+++ b/mail/thunderbird/files/patch-z-bug1436911 >@@ -38,10 +38,10 @@ diff --git dom/ipc/ContentChild.cpp dom/ipc/ContentChild.cpp > index f61ab07b81e2..af1ef9cf4c7e 100644 > --- dom/ipc/ContentChild.cpp > +++ dom/ipc/ContentChild.cpp >-@@ -1185,8 +1185,6 @@ void >- ContentChild::InitXPCOM(const XPCOMInitData& aXPCOMInit, >- const mozilla::dom::ipc::StructuredCloneData& aInitialData) >- { >+@@ -1094,8 +1094,6 @@ void ContentChild::InitGraphicsDeviceData(const Conten >+ void ContentChild::InitXPCOM( >+ const XPCOMInitData& aXPCOMInit, >+ const mozilla::dom::ipc::StructuredCloneData& aInitialData) { > - Preferences::SetLatePreferences(&aXPCOMInit.prefs()); > - > // Do this as early as possible to get the parent process to initialize the >@@ -59,7 +59,7 @@ index 208bb47a970b..4ce5c6bf23d5 100644 > #include "mozilla/Sprintf.h" > > #ifdef MOZ_WEBRTC >-@@ -2009,7 +2008,7 @@ ContentParent::LaunchSubprocess(ProcessPriority aInitialPriority /* = PROCESS_PR >+@@ -1863,7 +1862,7 @@ bool ContentParent::LaunchSubprocess( > > // Serialize the early prefs. > nsAutoCStringN<1024> prefs; >@@ -68,7 +68,7 @@ index 208bb47a970b..4ce5c6bf23d5 100644 > > // Set up the shared memory. > base::SharedMemory shm; >-@@ -2228,7 +2227,6 @@ ContentParent::InitInternal(ProcessPriority aInitialPriority) >+@@ -2034,7 +2033,6 @@ void ContentParent::InitInternal(ProcessPriority aInit > > XPCOMInitData xpcomInit; > >@@ -81,7 +81,7 @@ deleted file mode 100644 > index 808b797d9bee..000000000000 > --- dom/ipc/ContentPrefs.cpp > +++ /dev/null >-@@ -1,362 +0,0 @@ >+@@ -1,360 +0,0 @@ > -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ > -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ > -/* This Source Code Form is subject to the terms of the Mozilla Public >@@ -103,344 +103,342 @@ index 808b797d9bee..000000000000 > - ******************************************************************************/ > - > -const char* mozilla::dom::ContentPrefs::gEarlyPrefs[] = { >-- "accessibility.monoaudio.enable", >-- "accessibility.mouse_focuses_formcontrol", >-- "accessibility.tabfocus_applies_to_xul", >-- "app.update.channel", >-- "browser.autofocus", >-- "browser.dom.window.dump.enabled", >-- "browser.sessionhistory.max_entries", >-- "browser.sessionhistory.max_total_viewers", >+- "accessibility.monoaudio.enable", >+- "accessibility.mouse_focuses_formcontrol", >+- "accessibility.tabfocus_applies_to_xul", >+- "app.update.channel", >+- "browser.autofocus", >+- "browser.dom.window.dump.enabled", >+- "browser.sessionhistory.max_entries", >+- "browser.sessionhistory.max_total_viewers", > -#if defined(NIGHTLY_BUILD) || defined(DEBUG) >-- "browser.startup.record", >+- "browser.startup.record", > -#endif > -#if defined(ANDROID) >-- "consoleservice.logcat", >+- "consoleservice.logcat", > -#endif >-- "content.cors.disable", >-- "content.cors.no_private_data", >-- "content.notify.backoffcount", >-- "content.notify.interval", >-- "content.notify.ontimer", >-- "content.sink.enable_perf_mode", >-- "content.sink.event_probe_rate", >-- "content.sink.initial_perf_time", >-- "content.sink.interactive_deflect_count", >-- "content.sink.interactive_parse_time", >-- "content.sink.interactive_time", >-- "content.sink.pending_event_mode", >-- "content.sink.perf_deflect_count", >-- "content.sink.perf_parse_time", >-- "device.storage.prompt.testing", >-- "device.storage.writable.name", >-- "devtools.enabled", >-- "dom.allow_XUL_XBL_for_file", >-- "dom.allow_cut_copy", >-- "dom.animations-api.core.enabled", >-- "dom.animations-api.element-animate.enabled", >-- "dom.animations-api.pending-member.enabled", >-- "dom.enable_frame_timing", >-- "dom.enable_performance", >-- "dom.enable_performance_navigation_timing", >-- "dom.enable_resource_timing", >-- "dom.event.handling-user-input-time-limit", >-- "dom.event.touch.coalescing.enabled", >-- "dom.forms.autocomplete.formautofill", >-- "dom.forms.inputmode", >-- "dom.input.skip_cursor_move_for_same_value_set", >-- "dom.ipc.processPriorityManager.backgroundGracePeriodMS", >-- "dom.ipc.processPriorityManager.backgroundPerceivableGracePeriodMS", >-- "dom.ipc.useNativeEventProcessing.content", >-- "dom.max_chrome_script_run_time", >-- "dom.max_ext_content_script_run_time", >-- "dom.max_script_run_time", >-- "dom.mozBrowserFramesEnabled", >-- "dom.performance.enable_notify_performance_timing", >-- "dom.performance.enable_user_timing_logging", >-- "dom.placeholder.show_on_focus", >-- "dom.requestIdleCallback.enabled", >-- "dom.script_loader.bytecode_cache.enabled", >-- "dom.script_loader.bytecode_cache.strategy", >-- "dom.storage.testing", >-- "dom.url.encode_decode_hash", >-- "dom.url.getters_decode_hash", >-- "dom.use_watchdog", >-- "dom.vibrator.enabled", >-- "dom.vibrator.max_vibrate_list_len", >-- "dom.vibrator.max_vibrate_ms", >-- "dom.webcomponents.customelements.enabled", >-- "dom.webcomponents.shadowdom.enabled", >-- "focusmanager.testmode", >-- "font.size.inflation.disabledInMasterProcess", >-- "font.size.inflation.emPerLine", >-- "font.size.inflation.forceEnabled", >-- "font.size.inflation.lineThreshold", >-- "font.size.inflation.mappingIntercept", >-- "font.size.inflation.maxRatio", >-- "font.size.inflation.minTwips", >-- "font.size.systemFontScale", >-- "full-screen-api.allow-trusted-requests-only", >-- "full-screen-api.enabled", >-- "full-screen-api.unprefix.enabled", >+- "content.cors.disable", >+- "content.cors.no_private_data", >+- "content.notify.backoffcount", >+- "content.notify.interval", >+- "content.notify.ontimer", >+- "content.sink.enable_perf_mode", >+- "content.sink.event_probe_rate", >+- "content.sink.initial_perf_time", >+- "content.sink.interactive_deflect_count", >+- "content.sink.interactive_parse_time", >+- "content.sink.interactive_time", >+- "content.sink.pending_event_mode", >+- "content.sink.perf_deflect_count", >+- "content.sink.perf_parse_time", >+- "device.storage.prompt.testing", >+- "device.storage.writable.name", >+- "devtools.enabled", >+- "dom.allow_XUL_XBL_for_file", >+- "dom.allow_cut_copy", >+- "dom.animations-api.core.enabled", >+- "dom.animations-api.element-animate.enabled", >+- "dom.animations-api.pending-member.enabled", >+- "dom.enable_frame_timing", >+- "dom.enable_performance", >+- "dom.enable_performance_navigation_timing", >+- "dom.enable_resource_timing", >+- "dom.event.handling-user-input-time-limit", >+- "dom.event.touch.coalescing.enabled", >+- "dom.forms.autocomplete.formautofill", >+- "dom.forms.inputmode", >+- "dom.input.skip_cursor_move_for_same_value_set", >+- "dom.ipc.processPriorityManager.backgroundGracePeriodMS", >+- "dom.ipc.processPriorityManager.backgroundPerceivableGracePeriodMS", >+- "dom.ipc.useNativeEventProcessing.content", >+- "dom.max_chrome_script_run_time", >+- "dom.max_ext_content_script_run_time", >+- "dom.max_script_run_time", >+- "dom.mozBrowserFramesEnabled", >+- "dom.performance.enable_notify_performance_timing", >+- "dom.performance.enable_user_timing_logging", >+- "dom.placeholder.show_on_focus", >+- "dom.requestIdleCallback.enabled", >+- "dom.script_loader.bytecode_cache.enabled", >+- "dom.script_loader.bytecode_cache.strategy", >+- "dom.storage.testing", >+- "dom.url.encode_decode_hash", >+- "dom.url.getters_decode_hash", >+- "dom.use_watchdog", >+- "dom.vibrator.enabled", >+- "dom.vibrator.max_vibrate_list_len", >+- "dom.vibrator.max_vibrate_ms", >+- "dom.webcomponents.customelements.enabled", >+- "dom.webcomponents.shadowdom.enabled", >+- "focusmanager.testmode", >+- "font.size.inflation.disabledInMasterProcess", >+- "font.size.inflation.emPerLine", >+- "font.size.inflation.forceEnabled", >+- "font.size.inflation.lineThreshold", >+- "font.size.inflation.mappingIntercept", >+- "font.size.inflation.maxRatio", >+- "font.size.inflation.minTwips", >+- "font.size.systemFontScale", >+- "full-screen-api.allow-trusted-requests-only", >+- "full-screen-api.enabled", >+- "full-screen-api.unprefix.enabled", > -#ifdef FUZZING >-- "fuzzing.enabled", >+- "fuzzing.enabled", > -#endif >-- "gfx.font_rendering.opentype_svg.enabled", >-- "hangmonitor.timeout", >-- "html5.flushtimer.initialdelay", >-- "html5.flushtimer.subsequentdelay", >-- "html5.offmainthread", >-- "intl.charset.fallback.tld", >-- "intl.charset.fallback.utf8_for_file", >-- "intl.ime.hack.on_ime_unaware_apps.fire_key_events_for_composition", >-- "javascript.enabled", >-- "javascript.options.array_prototype_values", >-- "javascript.options.asmjs", >-- "javascript.options.asyncstack", >-- "javascript.options.baselinejit", >-- "javascript.options.baselinejit.threshold", >-- "javascript.options.baselinejit.unsafe_eager_compilation", >-- "javascript.options.discardSystemSource", >-- "javascript.options.dump_stack_on_debuggee_would_run", >-- "javascript.options.gczeal", >-- "javascript.options.gczeal.frequency", >-- "javascript.options.ion", >-- "javascript.options.ion.offthread_compilation", >-- "javascript.options.ion.threshold", >-- "javascript.options.ion.unsafe_eager_compilation", >-- "javascript.options.jit.full_debug_checks", >-- "javascript.options.native_regexp", >-- "javascript.options.parallel_parsing", >-- "javascript.options.shared_memory", >-- "javascript.options.spectre.index_masking", >-- "javascript.options.spectre.jit_to_C++_calls", >-- "javascript.options.spectre.object_mitigations.barriers", >-- "javascript.options.spectre.object_mitigations.misc", >-- "javascript.options.spectre.string_mitigations", >-- "javascript.options.spectre.value_masking", >-- "javascript.options.streams", >-- "javascript.options.strict", >-- "javascript.options.strict.debug", >-- "javascript.options.throw_on_asmjs_validation_failure", >-- "javascript.options.throw_on_debuggee_would_run", >-- "javascript.options.wasm", >-- "javascript.options.wasm_baselinejit", >-- "javascript.options.wasm_ionjit", >-- "javascript.options.werror", >-- "javascript.use_us_english_locale", >-- "jsloader.shareGlobal", >-- "layout.css.all-shorthand.enabled", >-- "layout.css.background-blend-mode.enabled", >-- "layout.css.box-decoration-break.enabled", >-- "layout.css.color-adjust.enabled", >-- "layout.css.column-span.enabled", >-- "layout.css.contain.enabled", >-- "layout.css.control-characters.visible", >-- "layout.css.emulate-moz-box-with-flex", >-- "layout.css.expensive-style-struct-assertions.enabled", >-- "layout.css.float-logical-values.enabled", >-- "layout.css.font-display.enabled", >-- "layout.css.font-variations.enabled", >-- "layout.css.frames-timing.enabled", >-- "layout.css.getBoxQuads.enabled", >-- "layout.css.grid-template-subgrid-value.enabled", >-- "layout.css.grid.enabled", >-- "layout.css.image-orientation.enabled", >-- "layout.css.individual-transform.enabled", >-- "layout.css.initial-letter.enabled", >-- "layout.css.isolation.enabled", >-- "layout.css.mix-blend-mode.enabled", >-- "layout.css.moz-document.content.enabled", >-- "layout.css.osx-font-smoothing.enabled", >-- "layout.css.overflow-clip-box.enabled", >-- "layout.css.overscroll-behavior.enabled", >-- "layout.css.prefixes.animations", >-- "layout.css.prefixes.border-image", >-- "layout.css.prefixes.box-sizing", >-- "layout.css.prefixes.device-pixel-ratio-webkit", >-- "layout.css.prefixes.font-features", >-- "layout.css.prefixes.gradients", >-- "layout.css.prefixes.transforms", >-- "layout.css.prefixes.transitions", >-- "layout.css.prefixes.webkit", >-- "layout.css.scope-pseudo.enabled", >-- "layout.css.scoped-style.enabled", >-- "layout.css.scroll-behavior.property-enabled", >-- "layout.css.scroll-snap.enabled", >+- "gfx.font_rendering.opentype_svg.enabled", >+- "hangmonitor.timeout", >+- "html5.flushtimer.initialdelay", >+- "html5.flushtimer.subsequentdelay", >+- "html5.offmainthread", >+- "intl.charset.fallback.tld", >+- "intl.charset.fallback.utf8_for_file", >+- "intl.ime.hack.on_ime_unaware_apps.fire_key_events_for_composition", >+- "javascript.enabled", >+- "javascript.options.array_prototype_values", >+- "javascript.options.asmjs", >+- "javascript.options.asyncstack", >+- "javascript.options.baselinejit", >+- "javascript.options.baselinejit.threshold", >+- "javascript.options.baselinejit.unsafe_eager_compilation", >+- "javascript.options.discardSystemSource", >+- "javascript.options.dump_stack_on_debuggee_would_run", >+- "javascript.options.gczeal", >+- "javascript.options.gczeal.frequency", >+- "javascript.options.ion", >+- "javascript.options.ion.offthread_compilation", >+- "javascript.options.ion.threshold", >+- "javascript.options.ion.unsafe_eager_compilation", >+- "javascript.options.jit.full_debug_checks", >+- "javascript.options.native_regexp", >+- "javascript.options.parallel_parsing", >+- "javascript.options.shared_memory", >+- "javascript.options.spectre.index_masking", >+- "javascript.options.spectre.jit_to_C++_calls", >+- "javascript.options.spectre.object_mitigations.barriers", >+- "javascript.options.spectre.object_mitigations.misc", >+- "javascript.options.spectre.string_mitigations", >+- "javascript.options.spectre.value_masking", >+- "javascript.options.streams", >+- "javascript.options.strict", >+- "javascript.options.strict.debug", >+- "javascript.options.throw_on_asmjs_validation_failure", >+- "javascript.options.throw_on_debuggee_would_run", >+- "javascript.options.wasm", >+- "javascript.options.wasm_baselinejit", >+- "javascript.options.wasm_ionjit", >+- "javascript.options.werror", >+- "javascript.use_us_english_locale", >+- "jsloader.shareGlobal", >+- "layout.css.all-shorthand.enabled", >+- "layout.css.background-blend-mode.enabled", >+- "layout.css.box-decoration-break.enabled", >+- "layout.css.color-adjust.enabled", >+- "layout.css.column-span.enabled", >+- "layout.css.contain.enabled", >+- "layout.css.control-characters.visible", >+- "layout.css.emulate-moz-box-with-flex", >+- "layout.css.expensive-style-struct-assertions.enabled", >+- "layout.css.float-logical-values.enabled", >+- "layout.css.font-display.enabled", >+- "layout.css.font-variations.enabled", >+- "layout.css.frames-timing.enabled", >+- "layout.css.getBoxQuads.enabled", >+- "layout.css.grid-template-subgrid-value.enabled", >+- "layout.css.grid.enabled", >+- "layout.css.image-orientation.enabled", >+- "layout.css.individual-transform.enabled", >+- "layout.css.initial-letter.enabled", >+- "layout.css.isolation.enabled", >+- "layout.css.mix-blend-mode.enabled", >+- "layout.css.moz-document.content.enabled", >+- "layout.css.osx-font-smoothing.enabled", >+- "layout.css.overflow-clip-box.enabled", >+- "layout.css.overscroll-behavior.enabled", >+- "layout.css.prefixes.animations", >+- "layout.css.prefixes.border-image", >+- "layout.css.prefixes.box-sizing", >+- "layout.css.prefixes.device-pixel-ratio-webkit", >+- "layout.css.prefixes.font-features", >+- "layout.css.prefixes.gradients", >+- "layout.css.prefixes.transforms", >+- "layout.css.prefixes.transitions", >+- "layout.css.prefixes.webkit", >+- "layout.css.scope-pseudo.enabled", >+- "layout.css.scoped-style.enabled", >+- "layout.css.scroll-behavior.property-enabled", >+- "layout.css.scroll-snap.enabled", > -#ifdef MOZ_STYLO >-- "layout.css.servo.chrome.enabled", >-- "layout.css.servo.enabled", >+- "layout.css.servo.chrome.enabled", >+- "layout.css.servo.enabled", > -#endif >-- "layout.css.shape-outside.enabled", >-- "layout.css.text-align-unsafe-value.enabled", >-- "layout.css.text-combine-upright-digits.enabled", >-- "layout.css.text-combine-upright.enabled", >-- "layout.css.text-justify.enabled", >-- "layout.css.touch_action.enabled", >-- "layout.css.visited_links_enabled", >-- "layout.idle_period.required_quiescent_frames", >-- "layout.idle_period.time_limit", >-- "layout.interruptible-reflow.enabled", >-- "mathml.disabled", >-- "media.audio-max-decode-error", >-- "media.cache_readahead_limit", >-- "media.cache_resume_threshold", >-- "media.cache_size", >-- "media.clearkey.persistent-license.enabled", >-- "media.cubeb.backend", >-- "media.cubeb.sandbox", >-- "media.cubeb_latency_msg_frames", >-- "media.cubeb_latency_playback_ms", >-- "media.decoder-doctor.wmf-disabled-is-failure", >-- "media.decoder.recycle.enabled", >-- "media.decoder.skip-to-next-key-frame.enabled", >-- "media.dormant-on-pause-timeout-ms", >-- "media.eme.audio.blank", >-- "media.eme.chromium-api.video-shmems", >-- "media.eme.enabled", >-- "media.eme.video.blank", >-- "media.ffmpeg.enabled", >-- "media.ffmpeg.low-latency.enabled", >-- "media.ffvpx.enabled", >-- "media.ffvpx.low-latency.enabled", >-- "media.flac.enabled", >-- "media.forcestereo.enabled", >-- "media.gmp.decoder.enabled", >-- "media.gmp.insecure.allow", >-- "media.gpu-process-decoder", >-- "media.hls.enabled", >-- "media.libavcodec.allow-obsolete", >-- "media.memory_cache_max_size", >-- "media.memory_caches_combined_limit_kb", >-- "media.memory_caches_combined_limit_pc_sysmem", >-- "media.mp4.enabled", >-- "media.navigator.mediadatadecoder_enabled", >-- "media.ogg.enabled", >-- "media.ogg.flac.enabled", >-- "media.playback.warnings-as-errors", >-- "media.playback.warnings-as-errors.stagefright-vs-rust", >-- "media.resampling.enabled", >-- "media.resume-bkgnd-video-on-tabhover", >-- "media.ruin-av-sync.enabled", >-- "media.rust.mp4parser", >-- "media.rust.test_mode", >-- "media.seamless-looping", >-- "media.suspend-bkgnd-video.delay-ms", >-- "media.suspend-bkgnd-video.enabled", >-- "media.use-blank-decoder", >-- "media.video-max-decode-error", >-- "media.video_stats.enabled", >-- "media.videocontrols.lock-video-orientation", >-- "media.volume_scale", >-- "media.webspeech.recognition.enable", >-- "media.webspeech.recognition.force_enable", >-- "media.webspeech.synth.force_global_queue", >-- "media.webspeech.test.enable", >-- "media.webspeech.test.fake_fsm_events", >-- "media.webspeech.test.fake_recognition_service", >-- "media.wmf.allow-unsupported-resolutions", >-- "media.wmf.enabled", >-- "media.wmf.skip-blacklist", >-- "media.wmf.vp9.enabled", >-- "network.IDN.blacklist_chars", >-- "network.IDN.restriction_profile", >-- "network.IDN.use_whitelist", >-- "network.IDN_show_punycode", >-- "network.buffer.cache.count", >-- "network.buffer.cache.size", >-- "network.captive-portal-service.enabled", >-- "network.cookie.cookieBehavior", >-- "network.cookie.lifetimePolicy", >-- "network.dns.disablePrefetch", >-- "network.dns.disablePrefetchFromHTTPS", >-- "network.file.disable_unc_paths", >-- "network.file.path_blacklist", >-- "network.http.tailing.enabled", >-- "network.jar.block-remote-files", >-- "network.loadinfo.skip_type_assertion", >-- "network.notify.changed", >-- "network.offline-mirrors-connectivity", >-- "network.protocol-handler.external.jar", >-- "network.proxy.type", >-- "network.security.ports.banned", >-- "network.security.ports.banned.override", >-- "network.standard-url.enable-rust", >-- "network.standard-url.max-length", >-- "network.standard-url.punycode-host", >-- "network.sts.max_time_for_events_between_two_polls", >-- "network.sts.max_time_for_pr_close_during_shutdown", >-- "network.tcp.keepalive.enabled", >-- "network.tcp.keepalive.idle_time", >-- "network.tcp.keepalive.probe_count", >-- "network.tcp.keepalive.retry_interval", >-- "network.tcp.sendbuffer", >-- "nglayout.debug.invalidation", >-- "privacy.donottrackheader.enabled", >-- "privacy.firstparty.isolate", >-- "privacy.firstparty.isolate.restrict_opener_access", >-- "privacy.reduceTimerPrecision", >-- "privacy.resistFingerprinting", >-- "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts", >-- "privacy.resistFingerprinting.reduceTimerPrecision.jitter", >-- "privacy.resistFingerprinting.reduceTimerPrecision.microseconds", >-- "privacy.resistFingerprinting.target_video_res", >-- "privacy.resistFingerprinting.video_dropped_ratio", >-- "privacy.resistFingerprinting.video_frames_per_sec", >-- "privacy.trackingprotection.lower_network_priority", >-- "privacy.window.maxInnerHeight", >-- "privacy.window.maxInnerWidth", >-- "security.csp.enable", >-- "security.data_uri.block_toplevel_data_uri_navigations", >-- "security.data_uri.unique_opaque_origin", >-- "security.fileuri.strict_origin_policy", >-- "security.mixed_content.block_active_content", >-- "security.mixed_content.block_display_content", >-- "security.mixed_content.block_object_subrequest", >-- "security.mixed_content.hsts_priming_cache_timeout", >-- "security.mixed_content.send_hsts_priming", >-- "security.mixed_content.upgrade_display_content", >-- "security.mixed_content.use_hsts", >-- "security.sandbox.content.level", >-- "security.sandbox.content.tempDirSuffix", >-- "security.sandbox.logging.enabled", >-- "security.sandbox.mac.track.violations", >-- "security.sandbox.windows.log.stackTraceDepth", >-- "svg.disabled", >-- "svg.display-lists.hit-testing.enabled", >-- "svg.display-lists.painting.enabled", >-- "svg.new-getBBox.enabled", >-- "svg.path-caching.enabled", >-- "svg.transform-box.enabled", >-- "toolkit.asyncshutdown.crash_timeout", >-- "toolkit.asyncshutdown.log", >-- "toolkit.osfile.log", >-- "toolkit.osfile.log.redirect", >-- "toolkit.telemetry.enabled", >-- "toolkit.telemetry.idleTimeout", >-- "toolkit.telemetry.initDelay", >-- "toolkit.telemetry.log.dump", >-- "toolkit.telemetry.log.level", >-- "toolkit.telemetry.minSubsessionLength", >-- "toolkit.telemetry.scheduler.idleTickInterval", >-- "toolkit.telemetry.scheduler.tickInterval", >-- "toolkit.telemetry.testing.overridePreRelease", >-- "toolkit.telemetry.unified", >-- "ui.key.menuAccessKeyFocuses", >-- "ui.popup.disable_autohide", >-- "ui.use_activity_cursor", >-- "view_source.editor.external", >-- "zoom.maxPercent", >-- "zoom.minPercent" >--}; >+- "layout.css.shape-outside.enabled", >+- "layout.css.text-align-unsafe-value.enabled", >+- "layout.css.text-combine-upright-digits.enabled", >+- "layout.css.text-combine-upright.enabled", >+- "layout.css.text-justify.enabled", >+- "layout.css.touch_action.enabled", >+- "layout.css.visited_links_enabled", >+- "layout.idle_period.required_quiescent_frames", >+- "layout.idle_period.time_limit", >+- "layout.interruptible-reflow.enabled", >+- "mathml.disabled", >+- "media.audio-max-decode-error", >+- "media.cache_readahead_limit", >+- "media.cache_resume_threshold", >+- "media.cache_size", >+- "media.clearkey.persistent-license.enabled", >+- "media.cubeb.backend", >+- "media.cubeb.sandbox", >+- "media.cubeb_latency_msg_frames", >+- "media.cubeb_latency_playback_ms", >+- "media.decoder-doctor.wmf-disabled-is-failure", >+- "media.decoder.recycle.enabled", >+- "media.decoder.skip-to-next-key-frame.enabled", >+- "media.dormant-on-pause-timeout-ms", >+- "media.eme.audio.blank", >+- "media.eme.chromium-api.video-shmems", >+- "media.eme.enabled", >+- "media.eme.video.blank", >+- "media.ffmpeg.enabled", >+- "media.ffmpeg.low-latency.enabled", >+- "media.ffvpx.enabled", >+- "media.ffvpx.low-latency.enabled", >+- "media.flac.enabled", >+- "media.forcestereo.enabled", >+- "media.gmp.decoder.enabled", >+- "media.gmp.insecure.allow", >+- "media.gpu-process-decoder", >+- "media.hls.enabled", >+- "media.libavcodec.allow-obsolete", >+- "media.memory_cache_max_size", >+- "media.memory_caches_combined_limit_kb", >+- "media.memory_caches_combined_limit_pc_sysmem", >+- "media.mp4.enabled", >+- "media.navigator.mediadatadecoder_enabled", >+- "media.ogg.enabled", >+- "media.ogg.flac.enabled", >+- "media.playback.warnings-as-errors", >+- "media.playback.warnings-as-errors.stagefright-vs-rust", >+- "media.resampling.enabled", >+- "media.resume-bkgnd-video-on-tabhover", >+- "media.ruin-av-sync.enabled", >+- "media.rust.mp4parser", >+- "media.rust.test_mode", >+- "media.seamless-looping", >+- "media.suspend-bkgnd-video.delay-ms", >+- "media.suspend-bkgnd-video.enabled", >+- "media.use-blank-decoder", >+- "media.video-max-decode-error", >+- "media.video_stats.enabled", >+- "media.videocontrols.lock-video-orientation", >+- "media.volume_scale", >+- "media.webspeech.recognition.enable", >+- "media.webspeech.recognition.force_enable", >+- "media.webspeech.synth.force_global_queue", >+- "media.webspeech.test.enable", >+- "media.webspeech.test.fake_fsm_events", >+- "media.webspeech.test.fake_recognition_service", >+- "media.wmf.allow-unsupported-resolutions", >+- "media.wmf.enabled", >+- "media.wmf.skip-blacklist", >+- "media.wmf.vp9.enabled", >+- "network.IDN.blacklist_chars", >+- "network.IDN.restriction_profile", >+- "network.IDN.use_whitelist", >+- "network.IDN_show_punycode", >+- "network.buffer.cache.count", >+- "network.buffer.cache.size", >+- "network.captive-portal-service.enabled", >+- "network.cookie.cookieBehavior", >+- "network.cookie.lifetimePolicy", >+- "network.dns.disablePrefetch", >+- "network.dns.disablePrefetchFromHTTPS", >+- "network.file.disable_unc_paths", >+- "network.file.path_blacklist", >+- "network.http.tailing.enabled", >+- "network.jar.block-remote-files", >+- "network.loadinfo.skip_type_assertion", >+- "network.notify.changed", >+- "network.offline-mirrors-connectivity", >+- "network.protocol-handler.external.jar", >+- "network.proxy.type", >+- "network.security.ports.banned", >+- "network.security.ports.banned.override", >+- "network.standard-url.enable-rust", >+- "network.standard-url.max-length", >+- "network.standard-url.punycode-host", >+- "network.sts.max_time_for_events_between_two_polls", >+- "network.sts.max_time_for_pr_close_during_shutdown", >+- "network.tcp.keepalive.enabled", >+- "network.tcp.keepalive.idle_time", >+- "network.tcp.keepalive.probe_count", >+- "network.tcp.keepalive.retry_interval", >+- "network.tcp.sendbuffer", >+- "nglayout.debug.invalidation", >+- "privacy.donottrackheader.enabled", >+- "privacy.firstparty.isolate", >+- "privacy.firstparty.isolate.restrict_opener_access", >+- "privacy.reduceTimerPrecision", >+- "privacy.resistFingerprinting", >+- "privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts", >+- "privacy.resistFingerprinting.reduceTimerPrecision.jitter", >+- "privacy.resistFingerprinting.reduceTimerPrecision.microseconds", >+- "privacy.resistFingerprinting.target_video_res", >+- "privacy.resistFingerprinting.video_dropped_ratio", >+- "privacy.resistFingerprinting.video_frames_per_sec", >+- "privacy.spoof_english", >+- "privacy.trackingprotection.lower_network_priority", >+- "privacy.window.maxInnerHeight", >+- "privacy.window.maxInnerWidth", >+- "security.csp.enable", >+- "security.data_uri.block_toplevel_data_uri_navigations", >+- "security.data_uri.unique_opaque_origin", >+- "security.fileuri.strict_origin_policy", >+- "security.mixed_content.block_active_content", >+- "security.mixed_content.block_display_content", >+- "security.mixed_content.block_object_subrequest", >+- "security.mixed_content.hsts_priming_cache_timeout", >+- "security.mixed_content.send_hsts_priming", >+- "security.mixed_content.upgrade_display_content", >+- "security.mixed_content.use_hsts", >+- "security.sandbox.content.level", >+- "security.sandbox.content.tempDirSuffix", >+- "security.sandbox.logging.enabled", >+- "security.sandbox.mac.track.violations", >+- "security.sandbox.windows.log.stackTraceDepth", >+- "svg.disabled", >+- "svg.display-lists.hit-testing.enabled", >+- "svg.display-lists.painting.enabled", >+- "svg.new-getBBox.enabled", >+- "svg.path-caching.enabled", >+- "svg.transform-box.enabled", >+- "toolkit.asyncshutdown.crash_timeout", >+- "toolkit.asyncshutdown.log", >+- "toolkit.osfile.log", >+- "toolkit.osfile.log.redirect", >+- "toolkit.telemetry.enabled", >+- "toolkit.telemetry.idleTimeout", >+- "toolkit.telemetry.initDelay", >+- "toolkit.telemetry.log.dump", >+- "toolkit.telemetry.log.level", >+- "toolkit.telemetry.minSubsessionLength", >+- "toolkit.telemetry.scheduler.idleTickInterval", >+- "toolkit.telemetry.scheduler.tickInterval", >+- "toolkit.telemetry.testing.overridePreRelease", >+- "toolkit.telemetry.unified", >+- "ui.key.menuAccessKeyFocuses", >+- "ui.popup.disable_autohide", >+- "ui.use_activity_cursor", >+- "view_source.editor.external", >+- "zoom.maxPercent", >+- "zoom.minPercent"}; > - >--const char** mozilla::dom::ContentPrefs::GetEarlyPrefs(size_t* aCount) >--{ >+-const char** mozilla::dom::ContentPrefs::GetEarlyPrefs(size_t* aCount) { > - *aCount = ArrayLength(ContentPrefs::gEarlyPrefs); > - return gEarlyPrefs; > -} > - >--const char* mozilla::dom::ContentPrefs::GetEarlyPref(size_t aIndex) >--{ >+-const char* mozilla::dom::ContentPrefs::GetEarlyPref(size_t aIndex) { > - MOZ_ASSERT(aIndex < ArrayLength(ContentPrefs::gEarlyPrefs)); > - return gEarlyPrefs[aIndex]; > -} >@@ -465,16 +463,16 @@ index 72ce8d236c11..000000000000 > -namespace dom { > - > -class ContentPrefs { >--public: >+- public: > - static const char** GetEarlyPrefs(size_t* aCount); > - static const char* GetEarlyPref(size_t aIndex); > - >--private: >+- private: > - static const char* gEarlyPrefs[]; > -}; > - >--} >--} >+-} // namespace dom >+-} // namespace mozilla > - > -#endif > diff --git dom/ipc/ContentProcess.cpp dom/ipc/ContentProcess.cpp >@@ -489,7 +487,7 @@ index 2441c8cb9224..c00283dc5084 100644 > #include "base/shared_memory.h" > #include "mozilla/Preferences.h" > #include "mozilla/Scheduler.h" >-@@ -226,8 +225,8 @@ ContentProcess::Init(int aArgc, char* aArgv[]) >+@@ -212,8 +211,8 @@ bool ContentProcess::Init(int aArgc, char* aArgv[]) { > NS_ERROR("failed to map shared memory in the child"); > return false; > } >@@ -499,7 +497,7 @@ index 2441c8cb9224..c00283dc5084 100644 > + prefsLen); > > Scheduler::SetPrefs(schedulerPrefs); >- mContent.Init(IOThreadChild::message_loop(), >+ mContent.Init(IOThreadChild::message_loop(), ParentPid(), > diff --git dom/ipc/PContent.ipdl dom/ipc/PContent.ipdl > index 5d077976569a..fb967ffc53a9 100644 > --- dom/ipc/PContent.ipdl >@@ -549,7 +547,7 @@ diff --git layout/style/nsCSSProps.h layout/style/nsCSSProps.h > index dce44bf61b35..80288336a08b 100644 > --- layout/style/nsCSSProps.h > +++ layout/style/nsCSSProps.h >-@@ -645,7 +645,7 @@ public: >+@@ -640,7 +640,7 @@ class nsCSSProps { > // In the child process, assert that we're not trying to parse stylesheets > // before we've gotten all our prefs. > MOZ_ASSERT_IF(!XRE_IsParentProcess(), >@@ -570,43 +568,38 @@ index fe780686f2eb..488095f49236 100644 > #include "mozilla/dom/PContent.h" > #include "mozilla/HashFunctions.h" > #include "mozilla/Logging.h" >-@@ -131,6 +130,29 @@ enum class PrefType : uint8_t >+@@ -129,6 +128,25 @@ enum class PrefType : uint8_t { > Bool = 3, > }; > > +// This is used for pref names and string pref values. We encode the string > +// length, then a '/', then the string chars. This encoding means there are no > +// special chars that are forbidden or require escaping. >-+static void >-+SerializeAndAppendString(const char* aChars, nsCString& aStr) >-+{ >++static void SerializeAndAppendString(const char* aChars, nsCString& aStr) { > + aStr.AppendInt(uint32_t(strlen(aChars))); > + aStr.Append('/'); > + aStr.Append(aChars); > +} > + >-+static char* >-+DeserializeString(char* aChars, nsCString& aStr) >-+{ >++static char* DeserializeString(char* aChars, nsCString& aStr) { > + char* p = aChars; > + uint32_t length = strtol(p, &p, 10); > + MOZ_ASSERT(p[0] == '/'); >-+ p++; // move past the '/' >++ p++; // move past the '/' > + aStr.Assign(p, length); >-+ p += length; // move past the string itself >++ p += length; // move past the string itself > + return p; > +} > + > // Keep this in sync with PrefValue in prefs_parser/src/lib.rs. > union PrefValue { > const char* mStringVal; >-@@ -223,6 +245,64 @@ union PrefValue { >+@@ -215,6 +233,61 @@ union PrefValue { > MOZ_CRASH(); > } > } > + >-+ void SerializeAndAppend(PrefType aType, nsCString& aStr) >-+ { >++ void SerializeAndAppend(PrefType aType, nsCString& aStr) { > + switch (aType) { > + case PrefType::Bool: > + aStr.Append(mBoolVal ? 'T' : 'F'); >@@ -627,10 +620,8 @@ index fe780686f2eb..488095f49236 100644 > + } > + } > + >-+ static char* Deserialize(PrefType aType, >-+ char* aStr, >-+ dom::MaybePrefValue* aDomValue) >-+ { >++ static char* Deserialize(PrefType aType, char* aStr, >++ dom::MaybePrefValue* aDomValue) { > + char* p = aStr; > + > + switch (aType) { >@@ -665,7 +656,7 @@ index fe780686f2eb..488095f49236 100644 > }; > > #ifdef DEBUG >-@@ -694,6 +774,159 @@ public: >+@@ -656,6 +729,157 @@ class Pref { > return false; > } > >@@ -721,8 +712,7 @@ index fe780686f2eb..488095f49236 100644 > + // - "S-:10/my.string2:5/1.234:\n" > + // - "S-:10/my.string3::7/string!\n" > + >-+ void SerializeAndAppend(nsCString& aStr) >-+ { >++ void SerializeAndAppend(nsCString& aStr) { > + switch (Type()) { > + case PrefType::Bool: > + aStr.Append('B'); >@@ -759,8 +749,7 @@ index fe780686f2eb..488095f49236 100644 > + aStr.Append('\n'); > + } > + >-+ static char* Deserialize(char* aStr, dom::Pref* aDomPref) >-+ { >++ static char* Deserialize(char* aStr, dom::Pref* aDomPref) { > + char* p = aStr; > + > + // The type. >@@ -775,7 +764,7 @@ index fe780686f2eb..488095f49236 100644 > + NS_ERROR("bad pref type"); > + type = PrefType::None; > + } >-+ p++; // move past the type char >++ p++; // move past the type char > + > + // Locked? > + bool isLocked; >@@ -787,17 +776,17 @@ index fe780686f2eb..488095f49236 100644 > + NS_ERROR("bad pref locked status"); > + isLocked = false; > + } >-+ p++; // move past the isLocked char >++ p++; // move past the isLocked char > + > + MOZ_ASSERT(*p == ':'); >-+ p++; // move past the ':' >++ p++; // move past the ':' > + > + // The pref name. > + nsCString name; > + p = DeserializeString(p, name); > + > + MOZ_ASSERT(*p == ':'); >-+ p++; // move past the ':' preceding the default value >++ p++; // move past the ':' preceding the default value > + > + dom::MaybePrefValue maybeDefaultValue; > + if (*p != ':') { >@@ -806,7 +795,7 @@ index fe780686f2eb..488095f49236 100644 > + } > + > + MOZ_ASSERT(*p == ':'); >-+ p++; // move past the ':' between the default and user values >++ p++; // move past the ':' between the default and user values > + > + dom::MaybePrefValue maybeUserValue; > + if (*p != '\n') { >@@ -815,23 +804,22 @@ index fe780686f2eb..488095f49236 100644 > + } > + > + MOZ_ASSERT(*p == '\n'); >-+ p++; // move past the '\n' following the user value >++ p++; // move past the '\n' following the user value > + > + *aDomPref = dom::Pref(name, isLocked, maybeDefaultValue, maybeUserValue); > + > + return p; > + } > + >- void AddSizeOfIncludingThis(MallocSizeOf aMallocSizeOf, PrefsSizes& aSizes) >- { >+ void AddSizeOfIncludingThis(MallocSizeOf aMallocSizeOf, PrefsSizes& aSizes) { > // Note: mName is allocated in gPrefNameArena, measured elsewhere. >-@@ -880,41 +1113,9 @@ pref_savePrefs() >+ aSizes.mPrefValues += aMallocSizeOf(this); >+@@ -817,57 +1041,17 @@ static PrefSaveData pref_savePrefs() { > > #ifdef DEBUG > > -// For content processes, what prefs have been initialized? >--enum class ContentProcessPhase >--{ >+-enum class ContentProcessPhase { > - eNoPrefsSet, > - eEarlyPrefsSet, > - eEarlyAndLatePrefsSet, >@@ -840,36 +828,28 @@ index fe780686f2eb..488095f49236 100644 > // Note that this never changes in the parent process, and is only read in > // content processes. > -static ContentProcessPhase gPhase = ContentProcessPhase::eNoPrefsSet; >-- >--struct StringComparator >--{ >++static bool gContentProcessPrefsAreInited = false; >+ >+-struct StringComparator { > - const char* mPrefName; > - >-- explicit StringComparator(const char* aPrefName) >-- : mPrefName(aPrefName) >-- { >-- } >+- explicit StringComparator(const char* aPrefName) : mPrefName(aPrefName) {} > - >-- int operator()(const char* aPrefName) const >-- { >+- int operator()(const char* aPrefName) const { > - return strcmp(mPrefName, aPrefName); > - } > -}; > - >--static bool >--IsEarlyPref(const char* aPrefName) >--{ >+-static bool IsEarlyPref(const char* aPrefName) { > - size_t prefsLen; > - size_t found; > - const char** list = mozilla::dom::ContentPrefs::GetEarlyPrefs(&prefsLen); > - return BinarySearchIf(list, 0, prefsLen, StringComparator(aPrefName), &found); > -} >-+static bool gContentProcessPrefsAreInited = false; >- >- #endif // DEBUG >+- >+ #endif // DEBUG > >-@@ -923,23 +1124,7 @@ pref_HashTableLookupInner(const char* aPrefName) >- { >+ static PrefEntry* pref_HashTableLookupInner(const char* aPrefName) { > MOZ_ASSERT(NS_IsMainThread() || mozilla::ServoStyleSet::IsInServoTraversal()); > > -#ifdef DEBUG >@@ -878,33 +858,34 @@ index fe780686f2eb..488095f49236 100644 > - MOZ_CRASH_UNSAFE_PRINTF("accessing pref %s before early prefs are set", > - aPrefName); > - } >-- >++ MOZ_ASSERT_IF(!XRE_IsParentProcess(), gContentProcessPrefsAreInited); >+ > - if (gPhase == ContentProcessPhase::eEarlyPrefsSet && > - !IsEarlyPref(aPrefName)) { > - // If you hit this crash, you have an early access of a non-early pref. > - // Consider moving the access later or add the pref to the whitelist of > - // early prefs in ContentPrefs.cpp and get review from a DOM peer. > - MOZ_CRASH_UNSAFE_PRINTF( >-- "accessing non-early pref %s before late prefs are set", aPrefName); >+- "accessing non-early pref %s before late prefs are set", aPrefName); > - } > - } > -#endif >-+ MOZ_ASSERT_IF(!XRE_IsParentProcess(), gContentProcessPrefsAreInited); >- >+- > return static_cast<PrefEntry*>(gHashTable->Search(aPrefName)); > } >-@@ -2932,8 +3117,8 @@ public: > >- } // namespace >+@@ -2637,8 +2821,8 @@ class AddPreferencesMemoryReporterRunnable : public Ru >+ >+ } // namespace > > -// A list of prefs sent early from the parent, via shared memory. > -static InfallibleTArray<dom::Pref>* gEarlyDomPrefs; > +// A list of changed prefs sent from the parent via shared memory. > +static InfallibleTArray<dom::Pref>* gChangedDomPrefs; > >- static const char kTelemetryPref[] = "toolkit.telemetry.enabled"; >- static const char kChannelPref[] = "app.update.channel"; >-@@ -3050,12 +3235,12 @@ Preferences::GetInstanceForService() >+ /* static */ already_AddRefed<Preferences> >+ Preferences::GetInstanceForService() { >+@@ -2668,12 +2852,12 @@ Preferences::GetInstanceForService() { > } > > if (!XRE_IsParentProcess()) { >@@ -922,19 +903,19 @@ index fe780686f2eb..488095f49236 100644 > > } else { > // Check if there is a deployment configuration file. If so, set up the >-@@ -3179,149 +3364,44 @@ NS_IMPL_ISUPPORTS(Preferences, >+@@ -2782,143 +2966,45 @@ Preferences::~Preferences() { >+ NS_IMPL_ISUPPORTS(Preferences, nsIPrefService, nsIObserver, nsIPrefBranch, > nsISupportsWeakReference) > >- /* static */ void >--Preferences::SerializeEarlyPreferences(nsCString& aStr) >-+Preferences::SerializePreferences(nsCString& aStr) >- { >+-/* static */ void Preferences::SerializeEarlyPreferences(nsCString& aStr) { >++/* static */ void Preferences::SerializePreferences(nsCString& aStr) { > MOZ_RELEASE_ASSERT(InitStaticMembers()); > > - nsAutoCStringN<256> boolPrefs, intPrefs, stringPrefs; > - size_t numEarlyPrefs; > - dom::ContentPrefs::GetEarlyPrefs(&numEarlyPrefs); >-- >++ aStr.Truncate(); >+ > - for (unsigned int i = 0; i < numEarlyPrefs; i++) { > - const char* prefName = dom::ContentPrefs::GetEarlyPref(i); > - MOZ_ASSERT_IF(i > 0, >@@ -943,34 +924,33 @@ index fe780686f2eb..488095f49236 100644 > - Pref* pref = pref_HashTableLookup(prefName); > - if (!pref || !pref->MustSendToContentProcesses()) { > - continue; >-- } >-+ aStr.Truncate(); >- >++ for (auto iter = gHashTable->Iter(); !iter.Done(); iter.Next()) { >++ Pref* pref = static_cast<PrefEntry*>(iter.Get())->mPref; >++ if (pref->MustSendToContentProcesses() && pref->HasAdvisablySizedValues()) { >++ pref->SerializeAndAppend(aStr); >+ } >+- > - switch (pref->Type()) { > - case PrefType::Bool: > - boolPrefs.Append( >-- nsPrintfCString("%u:%d|", i, Preferences::GetBool(prefName))); >+- nsPrintfCString("%u:%d|", i, Preferences::GetBool(prefName))); > - break; > - case PrefType::Int: > - intPrefs.Append( >-- nsPrintfCString("%u:%d|", i, Preferences::GetInt(prefName))); >+- nsPrintfCString("%u:%d|", i, Preferences::GetInt(prefName))); > - break; > - case PrefType::String: { > - nsAutoCString value; > - Preferences::GetCString(prefName, value); > - stringPrefs.Append( >-- nsPrintfCString("%u:%d;%s|", i, value.Length(), value.get())); >+- nsPrintfCString("%u:%d;%s|", i, value.Length(), value.get())); > - } break; > - case PrefType::None: > - break; > - default: > - printf_stderr("preference type: %d\n", int(pref->Type())); > - MOZ_CRASH(); >-+ for (auto iter = gHashTable->Iter(); !iter.Done(); iter.Next()) { >-+ Pref* pref = static_cast<PrefEntry*>(iter.Get())->mPref; >-+ if (pref->MustSendToContentProcesses() && pref->HasAdvisablySizedValues()) { >-+ pref->SerializeAndAppend(aStr); >- } >+- } > } > > - aStr.Truncate(); >@@ -983,10 +963,10 @@ index fe780686f2eb..488095f49236 100644 > aStr.Append('\0'); > } > >- /* static */ void >--Preferences::DeserializeEarlyPreferences(char* aStr, size_t aStrLen) >-+Preferences::DeserializePreferences(char* aStr, size_t aPrefsLen) >- { >+-/* static */ void Preferences::DeserializeEarlyPreferences(char* aStr, >+- size_t aStrLen) { >++/* static */ void Preferences::DeserializePreferences(char* aStr, >++ size_t aPrefsLen) { > MOZ_ASSERT(!XRE_IsParentProcess()); > > - MOZ_ASSERT(!gEarlyDomPrefs); >@@ -1011,26 +991,26 @@ index fe780686f2eb..488095f49236 100644 > - MOZ_ASSERT(p[0] == '|'); > - p++; > - dom::Pref pref(nsCString(dom::ContentPrefs::GetEarlyPref(index)), >-- /* isLocked */ false, >-- value, >-- dom::MaybePrefValue()); >+- /* isLocked */ false, value, dom::MaybePrefValue()); > - gEarlyDomPrefs->AppendElement(pref); >-- } >++ while (*p != '\0') { >++ dom::Pref pref; >++ p = Pref::Deserialize(p, &pref); >++ gChangedDomPrefs->AppendElement(pref); >+ } > - p++; >-- >+ > - // Get the int prefs. > - while (*p != '\n') { > - int32_t index = strtol(p, &p, 10); > - MOZ_ASSERT(p[0] == ':'); > - p++; > - dom::MaybePrefValue value( >-- dom::PrefValue(static_cast<int32_t>(strtol(p, &p, 10)))); >+- dom::PrefValue(static_cast<int32_t>(strtol(p, &p, 10)))); > - MOZ_ASSERT(p[0] == '|'); > - p++; > - dom::Pref pref(nsCString(dom::ContentPrefs::GetEarlyPref(index)), >-- /* isLocked */ false, >-- value, >-- dom::MaybePrefValue()); >+- /* isLocked */ false, value, dom::MaybePrefValue()); > - gEarlyDomPrefs->AppendElement(pref); > - } > - p++; >@@ -1045,9 +1025,7 @@ index fe780686f2eb..488095f49236 100644 > - p++; > - dom::MaybePrefValue value(dom::PrefValue(nsCString(p, length))); > - dom::Pref pref(nsCString(dom::ContentPrefs::GetEarlyPref(index)), >-- /* isLocked */ false, >-- value, >-- dom::MaybePrefValue()); >+- /* isLocked */ false, value, dom::MaybePrefValue()); > - gEarlyDomPrefs->AppendElement(pref); > - p += length + 1; > - MOZ_ASSERT(*(p - 1) == '|'); >@@ -1055,48 +1033,43 @@ index fe780686f2eb..488095f49236 100644 > - p++; > - > - MOZ_ASSERT(*p == '\0'); >-+ while (*p != '\0') { >-+ dom::Pref pref; >-+ p = Pref::Deserialize(p, &pref); >-+ gChangedDomPrefs->AppendElement(pref); >-+ } >- >+- > // We finished parsing on a '\0'. That should be the last char in the shared > - // memory. > - MOZ_ASSERT(aStr + aStrLen - 1 == p); >-- >--#ifdef DEBUG >-- MOZ_ASSERT(gPhase == ContentProcessPhase::eNoPrefsSet); >-- gPhase = ContentProcessPhase::eEarlyPrefsSet; >--#endif >--} >-- >--/* static */ void >--Preferences::SetLatePreferences(const nsTArray<dom::Pref>* aDomPrefs) >--{ >-- MOZ_ASSERT(!XRE_IsParentProcess()); >-- >-- for (unsigned int i = 0; i < aDomPrefs->Length(); i++) { >-- Preferences::SetPreference(aDomPrefs->ElementAt(i)); >-- } > + // memory. (aPrefsLen includes the '\0'.) > + MOZ_ASSERT(p == aStr + aPrefsLen - 1); > > #ifdef DEBUG >-- MOZ_ASSERT(gPhase == ContentProcessPhase::eEarlyPrefsSet); >-- gPhase = ContentProcessPhase::eEarlyAndLatePrefsSet; >+- MOZ_ASSERT(gPhase == ContentProcessPhase::eNoPrefsSet); >+- gPhase = ContentProcessPhase::eEarlyPrefsSet; > + MOZ_ASSERT(!gContentProcessPrefsAreInited); > + gContentProcessPrefsAreInited = true; > #endif > } > >-@@ -3558,36 +3638,12 @@ Preferences::GetPreference(dom::Pref* aDomPref) >+-/* static */ void Preferences::SetLatePreferences( >+- const nsTArray<dom::Pref>* aDomPrefs) { >+- MOZ_ASSERT(!XRE_IsParentProcess()); >+- >+- for (unsigned int i = 0; i < aDomPrefs->Length(); i++) { >+- Preferences::SetPreference(aDomPrefs->ElementAt(i)); >+- } >+- >+-#ifdef DEBUG >+- MOZ_ASSERT(gPhase == ContentProcessPhase::eEarlyPrefsSet); >+- gPhase = ContentProcessPhase::eEarlyAndLatePrefsSet; >+-#endif >+-} >+- >+ /* static */ void Preferences::InitializeUserPrefs() { >+ MOZ_ASSERT(XRE_IsParentProcess()); >+ MOZ_ASSERT(!sPreferences->mCurrentFile, "Should only initialize prefs once"); >+@@ -3133,32 +3219,10 @@ Preferences::SavePrefFile(nsIFile* aFile) { > } > } > >--void >--Preferences::GetPreferences(InfallibleTArray<dom::Pref>* aDomPrefs) >--{ >+-void Preferences::GetPreferences(InfallibleTArray<dom::Pref>* aDomPrefs) { > - MOZ_ASSERT(XRE_IsParentProcess()); > - MOZ_ASSERT(NS_IsMainThread()); > - >@@ -1119,10 +1092,8 @@ index fe780686f2eb..488095f49236 100644 > -} > - > #ifdef DEBUG >- bool >--Preferences::AreAllPrefsSetInContentProcess() >-+Preferences::ArePrefsInitedInContentProcess() >- { >+-bool Preferences::AreAllPrefsSetInContentProcess() { >++bool Preferences::ArePrefsInitedInContentProcess() { > MOZ_ASSERT(!XRE_IsParentProcess()); > - return gPhase == ContentProcessPhase::eEarlyAndLatePrefsSet; > + return gContentProcessPrefsAreInited; >@@ -1133,8 +1104,8 @@ diff --git modules/libpref/Preferences.h modules/libpref/Preferences.h > index 0d976483daae..901425b5b663 100644 > --- modules/libpref/Preferences.h > +++ modules/libpref/Preferences.h >-@@ -328,15 +328,10 @@ public: >- const char* aPref, >+@@ -277,15 +277,10 @@ class Preferences final : public nsIPrefService, >+ static nsresult AddFloatVarCache(float* aVariable, const char* aPref, > float aDefault = 0.0f); > > - // When a content process is created these methods are used to pass prefs in >@@ -1153,7 +1124,7 @@ index 0d976483daae..901425b5b663 100644 > > // When a single pref is changed in the parent process, these methods are > // used to pass the update to content processes. >-@@ -344,7 +339,7 @@ public: >+@@ -293,7 +288,7 @@ class Preferences final : public nsIPrefService, > static void SetPreference(const dom::Pref& aPref); > > #ifdef DEBUG
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
jbeich
:
maintainer-approval+
Actions:
View
|
Diff
Attachments on
bug 235161
: 201365