[tbb-bugs] #25543 [Applications/Tor Browser]: Rebase Tor Browser patches for ESR60

Tor Bug Tracker & Wiki blackhole at torproject.org
Fri May 25 06:51:35 UTC 2018

#25543: Rebase Tor Browser patches for ESR60
 Reporter:  gk                              |          Owner:
                                            |  arthuredelstein
     Type:  task                            |         Status:
                                            |  needs_revision
 Priority:  Very High                       |      Milestone:
Component:  Applications/Tor Browser        |        Version:
 Severity:  Normal                          |     Resolution:
 Keywords:  TorBrowserTeam201805, ff60-esr  |  Actual Points:
Parent ID:  #25741                          |         Points:
 Reviewer:                                  |        Sponsor:

Comment (by arthuredelstein):

 Here's my new branch for review:

 Many thanks to gk for review and to mcs and brade for their work on the
 updater patch. Details follow:

 '''Replying to [comment:22 gk, comment 22]:'''
 > Here is what I have so far. I am looking at 25543+8 and am moving
 upwards the commits Arthur pointed out in comment:6. The full git commit
 hash is the commit I looked at and the abbreviated in parentheses matches
 the one(s) in comment:6.
 > The fixup commits make the reviewing a bit harder: Arthur, could you
 just create new branches next time with stuff squashed (waiting until a
 reasonably large amount of fixups have accumulated is fine, too). At least
 having fixups on the review branch makes things harder for me. Anway, here
 are my notes up to and including 4c9f746f2c19
 > 15aab7d9640bebad5da4fe66535fe2646618cd73 -- good (b7ba24e9438c)
 > bc25026f2b7e77f5bc4b060fff7d52efc96a9286 -- good (3efb1fb5990a)
 > da7624af1f3d7cfd9878d1ef78f8212912bf00f3 -- good (7151b7736fbc)
 > 7da50e7f9f892cb3f3e76d65e73f07051e771f02 -- good (83e40fc55843)
 > c078d465c98e224167c549ea03068e0d7455ad14 -- not okay (d9ffdac205cc)
 > fixed by 7e662c674e6089364aef5db63a24a1a78ea071ee

 I've squashed this now.

 > 423b01125604d1ddcf5f0ddd7a613a9bfeb1969a -- good (7190f7e52771)
 > ef922fccd70ccf4def676097a652cc83d68684e7 -- not okay (6e18348d3fa2)
 > unresolved conflict
 > {{{
 >      // Send tab key events.
 > +<<<<<<< HEAD
 >      synthesizeKey("KEY_Tab", {shiftKey: activateShift});
 > +=======
 > +    var key = SpecialPowers.Ci.nsIDOMKeyEvent.DOM_VK_TAB;
 > +    utils.sendKeyEvent("keydown", key, 0, modifier);
 > +    utils.sendKeyEvent("keypress", key, 0, modifier);
 > +    utils.sendKeyEvent("keyup", key, 0, modifier);
 > +>>>>>>> febbeedade21... Bug 2874: Block Components.interfaces from
 > }}}


 > c567b8a14692dda0e43f01c9e472eb7b8244bb54 -- good (c91cc92acf64)
 > db22daac349cda4aeb7594451b1a37c4b73e0d5c -- good (05c64bde4a76)
 > 3ac50c1adf35c931cbb89493b38d5a5c9d4662bc -- not okay (4fd7433d2b79)
 > not necessary as ripped out by the patch for 19910 (95ad1e098907), thus
 both should go


 > a2acdd19161c87a6cb39f03ca03dde80c68f8e34 -- good (9a13c4dd4d89)
 > 840833f13ee9cb64c8e2a248ffc43504dc828f09 -- not okay (f05b2599c291)
 > {{{
 > + nsXPIDLString killTitle;
 > +    sb->FormatStringFromName(titleKey, params, 1,
 > }}}
 > we should use |nsAutoString| as well and not |nsXPIDLString|
 > |killMessage| is now of type |nsAutoString|, so don't use
 > anymore like the unpatched code does


 > (seems this got fixed up in 0185a3889ea1f2d7e1262eeb5e3a4b04ba350d00,
 though, which is good but confusing, could you fix this up in the commit
 it belongs to?)
 > 0185a3889ea1f2d7e1262eeb5e3a4b04ba350d00 -- okay (c8fbfdb5b0e7)
 > dbc9bd2f05b3728f222bc76b921542837124e237 -- okay (c38fc187252c)
 > 1708d1f2330ee1766fd554841c3e5c054ec6baf2 -- okay (6bbe63c3f3b8)
 > 8a0fca52fafbeaf92198d1daec00cbe1aaaffc59 -- okay (ba2620e0c91d)
 > 1470089f3a2160f03e950536f1f0376b689f4b47 -- okay (73dc870c6712)
 > dad24d92f489ed935c2c79339f015c2ada6ccb4c -- okay (90f3c1b3b687)
 > ec4a23fc9ec9abbd2d6d7f8316ff9fc94bdc9950 -- okay (98966f5b88b5)
 > 57f0a1e2a39e3b4431b3856f64c3877dc71f8dae -- okay (b4981a144854)
 > 579734b9a25db60a7a9f59df198fe8cc2e7367e3 -- okay (d3a986dfb477)
 > a310a95c8dc23d152be27f404495c3e1ca036204 -- okay (ea9c5e94e364)
 > 725b6c8f7d11010e922fe177b1cbda333a423720 -- okay (a71bf76df344)
 > a8add456af7aad04b0f4a402f1e5a8a7114aedec -- okay (5adf623b76f8)
 > [what about the other WebGL things we disable are we good with them wrt
 to https://bugzilla.mozilla.org/show_bug.cgi?id=1217290?]

 I opened a ticket to look into this: #26198

 > 3d287f20252243b5c6cc41841fa2b48f90b3aa14 -- okay (aa65fd2ea82e)
 > 6d25b3a1c946b70935f1df096878f0256292c143 -- okay (ac9bc3723c2b)
 > 664d51393f8422a2b3d8edf5b24ee32b0a5d9b01 -- okay (90e817059ab7)
 > d93edac70a39e9f49555ae5cc96728b85448959a -- not okay (db5663390b3e)
 > fixed by cca5e99eb181e9e120a809e3ef71ea7e73fbec89


 > 6dbef77faa36e1130612d0f6784b6b05c142dea8 -- okay (6a7ae76e406e)
 > do we still need it as the patch for 17009 got upstreamed?
 > 81f89647957d420d087bbcd5c63104b157a139c9 -- okay (af9e23384692)
 > do we still need it as the patch for 15646 got upstreamed?
 > 74ea0a667a7464d4a6e90cdd7a11ac60e06af649 -- okay (0a2323b8fcaa)
 > do we still need it as the patch for 1517 got upstreamed?

 As we discussed in the Tor Browser team meeting, I've dropped the above 3
 regression test patches because they were upstreamed.

 > 1261430503dd9a37a664e263b7415091cdf1f6a9 -- okay (fb26928c9f6f)
 > U 133a941a72c9 should be O 133a941a72c9 (in comment:6) as <isindex> got
 > 70c225a4b5f4266de7ce24110f5ef507160e234b -- not okay (b7f33de7c769)
 > there is no
 > anymore, thus we can remove tbb-tests-ignore.txt it seems


 > c04c6fd4da01 is not a simple revert of db79c0270d50. The former only
 reverts a part of it. That's due to a mess of this whole e10s compat
 problem we needed to fix and me not properly dealing with the resulting
 patches during rebase. So, we need the resulting patch after reverting
 part of the first one for esr60 as
 https://bugzilla.mozilla.org/show_bug.cgi?id=1305177 is still open.

 OK! I added back a patch which is the combination of those two patches and
 rebased to this branch.

 > 856b810081cfbcd4b3f17ede4d1a95f4c02a14f0 -- not okay (d4da5714eb9d)
 > no need for those `extensions.hotfix` prefs

 OK, I've removed those 4 prefs. There's one pref left.

 > 1cf891b3a783, 043e87d50499, and fdb2ad415cd6 are obsolete because we
 decided we don't want to expose this to users anymore to make it harder
 for them to shoot themselves in the foot?

 Yes, that was my thinking. In any case it's pretty straightforward for
 users to disable the two prefs under about:config.

 > fb7f56c28a9c3a77382361f218ac146c23ef6e30 -- okay (452829d9135f)
 > 80e6743fbf4ceb60b1073e60efd6c67eb2a7fba0 -- okay (04e72287a8c7)
 > a761c12e657389847ff8c29ed836b5c2541c09c9 -- okay (87036e9e33eb)
 > The patch for 19411 is missing (fee72fffc081)

 (Omitted for being obsolete, as determined by mcs and brade.)

 > 5c60f63e322184cfde30256b43ee7875ea2d1df6,
 > aede530c3ec8850224b7f6c49c1d7e1466684639 -- not okay (9ae35ba3c07e)
 > the first commit adds a .rej file;
 > I guess having now 'size: "1234"' is okay even though we had
 > it |null| before; however, I think we should stop patching the tests
 > because there is no partial patch with an invalid hash anymore
 > I see:
 > {{{
 > -                size: "1234",
 > +                hash: "1234cd43a1c77e30191c53a329a3f99d",
 > }}}
 > not sure how effective that is given |getLocalPatchString()|'s changed
 > there is no SHA512_HASH_SIMPLE_MAR anymore:
 > https://hg.mozilla.org/mozilla-central/rev/e886bf1ba8fc removes it and
 we don't backout that part (in aede530c3ec8850224b7f6c49c1d7e1466684639).
 So, to sum up: just ignore the tests here >
 > cdbdfbf912a00d38754e4da111647f89d0f7b70b,
 > c89b57cea0457ca7fcaa7338b23c57fbef38def2 -- okay (08964d93d418)
 > 48e149a1f5f21aeda8f89d8dc374ede647feda23 -- okay (b0471f5e9e1f)
 > 5c9aa89a778d10d19b55736abfcb63b745e14379 -- not okay (4c9f746f2c19)
 > {{{
 > -  ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release
 > -  MAR_CHANNEL_ID=firefox-mozilla-release
 > }}}
 > This should be "firefox-mozilla-esr" respectively (I guess you rebased
 the patch before there was a dedicated esr60 branch)
 > aurora|alpha|beta|hardened|release|esr (and at other places) <- we don't
 have the hardened series anymore
 > Do we need
 > {{{
 > -      let prereleaseChannels = ["nightly", "aurora", "beta"];
 > +      let prereleaseChannels = ["nightly", "aurora", "alpha", "beta"];
 > }}}
 > ?
 > The "extensions.lastTorBrowserVersion" part spilled over into
 AddonsManager.jsm from #13052 + adding the AddonManager.jsm in
 > Note to Arthur for the patch order: we need the patch for #13052 before
 this one as we use GetTorBrowserUserDataDir()
 > {{{
 > +  done <"${tmpfile}"
 > }}}
 > add a whitespace between "<" and "\""
 > mcs/brade: how do you feel addressing #24476 while you are at it?
 > f8d84e457447ee34bdd4416191404f011fa4459e -- okay (506eb3cbd392 and

 mcs and brade fixed the above patches in I included them in the new

 '''Replying to [comment:25 gk, comment 25]:'''
 > Some more comments:
 > abdefb33d518b0cab3aef6006a3b4f7e7bd37b37 -- not okay (4564a5f744df)
 > {{{
 > +    LOG(("ApplyUpdate -- appDir->Get(Native)Path() failed (0x%x)\n",
 > }}}
 > should not have "(" and ")" around "Native"

 Fixed by mcs and brade

 > f31404d51d41f2ae65cbc9655630e0bf296bc206 -- not okay (46acba80bdf4)
 > fixed by 2b3836d255481928c9096b72f74cef22fd5086d7,
 9d3a1949117d2e238fadf649188298d0b042bb31, and
 > However, 9d3a1949117d2e238fadf649188298d0b042bb31 should actually be a
 fixup for the patch for bug 4234 and not this one.


 > dd2e54105436100a82f59f8042122e91ce4c8775 -- not okay (dc4fdd28c696)

 fixed by mcs and brade

 > I think the Tor additions in `old-configure.in` be at the same place as
 those in #4234? Right now they are spread out while they weren't before.
 > What's the reason for replacing `extern NS_METHOD`, `class nsIFile;`
 with `extern nsresult`?

 '''Replying to [comment:26 gk, comment 26]:'''
 > Another bunch of reviewed commits:
 > 65c7670b0cb896ebd083fc81c073db73f7f5d421 -- okay (3a536e56b9f7)
 > e064ba136557870f4f7d14191bfa34c6ca898bcd -- okay (4f7b24106278)
 > 272e53391b920344d741297337e02d7804511946 -- okay (64aed57c7b49)
 > 0f578925daab2e1bc6d5880e82120f53c9f540f2 -- okay (73f02a5f325c)
 > 8dc9616a4a1e372d63d6f8a31ca8cd7b23917805 -- okay (0b00e2ce04e9) (might
 not be needed depending on what we do with CentOS 6)
 > 958666616bfab98ddfd08f4fd3d727b5498eced5 -- not okay (5c25352ec8de)
 > Why is `browser_permissions.js` suddenly deleted?
 > You are adding `^M` characters to `test_permmanager_defaults.js` when
 doing changes.

 Fixed (I have rebased the existing Permissions patch for now.)

 > 5172d9a05ad7bfd92765e9cfeb7de596508d4df8 -- not okay (43c1ed31857d)
 > That's not needed anymore, see bug 1388902 and 1406193.


 '''Replying to [comment:28 gk, comment 28]:'''
 > Careful! We need to keep at least one of the MAR signing keys we are
 currently shipping. Otherwise it is a bit hard with updates. :) So, if I
 see this correctly then #20589 added the one we are currently using in the
 alpha for signing and #23916 added the current backup key. I estimate
 we'll have the rebase ready before I'll add a new signing key. Thus, I
 think we could drop #20589 and add an adapted commit for #23916 that
 basically creates the status quo. And then we'd replace the current backup
 key with the new one using SHA-384.

 I have squashed the #20589 and #23916 patches into one patch.

 '''Replying to [comment:31 gk, comment 31]:'''
 > Alright, here come the remaining bits:
 > 8a17d0bb0f00987477233cdb0103b5cda724a491 -- okay (009934b82a3c)
 > a0fb3774961eacdeaaee6ad5bef1a93c9fb69722 -- not okay (fba536f97fe2)
 > "Only ship the e10srollout system extension and pdfjs." should probably
 be "Only ship pdfjs."


 > Why do we need `if os.path.exists("$(DIST)/bin/browser/features") else
 []};`? In which case is this available and in which not? Does this affect
 pdf.js bundling?

 I think this directory is empty because we removed all of the extensions
 from it. Therefore os.listdir(...) was throwing an error. I added a check
 to make it behave properly in that case.

 > The fixup (569a412d41a020b8c75ab6d62f4fae42f2802b89 is okay)
 > a30b878113f442895c907066b70941374d2e0c0b -- not okay (c542fb08d725)
 > I think there is no need to take this as a separate commit due to
 https://bugzilla.mozilla.org/show_bug.cgi?id=1433507 and
 https://bugzilla.mozilla.org/show_bug.cgi?id=1433357. So, what we should
 do is adding two fixup commits instead: one for the defense-in-depth pref
 and one for adding the no-proxy-bypass flag to our .mozconfig files.


 > aa9b5e2811ab86a66d7ee20eec981c110a23c7a0 -- not okay (c79b911518ed)
 > This got upstreamed in
 https://bugzilla.mozilla.org/show_bug.cgi?id=1382359. We should do a fixup
 commit setting `dom.securecontext.whitelist_onions` to `true` and that's
 it. So "C c79b911518ed" -> "U c79b911518ed"

 I removed this commit. And the pref is there.

 > aba739b085d1499a4ac31f4a1be0235c3c12b093 -- not okay (576f4e90158a)
 > This got upstreamed in
 https://bugzilla.mozilla.org/show_bug.cgi?id=1382359. We should just leave
 this patch I think, until we seriously fix the tests run with our config.
 Then we should uptream that fix. So "C 576f4e90158a" -> "U 576f4e90158a".

 OK, leaving the patch in for now. (Let me know if I didn't understand

 > d999aa5f22a8081cf01d3a62e0be3cecb71df3df -- okay (f7e646dd976c)
 > 13a0b11f84b776a82d03070215b0e9285be5dce3 -- not okay (fc9f5757efd6)
 > That's not needed anymore/upstreamed. We'd take newer patches tjr is
 making if there are things left. So, I'd say "F[inspect] fc9f5757efd6" ->
 "U fc9f5757efd6".

 OK, removed this patch.

 > 5be9a93363c20a348316e4d6ec10e979255be437 -- not okay (a19fd1255901)
 > Not needed. We'll take the patch for
 https://bugzilla.mozilla.org/show_bug.cgi?id=1460882 once it landed (as
 well as a bunch of other patches to fix compile/runtime issues).

 OK, removed.

 > 8a45f06acad1cf8640e0487f632b5fbd10bdd97d -- okay (87b15309e159)
 > 45571449efe1bb047314dc5d90931666bfc87697 -- okay (6794707e2b3a)
 > ee6b576bc2a9f5c885ae9f027dd1bd4e78ab86ce -- not okay (2646633951fe)
 > That's not needed anymore given that
 https://bugzilla.mozilla.org/show_bug.cgi?id=1418052 landed.


 > 9684e260d0cb2abd4fb62d7960f9f25e60b48c5f -- not okay (009bc0a8f600)
 > I think this could be a fixup to our .mozconfig commit.


 > f297c39eb75ffc7bfd71a42916684dc98c904ca0 -- okay (230cb85895bc)
 > b654a7f58a15c500b44f69b81386eca2dc68264a -- not okay (ab9be0575af0)
 > Could we fix up the commit message a bit while we are at it
 (s/bug/big/)? The fixup (commit d8bcb696fddc1d779c40994a96af52f4a8759520)
 looks good.


 > 8093f4a07c9b7efc46421dfbf49095128693c9e5 -- okay (b91202db5ef3)
 > 8068477fe20d947b074aee854538b0f6ddf73815 -- okay (6e2c459fa66a)
 > ed8959815ed38d415fe1b71d0fb4e312bffd5b57 -- not okay (f5eebe23eda5)
 > Seems to be a good candidate for a fixup for our prefs file and not an
 own commit.


 > a4ae1392fffd7aa6ae1ba28575bad6de3b3489a3 -- not okay (ba141b6054ea)
 > Not needed anymore as `showModalDialog()` is gone (see:


 > 50f255b69aba42ea05fcc11b315000274500c38d -- not okay (95ad1e098907)
 > As said in a previous comment, this and the commit originally
 implementing this feature should go for now as it is broken and we need a


 > cac8d0158e81c7809afbe922c00c60d418b32850 -- not okay (93999a363c76)
 > Let's use the upstreamed patch in
 https://bugzilla.mozilla.org/show_bug.cgi?id=1441327 instead.

 I've replaced it with the upstreamed patch.

 > 4ac551d9d7d1c3b6aebc5a2fccc7ea5b7aa79da4 -- not okay (c70454fd10ef)
 > {{{
 >  }
 > +static bool
 > +IsSecureHost(nsIURI *aHostURI) {
 > }}}
 > Please add a newline before "+static bool".


 > You need to patch the `isSecure` usage in `AddInternal()` as well as in
 > patch on our esr52 branch.


 > 5b566bf19806ebf1fb56750b549a59cc9c9d3191 -- not okay (82cd8ae9a5de)
 > It's fixed with the fixup commit


 > abf40ca35cf8e42b88d19a915d6f27d3893c399f -- not okay (90e16dd25b6e)
 > I think we should take what we got after some reviews by Moz folks in
 https://bugzilla.mozilla.org/show_bug.cgi?id=859782. If we are lucky we
 can just backport a patch that landed before we ship anything. Still, what
 we have right now in the ticket is preferable to what we have I think.

 OK, I grabbed the patch on the bugzilla ticket and replaced our old one. I
 used the same commit message as before.

 > ca2d7fbabb2b596fd34c14c069affa177d55b2c9 -- okay
 > 03c5dd35093e9b57923ffd7bae684f4410852f4c -- okay
 > 34407382d48ebbbc6deb74dcf5f67e95a74d8346 -- okay
 > 31530f47b84a0df2c1b9371089f7f8211cccd8a9 -- not okay
 > It seems to me with the telemetry pref flip in
 34407382d48ebbbc6deb74dcf5f67e95a74d8346 we don't need the `_enabled`
 check. (see my comment in #25909 as well)

 I left this patch unchanged following comment:34.

Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25543#comment:36>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online

More information about the tbb-bugs mailing list