[tor-project] PieroV's Monthly Status Report, July 2023

Pier Angelo Vendrame pierov at torproject.org
Tue Aug 1 08:31:56 UTC 2023


Hi everyone!
Here is my status report for July 2023.

Like the previous month, in July, I worked mainly on the transition to 
Firefox ESR 115 and the refactors of Torbutton.

For the ESR update, I kept working on our build system.
We stumbled upon a couple of reproducibility problems with LLVM. One [0] 
was already fixed in the main branch, but I had to git bisect to find 
the solution and backport it to 16.0.4, the version we and Mozilla use.
The other one was about the macOS binaries: they matched except for the 
UUID. Because this difference was limited and specific, I could quickly 
find the cause in the source code. This UUID is a hash, and its 
computation was split into as many workers as the available cores. Even 
though this is deterministic, it introduces a dependency of the result 
on the hardware used to produce it. So, I opened an issue [1], which was 
solved super fastly ❤️!

Then, I also worked on the Android part of the build system. Between 102 
and 115, Mozilla unified the repositories for Android Components and 
Fenix [2]. Therefore, we had to create a brand new project, and making 
it build successfully from start to end required a considerable time.
We had reproducibility problems also on Android, more precisely on the 
application services part. They were already known, so I just had to 
update the patch for 102 to 115.
I wanted to upstream these changes, but in Application Services 116, 
Mozilla did a big refactor on this code. So, I adapted our patch again, 
and it was accepted [3].
The tor-browser-build merge request for Android [4] is still under 
review, but we will need to merge it soon because we want to release 
13.0a2 also for Android.

My other big work topic of July was the refactors to Torbutton. Our 
objective is to extract all the code that originally composed the 
extension and integrate it more with the rest of the browser code.
The first MR [5] moved about:tor to a patch on its own and included a 
modernization of its IPC mechanisms and a refactor to TorCheckService. 
It also removed old migration code that is not needed anymore since 
users are forced to pass through Tor Browser 11.5.8 if updating from 
older versions.
Torbutton also forced the value of a few preferences depending on 
whether PBM was always enabled [6]. This MR removed this behavior.

In another MR [7], I removed direct uses of the Tor controller. We 
planned to centralize all these operations in a TorProvider class built 
around the browser's needs. The rationale is to create a common 
interface with a future ArtiProvider. We expect that we will have to 
review everything again in the future, but we preferred starting already 
to get the first part of the work done.
With this done, I could focus on refactoring the browser's Tor 
controller [8].

Other smaller tasks I worked on last month are:
- a fix to make NoScript and the browser communicate again [9]
- a fix to the bootstrap failing without any error [10]
- make the build system extract Firefox's PDB and distribute them to 
users interested in debugging the browser [11].

This sure was a long month for me, but I am very happy about the results 
we are getting. I hope you will appreciate them too.
In yesterday's weekly meeting, we decided to release alphas more often 
since we are still targeting the end of September for 13.0 stable.
So, I would like to invite you all to please test the Tor Browser alphas.
Thank you very much!

Pier

[0] 
https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/40907
[1] https://github.com/llvm/llvm-project/issues/63961
[2] https://github.com/mozilla-mobile/firefox-android
[3] https://github.com/mozilla/application-services/pull/5736
[4] 
https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/merge_requests/762
[5] 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/merge_requests/695
[6] 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41845
[7] 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/merge_requests/699
[8] 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/merge_requests/709
[9] 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41877
[10] 
https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41907
[11] 
https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/31546



More information about the tor-project mailing list