Opened 3 years ago

Closed 3 years ago

#20585 closed defect (fixed)

HTTPS Everywhere is not working in Tor Browser nightly

Reported by: boklm Owned by: legind
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords:
Cc: legind Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


Example URLs:

When loading one of those URLs in Tor Browser nightly, we are not redirected to their https version. However, the HTTPS Everywhere add-on can be seen in the list of enabled add-ons.

Child Tickets

Change History (11)

comment:1 Changed 3 years ago by boklm

After updating the add-on and restarting the browser, it is working again.

The nightly is using the master branch from, however it looks like the master branch on this repository is no longer updated:
Contrary to the master branch on github:

comment:2 Changed 3 years ago by gk

Cc: legind added
Status: newneeds_information

legind: what are your plans here? Do you plan to abandon the Tor Project hosted git repo and use solely Github? Or keep the former just supported with tags as done right now? Or would you use both and keep them in sync?

Last edited 3 years ago by gk (previous) (diff)

comment:3 Changed 3 years ago by legind

gk: our current plans are to continue pushing the signed tags and developing from master on GitHub. Is the above process of fetching from master part of an overall push to staple the version of HTTPS Everywhere within Tor Browser? If so, a greater degree of coordination is required. We have a plan to support TB moving in this direction, but there are lateral issues that require some cooperative planning.

comment:4 Changed 3 years ago by gk

Well, we only use master for our nightly builds as we thought it would be good to detect HTTPS-E issues (in our context) as early as possible. But that of course is kind of pointless with master on tpo not being in sync with the one on Github. So, I think there are basically three ways to solve this bug:

1) Sync HTTPS-E master on Github with the counterpart on
2) Use the latest HTTPS-E release (i.e. the .xpi) in our nightly builds as well
3) Use the HTTPS-E repository on Github for all Tor Browser needs (just using Github for the nightlies is not easily possible)

I'd prefer 1) and am not so happy with 3) while 2) would somehow work for us (although it feels like we could/should do better than that).

What do you think?

comment:5 Changed 3 years ago by legind

At a high level, it's important to know that the rulesets are bundled with the extension itself and not downloaded in some out-of-band manner. If option 3 is used, will the regular extension update mechanism still be operational? I think the priority should be keeping rulesets up to date within Tor Browser, especially since there can be long stretches of time betweeen TB releases. Ideally, HTTPS Everywhere has a new release every two weeks to a month. So we should avoid any of the above options which preclude the possibility of regular updates. Option 2 seems like the least-friction option with regards to this concern, but maybe I'm missing something.

A high priority for us is to move ruleset download and validation towards an out-of-band mechanism that can be implemented within the extension itself. When this transition is complete, there should be no barriers to stapling HTTPS Everywhere versions to the TB.

comment:6 Changed 3 years ago by boklm

This ticket is only about fixing the nightly builds, so I think that in options 1 and 3 gk meant using the master branch in the nightly builds, and the tag of the latest version in regular releases.
For our regular releases, we want to keep using the latest HTTPS Everywhere release, with extension update mechanism operational (at least concerning the issue we are talking about in this ticket).

We only want to use the master branch for our nightly builds. Those builds are not intended to be used for more than a few days after they are built, so keeping the extension or its rulesets updated does not really matter here. The main use of the nightly build is for testing. We can use the latest HTTPS Everywhere release for that (option 2), but using the master branch would allow us to detect in advance possible issues before the next HTTPS Everywhere version is released.

So I think the main question is whether it's possible to push the master branch to in addition to github. If it's not possible then we should either switch to github, or stop using the master branch in the nightly and use the latest tag instead.

comment:7 Changed 3 years ago by legind

boklm: unfortunately it wouldn't be possible to keep GitHub and Tor repos' master consistently in sync by pushing to both, since ruleset maintainers often merge PRs and have no access to push to Tor. I could add a step in my release process to push to Tor, but in this case master would just have the same code as an actual HTTPS Everywhere release, and that would kind of defeat the purpose. Alternatively, I could possibly push the latest state of master to the Tor repo on some regular basis (either with cron or manually). Or we could set up a piece of infrastructure that receives a notification via Webhooks upon push, which is tasked with syncing. So there's a few options. I think the easiest right now is for me to manually push to the Tor repo master at some regular interval, and come up with a longer-term solution at some point later.

comment:8 in reply to:  7 Changed 3 years ago by gk

Owner: changed from tbb-team to legind
Status: needs_informationassigned

Replying to legind:
syncing. So there's a few options. I think the easiest right now is for me to manually push to the Tor repo master at some regular interval, and come up with a longer-term solution at some point later.

That would be totally fine, thanks!

comment:9 Changed 3 years ago by gk

(To make it clear this ticket would be done if Github HTTPS-E master got pushed to Tor HTTPS-E master once at least as this should unbreak our nightly builds/tests)

comment:10 Changed 3 years ago by legind

Just pushed to Tor HTTPSE master - care to verify the build is passing and close if so?

comment:11 Changed 3 years ago by gk

Resolution: fixed
Status: assignedclosed

Looks good, thank!

Note: See TracTickets for help on using tickets.