Merge autoland to mozilla-central a=merge
authorRazvan Maries <rmaries@mozilla.com>
Mon, 29 Jun 2020 18:45:19 +0300
changeset 3011749 31fb4a2a69124b6a21e5d8f44a0407d489749407
parent 3011616 aa5b8223362732a346ce96db35a9c5c8203ef9cc (current diff)
parent 3011510 5d5446dc88fffd5c045ee3bf954281c415949222 (diff)
child 3011750 47a53b542b8e07e87ea9c3b7f7a3cedd87e15a61
child 3011754 ade018f94bb1382474ef5ba4a17b7228c7576ac5
child 3011758 c5e743f3bbc0a7fcf1c31623e98ebde2bbf0bc6d
child 3011783 694d3cf78cefe2cd0ca0f9e90f93e2c4514332bc
child 3011788 b3f2a70b9d9e1d92878a9cc0fa9b6d8f629ed37a
child 3011791 9694d789bd5c9aa34b71a9ccc9975264c3262eb1
child 3011797 1b4e4ebe7d7aa4bae0052793d351ca36b4e8a7ab
child 3011802 1a5745840aacb3f1373b98427d917e1d65f8cc99
child 3011820 259b697a872243579197eba2f8781f0da350cf0f
child 3011822 b3204a4166d7f268d63760a5e3eaa1e3b0301b5b
child 3011825 f626bf9fcd9c8ada8540f026b94f1fbf9b4beb16
child 3011829 0b579c048b0139d433650a6199625abc963327ab
child 3011836 31e9dc8f3665c08b6f86d1a4b8a5370a3bf89f15
child 3011842 49e3428ee616ddd6ac8ec051a511777859b1a260
child 3011849 df9e88745c4fe732f59a95569a30bccaf618ce04
child 3011859 dd8836b82c1a4a3a1f27818052e8fa47576c7584
child 3011869 4869c4f4b5929103398e4ec993aefc44d018dac2
child 3011894 48bcebf8de178c85a311c01b1ac1f26aa6a72b13
child 3011898 2ec630cf8ae8b38a5ff0b192a53ccdff6c3ecfef
child 3011900 a3378e4fd0db1e68df88233b1a50bbb6a1de5f7e
child 3011911 f05d915b48a61af023ad8301b86a6a8294e3f043
child 3011916 f86822fcb608d7741803520a0fb588fe6432be11
child 3011923 6ab15fefb290dba3065f193ba816bcc4ffe6fcc9
child 3011950 5fbab2e785577802e85c40ac899fbebc7369b1a4
child 3011967 8934c9a57ee2b98d3241ed1693a7c2f5bdad1a29
child 3011970 4916d4a7638a177c8a6d77c94508c0d4a636633c
child 3011972 68e8bf2dd74493d8ff23f434175189de8d0d7728
child 3011974 9a0bf8f55a6b98ee5cc4d78de6aaef60578005d5
child 3011991 fc00eef11f9cd3d18e614304844336b98d5df706
child 3011995 aa81c1a33a45c59f93b1a6ad30881af622708dc6
child 3012012 c06330a621a2c1b4f51c8e642380fa3807cb2f40
child 3012017 723945fd6bbf4e8d8a6a782e86b2c6dd37191a3a
child 3012019 a96fd11f3e23cb033b7b3f140710e0e945c7f626
child 3012023 70ce7d23e9195593c4d272208233bda68086a551
child 3012028 c97b14a3973a2f2de786b27efe9c4015ddff2fb8
child 3012034 600a38a67b6ffb848e5f8aec4cec3354da1033d2
child 3012038 ba3ca5c3c5305cf46bd17c1dc2869716cf992bbd
child 3012040 4a3dd6342f1d7323dca9c34ef0b8c8648696385f
child 3012059 a43f90b0b0e4aa23c7de51ff044568bc48c7e5d6
child 3012074 60abbc64eddfeff610495f145da30b2ccd9a0e44
child 3012087 544b95a208d52bed934649c53a4c71cc8bf2f4c1
child 3012089 51a3461e4f3279600e25c1986dc9e735e3ba8197
child 3012091 4e832ff0b598b542b6041c64f593ac81d7e1e360
child 3012094 e1a7989791ebcee28659a4d5e66fca36007acbdf
child 3012098 4c90d4d6f1197b199fa5302dbacf421b46ca6ad8
child 3012100 aa0363ba7aa1b81ae3a3746367ac794d54069a15
child 3012106 a80767a320783128b9f4a0605151021286dd39b4
child 3012108 715d6af2c9baf14bf800120a859d07bde0ff3df2
child 3012110 d274bbea16bcf161da2f7be9369195e11fb64a5f
child 3012113 c868d431443b2838a7c31a248d681331422b131d
child 3012118 9f705ea16a334fe5f45d6c01759e79ada1041b59
child 3012122 debe454bab7f041f15ede76f1f14dde85dee088d
child 3012127 c77e6878da8874d8307a4847a95720c2547fe95c
child 3012133 4933deac09fad1a6f0d349906c7e7a7a38083a89
child 3012140 57f72d8f0d1ee4da1d64cb74b61b0bb72d597f08
child 3012142 2a76e0094867b304421e570bc3f2bc53bed0ce92
child 3012144 f07c506370543159a54e151588e4b6a66bf162ea
child 3012146 129a8a71190394391b39f8d870547273290b7b09
child 3012148 e448f4bb9587b8068a5f29c4766716667ace52ce
child 3012161 c7a1138c487982f4fdf37315e94870ade4fb4cd2
child 3012163 9cc0d77ce59d452e4476858dad530ebfbabc73c5
child 3012165 0da72791028db8a819e052e5068393ec79479712
child 3012175 d82e6055ec4e8d5b036ab995ae61bbba8c2751cc
child 3012176 3367d7350a7183de822da088c025176054f43808
child 3012178 bc1f4cbf9348c78d751cdb974ceb2a8fe09ac79f
child 3012180 c6de87b0d06073c8068948edb067e7cc907518dd
child 3012182 9c5288e6d908edc0dfb0631a485489220acab2f6
child 3012209 5fc823856b5e4edfadd7849565304864f7fa0292
child 3012256 4e8823278bca6a223d0c7de9362ee237dedf4a2c
child 3012271 1e9bf6fec55e3825fd2d725bf424e9b82f898db7
child 3012276 6c878e0b690236306082e45dba1bc48898ae14c8
child 3012281 1e432894df90c91b2c2241731b45dfa3333cb9e1
child 3012287 e189d7d16adc72b99d65fec62447894996be1edb
child 3012291 f262059a1138b901b8aae6399ec7f20587ca5ba1
child 3012295 51d2354a649e074d9ea3648f893b32f35386b832
child 3012299 aa275b0b1ca1d9958a704d0224556dc8b6a25771
child 3012301 c300f1932d2a22f376837baa0394ad49434f16bb
child 3012303 93b1d311eb11f24a4a9f36fd69fb93b6ddcf2088
child 3012305 33eeb2ec6fd99560e3b7396138a4ef7b61ff20f8
child 3012308 cfbc0dfa66f6dde54be3c505b16bdd9f0a6eab23
child 3012312 deddc067ece76ad433ecdcbd8dbfc2f9dd0e98dd
child 3012314 f063dae7e1a020359daf586bf12bef58ef62df13
child 3012316 4373d0fe740ac567184b821835240ace03f28d73
child 3012324 75c5e29dcb7e11d6028892d56874b1d89d530d2f
child 3012332 2402dcdda306e3b9d953a8bc66f07f7eec535e7b
child 3012339 08416baa4e44cea7c0f80eef12acff5fabd3a69e
child 3012343 42ffc91853e8ab55f7b865f2325efb355fe18052
child 3012345 be2b54f08f9b417d19af71ceee1953243ad0e3dd
child 3012349 9fa26e7e6a1267992fc6000696fa83d79176f42e
child 3012353 105668be3b49576e1bc0b48b1efc95981c0059cc
child 3012355 ebecd9c5f08cd6e74b8c267f43c6688f6f61c76f
child 3012357 5968b584cb8018f8020662bcebb602a150a627ba
child 3012360 26e317533d0bc9c575826d5b5c37821006dcb8a5
child 3012363 7501b9058df300f70286347f947070a79372e966
child 3012368 6740ddd67111e56720dbdf555884b192cd3a9212
child 3012372 79367ac41661569a92e02cfe78d70cfc5dcb0422
child 3012377 a4de5520b07421efe2e2cacdcfd42e674f1894b7
child 3012386 b4247459b4e004f412dc1b9ad60251f031936a2a
child 3012438 cb8bbcbffafadd52fd586f98dcc2e942aecddcb8
child 3012446 d4b34c91d91cd6756f3ff4278d4d6ecf28a105b4
child 3012448 710692217ea8eed2602481125659371287d176ad
child 3012452 e46ffb2cfe35c5cbd73361c3d93ee1c789bf1e39
child 3012454 c9d3d166a3754a8806a94a086d80d42d0aff6fc2
child 3012474 b97a0f50527fbb2582321bc985204c017b795308
child 3012482 4ba9d59409861ff6a46bcfecf450f53b68ca9c8e
child 3012484 1f948318ac7702d52d79e63b1e3cc19d36b4e126
child 3012486 e20c3ff4ba66092c4646dd6d4f1a017afc709c86
child 3012490 958cdb3348bec348dcca8817e5bb419dbc10e599
child 3012507 4cb08f2ecf7e5377eb05c1ecd79920c6c3b56394
child 3012509 80e20abeeb1970fbab99f4b50418071174377fc2
child 3012511 7b2854c3137cfad64bac6b56cc0e14047050d618
child 3012513 2c2b30f4acf9f374724af79ddc204038ad193222
child 3012516 b103010092b6107a4bd379d2892faa924d3c1f66
child 3012520 0b974ba337425460c5b2dac64862bf82b880d4c3
child 3012525 6260832df126cfcbb568ff9247dab9bc5385ddcc
child 3012529 7211bd4e3c00d363473643eea5d04ee3db43ef38
child 3012531 c9c3c8ae69a3f342912585d50dd57a3f8a385ddd
child 3012542 c1d371e3e254ca4a57f0f3e19b78dbf50c2f1d3b
child 3012549 1bf3f4242b7e1a522e3042f49443277f8b0e295a
child 3012555 36fec86920784d60955d6e0827b0dd865f1a153b
child 3012557 e26788878c7902de2832f6911a9fc6acc68eed5c
child 3012561 7c494231a3f20820bad0c107d46ef0f74ffab813
child 3012563 99852050b015e8963dabe0f3bb2e04de465842b3
child 3012580 329da4b984546dd30b8c8906b2211069dda8481a
child 3012582 f7dc9a0fc0bc694ce40c89541b2efe1a8d24d22c
child 3012584 6afc4e6fe369c28bae79240fdebbe55925ec5140
child 3012590 56714c699f263976b502fad105d318e6d01a7aa5
child 3012593 fe1e0ddb52b9571881f8fd0bf324448554070f97
child 3012601 901a5f134c08a6ebfa1dae7d23824ea8fb41d1e6
child 3012618 7cc979c83f7d32c2b176dd15b2e9cc32fcbe59e0
child 3012620 553ce1ce1b68f6ca6d86d034a4d8e9b082195c45
child 3012628 da3233e7d2bb761210e2c0bc6f8a53cb56989a97
child 3012632 f79515c4d69317c5d865f322790b996272d7aec3
child 3012634 8e639bad5c343b842b4fdce492cf4e2a24a16351
child 3012636 2d8e801e60032e4258b7ed7e4dcfc98d59d9bbb2
child 3012638 2d00890a49bb2cd470761a8badc99bc1c94b205b
child 3012641 d70c04de450068c8a8a5e6a131172a62caa0586e
child 3012644 7a7cf6ba8d3e272a4fa2416adfe8d375099ff5aa
child 3012651 05c44f0ad4b2f48770700052456ee755ce35f650
child 3012655 8330c49877af0542b8ef061634b9c2414fee48d3
child 3012673 a31f9330393a63d9ce024295f8257d46d885589d
child 3012678 318d9c5fe325a1d9b5c74af4c315e843b951d964
child 3012684 3a34ca43e8da56d5498d9752d71cb4514451a148
child 3012691 375173d1a1d254393f5e1ac6f855e8c8c02c3a15
child 3012700 75c270f7b38be52f55081c39c615ce5cf67e1b53
child 3012708 a300322eccb40f3bf3882e4ee6efa310f764f6c4
child 3012718 7f3987f5671d957b010931e1195164ab53e474b4
child 3012722 0a220582d913413d23c81c93ced5fb12d0c44e80
child 3012735 5ea148aec91feefb455396191d901aa44a82f85e
child 3012748 66732278a771a8da783376133e0b6d66e0aaaf82
child 3012761 a7ce471c5aa7b19a003adc19015e83de10000e18
child 3012775 f066595b2e54947e07e4676293527b2ed84f9c05
child 3012777 217d59c64573a631195c72caa641ba73a6bc2223
child 3012781 7fdebc7eded61b869ea60e4e0c602289515ac1fd
child 3012790 12af710190a09be7d8b9520569b6a210daa74834
child 3012794 376d47304c291f1bf100f59a8d36676a28cdb2db
child 3012796 9c880ffcd38a21a2d6316e8fe418d0be06c7a235
child 3012799 93b714e26a329cba929a4a66dee4a005803ff9e8
child 3012805 123c60767bf9b5c1184d839f8f0c48962ebbef64
child 3012821 2f578108e3e51c4cd6592106057a75dbb822538f
child 3012823 5bc427d59b3f640506a35e6d0b4f278b0edf02f2
child 3012825 71d948852a408ad0bab772eddac296b447ac4544
child 3012830 3c81637d2d9737b85fdfc7bb2a9e8d35fb416c13
child 3012834 0050e265fefa1315e547dda8dc103ea39b261033
child 3012838 9224249e67bef8d479f8c51d42dbc562bd376955
child 3012840 cc2abbf6977fbba9bf86b2bc5a863a65ab48bb67
child 3012844 bd34c276892473d481651227b1f7d87191f569ba
child 3012862 972f7535b6faf21a6db5449f0086c2f89ce3993e
child 3012864 72c17e3054790eb02dc6eec0637eeb8f237cfa48
child 3012867 19c809330f48a3a674240112ed7edee0e7b6e52d
child 3012869 da979ca7536210926454a0d71da23f3dfc976bf1
child 3012879 93d86ec7607eaf8c5dfd9da431a457983f9772a4
child 3012881 bb91b85101adf0d204caeb81030973032cbeea6f
child 3012920 78b8b2ac0ee0ee4275b593ce6b488de17a5aa5c5
child 3012922 c63847c10a2cfb41d0cc171ff2444196f05e987b
child 3012965 d09d8b0bee664bc82bc9ad23023dcfcfd960940d
child 3012966 405b240c9905c16d6b325f4b94a0a2671671b62f
child 3012971 fc2b2eb82d4b489ab1718e58e96204c6e6c91359
child 3012981 2d17bbafdb7d3655b0cf5bc320a3d00e65c1035d
child 3012984 2c7f03db9fa8cd11e34cb4880707cdfeaddd180b
child 3012986 5207767d65e2dc5f6570a1efa39c016f9ed8a711
child 3012990 8c1f4e1089be5bd9eadfb220218868b83e620858
child 3012996 e8733fc18cc89383751753c7f645ff8c8caf5450
child 3013001 233dd57b97a8366082deafba7330c9f3871f92ca
child 3013003 d42e2bccf37d4c72ab1407bf4727fae3f5e183a5
child 3013042 dab9fa129173db427292107311cafbd35989dde8
child 3013049 eae40fd28d2c4beab5219142ae83ea56f48fd236
child 3013051 dab5bd4da8977372ee284df6020729a02a653dbf
child 3013053 008b2b719bc2113574cfd01d016eab6c8424195d
child 3013056 5fbd588555708aacacd5e849bd92d9f8d43ff55d
child 3013060 173efe9599b992d9e69028b1227b3b994197f91e
child 3013350 3358cf8a9ae2eef2279f939df281f0aac4af608e
child 3013495 ecfb05e2e0d71b8adb53304ab9fa3dfb938af9e4
child 3013497 05edf6e9a47ab5a9a41493f614a9fc3deb437323
child 3013499 30b8ce7b039cacb3af5d982339a4ca7e01dea035
child 3013545 418c44f93f1218a5f426caf80fb7ab196bb31b4e
child 3013563 519a1142fdf4919ebadd6effd8f1035f017e6091
child 3013578 d9eb4ef205d6b87f16cf1451d73b56f8b2e71a1d
child 3013591 0db0a99e0fa8ca269d55663105790c997c6a6409
child 3013694 bebd1d41699a77093b08a4a56e9b2bb85d15e9fd
child 3013793 f0553beaa72a4b5937acf8b4d872f386ff4d7716
child 3013819 1be9fcd8d1df39f2d1e52a240fcad97bfa3d2de9
child 3014043 8e59eb0a777f83a784760b796da3aedc49ffc472
child 3014051 6952d9682b98e199c590d8a07171739fd0832508
child 3014057 d8a24a5f9fbf45e0b3653e05c02c69daaa946d55
child 3014062 3d1afd9317d0693b736a25121832483ac90074ef
child 3014066 3b83156731e41eb90d17821853c12c2c0a3acb61
child 3014071 941f3e6d69bd1c95305d3ae650d2395b492abdfd
child 3014077 d0604a626bb26d1482f91a4eff077f5149790a94
child 3014079 c7e8c1230e6e8a592245cba2bd70eedb053ade70
child 3014086 065f9b41ac3ce635a1fe915411af89c212dabf31
child 3014234 0dc97bb18231a745148633f2f897bdc3e30cea70
child 3014266 fb649e9e79655f9046e43a3b4e4c8521047e5b7a
child 3014280 c3f5cafe27ac00269cc8a68ec104b2d47f47636c
child 3014348 4cc3ba99e7a1cf9969dbcf1a29fb2dc5eaf9b90a
child 3014371 7f8b499592cb1b7cb3a4c69a569e5d04fc28dfa5
child 3014384 04e7fb7a42ec3bca26082cc41875302c0932833b
child 3014396 0fc601b862b46ea1c4844c3710c478287bb2f766
child 3014401 3fe2e1cb9d652a04d0202db53616973c7fcbb2e5
child 3014469 ef6020960a507288a83cafd09f564b20f9f107df
child 3014471 396d3a13d736b5d4458034b2559e26b19db2059d
child 3014478 d3a391ec5663cfce31adad418dd919baf85b9e04
child 3014480 8d8eca4a612b1ee243efeb3d51ddfb1df18c2aa0
child 3014484 51443110b519dcafa13bdbd3f29f25938b01b9d3
child 3014519 317cabbcf56437ad87dfab10b8730279c63982d0
child 3014542 739c44564bdc4d995f181d37bfee44b2be29c597
child 3014544 94cb95585470e8a1f92f1bd51c00957a4218ea3c
child 3014576 8d4e6b2023c63035314c518b421bbb952587c2b0
child 3014585 c4952b12d5ef4a73a9c9d8050703388f0939afce
child 3014593 5ac51b2091d878c5408087ccca9ec0e83a0efd09
child 3014595 3ab67d6576d757e4e2b1069706232b019000eb41
child 3014624 c825d00baefcac699e0b0f1da1e3f0a7c381d1e1
child 3014646 d671011828e3d4c30cfd8eed1ed4d61b1156d0bb
child 3014655 ad2d0887b3b892b103732b7cf8e91a21222bf3a6
child 3014766 2bf0fdbb793b69c3b57cca27b6b95563fdbbe1fd
child 3014803 1f460d3b085cb94af643e7a8d0392983cfb20a1f
child 3014805 dbadf177a8e3a8274b60acaf08bb92b3bf59afc2
child 3014817 1861ff5af4f96e1dc79fe795e4426807f726bce4
child 3014837 5ebdbc15a38296d45e4b39a777b9ede4522773cf
child 3014884 42611ff028f917059bf96b98e54c9d6d41478340
child 3014948 24fe7d5e9012f95a3b194ca2a726983efb1cc230
child 3015059 a59438e47e395ee3ff58954904d6ebbbb55c9605
child 3015069 0fae4ff555ed73946c8b702c6f90c8f1e5d4c17c
child 3015091 5eb57678c0578ce33a6e3181f435e573e52d0d82
child 3015093 71030e293a219db5c7a02b06b8bce7438f4b769c
child 3015097 a590ddab77841b1a56ad93dfabf30f7dcdf565f7
child 3015102 29c179378d2202c6cae961b844db9833da8c761f
child 3015118 e703a0f887ca61a4790ac04b4001f59dd8be38ea
child 3015125 86ce0cb649e6a5211c543200c68a9d92160603f1
child 3015149 4a7567a078684520a5348164612a6f0c055ec91a
child 3015157 10747f47a00ded59ddf57f42aa0fbafe15190b10
child 3015178 c3f49c487bd7ee8f475d613a1080d9dcc712e7d8
child 3015414 d811cb9832d15abe78bdbfdd77b3f1e475a11253
child 3015737 2209da0255806fe6538b0912c544c8ce6652c3c5
child 3015739 5a2225b46d24711a4362959ccf31185c9e4bfd17
child 3015742 8996f51233671a4a747ae82bbd5ae2c3be0d5bf4
child 3015746 ebbc73dff17a8eab317852b7730c5487272b15b5
child 3015751 fa31d8afc1106da9ad619d5f66db87262e2ba2f0
child 3015757 14f7ed0068601f18717bd76f33c344bec8c356eb
child 3015764 dfcadd73fc5f76908265d8998cc8ad1494b81f59
child 3015772 531052a55eae352df67bdc79572d17f1140d0abd
child 3015984 a03e9a6e70661b03b9acce4491985ca101eb47d4
child 3015986 934ebd0b7aec84ecf9c345f8af5339b99d7c4a41
child 3015991 5574abec938d02dafa020ad5b468566a7e8116b5
child 3015995 6cd621aa889677ebf79281c4cfab593af9dc1159
child 3016000 bcc79cbccba8a55147c26e1fe6a9704f1d816d92
child 3016006 e64d77fc63aa0db5758266ee298b35924294bacb
child 3016013 194338ac12674136a4651bd4f975cc9609cb1cd0
child 3016030 89b541d9f4169f41bf42979f4bd1e227f4b25661
child 3016151 bb97465fd581906a8989cb2c248d7fbaf6f95585
child 3016238 4d33a6d8e82f9ea7189087cedcc055a159cf1bb5
child 3016240 a44273e18de4804cc7def14a815709926d5383e4
child 3016259 d0204b9e9b242bb7e4f4fcf0e5073ed837a6d2f8
child 3016261 103a87b0836a6e71e0b9f7b01177f248a8a08fb2
child 3016266 74b6266c8c87e7d4b072c7eb86cd70dc99044252
child 3016270 3a2a91e268979d3ef38cdcc9f4632795e8dd6cbd
child 3016277 3a4be29dab68ae227124fa623aba6011ceb63d22
child 3016283 d0dce7dc6a77906ad72e1cb7629699b3cd0aa138
child 3016290 e1cdb502cdd0ef15e9967ba4d4c892ec09e8c6cc
child 3016298 1b42cfac254b2323214a07f3174a265f3e122be0
child 3016355 b1b7b0b7dd8558acec034805bbfbdf489f902c49
child 3016380 7ba240f066585c7f8b9b7461e7c0bc47668e72fd
child 3016382 8e514434e4c7d6287bcead2030cc3cffb634e207
child 3016385 e2d3b7b29740488feaa4cc539d71db10827d1e08
child 3016389 6b6652615fac01592cc04c11a0962fa4e7c915b0
child 3016394 978e19e8d9c13712035b9a84838306c4e545aadd
child 3016400 c2c715614c15f8dcd2aefa012f045c84a15d2293
child 3016407 810b8e3048ba4a6ff5f23c2274437ba397eeb523
child 3016415 8a458c74b99f6c50c37eac03071b96c7bc56a5f6
child 3016433 7e7215245e7f1246f927a57d1ca93ab4572af2a1
child 3016485 49113911641f684fdedcc51f60869e332f390493
child 3016586 c692d4509d3df069f690056a6b992770383d058d
child 3016588 e7469333655e7601152ff4379b9897f90ff5fdf9
child 3016593 86683e9e1dd9a0e686cb370e6deadc47c6c7e1ee
child 3016597 4e4c640078f41c0fa83efcda7b03581f289ecf70
child 3016602 a625cb30ea533969a9e54014ae659117b0f20d31
child 3016608 b74c7bc3525b6fd0019a68db4567d06b7abb9521
child 3016615 9f56a90e88f2f06d03e4df7f0b9928ca3103cd1f
child 3016623 10038e2d679fcb3dd298927c1c79b738370eda43
child 3016632 fad122cf55cfcfc6a8a373b00b48ff50b8bdde67
child 3016657 4a1654f6870c3801ea966b5c7876b666ad7fbcc2
child 3016667 87b594a2b664217d18544af43263cb41547203d5
child 3016881 7538fdd9e56273981da2383e4aecadb61b586cbc
child 3016938 8caf969e7b38cd7248843e618dbb73fbaa9b5092
child 3016946 bb1538154749b92dd7a816c3310f4aa64785faae
child 3016950 376bc52bf3da74bf65d517b0e48ec3b51dc8992a
child 3016957 542c90f2261a3983467c61ad6b95c0c6a1ba3734
child 3016959 9594523fcab8d28f8fd2797a19fd27806ba17b98
child 3016961 9d5292c07c08f6d11105127f4883fa5d827bc153
child 3016971 fb17c8ef875b6a36cf44f2186a7bef194ab7caef
child 3016988 22cd37a13eda5b10002aed3e65691a517b6c3b42
child 3016990 87bcef28e9a09ff7022e091e237a0ddb4e283c9a
child 3016992 63fa53c766930a478d9579bab5e09275b8276112
child 3017005 203b001711e3324c45ddace93515127db068db02
child 3017023 ddaaf0404677bf33da926a293e1ac4de52a58389
child 3017056 1154c1ed8a607b5e6afe019137924db26549da91
child 3017058 cc7c191592cf59a96463cf13c2fd6b3bdb288aee
child 3017064 2463dcec57c9938bb733a3d714b38bd5411a9a05
child 3017084 6c0e3c448359ce934d07f2f0225366de0bc6b0b6
child 3017268 d28406e72550a781564c67df3352d61c6e8c70f4
child 3017378 769f832946ffd94effc36ac3a4e10be46965f127
child 3017411 ef16bd819fb6787b35c275acf4145c75d7cb48c3
child 3017480 499a4d6de22f1c5b04597136e98520f92be33e97
child 3017482 5ff3d8ae80b11484d4aa6fa790683efaf0c6dbc8
child 3017506 7969ff52ae5c8f974e6312fff52e05103f211be6
child 3017512 8bf97f0fc30c98ef747934ce6d2d3c130a95a45d
child 3017517 4bd28fe480c806d2e77ad057799c47e3c8e3b216
child 3017518 eb915aa72fcce5b8a49e33282a445adfed78854c
child 3017527 2944768a05b0e3ca8e675e9b7fea64dcd336763f
child 3017532 8ae38d58f40e2d772f252c5946fedcd3d21094f7
child 3017547 97175eb752d64441737e6afcda387d92f21b25ef
child 3017567 48bbd28931c2f20a819d0707271923eedce8b3d5
child 3017570 996f969b258f94af2c9d872f2a94572521dfd9ab
child 3017580 6ebd687c4066dfce54f5eb2f3e87f14fd8cfe8bd
child 3017657 d5e10688eda90735ccfaca77434f531044dd6bf9
child 3017675 308dca6f886f0f66ce441d8a35a3da6d05eb09b4
child 3017714 995734e31993cac1e52292b6cbf010a34da22db9
child 3017719 68e49bd3f01737f279fdd126821bf854e7b3a3f6
child 3017726 877fec0a15848f1e66d263f387c211089985d2f6
child 3018541 f7cc76a1a4ca7dc35741c9142faba71c7c92ee75
child 3018543 7ca7df4fcd32b94408a4da8ce70fa6ab176be216
child 3018558 5dca195f364ceac766adaafea212e14a8e958fa6
child 3018562 3dc9083343e51fb64f56460c7e9461e5bb9122e3
child 3018847 7089f49057a0c4265e14cb0b4e3f858988f8e5a6
child 3018859 7f20bc71dcdcb610dda220d0d69ffb5587ee8b9e
child 3018870 d92275f7decd40249b1ae3eb130d3560c587f797
child 3018982 8289b3c74c150602ac90702281fc76f571c41060
child 3019102 8cd8c2a6d95e7a159307960b894b8f05f9955539
child 3019111 71fd8f8f8b795825be0838ebee24d13552a35f6e
child 3019131 b3680f42cbb1a8662bd48b1db91e766788860e46
child 3019177 6746d7dbd53471ba1061261bdd67d34caeee34d5
child 3019204 7778c0640d1c975979560b014df66ccb7db4ca8e
child 3019211 0e5fb7de12221135701d33dec866b2b3bfed4332
child 3019542 8e7859f29321aa7ad59cf58a615ff0bd11550ec7
child 3019544 d99831c95734119d30fd5a75a3c92629bd79da8c
child 3019616 5d1d8733f691a9012dd6667e3307b7f11c503d25
child 3019656 b73eeb514fd298641a026e8d508b9214d293e479
child 3019713 3ecba8f62c8470bdd904bad11ae9f168aaff04fe
child 3020097 479aaf0614af16bae4593095d10f9a7bf1aa7a2c
child 3020155 93500c7c2f3f3fefa88b0bccfc4452cd749eefd1
child 3020159 baf97d6244543fe107ab8aaacebe3391f5b5988c
child 3020379 9da1d78b87a1b559d1d227af63f1c757038be3b8
child 3021404 13489c220a9d9156b14447684bd6f014bd706116
child 3021427 201b56e777b356f05624e67f62dbf92f9c7df046
child 3021516 0b902fb8b87de6c0b0b7b73854aab6010eda7a08
child 3021830 41e2df216c78639b8d193e9dbf63817af97a9462
child 3021916 7ddb92c3a5c5ddf8fde28bd23a0dc34f392f1561
child 3022167 e4a451b58fce72b23d14115bb7bce0a1bf62590e
child 3022359 3058b20b869060fc0820ebdd9d6e52b547efec75
child 3022432 021437fd91914344411cafcb05e1572a210161a9
child 3022434 47a03b26ab6d2a50ab7aa8c1a44987bc9040c4f4
child 3024176 b9226391fe14e32b9aba0b95fefe98b312f21865
child 3024303 a4d556dee79a3ee1b7e6bf5f9e9a2e68ad9dac08
child 3024500 9daad539b127399d0023d076b001aa43fdf9ba70
child 3024503 1aeec8a9ac98d4d9e7c8cd9e253d8443c1a4a325
child 3024572 bd648091c8b716258274a2a1dce3a8b306a90b28
child 3024653 857c113cd09b3f8c3ee84be0332d466b0311c5c6
child 3024678 e4ccdeb4fba75b3de41e1523dbf6c70da106fc34
child 3025248 a43ff0ad1b3a514a927585762560b338320e3033
child 3025261 05512d29391fa31f132c4a3001021309f2fe3467
child 3025641 453432195f92410b6cbd85ee741ea64d78abe512
child 3025643 3d43c0dc1dc2ef40b5ca4005c6909bf2b2a1a23c
child 3025908 f8011dd81ceff0a7f69e40032ff66477a215badb
child 3026001 c6c171c84b9a9beaa14b775424c06eecb6bf6831
child 3026007 f7009d53a19bde923d8139d7df4b6a1287674f0e
child 3026168 4b8b9f758b5d012833f77cc540641f430e5e7a31
child 3026170 17246dbfd7867fe5d0cddd771d138e4da4789519
child 3027416 a6ad75903cbf4543d9979ba6481eb2fc12efbf0f
child 3028488 bb980570b15f465936ce29fa0f6d7771867a9568
child 3028553 8aaac5415d3866243b6838958d2be0da987cda66
child 3028583 5a72da316887a68f21a269f209de85ee43199bf9
child 3031963 9ce5da3509848572fe2d6928515cc49276bd0505
child 3031965 427c34dfc6895e406d1ca6844330910c6363c7c9
child 3035241 2f5029aa9cc266771c5eab12806ab6833c1ad377
child 3035545 d489e2d32f9b5510e3a8aab10870e07609100bbf
child 3035547 e604549fbf636c83299cbcb742ca2c1058e78a57
child 3035884 5a97e8e9906399a2483d75cf5742b73fce331f59
child 3036685 3ae1e6ec542047ba083c3c7687b484463833dc65
child 3038028 443aa7b1342612d1a26a73289b6892e99bd595b3
child 3038313 b1ecdef7c1f3c9e8169bc23d668e1c8f6c93a388
child 3039184 eb80f33ec4c7d8d4c3dfc4f72264e49e0a9d01ac
child 3039189 3e06e99a395b6b09a501f34cdcfaa82075ce1346
child 3039350 c570aca603aeb5c037cb8429da34846bada7e70e
child 3039446 bda597a0a2e0b5d5f6ade034ed9700e47d1b4788
child 3046532 97eb277cd162b8a5cd766ddc3e73ba396e36d009
child 3046639 07588ae2a905cee6668fcca1ac22b0ca4e82a9d5
child 3050036 a585f9e4378acce51bbc8fae2dbc98b9c4708913
child 3050088 6e9ebeca81bf92ef06fd19f0518d23cf9f0462b8
child 3081034 f01c2b43787a126a002a18f082bccf970bb6608b
child 3082389 f1b7dfecd8470b448f5cd33acf4ac07593891c3d
child 3082472 df363f643b4dbe57d85fdaad3b9fd39fc466f19e
push id561502
push userreviewbot
push dateMon, 29 Jun 2020 16:16:32 +0000
treeherdertry@43e9de1facb5 [default view] [failures only]
reviewersmerge
milestone80.0a1
Merge autoland to mozilla-central a=merge
python/l10n/fluent_migrations/bug_1523736_updates.py
python/l10n/fluent_migrations/bug_1608191_profileDowngrade.py
python/l10n/fluent_migrations/bug_1608202_downloads.py
python/l10n/fluent_migrations/bug_1609557_places_context_menu.py
python/l10n/fluent_migrations/bug_1609559_protectionsPanel.py
python/l10n/fluent_migrations/bug_1609562_popup_notifications.py
python/l10n/fluent_migrations/bug_1609563_allTabsMenu.py
python/l10n/fluent_migrations/bug_1619517_close_tooltip_mobile_card.py
python/l10n/fluent_migrations/bug_1624713_editBookmarkOverlay.py
python/l10n/fluent_migrations/bug_1625480_appMenuNotifications.py
python/l10n/fluent_migrations/bug_1626381_about_addons_sidebar_titles.py
python/l10n/fluent_migrations/bug_1628255_conflated_menuitem_button_downloads.py
python/l10n/fluent_migrations/bug_1629832_titlebar_caption_window_control_buttons.py
python/l10n/fluent_migrations/bug_1631944_preferences_logins_header.py
--- a/devtools/client/framework/test/browser_ignore_toolbox_network_requests.js
+++ b/devtools/client/framework/test/browser_ignore_toolbox_network_requests.js
@@ -2,21 +2,16 @@
  * http://creativecommons.org/publicdomain/zero/1.0/ */
 
 "use strict";
 
 // Test that network requests originating from the toolbox don't get recorded in
 // the network panel.
 
 add_task(async function() {
-  // TODO: This test tries to verify the normal behavior of the netmonitor and
-  // therefore needs to avoid the explicit check for tests. Bug 1167188 will
-  // allow us to remove this workaround.
-  await pushPref("devtools.testing", false);
-
   let tab = await addTab(URL_ROOT + "doc_viewsource.html");
   let target = await TargetFactory.forTab(tab);
   let toolbox = await gDevTools.showToolbox(target, "styleeditor");
   let panel = toolbox.getPanel("styleeditor");
 
   is(panel.UI.editors.length, 1, "correct number of editors opened");
 
   const monitor = await toolbox.selectTool("netmonitor");
--- a/devtools/client/netmonitor/test/browser.ini
+++ b/devtools/client/netmonitor/test/browser.ini
@@ -13,16 +13,17 @@ support-files =
   html_csp-resend-test-page.html
   html_csp-test-page.html
   html_custom-get-page.html
   html_cyrillic-test-page.html
   html_frame-test-page.html
   html_frame-subdocument.html
   html_filter-test-page.html
   html_infinite-get-page.html
+  html_internal-stylesheet.html
   html_json-b64.html
   html_json-basic.html
   html_json-custom-mime-test-page.html
   html_json-empty.html
   html_json-long-test-page.html
   html_json-malformed-test-page.html
   html_json-text-mime-test-page.html
   html_jsonp-test-page.html
@@ -131,16 +132,17 @@ skip-if = (verify && debug && os == 'win
 [browser_net_copy_as_fetch.js]
 [browser_net_use_as_fetch.js]
 [browser_net_cors_requests.js]
 [browser_net_cyrillic-01.js]
 [browser_net_cyrillic-02.js]
 [browser_net_frame.js]
 skip-if = true # Bug 1479782
 [browser_net_header-docs.js]
+[browser_net_internal-stylesheet.js]
 [browser_net_edit_resend_cancel.js]
 [browser_net_edit_resend_caret.js]
 [browser_net_edit_resend_with_filtering.js]
 [browser_net_edit_resend_xhr.js]
 [browser_net_filter-01.js]
 [browser_net_filter-02.js]
 [browser_net_filter-03.js]
 [browser_net_filter-04.js]
new file mode 100644
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_internal-stylesheet.js
@@ -0,0 +1,37 @@
+/* Any copyright is dedicated to the Public Domain.
+   http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const TEST_URL = EXAMPLE_URL + "html_internal-stylesheet.html";
+
+/**
+ * Test for the stylesheet which is loaded as internal.
+ */
+add_task(async function() {
+  const { tab, monitor } = await initNetMonitor(TEST_URL, {
+    requestCount: 2,
+  });
+
+  const wait = waitForNetworkEvents(monitor, 2);
+  tab.linkedBrowser.reload();
+  await wait;
+
+  const { store } = monitor.panelWin;
+  const requests = store.getState().requests.requests;
+  is(
+    requests.length,
+    2,
+    "The number of requests state in the store is correct"
+  );
+
+  const styleSheetRequest = requests.find(
+    r => r.urlDetails.baseNameWithQuery === "internal-loaded.css"
+  );
+  ok(
+    styleSheetRequest,
+    "The stylesheet which is loaded as internal is in the request"
+  );
+
+  return teardown(monitor);
+});
new file mode 100644
--- /dev/null
+++ b/devtools/client/netmonitor/test/html_internal-stylesheet.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<script>
+"use strict";
+
+const html = `
+	<!DOCTYPE html>
+	<head>
+		<link rel="stylesheet" href="internal-loaded.css">
+	</head>
+`;
+onload = function() {
+  // eslint-disable-next-line no-unsanitized/method
+  document.write(html);
+}
+</script>
--- a/devtools/client/styleeditor/test/browser_styleeditor_fetch-from-netmonitor.js
+++ b/devtools/client/styleeditor/test/browser_styleeditor_fetch-from-netmonitor.js
@@ -5,16 +5,18 @@
 
 // A test to ensure Style Editor only issues 1 request for each stylesheet (instead of 2)
 // by using the network monitor's request history (bug 1306892).
 
 const EMPTY_TEST_URL = TEST_BASE_HTTP + "doc_empty.html";
 const TEST_URL = TEST_BASE_HTTP + "doc_fetch_from_netmonitor.html";
 
 add_task(async function() {
+  await pushPref("devtools.testing.netmonitor.want-all-requests", true);
+
   info("Opening netmonitor");
   // Navigate first to an empty document in order to:
   // * avoid introducing a cross process navigation when calling navigateTo()
   // * properly wait for request updates when calling navigateTo, while showToolbox
   //   won't necessarily wait for all pending requests. (If we were loading TEST_URL
   //   in the tab, we might have pending updates in the netmonitor which won't be
   //   awaited for by showToolbox)
   const tab = await addTab(EMPTY_TEST_URL);
--- a/devtools/server/actors/network-monitor/network-observer.js
+++ b/devtools/server/actors/network-monitor/network-observer.js
@@ -76,31 +76,23 @@ const HTTP_TEMPORARY_REDIRECT = 307;
 function matchRequest(channel, filters) {
   // Log everything if no filter is specified
   if (!filters.browsingContextID && !filters.window) {
     return true;
   }
 
   // Ignore requests from chrome or add-on code when we are monitoring
   // content.
-  // TODO: one particular test (browser_styleeditor_fetch-from-cache.js) needs
-  // the flags.testing check. We will move to a better way to serve
-  // its needs in bug 1167188, where this check should be removed.
   if (
-    !flags.testing &&
+    !flags.wantAllNetworkRequests &&
     channel.loadInfo &&
     channel.loadInfo.loadingDocument === null &&
     (channel.loadInfo.loadingPrincipal ===
       Services.scriptSecurityManager.getSystemPrincipal() ||
-      // StyleEditor loads stylesheets with not the system principal but the content
-      // principal that same as of the document that loaded the stylesheet in order
-      // to take over the context of Private Browsing etc. Thus, in order to restrict
-      // the networking from StyleEditor, we check the loading policy.
-      channel.loadInfo.internalContentPolicyType ===
-        Ci.nsIContentPolicy.TYPE_INTERNAL_STYLESHEET)
+      channel.loadInfo.isInDevToolsContext)
   ) {
     return false;
   }
 
   if (filters.window) {
     // Since frames support, this.window may not be the top level content
     // frame, so that we can't only compare with win.top.
     let win = NetworkHelper.getWindowForRequest(channel);
--- a/devtools/server/tests/xpcshell/xpcshell.ini
+++ b/devtools/server/tests/xpcshell/xpcshell.ini
@@ -54,17 +54,17 @@ support-files =
 [test_reattach-thread.js]
 [test_blackboxing-01.js]
 [test_blackboxing-02.js]
 [test_blackboxing-03.js]
 [test_blackboxing-04.js]
 [test_blackboxing-05.js]
 [test_blackboxing-08.js]
 [test_extension_storage_actor.js]
-skip-if = tsan # Unreasonably slow, bug 1612707
+skip-if = tsan || (os == 'win') # Unreasonably slow, bug 1612707, Bug 1618059
 [test_frameactor-01.js]
 [test_frameactor-02.js]
 [test_frameactor-03.js]
 [test_frameactor-04.js]
 [test_frameactor-05.js]
 [test_frameactor_wasm-01.js]
 [test_framearguments-01.js]
 [test_getRuleText.js]
--- a/devtools/shared/DevToolsUtils.js
+++ b/devtools/shared/DevToolsUtils.js
@@ -512,16 +512,18 @@ function mainThreadFetch(
     let channel;
     try {
       channel = newChannelForURL(url, aOptions);
     } catch (ex) {
       reject(ex);
       return;
     }
 
+    channel.loadInfo.isInDevToolsContext = true;
+
     // Set the channel options.
     channel.loadFlags = aOptions.loadFromCache
       ? channel.LOAD_FROM_CACHE
       : channel.LOAD_BYPASS_CACHE;
 
     if (aOptions.loadFromCache && channel instanceof Ci.nsICacheInfoChannel) {
       // If DevTools intents to load the content from the cache,
       // we make the LOAD_FROM_CACHE flag preferred over LOAD_BYPASS_CACHE.
--- a/devtools/shared/flags.js
+++ b/devtools/shared/flags.js
@@ -46,16 +46,26 @@ function makePrefTrackedFlag(exports, na
   Object.defineProperty(exports, name, {
     get: function() {
       return flag;
     },
   });
 }
 
 /**
+ * Setting the "devtools.testing.netmonitor.want-all-requests" preference to true will
+ * enable logging of all of network requests by the network monitor.
+ */
+makePrefTrackedFlag(
+  exports,
+  "wantAllNetworkRequests",
+  "devtools.testing.netmonitor.want-all-requests"
+);
+
+/**
  * Setting the "devtools.debugger.log" preference to true will enable logging of
  * the RDP calls to the devtools server.
  */
 makePrefTrackedFlag(exports, "wantLogging", "devtools.debugger.log");
 
 /**
  * Setting the "devtools.debugger.log.verbose" preference to true will enable a
  * more verbose logging of the the RDP. The "devtools.debugger.log" preference
--- a/ipc/glue/BackgroundUtils.cpp
+++ b/ipc/glue/BackgroundUtils.cpp
@@ -533,17 +533,17 @@ nsresult LoadInfoToLoadInfoArgs(nsILoadI
       aLoadInfo->GetServiceWorkerTaintingSynthesized(),
       aLoadInfo->GetDocumentHasUserInteracted(),
       aLoadInfo->GetDocumentHasLoaded(),
       aLoadInfo->GetAllowListFutureDocumentsCreatedFromThisRedirectChain(),
       cspNonce, aLoadInfo->GetSkipContentSniffing(),
       aLoadInfo->GetHttpsOnlyStatus(),
       aLoadInfo->GetHasValidUserGestureActivation(),
       aLoadInfo->GetAllowDeprecatedSystemRequests(),
-      aLoadInfo->GetParserCreatedScript(),
+      aLoadInfo->GetIsInDevToolsContext(), aLoadInfo->GetParserCreatedScript(),
       aLoadInfo->GetIsFromProcessingFrameAttributes(), cookieJarSettingsArgs,
       aLoadInfo->GetRequestBlockingReason(), maybeCspToInheritInfo,
       aLoadInfo->GetHasStoragePermission(),
       aLoadInfo->GetLoadingEmbedderPolicy()));
 
   return NS_OK;
 }
 
@@ -762,19 +762,19 @@ nsresult LoadInfoArgsToLoadInfo(
       loadInfoArgs.serviceWorkerTaintingSynthesized(),
       loadInfoArgs.documentHasUserInteracted(),
       loadInfoArgs.documentHasLoaded(),
       loadInfoArgs.allowListFutureDocumentsCreatedFromThisRedirectChain(),
       loadInfoArgs.cspNonce(), loadInfoArgs.skipContentSniffing(),
       loadInfoArgs.httpsOnlyStatus(),
       loadInfoArgs.hasValidUserGestureActivation(),
       loadInfoArgs.allowDeprecatedSystemRequests(),
-      loadInfoArgs.parserCreatedScript(), loadInfoArgs.hasStoragePermission(),
-      loadInfoArgs.requestBlockingReason(), loadingContext,
-      loadInfoArgs.loadingEmbedderPolicy());
+      loadInfoArgs.isInDevToolsContext(), loadInfoArgs.parserCreatedScript(),
+      loadInfoArgs.hasStoragePermission(), loadInfoArgs.requestBlockingReason(),
+      loadingContext, loadInfoArgs.loadingEmbedderPolicy());
 
   if (loadInfoArgs.isFromProcessingFrameAttributes()) {
     loadInfo->SetIsFromProcessingFrameAttributes();
   }
 
   loadInfo.forget(outLoadInfo);
   return NS_OK;
 }
@@ -804,17 +804,17 @@ void LoadInfoToParentLoadInfoForwarder(
   }
 
   *aForwarderArgsOut = ParentLoadInfoForwarderArgs(
       aLoadInfo->GetAllowInsecureRedirectToDataURI(),
       aLoadInfo->GetBypassCORSChecks(), ipcController, tainting,
       aLoadInfo->GetSkipContentSniffing(), aLoadInfo->GetHttpsOnlyStatus(),
       aLoadInfo->GetHasValidUserGestureActivation(),
       aLoadInfo->GetAllowDeprecatedSystemRequests(),
-      aLoadInfo->GetParserCreatedScript(),
+      aLoadInfo->GetIsInDevToolsContext(), aLoadInfo->GetParserCreatedScript(),
       aLoadInfo->GetServiceWorkerTaintingSynthesized(),
       aLoadInfo->GetDocumentHasUserInteracted(),
       aLoadInfo->GetDocumentHasLoaded(),
       aLoadInfo->GetAllowListFutureDocumentsCreatedFromThisRedirectChain(),
       cookieJarSettingsArgs, aLoadInfo->GetRequestBlockingReason(),
       aLoadInfo->GetHasStoragePermission(),
       aLoadInfo->GetIsThirdPartyContextToTopWindow(),
       aLoadInfo->GetIsInThirdPartyContext());
@@ -853,16 +853,19 @@ nsresult MergeParentLoadInfoForwarder(
   rv = aLoadInfo->SetHasValidUserGestureActivation(
       aForwarderArgs.hasValidUserGestureActivation());
   NS_ENSURE_SUCCESS(rv, rv);
 
   rv = aLoadInfo->SetAllowDeprecatedSystemRequests(
       aForwarderArgs.allowDeprecatedSystemRequests());
   NS_ENSURE_SUCCESS(rv, rv);
 
+  rv = aLoadInfo->SetIsInDevToolsContext(aForwarderArgs.isInDevToolsContext());
+  NS_ENSURE_SUCCESS(rv, rv);
+
   rv = aLoadInfo->SetParserCreatedScript(aForwarderArgs.parserCreatedScript());
   NS_ENSURE_SUCCESS(rv, rv);
 
   MOZ_ALWAYS_SUCCEEDS(aLoadInfo->SetDocumentHasUserInteracted(
       aForwarderArgs.documentHasUserInteracted()));
   MOZ_ALWAYS_SUCCEEDS(
       aLoadInfo->SetDocumentHasLoaded(aForwarderArgs.documentHasLoaded()));
   MOZ_ALWAYS_SUCCEEDS(
--- a/netwerk/base/LoadInfo.cpp
+++ b/netwerk/base/LoadInfo.cpp
@@ -118,16 +118,17 @@ LoadInfo::LoadInfo(
       mServiceWorkerTaintingSynthesized(false),
       mDocumentHasUserInteracted(false),
       mDocumentHasLoaded(false),
       mAllowListFutureDocumentsCreatedFromThisRedirectChain(false),
       mSkipContentSniffing(false),
       mHttpsOnlyStatus(nsILoadInfo::HTTPS_ONLY_UNINITIALIZED),
       mHasValidUserGestureActivation(false),
       mAllowDeprecatedSystemRequests(false),
+      mIsInDevToolsContext(false),
       mParserCreatedScript(false),
       mHasStoragePermission(false),
       mIsFromProcessingFrameAttributes(false),
       mLoadingEmbedderPolicy(nsILoadInfo::EMBEDDER_POLICY_NULL) {
   MOZ_ASSERT(mLoadingPrincipal);
   MOZ_ASSERT(mTriggeringPrincipal);
 
 #ifdef DEBUG
@@ -401,16 +402,17 @@ LoadInfo::LoadInfo(nsPIDOMWindowOuter* a
       mServiceWorkerTaintingSynthesized(false),
       mDocumentHasUserInteracted(false),
       mDocumentHasLoaded(false),
       mAllowListFutureDocumentsCreatedFromThisRedirectChain(false),
       mSkipContentSniffing(false),
       mHttpsOnlyStatus(nsILoadInfo::HTTPS_ONLY_UNINITIALIZED),
       mHasValidUserGestureActivation(false),
       mAllowDeprecatedSystemRequests(false),
+      mIsInDevToolsContext(false),
       mParserCreatedScript(false),
       mHasStoragePermission(false),
       mIsFromProcessingFrameAttributes(false),
       mLoadingEmbedderPolicy(nsILoadInfo::EMBEDDER_POLICY_NULL) {
   // Top-level loads are never third-party
   // Grab the information we can out of the window.
   MOZ_ASSERT(aOuterWindow);
   MOZ_ASSERT(mTriggeringPrincipal);
@@ -504,16 +506,17 @@ LoadInfo::LoadInfo(dom::CanonicalBrowsin
       mServiceWorkerTaintingSynthesized(false),
       mDocumentHasUserInteracted(false),
       mDocumentHasLoaded(false),
       mAllowListFutureDocumentsCreatedFromThisRedirectChain(false),
       mSkipContentSniffing(false),
       mHttpsOnlyStatus(nsILoadInfo::HTTPS_ONLY_UNINITIALIZED),
       mHasValidUserGestureActivation(false),
       mAllowDeprecatedSystemRequests(false),
+      mIsInDevToolsContext(false),
       mParserCreatedScript(false),
       mHasStoragePermission(false),
       mIsFromProcessingFrameAttributes(false),
       mLoadingEmbedderPolicy(nsILoadInfo::EMBEDDER_POLICY_NULL) {
   // Top-level loads are never third-party
   // Grab the information we can out of the window.
   MOZ_ASSERT(aBrowsingContext);
   MOZ_ASSERT(mTriggeringPrincipal);
@@ -591,16 +594,17 @@ LoadInfo::LoadInfo(dom::WindowGlobalPare
       mLoadTriggeredFromExternal(false),
       mServiceWorkerTaintingSynthesized(false),
       mDocumentHasUserInteracted(false),
       mDocumentHasLoaded(false),
       mAllowListFutureDocumentsCreatedFromThisRedirectChain(false),
       mSkipContentSniffing(false),
       mHttpsOnlyStatus(nsILoadInfo::HTTPS_ONLY_UNINITIALIZED),
       mAllowDeprecatedSystemRequests(false),
+      mIsInDevToolsContext(false),
       mParserCreatedScript(false),
       mHasStoragePermission(false),
       mIsFromProcessingFrameAttributes(false),
       mLoadingEmbedderPolicy(nsILoadInfo::EMBEDDER_POLICY_NULL) {
   CanonicalBrowsingContext* parentBC = aParentWGP->BrowsingContext();
   MOZ_ASSERT(parentBC);
   ComputeAncestors(parentBC, mAncestorPrincipals, mAncestorOuterWindowIDs);
 
@@ -786,16 +790,17 @@ LoadInfo::LoadInfo(const LoadInfo& rhs)
       mDocumentHasLoaded(rhs.mDocumentHasLoaded),
       mAllowListFutureDocumentsCreatedFromThisRedirectChain(
           rhs.mAllowListFutureDocumentsCreatedFromThisRedirectChain),
       mCspNonce(rhs.mCspNonce),
       mSkipContentSniffing(rhs.mSkipContentSniffing),
       mHttpsOnlyStatus(rhs.mHttpsOnlyStatus),
       mHasValidUserGestureActivation(rhs.mHasValidUserGestureActivation),
       mAllowDeprecatedSystemRequests(rhs.mAllowDeprecatedSystemRequests),
+      mIsInDevToolsContext(rhs.mIsInDevToolsContext),
       mParserCreatedScript(rhs.mParserCreatedScript),
       mHasStoragePermission(rhs.mHasStoragePermission),
       mIsFromProcessingFrameAttributes(rhs.mIsFromProcessingFrameAttributes),
       mLoadingEmbedderPolicy(rhs.mLoadingEmbedderPolicy) {}
 
 LoadInfo::LoadInfo(
     nsIPrincipal* aLoadingPrincipal, nsIPrincipal* aTriggeringPrincipal,
     nsIPrincipal* aPrincipalToInherit, nsIPrincipal* aSandboxedLoadingPrincipal,
@@ -827,19 +832,19 @@ LoadInfo::LoadInfo(
     const nsTArray<uint64_t>& aAncestorOuterWindowIDs,
     const nsTArray<nsCString>& aCorsUnsafeHeaders, bool aForcePreflight,
     bool aIsPreflight, bool aLoadTriggeredFromExternal,
     bool aServiceWorkerTaintingSynthesized, bool aDocumentHasUserInteracted,
     bool aDocumentHasLoaded,
     bool aAllowListFutureDocumentsCreatedFromThisRedirectChain,
     const nsAString& aCspNonce, bool aSkipContentSniffing,
     uint32_t aHttpsOnlyStatus, bool aHasValidUserGestureActivation,
-    bool aAllowDeprecatedSystemRequests, bool aParserCreatedScript,
-    bool aHasStoragePermission, uint32_t aRequestBlockingReason,
-    nsINode* aLoadingContext,
+    bool aAllowDeprecatedSystemRequests, bool aIsInDevToolsContext,
+    bool aParserCreatedScript, bool aHasStoragePermission,
+    uint32_t aRequestBlockingReason, nsINode* aLoadingContext,
     nsILoadInfo::CrossOriginEmbedderPolicy aLoadingEmbedderPolicy)
     : mLoadingPrincipal(aLoadingPrincipal),
       mTriggeringPrincipal(aTriggeringPrincipal),
       mPrincipalToInherit(aPrincipalToInherit),
       mTopLevelPrincipal(aTopLevelPrincipal),
       mTopLevelStorageAreaPrincipal(aTopLevelStorageAreaPrincipal),
       mResultPrincipalURI(aResultPrincipalURI),
       mCookieJarSettings(aCookieJarSettings),
@@ -890,16 +895,17 @@ LoadInfo::LoadInfo(
       mDocumentHasLoaded(aDocumentHasLoaded),
       mAllowListFutureDocumentsCreatedFromThisRedirectChain(
           aAllowListFutureDocumentsCreatedFromThisRedirectChain),
       mCspNonce(aCspNonce),
       mSkipContentSniffing(aSkipContentSniffing),
       mHttpsOnlyStatus(aHttpsOnlyStatus),
       mHasValidUserGestureActivation(aHasValidUserGestureActivation),
       mAllowDeprecatedSystemRequests(aAllowDeprecatedSystemRequests),
+      mIsInDevToolsContext(aIsInDevToolsContext),
       mParserCreatedScript(aParserCreatedScript),
       mHasStoragePermission(aHasStoragePermission),
       mIsFromProcessingFrameAttributes(false),
       mLoadingEmbedderPolicy(aLoadingEmbedderPolicy) {
   // Only top level TYPE_DOCUMENT loads can have a null loadingPrincipal
   MOZ_ASSERT(mLoadingPrincipal ||
              aContentPolicyType == nsIContentPolicy::TYPE_DOCUMENT);
   MOZ_ASSERT(mTriggeringPrincipal);
@@ -1809,16 +1815,28 @@ LoadInfo::GetAllowDeprecatedSystemReques
 NS_IMETHODIMP
 LoadInfo::SetAllowDeprecatedSystemRequests(
     bool aAllowDeprecatedSystemRequests) {
   mAllowDeprecatedSystemRequests = aAllowDeprecatedSystemRequests;
   return NS_OK;
 }
 
 NS_IMETHODIMP
+LoadInfo::GetIsInDevToolsContext(bool* aIsInDevToolsContext) {
+  *aIsInDevToolsContext = mIsInDevToolsContext;
+  return NS_OK;
+}
+
+NS_IMETHODIMP
+LoadInfo::SetIsInDevToolsContext(bool aIsInDevToolsContext) {
+  mIsInDevToolsContext = aIsInDevToolsContext;
+  return NS_OK;
+}
+
+NS_IMETHODIMP
 LoadInfo::GetParserCreatedScript(bool* aParserCreatedScript) {
   *aParserCreatedScript = mParserCreatedScript;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 LoadInfo::SetParserCreatedScript(bool aParserCreatedScript) {
   mParserCreatedScript = aParserCreatedScript;
--- a/netwerk/base/LoadInfo.h
+++ b/netwerk/base/LoadInfo.h
@@ -180,19 +180,19 @@ class LoadInfo final : public nsILoadInf
            const nsTArray<uint64_t>& aAncestorOuterWindowIDs,
            const nsTArray<nsCString>& aUnsafeHeaders, bool aForcePreflight,
            bool aIsPreflight, bool aLoadTriggeredFromExternal,
            bool aServiceWorkerTaintingSynthesized,
            bool aDocumentHasUserInteracted, bool aDocumentHasLoaded,
            bool aAllowListFutureDocumentsCreatedFromThisRedirectChain,
            const nsAString& aCspNonce, bool aSkipContentSniffing,
            uint32_t aHttpsOnlyStatus, bool aHasValidUserGestureActivation,
-           bool aAllowDeprecatedSystemRequests, bool aParserCreatedScript,
-           bool aHasStoragePermission, uint32_t aRequestBlockingReason,
-           nsINode* aLoadingContext,
+           bool aAllowDeprecatedSystemRequests, bool aIsDevToolsContext,
+           bool aParserCreatedScript, bool aHasStoragePermission,
+           uint32_t aRequestBlockingReason, nsINode* aLoadingContext,
            nsILoadInfo::CrossOriginEmbedderPolicy aLoadingEmbedderPolicy);
   LoadInfo(const LoadInfo& rhs);
 
   NS_IMETHOD GetRedirects(JSContext* aCx,
                           JS::MutableHandle<JS::Value> aRedirects,
                           const RedirectHistoryArray& aArra);
 
   friend nsresult mozilla::ipc::LoadInfoArgsToLoadInfo(
@@ -283,16 +283,17 @@ class LoadInfo final : public nsILoadInf
   bool mDocumentHasUserInteracted;
   bool mDocumentHasLoaded;
   bool mAllowListFutureDocumentsCreatedFromThisRedirectChain;
   nsString mCspNonce;
   bool mSkipContentSniffing;
   uint32_t mHttpsOnlyStatus;
   bool mHasValidUserGestureActivation;
   bool mAllowDeprecatedSystemRequests;
+  bool mIsInDevToolsContext;
   bool mParserCreatedScript;
   bool mHasStoragePermission;
 
   // Is true if this load was triggered by processing the attributes of the
   // browsing context container.
   // See nsILoadInfo.isFromProcessingFrameAttributes
   bool mIsFromProcessingFrameAttributes;
 
--- a/netwerk/base/TRRLoadInfo.cpp
+++ b/netwerk/base/TRRLoadInfo.cpp
@@ -649,16 +649,26 @@ TRRLoadInfo::GetAllowDeprecatedSystemReq
 
 NS_IMETHODIMP
 TRRLoadInfo::SetAllowDeprecatedSystemRequests(
     bool aAllowDeprecatedSystemRequests) {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP
+TRRLoadInfo::GetIsInDevToolsContext(bool* aIsInDevToolsContext) {
+  return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+NS_IMETHODIMP
+TRRLoadInfo::SetIsInDevToolsContext(bool aIsInDevToolsContext) {
+  return NS_ERROR_NOT_IMPLEMENTED;
+}
+
+NS_IMETHODIMP
 TRRLoadInfo::GetParserCreatedScript(bool* aParserCreatedScript) {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
 
 NS_IMETHODIMP
 TRRLoadInfo::SetParserCreatedScript(bool aParserCreatedScript) {
   return NS_ERROR_NOT_IMPLEMENTED;
 }
--- a/netwerk/base/nsILoadInfo.idl
+++ b/netwerk/base/nsILoadInfo.idl
@@ -473,16 +473,21 @@ interface nsILoadInfo : nsISupports
 
   /**
    * Only ever returns true if the loadinfo is of TYPE_SCRIPT and
    * the script was created by the HTML parser.
    */
   [infallible] attribute boolean parserCreatedScript;
 
   /**
+   * True if this request is from DevTools.
+   */
+  [infallible] attribute boolean isInDevToolsContext;
+
+  /**
    * True if this request is embedded in a context that can't be third-party
    * (i.e. an iframe embedded in a cross-origin parent window). If this is
    * false, then this request may be third-party if it's a third-party to
    * loadingPrincipal.
    */
   [infallible] attribute boolean isInThirdPartyContext;
 
   /**
@@ -1327,13 +1332,13 @@ interface nsILoadInfo : nsISupports
     EMBEDDER_POLICY_REQUIRE_CORP = 1,
   };
 
   /**
    * This attribute is the loading context's cross origin embedder policy.
    * The value is initialized with corresponding WindowContext which get by
    * innerWindowIID in the nsILoadInfo.
    * It also could be set by workers when fetch is called under
-   * the workers' scope. 
+   * the workers' scope.
    */
   [infallible] attribute nsILoadInfo_CrossOriginEmbedderPolicy
         loadingEmbedderPolicy;
 };
--- a/netwerk/ipc/NeckoChannelParams.ipdlh
+++ b/netwerk/ipc/NeckoChannelParams.ipdlh
@@ -141,16 +141,17 @@ struct LoadInfoArgs
   bool                        documentHasUserInteracted;
   bool                        documentHasLoaded;
   bool allowListFutureDocumentsCreatedFromThisRedirectChain;
   nsString                    cspNonce;
   bool                        skipContentSniffing;
   uint32_t                    httpsOnlyStatus;
   bool                        hasValidUserGestureActivation;
   bool                        allowDeprecatedSystemRequests;
+  bool                        isInDevToolsContext;
   bool                        parserCreatedScript;
   bool                        isFromProcessingFrameAttributes;
   CookieJarSettingsArgs       cookieJarSettings;
   uint32_t                    requestBlockingReason;
   CSPInfo?                    cspToInheritInfo;
   bool                        hasStoragePermission;
   CrossOriginEmbedderPolicy   loadingEmbedderPolicy;
 };
@@ -195,16 +196,18 @@ struct ParentLoadInfoForwarderArgs
   // in the context of Sec-Fetch-User.)
   bool hasValidUserGestureActivation;
 
   // The SystemPrincipal is disallowed to make requests to the public web
   // and all requests will be cancelled. Setting this flag to true prevents
   // the request from being cancelled.
   bool allowDeprecatedSystemRequests;
 
+  bool isInDevToolsContext;
+
   // Only ever returns true if the loadinfo is of TYPE_SCRIPT and
   // the script was created by the HTML parser.
   bool parserCreatedScript;
 
   // We must also note that the tainting value was explicitly set
   // by the service worker.
   bool serviceWorkerTaintingSynthesized;
 
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1523736_updates.py
+++ /dev/null
@@ -1,66 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-from fluent.migrate import CONCAT, REPLACE
-from fluent.migrate.helpers import COPY, TERM_REFERENCE
-
-def migrate(ctx):
-    """Bug 1523736 - Migrate updates.dtd to Fluent, part {index}."""
-    ctx.add_transforms(
-        "toolkit/toolkit/updates/elevation.ftl",
-        "toolkit/toolkit/updates/elevation.ftl",
-    transforms_from(
-"""
-elevation-update-wizard =
-    .title = { COPY(from_path, "updateWizard.title") }
-elevation-details-link-label =
-    .value = { COPY(from_path, "details.link") }
-elevation-finished-page = { COPY(from_path, "finishedPage.title") }
-elevation-finished-background = { COPY(from_path, "finishedBackground.name") }
-""",from_path="toolkit/chrome/mozapps/update/updates.dtd"))
-
-    ctx.add_transforms(
-        "toolkit/toolkit/updates/elevation.ftl",
-        "toolkit/toolkit/updates/elevation.ftl",
-        [
-            FTL.Message(
-                id = FTL.Identifier("elevation-error-manual"),
-                value = REPLACE(
-                    "toolkit/chrome/mozapps/update/updates.dtd",
-                    "errorManual.label",
-                    {
-                        "&brandShortName;": TERM_REFERENCE("brand-short-name")
-                    },
-                    trim = True
-                )
-            ),
-            FTL.Message(
-                id = FTL.Identifier("elevation-finished-background-page"),
-                value = REPLACE(
-                    "toolkit/chrome/mozapps/update/updates.dtd",
-                    "finishedBackgroundPage.text",
-                    {
-                        "&brandShortName;": TERM_REFERENCE("brand-short-name")
-                    },
-                    trim = True
-                )
-            ),
-            FTL.Message(
-                id = FTL.Identifier("elevation-more-elevated"),
-                value = REPLACE(
-                    "toolkit/chrome/mozapps/update/updates.dtd",
-                    "finishedBackground.moreElevated",
-                    {
-                        "&brandShortName;": TERM_REFERENCE("brand-short-name")
-                    },
-                    trim = True
-                )
-            ),
-
-        ]
-    )
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1608191_profileDowngrade.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate import REPLACE
-from fluent.migrate.helpers import COPY, TERM_REFERENCE, transforms_from
-
-def migrate(ctx):
-    """Bug 1608191 - Port profileDowngrade.dtd to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        "toolkit/toolkit/global/profileDowngrade.ftl",
-        "toolkit/toolkit/global/profileDowngrade.ftl",
-    transforms_from(
-"""
-profiledowngrade-window-create =
-    .label = { COPY(from_path, "window.create") }
-profiledowngrade-quit =
-    .label = { PLATFORM() ->
-                 [windows] { COPY(from_path, "window.quit-win") }
-                *[other] { COPY(from_path, "window.quit-nonwin") }
-             }
-""", from_path="toolkit/chrome/mozapps/profile/profileDowngrade.dtd"))
-
-    ctx.add_transforms(
-        "toolkit/toolkit/global/profileDowngrade.ftl",
-        "toolkit/toolkit/global/profileDowngrade.ftl",
-        [
-                FTL.Message(
-                    id=FTL.Identifier("profiledowngrade-window"),
-                    attributes=[
-                        FTL.Attribute(
-                            id=FTL.Identifier("title"),
-                            value=REPLACE(
-                                "toolkit/chrome/mozapps/profile/profileDowngrade.dtd",
-                                "window.title",
-                                {
-                                    "Firefox": TERM_REFERENCE("brand-product-name"),
-                                }
-                            )
-                        ),
-                        FTL.Attribute(
-                            id=FTL.Identifier("style"),
-                            value=COPY("toolkit/chrome/mozapps/profile/profileDowngrade.dtd", "window.style")
-                            )
-                    ]
-                ),
-                FTL.Message(
-                    id=FTL.Identifier("profiledowngrade-sync"),
-                    value=REPLACE(
-                        "toolkit/chrome/mozapps/profile/profileDowngrade.dtd",
-                        "window.sync",
-                        {
-                            "&brandShortName;": TERM_REFERENCE("brand-short-name"),
-                            "Firefox": TERM_REFERENCE("brand-product-name"),
-                            "&syncBrand.fxAccount.label;": TERM_REFERENCE("fxaccount-brand-name"),
-                        },
-                    ),
-                ),
-            FTL.Message(
-                id=FTL.Identifier("profiledowngrade-nosync"),
-                value=REPLACE(
-                    "toolkit/chrome/mozapps/profile/profileDowngrade.dtd",
-                    "window.nosync",
-                    {
-                        "&brandShortName;": TERM_REFERENCE("brand-short-name"),
-                        "Firefox": TERM_REFERENCE("brand-product-name"),
-                    }
-                ),
-            ),
-        ]
-    )
-
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1608202_downloads.py
+++ /dev/null
@@ -1,109 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-from fluent.migrate import COPY, CONCAT, REPLACE
-
-def migrate(ctx):
-    """Bug 1608202 - Migrate downloads to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        "browser/browser/downloads.ftl",
-        "browser/browser/downloads.ftl",
-    transforms_from(
-"""
-downloads-window =
-    .title = { COPY(from_path, "downloads.title") }
-downloads-panel =
-    .aria-label = { COPY(from_path, "downloads.title") }
-downloads-panel-list =
-    .style = width: { COPY(from_path, "downloads.width") }
-downloads-cmd-pause =
-    .label = { COPY(from_path, "cmd.pause.label") }
-    .accesskey = { COPY(from_path, "cmd.pause.accesskey") }
-downloads-cmd-resume =
-    .label = { COPY(from_path, "cmd.resume.label") }
-    .accesskey = { COPY(from_path, "cmd.resume.accesskey") }
-downloads-cmd-cancel =
-    .tooltiptext = { COPY(from_path, "cmd.cancel.label") }
-downloads-cmd-cancel-panel =
-    .aria-label = { COPY(from_path, "cmd.cancel.label") }
-downloads-cmd-show =
-    .label = { COPY(from_path, "cmd.show.label") }
-    .tooltiptext = { downloads-cmd-show.label }
-    .accesskey = { COPY(from_path, "cmd.show.accesskey") }
-downloads-cmd-show-mac =
-    .label = { COPY(from_path, "cmd.showMac.label") }
-    .tooltiptext = { downloads-cmd-show-mac.label }
-    .accesskey = { COPY(from_path, "cmd.showMac.accesskey") }
-downloads-cmd-show-panel =
-    .aria-label = { PLATFORM() ->
-        [macos] { COPY(from_path, "cmd.showMac.label") }
-       *[other] { COPY(from_path, "cmd.show.label") }
-    }
-downloads-cmd-show-description =
-    .value = { PLATFORM() ->
-        [macos] { COPY(from_path, "cmd.showMac.label") }
-       *[other] { COPY(from_path, "cmd.show.label") }
-    }
-downloads-cmd-show-downloads =
-    .label = { COPY(from_path, "cmd.showDownloads.label") }
-downloads-cmd-retry =
-    .tooltiptext = { COPY(from_path, "cmd.retry.label") }
-downloads-cmd-retry-panel =
-    .aria-label = { COPY(from_path, "cmd.retry.label") }
-downloads-cmd-go-to-download-page =
-    .label = { COPY(from_path, "cmd.goToDownloadPage.label") }
-    .accesskey = { COPY(from_path, "cmd.goToDownloadPage.accesskey") }
-downloads-cmd-copy-download-link =
-    .label = { COPY(from_path, "cmd.copyDownloadLink.label") }
-    .accesskey = { COPY(from_path, "cmd.copyDownloadLink.accesskey") }
-downloads-cmd-remove-from-history =
-    .label = { COPY(from_path, "cmd.removeFromHistory.label") }
-    .accesskey = { COPY(from_path, "cmd.removeFromHistory.accesskey") }
-downloads-cmd-clear-list =
-    .label = { COPY(from_path, "cmd.clearList2.label") }
-    .accesskey = { COPY(from_path, "cmd.clearList2.accesskey") }
-downloads-cmd-clear-downloads =
-    .label = { COPY(from_path, "cmd.clearDownloads.label") }
-    .accesskey = { COPY(from_path, "cmd.clearDownloads.accesskey") }
-downloads-cmd-unblock =
-    .label = { COPY(from_path, "cmd.unblock2.label") }
-    .accesskey = { COPY(from_path, "cmd.unblock2.accesskey") }
-downloads-cmd-remove-file =
-    .tooltiptext = { COPY(from_path, "cmd.removeFile.label") }
-downloads-cmd-remove-file-panel =
-    .aria-label = { COPY(from_path, "cmd.removeFile.label") }
-downloads-cmd-choose-unblock =
-    .tooltiptext = { COPY(from_path, "cmd.chooseUnblock.label") }
-downloads-cmd-choose-unblock-panel =
-    .aria-label = { COPY(from_path, "cmd.chooseUnblock.label") }
-downloads-cmd-choose-open =
-    .tooltiptext = { COPY(from_path, "cmd.chooseOpen.label") }
-downloads-cmd-choose-open-panel =
-    .aria-label = { COPY(from_path, "cmd.chooseOpen.label") }
-downloads-show-more-information =
-    .value = { COPY(from_path, "showMoreInformation.label") }
-downloads-open-file =
-    .value = { COPY(from_path, "openFile.label") }
-downloads-retry-download =
-    .value = { COPY(from_path, "retryDownload.label") }
-downloads-cancel-download =
-    .value = { COPY(from_path, "cancelDownload.label") }
-downloads-history =
-    .label = { COPY(from_path, "downloadsHistory.label") }
-    .accesskey = { COPY(from_path, "downloadsHistory.accesskey") }
-downloads-details =
-    .title = { COPY(from_path, "downloadDetails.label") }
-downloads-clear-downloads-button =
-    .label = { COPY(from_path, "clearDownloadsButton.label") }
-    .tooltiptext = { COPY(from_path, "clearDownloadsButton.tooltip") }
-downloads-list-empty =
-    .value = { COPY(from_path, "downloadsListEmpty.label") }
-downloads-panel-empty =
-    .value = { COPY(from_path, "downloadsPanelEmpty.label") }
-""", from_path="browser/chrome/browser/downloads/downloads.dtd"))
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1609557_places_context_menu.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from, TERM_REFERENCE, MESSAGE_REFERENCE
-from fluent.migrate import COPY_PATTERN, REPLACE, COPY
-
-
-def migrate(ctx):
-    """Bug 1609557 - Migrate placesContextMenu.inc.xhtml to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        'browser/browser/places.ftl',
-        'browser/browser/places.ftl',
-        transforms_from(
-"""
-places-open =
-    .label = { COPY(from_path, "cmd.open.label") }
-    .accesskey = { COPY(from_path, "cmd.open.accesskey") }
-places-open-tab =
-    .label = { COPY(from_path, "cmd.open_tab.label") }
-    .accesskey = { COPY(from_path, "cmd.open_tab.accesskey") }
-places-open-all-in-tabs =
-    .label = { COPY(from_path, "cmd.open_all_in_tabs.label") }
-    .accesskey = { COPY(from_path, "cmd.open_all_in_tabs.accesskey") }
-places-open-window =
-    .label = { COPY(from_path, "cmd.open_window.label") }
-    .accesskey = { COPY(from_path, "cmd.open_window.accesskey") }
-places-open-private-window =
-    .label = { COPY(from_path, "cmd.open_private_window.label") }
-    .accesskey = { COPY(from_path, "cmd.open_private_window.accesskey") }
-places-new-bookmark =
-    .label = { COPY(from_path, "cmd.new_bookmark.label") }
-    .accesskey = { COPY(from_path, "cmd.new_bookmark.accesskey") }
-places-new-folder-contextmenu =
-    .label = { COPY(from_path, "cmd.new_folder.label") }
-    .accesskey = { COPY(from_path, "cmd.context_new_folder.accesskey") }
-places-new-folder =
-    .label = { COPY(from_path, "cmd.new_folder.label") }
-    .accesskey = { COPY(from_path, "cmd.new_folder.accesskey") }
-places-new-separator =
-    .label = { COPY(from_path, "cmd.new_separator.label") }
-    .accesskey = { COPY(from_path, "cmd.new_separator.accesskey") }
-places-view =
-    .label = { COPY(from_path, "view.label" ) }
-    .accesskey = { COPY(from_path, "view.accesskey") }
-places-by-date =
-    .label = { COPY(from_path, "byDate.label" ) }
-    .accesskey = { COPY(from_path, "byDate.accesskey" ) }
-places-by-site =
-    .label = { COPY(from_path, "bySite.label" ) }
-    .accesskey = { COPY(from_path, "bySite.accesskey" ) }
-places-by-most-visited =
-    .label = { COPY(from_path, "byMostVisited.label" ) }
-    .accesskey = { COPY(from_path, "byMostVisited.accesskey" ) }
-places-by-last-visited =
-    .label = { COPY(from_path, "byLastVisited.label" ) }
-    .accesskey = { COPY(from_path, "byLastVisited.accesskey" ) }
-places-by-day-and-site =
-    .label = { COPY(from_path, "byDayAndSite.label" ) }
-    .accesskey = { COPY(from_path, "byDayAndSite.accesskey" ) }
-places-history-search =
-    .placeholder = { COPY(from_path, "historySearch.placeholder" ) }
-places-bookmarks-search =
-    .placeholder = { COPY(from_path, "bookmarksSearch.placeholder" ) }
-places-delete-domain-data =
-    .label = { COPY(from_path, "cmd.deleteDomainData.label") }
-    .accesskey = { COPY(from_path, "cmd.deleteDomainData.accesskey") }
-places-sortby-name =
-    .label = { COPY(from_path, "cmd.sortby_name.label") }
-    .accesskey = { COPY(from_path, "cmd.context_sortby_name.accesskey") }
-places-properties =
-    .label = { COPY(from_path, "cmd.properties.label") }
-    .accesskey = { COPY(from_path, "cmd.properties.accesskey") }
-""", from_path="browser/chrome/browser/places/places.dtd")
-    )
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1609559_protectionsPanel.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-from fluent.migrate import REPLACE, CONCAT, COPY
-from fluent.migrate.helpers import TERM_REFERENCE
-
-def migrate(ctx):
-    """Bug 1609559 - Migrate protectionsPanel.inc.xhtml to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        "browser/browser/protectionsPanel.ftl",
-        "browser/browser/protectionsPanel.ftl",
-    transforms_from(
-"""
-protections-panel-etp-more-info =
-    .aria-label = { COPY(from_path, "protections.etpMoreInfo.label") }
-protections-panel-etp-on-header = { COPY(from_path, "protections.etpON.header") }
-protections-panel-etp-off-header = { COPY(from_path, "protections.etpOFF.header") }
-protections-panel-site-not-working = { COPY(from_path, "protections.siteNotWorking.label") }
-protections-panel-site-not-working-view =
-    .title = { COPY(from_path, "protections.siteNotWorkingView.title") }
-protections-panel-not-blocking-why-label = { COPY(from_path, "protections.notBlocking.why.label") }
-protections-panel-not-blocking-why-etp-on-tooltip = { COPY(from_path, "protections.notBlocking.why.etpOn.tooltip") }
-protections-panel-not-blocking-why-etp-off-tooltip = { COPY(from_path, "protections.notBlocking.why.etpOff2.tooltip") }
-protections-panel-content-blocking-tracking-protection = { COPY(from_path, "contentBlocking.trackingProtection4.label") }
-protections-panel-content-blocking-socialblock = { COPY(from_path, "contentBlocking.socialblock.label") }
-protections-panel-content-blocking-cryptominers-label = { COPY(from_path, "contentBlocking.cryptominers.label") }
-protections-panel-content-blocking-fingerprinters-label = { COPY(from_path, "contentBlocking.fingerprinters.label") }
-protections-panel-blocking-label = { COPY(from_path, "protections.blocking2.label") }
-protections-panel-not-blocking-label = { COPY(from_path, "protections.notBlocking2.label") }
-protections-panel-not-found-label = { COPY(from_path, "protections.notFound.label") }
-protections-panel-settings-label = { COPY(from_path, "protections.settings.label") }
-protections-panel-showreport-label = { COPY(from_path, "protections.showreport.label") }
-protections-panel-site-not-working-view-header = { COPY(from_path, "protections.siteNotWorkingView.header") }
-protections-panel-site-not-working-view-issue-list-login-fields = { COPY(from_path, "protections.siteNotWorkingView.issueList.logInFields") }
-protections-panel-site-not-working-view-issue-list-forms = { COPY(from_path, "protections.siteNotWorkingView.issueList.forms") }
-protections-panel-site-not-working-view-issue-list-payments = { COPY(from_path, "protections.siteNotWorkingView.issueList.payments") }
-protections-panel-site-not-working-view-issue-list-comments = { COPY(from_path, "protections.siteNotWorkingView.issueList.comments") }
-protections-panel-site-not-working-view-issue-list-videos = { COPY(from_path, "protections.siteNotWorkingView.issueList.videos") }
-protections-panel-site-not-working-view-send-report = { COPY(from_path, "protections.siteNotWorkingView.sendReport.label") }
-protections-panel-cross-site-tracking-cookies = { COPY(from_path, "protections.crossSiteTrackingCookies.description") }
-protections-panel-cryptominers = { COPY(from_path, "protections.cryptominers.description") }
-protections-panel-fingerprinters = { COPY(from_path, "protections.fingerprinters.description") }
-protections-panel-tracking-content = { COPY(from_path, "protections.trackingContent2.description") }
-protections-panel-social-media-trackers = { COPY(from_path, "protections.socialMediaTrackers.description") }
-protections-panel-content-blocking-manage-settings =
-    .label = { COPY(from_path, "contentBlocking.manageSettings2.label") }
-    .accesskey = { COPY(from_path, "contentBlocking.manageSettings2.accesskey") }
-protections-panel-content-blocking-breakage-report-view =
-    .title = { COPY(from_path, "contentBlocking.breakageReportView.title") }
-protections-panel-content-blocking-breakage-report-view-collection-url = { COPY(from_path, "contentBlocking.breakageReportView.collection.url.label") }
-protections-panel-content-blocking-breakage-report-view-collection-url-label =
-    .aria-label = { COPY(from_path, "contentBlocking.breakageReportView.collection.url.label") }
-protections-panel-content-blocking-breakage-report-view-collection-comments = { COPY(from_path, "contentBlocking.breakageReportView2.collection.comments.label") }
-protections-panel-content-blocking-breakage-report-view-collection-comments-label =
-    .aria-label = { COPY(from_path, "contentBlocking.breakageReportView2.collection.comments.label") }
-protections-panel-content-blocking-breakage-report-view-cancel =
-    .label = { COPY(from_path, "contentBlocking.breakageReportView.cancel.label") }
-protections-panel-content-blocking-breakage-report-view-send-report =
-    .label = { COPY(from_path, "contentBlocking.breakageReportView.sendReport.label") }
-""", from_path="browser/chrome/browser/browser.dtd"))
-    ctx.add_transforms(
-    "browser/browser/protectionsPanel.ftl",
-    "browser/browser/protectionsPanel.ftl",
-    [
-    FTL.Message(
-        id=FTL.Identifier("protections-panel-no-trackers-found"),
-        value=REPLACE(
-            "browser/chrome/browser/browser.dtd",
-            "protections.noTrackersFound.description",
-            {
-                "&brandShortName;": TERM_REFERENCE("brand-short-name")
-            }
-        )
-    ),
-    FTL.Message(
-        id=FTL.Identifier("protections-panel-content-blocking-breakage-report-view-description"),
-        value=CONCAT(
-            REPLACE(
-                "browser/chrome/browser/browser.dtd",
-                "contentBlocking.breakageReportView3.description",
-                {
-                    "&brandShortName;": TERM_REFERENCE("brand-short-name")
-                }
-                ),
-            FTL.TextElement(' <label data-l10n-name="learn-more">'),
-            COPY(
-                "browser/chrome/browser/browser.dtd",
-                "contentBlocking.breakageReportView2.learnMore",
-                ),
-            FTL.TextElement('</label>'),
-        )
-    ),
-    ]
-    )
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1609562_popup_notifications.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from, TERM_REFERENCE, MESSAGE_REFERENCE
-from fluent.migrate import COPY_PATTERN, REPLACE, COPY
-
-def migrate(ctx):
-    """Bug 1609562 - Migrate popup-notifications.inc to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        'browser/browser/browser.ftl',
-        'browser/browser/browser.ftl',
-        transforms_from(
-"""
-popup-select-camera =
-    .value = { COPY(from_path, "getUserMedia.selectCamera.label") }
-    .accesskey = { COPY(from_path, "getUserMedia.selectCamera.accesskey") }
-popup-select-microphone =
-    .value = { COPY(from_path, "getUserMedia.selectMicrophone.label") }
-    .accesskey = { COPY(from_path, "getUserMedia.selectMicrophone.accesskey") }
-popup-all-windows-shared = { COPY(from_path, "getUserMedia.allWindowsShared.message") }
-""", from_path="browser/chrome/browser/browser.dtd")
-    )
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1609563_allTabsMenu.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-
-def migrate(ctx):
-    """Bug 1609563 - Migrate browser-allTabsMenu.inc.xhtml to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        "browser/browser/allTabsMenu.ftl",
-        "browser/browser/allTabsMenu.ftl",
-    transforms_from(
-"""
-all-tabs-menu-undo-close-tab =
-  .label = { COPY(from_path, "undoCloseTab.label") }
-all-tabs-menu-search-tabs =
-  .label = { COPY(from_path, "allTabsMenu.searchTabs.label") }
-all-tabs-menu-new-user-context =
-  .label = { COPY(from_path, "newUserContext.label") }
-all-tabs-menu-hidden-tabs =
-  .label = { COPY(from_path, "hiddenTabs.label") }
-all-tabs-menu-manage-user-context =
-  .label = { COPY(from_path, "manageUserContext.label") }
-  .accesskey = { COPY(from_path, "manageUserContext.accesskey") }
-""", from_path="browser/chrome/browser/browser.dtd"))
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1619517_close_tooltip_mobile_card.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-from fluent.migrate.helpers import transforms_from
-from fluent.migrate import COPY_PATTERN
-
-def migrate(ctx):
-    """Bug 1619517 - Add close tooltip to mobile card, part {index}"""
-
-    ctx.add_transforms(
-        "browser/browser/protections.ftl",
-        "browser/browser/protections.ftl",
-        transforms_from(
-    """
-protections-close-button2 =
-        .aria-label = {COPY_PATTERN(from_path, "protections-close-button.aria-label")}
-        .title = {COPY_PATTERN(from_path, "protections-close-button.aria-label")}
-    """,from_path="browser/browser/protections.ftl"),
-    )
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1624713_editBookmarkOverlay.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-
-def migrate(ctx):
-    """Bug 1624713 - Convert editBookmarkOverlay to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        "browser/browser/editBookmarkOverlay.ftl",
-        "browser/browser/editBookmarkOverlay.ftl",
-    transforms_from(
-"""
-bookmark-overlay-name =
-    .value = { COPY(from_path, "editBookmarkOverlay.name.label") }
-    .accesskey = { COPY(from_path, "editBookmarkOverlay.name.accesskey") }
-bookmark-overlay-location =
-    .value = { COPY(from_path, "editBookmarkOverlay.location.label") }
-    .accesskey = { COPY(from_path, "editBookmarkOverlay.location.accesskey") }
-bookmark-overlay-folder =
-    .value = { COPY(from_path, "editBookmarkOverlay.folder.label") }
-bookmark-overlay-choose =
-    .label = { COPY(from_path, "editBookmarkOverlay.choose.label") }
-bookmark-overlay-folders-expander =
-  .tooltiptext = { COPY(from_path, "editBookmarkOverlay.foldersExpanderDown.tooltip") }
-  .tooltiptextdown = { bookmark-overlay-folders-expander.tooltiptext }
-  .tooltiptextup = { COPY(from_path, "editBookmarkOverlay.expanderUp.tooltip") }
-bookmark-overlay-new-folder-button =
-    .label = { COPY(from_path, "editBookmarkOverlay.newFolderButton.label") }
-    .accesskey = { COPY(from_path, "editBookmarkOverlay.newFolderButton.accesskey") }
-bookmark-overlay-tags =
-    .value = { COPY(from_path, "editBookmarkOverlay.tags.label") }
-    .accesskey ={ COPY(from_path, "editBookmarkOverlay.tags.accesskey") }
-bookmark-overlay-tags-empty-description =
-    .placeholder = { COPY(from_path, "editBookmarkOverlay.tagsEmptyDesc.label") }
-bookmark-overlay-tags-expander =
-  .tooltiptext = { COPY(from_path, "editBookmarkOverlay.tagsExpanderDown.tooltip") }
-  .tooltiptextdown = { bookmark-overlay-tags-expander.tooltiptext }
-  .tooltiptextup = { COPY(from_path, "editBookmarkOverlay.expanderUp.tooltip") }
-bookmark-overlay-keyword =
-    .value = { COPY(from_path, "editBookmarkOverlay.keyword.label") }
-    .accesskey = { COPY(from_path, "editBookmarkOverlay.keyword.accesskey") }
-""", from_path="browser/chrome/browser/places/editBookmarkOverlay.dtd"))
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1625480_appMenuNotifications.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-
-def migrate(ctx):
-    """Bug 1625480 - Migrate remaining notifications strings from browser.dtd to Fluent, part {index}."""
-
-    ctx.add_transforms(
-        "browser/browser/appMenuNotifications.ftl",
-        "browser/browser/appMenuNotifications.ftl",
-    transforms_from(
-"""
-appmenu-new-tab-controlled =
-    .label = { COPY(from_path, "newTabControlled.header.message") }
-    .buttonlabel = { COPY(from_path, "newTabControlled.keepButton.label") }
-    .buttonaccesskey = { COPY(from_path, "newTabControlled.keepButton.accesskey") }
-    .secondarybuttonlabel = { COPY(from_path, "newTabControlled.disableButton.label") }
-    .secondarybuttonaccesskey = { COPY(from_path, "newTabControlled.disableButton.accesskey") }
-appmenu-homepage-controlled =
-    .label = { COPY(from_path, "homepageControlled.header.message") }
-    .buttonlabel = { COPY(from_path, "homepageControlled.keepButton.label") }
-    .buttonaccesskey = { COPY(from_path, "homepageControlled.keepButton.accesskey") }
-    .secondarybuttonlabel = { COPY(from_path, "homepageControlled.disableButton.label") }
-    .secondarybuttonaccesskey = { COPY(from_path, "homepageControlled.disableButton.accesskey") }
-appmenu-tab-hide-controlled =
-    .label = { COPY(from_path, "tabHideControlled.header.message") }
-    .buttonlabel = { COPY(from_path, "tabHideControlled.keepButton.label") }
-    .buttonaccesskey = { COPY(from_path, "tabHideControlled.keepButton.accesskey") }
-    .secondarybuttonlabel = { COPY(from_path, "tabHideControlled.disableButton.label") }
-    .secondarybuttonaccesskey = { COPY(from_path, "tabHideControlled.disableButton.accesskey") }
-""", from_path="browser/chrome/browser/browser.dtd"))
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1626381_about_addons_sidebar_titles.py
+++ /dev/null
@@ -1,45 +0,0 @@
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-import fluent.syntax.ast as FTL
-from fluent.migrate.helpers import transforms_from
-from fluent.migrate import COPY_PATTERN
-
-
-def migrate(ctx):
-    """Bug 1626381 - Add titles to about:addons sidebar, part {index}"""
-
-    ctx.add_transforms(
-        'toolkit/toolkit/about/aboutAddons.ftl',
-        'toolkit/toolkit/about/aboutAddons.ftl',
-        transforms_from(
-"""
-header-back-button =
-    .title = {COPY_PATTERN(from_path, "go-back-button.tooltiptext")}
-
-addon-category-discover-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-discover")}
-addon-category-available-updates-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-available-updates")}
-addon-category-recent-updates-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-recent-updates")}
-addon-category-extension-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-extension")}
-addon-category-theme-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-theme")}
-addon-category-locale-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-locale")}
-addon-category-plugin-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-plugin")}
-addon-category-dictionary-title =
-    .title = {COPY_PATTERN(from_path, "addon-category-dictionary")}
-
-sidebar-help-button-title =
-    .title = {COPY_PATTERN(from_path, "help-button")}
-sidebar-preferences-button-title =
-    .title = {COPY_PATTERN(from_path, "preferences")}
-"""
-        , from_path='toolkit/toolkit/about/aboutAddons.ftl')
-    )
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1628255_conflated_menuitem_button_downloads.py
+++ /dev/null
@@ -1,30 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-from fluent.migrate.helpers import transforms_from
-
-
-def migrate(ctx):
-    """Bug 1628255 - fix mistaken label attribute on buttons in download views, part {index}."""
-
-    ctx.add_transforms(
-        "browser/browser/downloads.ftl",
-        "browser/browser/downloads.ftl",
-        transforms_from("""
-downloads-cmd-show-menuitem =
-    .label = { COPY_PATTERN(from_path, "downloads-cmd-show.label") }
-    .accesskey = { COPY_PATTERN(from_path, "downloads-cmd-show.accesskey") }
-
-downloads-cmd-show-menuitem-mac =
-    .label = { COPY_PATTERN(from_path, "downloads-cmd-show-mac.label") }
-    .accesskey = { COPY_PATTERN(from_path, "downloads-cmd-show-mac.accesskey") }
-
-downloads-cmd-show-button =
-    .tooltiptext = { PLATFORM() ->
-        [macos] { COPY_PATTERN(from_path, "downloads-cmd-show-mac.label") }
-       *[other] { COPY_PATTERN(from_path, "downloads-cmd-show.label") }
-    }
-""", from_path="browser/browser/downloads.ftl"))
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1629832_titlebar_caption_window_control_buttons.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-from fluent.migrate.helpers import transforms_from
-
-
-def migrate(ctx):
-    """Bug 1629832 - use tooltips on all our caption control buttons, part {index}"""
-
-    ctx.add_transforms(
-        "browser/browser/browser.ftl",
-        "browser/browser/browser.ftl",
-        transforms_from("""
-browser-window-minimize-button =
-  .tooltiptext = { COPY(from_path, "fullScreenMinimize.tooltip") }
-browser-window-restore-button =
-  .tooltiptext = { COPY(from_path, "fullScreenRestore.tooltip") }
-browser-window-close-button =
-  .tooltiptext = { COPY(from_path, "fullScreenClose.tooltip") }
-""", from_path="browser/chrome/browser/browser.dtd"))
deleted file mode 100644
--- a/python/l10n/fluent_migrations/bug_1631944_preferences_logins_header.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# coding=utf8
-
-# Any copyright is dedicated to the Public Domain.
-# http://creativecommons.org/publicdomain/zero/1.0/
-
-from __future__ import absolute_import
-from fluent.migrate.helpers import transforms_from
-
-
-def migrate(ctx):
-    """Bug 1631944 - Add Lockwise as a keyword for login and password preferences, part {index}"""
-
-    ctx.add_transforms(
-        "browser/browser/preferences/preferences.ftl",
-        "browser/browser/preferences/preferences.ftl",
-        transforms_from("""
-pane-privacy-logins-and-passwords-header = {COPY_PATTERN(from_path, "logins-header")}
-    .searchkeywords = { -lockwise-brand-short-name }
-""", from_path="browser/browser/preferences/preferences.ftl"))
--- a/security/manager/ssl/nsNSSCallbacks.cpp
+++ b/security/manager/ssl/nsNSSCallbacks.cpp
@@ -1389,20 +1389,18 @@ void HandshakeCallback(PRFileDesc* fd, v
   }
 
   if (infoObject->HasServerCert()) {
     MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
             ("HandshakeCallback KEEPING existing cert\n"));
   } else {
     if (StaticPrefs::network_ssl_tokens_cache_enabled()) {
       RebuildCertificateInfoFromSSLTokenCache(infoObject);
-      infoObject->NoteSessionResumptionTime(true);
     } else {
       RebuildVerifiedCertificateInformation(fd, infoObject);
-      infoObject->NoteSessionResumptionTime(false);
     }
   }
 
   nsTArray<RefPtr<nsIX509Cert>> succeededCertArray;
   // The list could be empty. Bug 731478 will reduce the incidence of empty
   // succeeded cert chains through better caching.
   nsresult srv = infoObject->GetSucceededCertChain(succeededCertArray);
 
--- a/security/manager/ssl/nsNSSIOLayer.cpp
+++ b/security/manager/ssl/nsNSSIOLayer.cpp
@@ -204,27 +204,16 @@ void nsNSSSocketInfo::NoteTimeUntilReady
     Telemetry::AccumulateTimeDelta(
         Telemetry::TLS_DELEGATED_CREDENTIALS_TIME_UNTIL_READY_MS,
         mSocketCreationTimestamp, TimeStamp::Now());
   }
   MOZ_LOG(gPIPNSSLog, LogLevel::Debug,
           ("[%p] nsNSSSocketInfo::NoteTimeUntilReady\n", mFd));
 }
 
-void nsNSSSocketInfo::NoteSessionResumptionTime(bool aUsingExternalCache) {
-  // This will include TCP and proxy tunnel wait time
-  Telemetry::AccumulateTimeDelta(
-      aUsingExternalCache
-          ? Telemetry::
-                SESSION_RESUMPTION_WITH_EXTERNAL_CACHE_TIME_UNTIL_READY_MS
-          : Telemetry::
-                SESSION_RESUMPTION_WITH_INTERNAL_CACHE_TIME_UNTIL_READY_MS,
-      mSocketCreationTimestamp, TimeStamp::Now());
-}
-
 void nsNSSSocketInfo::SetHandshakeCompleted() {
   if (!mHandshakeCompleted) {
     enum HandshakeType {
       Resumption = 1,
       FalseStarted = 2,
       ChoseNotToFalseStart = 3,
       NotAllowedToFalseStart = 4,
     };
--- a/security/manager/ssl/nsNSSIOLayer.h
+++ b/security/manager/ssl/nsNSSIOLayer.h
@@ -73,17 +73,16 @@ class nsNSSSocketInfo final : public Com
   PRStatus CloseSocketAndDestroy();
 
   void SetNegotiatedNPN(const char* value, uint32_t length);
   void SetEarlyDataAccepted(bool aAccepted);
 
   void SetHandshakeCompleted();
   bool IsHandshakeCompleted() const { return mHandshakeCompleted; }
   void NoteTimeUntilReady();
-  void NoteSessionResumptionTime(bool aUsingExternalCache);
 
   void SetFalseStartCallbackCalled() { mFalseStartCallbackCalled = true; }
   void SetFalseStarted() { mFalseStarted = true; }
 
   // Note that this is only valid *during* a handshake; at the end of the
   // handshake, it gets reset back to false.
   void SetFullHandshake() { mIsFullHandshake = true; }
   bool IsFullHandshake() const { return mIsFullHandshake; }
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -15148,38 +15148,16 @@
       "ReflowTable",
       "ReflowText"
     ],
     "kind": "exponential",
     "high": 1000,
     "n_buckets": 50,
     "description": "Time in milliseconds spent in the layout system per Refresh Driver tick."
   },
-  "SESSION_RESUMPTION_WITH_INTERNAL_CACHE_TIME_UNTIL_READY_MS": {
-    "record_in_processes": ["main"],
-    "products": ["firefox", "fennec"],
-    "alert_emails": ["necko@mozilla.com", "kershaw@mozilla.com"],
-    "expires_in_version": "80",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 100,
-    "bug_numbers": [1597956, 1614905],
-    "description": "milliseconds to complete a TLS session resumption with internal cache"
-  },
-  "SESSION_RESUMPTION_WITH_EXTERNAL_CACHE_TIME_UNTIL_READY_MS": {
-    "record_in_processes": ["main"],
-    "products": ["firefox", "fennec"],
-    "alert_emails": ["necko@mozilla.com", "kershaw@mozilla.com"],
-    "expires_in_version": "80",
-    "kind": "exponential",
-    "high": 10000,
-    "n_buckets": 100,
-    "bug_numbers": [1597956, 1614905],
-    "description": "milliseconds to complete a TLS session resumption with external cache"
-  },
   "WINDOW_OPEN_OUTER_SIZE": {
     "record_in_processes": ["main", "content"],
     "products": ["firefox"],
     "alert_emails": ["tfujisawa.birchill@mozilla.com"],
     "expires_in_version": "80",
     "kind": "boolean",
     "bug_numbers": [1624150],
     "releaseChannelCollection": "opt-out",