Tor Browser issueshttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues2020-10-13T21:13:06Zhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40017Audit Firefox 68-78 diff for proxy issues2020-10-13T21:13:06ZMike PerryAudit Firefox 68-78 diff for proxy issuesThis audit is for the code in gecko-dev.
The fenix component/UI audit is https://gitlab.torproject.org/tpo/applications/fenix/-/issues/34177This audit is for the code in gecko-dev.
The fenix component/UI audit is https://gitlab.torproject.org/tpo/applications/fenix/-/issues/34177Sponsor 58 - Tor Browser Security, Performance, & Usability ImprovementsMike PerryMike Perry2020-08-25https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40680Prepare update to localized assets for YEC2021-11-02T18:56:25ZdonutsPrepare update to localized assets for YECUpdates are available in Transifex for new and existing strings. We should incorporate these into our next browser release(s).Updates are available in Transifex for new and existing strings. We should incorporate these into our next browser release(s).richardrichard2021-11-03https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40816Prepare stable release 11.0.72022-03-07T21:16:07ZrichardPrepare stable release 11.0.7richardrichard2022-02-28https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41168Create an application icon for the privacy browser2022-12-09T15:11:26ZdonutsCreate an application icon for the privacy browserThe privacy browser will require its own application icon!
Mullvad has an existing desktop application for their VPN, which can be found here: https://mullvad.net/en/download/macos/. As such we should take care to ensure the application...The privacy browser will require its own application icon!
Mullvad has an existing desktop application for their VPN, which can be found here: https://mullvad.net/en/download/macos/. As such we should take care to ensure the application icon for the browser is visually differentiable from the VPN. It may be worthwhile working up two or three different concepts for the sponsor to review – unless we feel that any particular route is significantly stronger than the others.
Once we have agreed on the overall design of the icon, it'll need outputted in platform specific formats for Linux, MacOS, Windows. References for these platforms can be found here:
- Linux: [Gnome guidelines](https://developer.gnome.org/hig/guidelines/app-icons.html) | [Template](https://gitlab.gnome.org/Teams/Design/HIG-app-icons/blob/master/template.svg) | [Helpful Gnome blog post](https://blogs.gnome.org/tbernard/2019/12/30/designing-an-icon-for-your-app/)
- MacOS: [Guidelines (HIG)](https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/) | [Templates](https://developer.apple.com/design/resources/#macos-apps)
- Windows: [Guidelines](https://docs.microsoft.com/en-us/windows/apps/design/style/iconography/app-icon-design) | [Sizes](https://learn.microsoft.com/en-us/windows/apps/design/style/iconography/app-icon-construction?source=recommendations)
The application icon will also form the basis of the full logo lockup and wordmark, however we'll track that activity in a separate ticket.Sponsor 131 - Phase 2 - Privacy Browsernicobnicob2022-12-02https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/29834Update Google Play screenshots2022-12-09T15:20:07ZMatthew FinkelUpdate Google Play screenshotsWe should show the new bootstrap/configuration UI. Maybe we should wait until the animation is working, too.We should show the new bootstrap/configuration UI. Maybe we should wait until the animation is working, too.richardrichard2022-12-02https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41714“Show Fewer Bridges” button missing from refactored remove all bridges UI2023-05-01T12:53:10Zdonuts“Show Fewer Bridges” button missing from refactored remove all bridges UIWhen the full list of bridges has been revealed, “Show All Bridges” should now be replaced with a button labeled “Show Fewer Bridges” that collapses the list again.
See the [Figma file](https://www.figma.com/file/RS584DcR4emXrw1F8g3l5x/...When the full list of bridges has been revealed, “Show All Bridges” should now be replaced with a button labeled “Show Fewer Bridges” that collapses the list again.
See the [Figma file](https://www.figma.com/file/RS584DcR4emXrw1F8g3l5x/Tor-Browser-12.5?node-id=1%3A2&t=i8S80oGAMzN828LD-1) for ref. Thanks!Sponsor 30 - Objective 3.7Dan BallardDan Ballard2023-04-17https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41713“Remove All Bridges” button only appears after hitting “Show All Bridges"2023-05-01T12:53:10Zdonuts“Remove All Bridges” button only appears after hitting “Show All Bridges"In https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41085 we updated the “Remove All Bridges” UI so that the button is permanently visible, rather than being revealed after hitting the “Show All Bridges” button.
Howev...In https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41085 we updated the “Remove All Bridges” UI so that the button is permanently visible, rather than being revealed after hitting the “Show All Bridges” button.
However it looks like the button is still hidden until all bridges are revealed. Can we get that updated please?Sponsor 30 - Objective 3.7Dan BallardDan Ballard2023-04-17https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41617Improve the UX of the built-in bridges dialog2023-06-05T13:56:18ZdonutsImprove the UX of the built-in bridges dialogWe've observed that users often find it difficult to differentiate between Tor Browser's various bridge options, tend to choose a built-in bridge option at random (see: https://gitlab.torproject.org/tpo/ux/research/-/issues/100), and hav...We've observed that users often find it difficult to differentiate between Tor Browser's various bridge options, tend to choose a built-in bridge option at random (see: https://gitlab.torproject.org/tpo/ux/research/-/issues/100), and have trouble figuring out how to connect afterwards (see: https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41060).
In response, we're proposing:
- [x] Updating the “Bridges” section description on `about:preferences#connection` to include the word “securely”.
- [x] Updating the title and description of the built-in bridges dialog
- [x] Updating the individual descriptions that accompany each of the built-in bridge options
- [ ] Fixing the size and styling of the dialog and its constituent elements to make it more consistent with Firefox
- [x] Replacing the `OK` button with a `Connect` button when not connected
- [ ] Adding a `✔ Connected` flag to indicate with built-in bridge option Tor Browser is currently using
The Figma file is ready for dev handoff here: [Figma link](https://www.figma.com/file/RS584DcR4emXrw1F8g3l5x/Tor-Browser-12.5?node-id=62%3A10116&t=41hhHGHnJTkIHnmo-1)
These fixes will be ran through additional usability testing in March/April as part of ~"Sponsor 30" before they reach stable in 12.5.Sponsor 30 - Objective 3.7Dan BallardDan Ballard2023-04-17https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41600Some users have difficulty finding the circuit display2023-10-11T12:10:02ZdonutsSome users have difficulty finding the circuit displayIn recent usability testing conducted for ~"Sponsor 30" @nah discovered that:
> During this study, **participant 3** pointed that they never used the `New Circuit` because they didn't know where it was. And as most browsers use the padl...In recent usability testing conducted for ~"Sponsor 30" @nah discovered that:
> During this study, **participant 3** pointed that they never used the `New Circuit` because they didn't know where it was. And as most browsers use the padlock to show website certificate, so they would never look for it there. They suggested to change the icon for the `New Circuit`, to make it more visible.(https://gitlab.torproject.org/tpo/ux/research/-/issues/91#note_2840558)
This has also been reported by an independent user researcher here: https://gitlab.torproject.org/tpo/ux/research/-/issues/34
And came up during user interviews for ~"Sponsor 101" too: https://gitlab.torproject.org/tpo/ux/research/-/issues/70
If possible, I'd like to explore potential fixes for this issue in time for the usability testing scheduled in March/April.Sponsor 30 - Objective 3.5henryhenry2023-04-17https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41085Refactor the UI to remove all bridges2023-05-01T12:53:10ZdonutsRefactor the UI to remove all bridgesIn #40782 we introduced the concept of bridge cards. As part of that work, we provided a means to remove all bridge cards using a red button positioned below the bridge stack:
- [remove-all-bridges](/uploads/3c9cf520633386ed07bc35ee6341...In #40782 we introduced the concept of bridge cards. As part of that work, we provided a means to remove all bridge cards using a red button positioned below the bridge stack:
- [remove-all-bridges](/uploads/3c9cf520633386ed07bc35ee63418704/remove-all-bridges.png)
However it shares the same position as the "Show all bridges" button, which was terrible UX on my part. We should consider improving this.Sponsor 30 - Objective 3.5Dan BallardDan Ballard2023-04-17https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/41038Update "Click to Copy" button label in circuit display2023-04-04T15:29:45ZdonutsUpdate "Click to Copy" button label in circuit displayApparently the circuit display has a button to click to copy the URL, that appears when you hover over it (which is news to me!):
<img src="/uploads/fe519f445175dba65088b0cfa3430ba4/circuit-display-nyt.png" alt="circuit-display-nyt" wid...Apparently the circuit display has a button to click to copy the URL, that appears when you hover over it (which is news to me!):
<img src="/uploads/fe519f445175dba65088b0cfa3430ba4/circuit-display-nyt.png" alt="circuit-display-nyt" width="50%">
I'm guessing this is a legacy feature carried across from torbutton, since it's trivial enough to copy the URL from the address bar itself? In any case, we should avoid "Click..." commands in our microcopy and update the label to something like `Copy Address` instead.Sponsor 30 - Objective 3.5henryhenry2023-04-17https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/40417Create platform-specific application icons2023-10-02T14:17:18ZAntonelaantonela@torproject.orgCreate platform-specific application iconsfrom RT: I was wondering if the icon for Tor Browser on macOS will be updated to fit with Big Sur and the new app icon guidelines: https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-iconfrom RT: I was wondering if the icon for Tor Browser on macOS will be updated to fit with Big Sur and the new app icon guidelines: https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-iconnicobnicob2023-08-18https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42292 Draw new icons for Telegram, web and email bridge channels2023-12-05T00:58:18Zdonuts Draw new icons for Telegram, web and email bridge channelsHey @nicob, see the "Telegram", "Web" and "Gmail or Riseup" bridge distribution channels at the bottom-left of this page: https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42036/designs/lox-not-connected.png
The globe ...Hey @nicob, see the "Telegram", "Web" and "Gmail or Riseup" bridge distribution channels at the bottom-left of this page: https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42036/designs/lox-not-connected.png
The globe for "Web" makes sense as the default favicon that Fx uses, however could you draw custom icons in the Acorn style for Telegram (i.e. based on their paper plane logo) and Email (i.e. a standard mail icon) please?Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetnicobnicob2023-11-30https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42274Draw a new "bridge-pass" icon for lox bridges2023-12-04T20:33:23ZdonutsDraw a new "bridge-pass" icon for lox bridgesI've just grabbed an icon from Material Symbols and rotated it 45 degrees as a placeholder in these designs: [Figma / Tor Browser 13.5 / lox](https://www.figma.com/file/rWgMwiiFTDFp4ujuP3PKbq/Tor-Browser-13.5?type=design&node-id=151%3A92...I've just grabbed an icon from Material Symbols and rotated it 45 degrees as a placeholder in these designs: [Figma / Tor Browser 13.5 / lox](https://www.figma.com/file/rWgMwiiFTDFp4ujuP3PKbq/Tor-Browser-13.5?type=design&node-id=151%3A9289&mode=design&t=wDYnw2iq2A868OmH-1) (see the top-right of the bridge card for lox bridges). Could you draw a custom icon based on this please @nicob?Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetnicobnicob2023-11-30https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42273Prepare the "bridge" icon for production2024-01-30T19:24:48ZdonutsPrepare the "bridge" icon for productionI created a super quick version here: [Figma / Tor Browser assets / bridge](https://www.figma.com/file/sd4yASXsToxFECsraTlAsw/Tor-Browser-assets?type=design&node-id=122%3A301&mode=design&t=BSRSZc8GO5ieWvFS-1), which you can see in use on...I created a super quick version here: [Figma / Tor Browser assets / bridge](https://www.figma.com/file/sd4yASXsToxFECsraTlAsw/Tor-Browser-assets?type=design&node-id=122%3A301&mode=design&t=BSRSZc8GO5ieWvFS-1), which you can see in use on these designs: [Figma / Tor Browser 13.5 / lox](https://www.figma.com/file/rWgMwiiFTDFp4ujuP3PKbq/Tor-Browser-13.5?type=design&node-id=151%3A9289&mode=design&t=wDYnw2iq2A868OmH-1). However it needs a little refinement – namely the bottom of each stroke should probably be fully rounded, and also descend a little lower past the horizon for optical balance?
The icon should also be compatible with both Acorn and Material Symbols styles, however you may not need to draw two separate icons in this case (I guess stroke width will be the determining factor).Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibetnicobnicob2023-11-30https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42036Design and build a user interface for Lox2024-03-25T16:11:51ZPhilipp Winterphw@torproject.orgDesign and build a user interface for Lox**Details**
- Lox paper: https://cypherpunks.ca/~iang/pubs/lox-popets23.pdf
- Back-end integration: https://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/116
- Design file for handoff: [Figma / Tor Browser 13.5 / lox](https://...**Details**
- Lox paper: https://cypherpunks.ca/~iang/pubs/lox-popets23.pdf
- Back-end integration: https://gitlab.torproject.org/tpo/anti-censorship/team/-/issues/116
- Design file for handoff: [Figma / Tor Browser 13.5 / lox](https://www.figma.com/file/rWgMwiiFTDFp4ujuP3PKbq/Tor-Browser-13.5?type=design&node-id=151%3A9289&mode=design&t=wDYnw2iq2A868OmH-1)
**Timeline**
Work items tagged as ~"Sponsor 96" (i.e. those required to deliver a working prototype of Lox in Tor Browser Alpha) should be complete by the due date assigned to the issue in order to make the code audit for the project. Other work items not strictly required for the prototype (e.g. generic changes to Connection Settings or converting traditional bridges to use the new bridge card format) are considered lower priority, and may be completed later in the 13.5 release cycle.
**Release**
All features developed for this ticket are to be included in the 13.5 Alpha series (desktop only), however:
- Lox-specific features **should not** be released in 13.5 stable, and care should be taken to separate patches specific to Lox from other work. There is no set stable release date for Lox at present, and we anticipate a long testing period until it's ready (e.g. by 14.5 stable instead).
- Generic features (e.g. changes to Connection Settings or traditional bridges) may be released in 13.5 stable, if ready.Sponsor 96: Rapid Expansion of Access to the Uncensored Internet through Tor in China, Hong Kong, & Tibethenryhenry2024-01-18https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42466Drop the "Onion Logo" from trademark statement2024-03-27T11:07:18ZhenryDrop the "Onion Logo" from trademark statementCurrently, in the "About Tor Browser" dialog, we have the statement:
> `“Tor” and “The Onion Logo” are registered trademarks of The Tor Project, Inc.`
We don't actually use the trademarked onion logo in our builds any more. See the tra...Currently, in the "About Tor Browser" dialog, we have the statement:
> `“Tor” and “The Onion Logo” are registered trademarks of The Tor Project, Inc.`
We don't actually use the trademarked onion logo in our builds any more. See the trademark here: https://tsdr.uspto.gov/#caseNumber=77172363&caseSearchType=US_APPLICATION&caseType=DEFAULT&searchType=statusSearch
I've searched through our assets and I can't find this old logo, which I think was cleared out with the new designs from UX. @donuts can you please confirm we won't use the logo any more?
So I think we should change it to:
> `“Tor” is a registered trademark of The Tor Project, Inc.henryhenryhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42459Add startpage onion service to list of search providers2024-03-26T21:17:06ZrichardAdd startpage onion service to list of search providersStartpage has added a new onion service, so lets add it to the list of built-in search providers.
URL: http://startpagel6srwcjlue4zgq3zevrujfaow726kjytqbbjyrswwmjzcqd.onion/
We'd like this in the next stable release 13.0.12 and the nex...Startpage has added a new onion service, so lets add it to the list of built-in search providers.
URL: http://startpagel6srwcjlue4zgq3zevrujfaow726kjytqbbjyrswwmjzcqd.onion/
We'd like this in the next stable release 13.0.12 and the next alpha release 13.5a6Dan BallardDan Ballardhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42458Update the "Submit Feedback" link in "About Tor Browser"2024-03-26T21:14:46Zebanamebanam@torproject.orgUpdate the "Submit Feedback" link in "About Tor Browser"The link in "Submit Feedback", visible in `Help` > `About Tor Browser`, currently points to https://support.torproject.org/get-in-touch/. I think we can make it point to https://support.torproject.org/misc/bug-or-feedback/ directly instead.The link in "Submit Feedback", visible in `Help` > `About Tor Browser`, currently points to https://support.torproject.org/get-in-touch/. I think we can make it point to https://support.torproject.org/misc/bug-or-feedback/ directly instead.richardrichardhttps://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42449Rebase Tor Browser alpha onto Firefox 115.9.0esr2024-03-26T20:31:21ZPier Angelo VendrameRebase Tor Browser alpha onto Firefox 115.9.0esr**NOTE:** All examples in this template reference the rebase from 102.7.0esr to 102.8.0esr
<details>
<summary>Explanation of Variables</summary>
- `$(ESR_VERSION)`: the Mozilla defined ESR version, used in various places for building...**NOTE:** All examples in this template reference the rebase from 102.7.0esr to 102.8.0esr
<details>
<summary>Explanation of Variables</summary>
- `$(ESR_VERSION)`: the Mozilla defined ESR version, used in various places for building tor-browser tags, labels, etc
- **Example**: `102.8.0`
- `$(ESR_TAG)`: the Mozilla defined hg (Mercurial) tag associated with `$(ESR_VERSION)`
- **Example**: `FIREFOX_102_8_0esr_RELEASE`
- `$(ESR_TAG_PREV)`: the Mozilla defined hg (Mercurial) tag associated with the previous ESR version when rebasing (ie, the ESR version we are rebasing from)
- **Example**: `FIREFOX_102_7_0esr_BUILD1`
- `$(BROWSER_MAJOR)`: the browser major version
- **Example**: `12`
- `$(BROWSER_MINOR)`: the browser minor version
- **Example**: either `0` or `5`; Alpha's is always `(Stable + 5) % 10`
- `$(BASE_BROWSER_BRANCH)`: the full name of the current `base-browser` branch
- **Example**: `base-browser-102.8.0esr-12.5-1`
- `$(BASE_BROWSER_BRANCH_PREV)`: the full name of the previous `base-browser` branch
- **Example**: `base-browser-102.7.0esr-12.5-1`
- `$(TOR_BROWSER_BRANCH)`: the full name of the current `tor-browser` branch
- **Example**: `tor-browser-102.8.0esr-12.5-1`
- `$(TOR_BROWSER_BRANCH_PREV)`: the full name of the previous `tor-browser` branch
- **Example**: `tor-browser-102.7.0esr-12.5-1`
</details>
**NOTE:** It is assumed that we've already identified the new ESR branch during the tor-browser stable rebase
### **Bookkeeping**
- [ ] Link this issue to the appropriate [Release Prep](https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Release%20Prep) issue.
### Update Branch Protection Rules
- [ ] In [Repository Settings](https://gitlab.torproject.org/tpo/applications/tor-browser/-/settings/repository):
- [ ] Remove previous alpha `base-browser` and `tor-browser` branch protection rules (this will prevent pushing new changes to the branches being rebased)
- [ ] Create new `base-browser` and `tor-browser` branch protection rule:
- **Branch**: `*-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1*`
- **Example**: `*-102.8.0esr-12.5-1*`
- **Allowed to merge**: `Maintainers`
- **Allowed to push and merge**: `Maintainers`
- **Allowed to force push**: `false`
- If you copied and pasted from old rules, double check you didn't add spaces at the end, as GitLab will not trim them!
### **Create New Branches**
- [ ] Find the Firefox mercurial tag `$(ESR_TAG)`
- If `$(BROWSER_MINOR)` is 5, the tag should already exist from the stable release
- Otherwise:
- [ ] Go to `https://hg.mozilla.org/releases/mozilla-esr$(ESR_MAJOR)/tags`
- [ ] Find and inspect the commit tagged with `$(ESR_TAG)`
- Tags are in yellow in the Mercurial web UI
- [ ] Find the equivalent commit in `https://github.com/mozilla/gecko-dev/commits/esr$(ESR_MAJOR)`
- The tag should be very close to `HEAD` (usually the second, before a `No bug - Tagging $(HG_HASH) with $(ESR_TAG)`)
- **Notice**: GitHub sorts commits by time, you might want to use `git log gecko-dev/esr$(ESR_MAJOR)` locally, instead
- [ ] Sign/Tag the `gecko-dev` commit: `git tag -as $(ESR_TAG) $(GIT_HASH) -m "Hg tag $(ESR_TAG)"`
- [ ] Create new alpha `base-browser` branch from Firefox mercurial tag
- Branch name in the form: `base-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1`
- **Example**: `base-browser-102.8.0esr-12.5-1`
- [ ] Create new alpha `tor-browser` branch from Firefox mercurial tag
- Branch name in the form: `tor-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1`
- **Example**: `tor-browser-102.8.0esr-12.5-1`
- [ ] Push new `base-browser` branch to `upstream`
- [ ] Push new `tor-browser` branch to `upstream`
### **Rebase tor-browser**
- [ ] Checkout a new local branch for the `tor-browser` rebase
- **Example**: `git branch tor-browser-rebase FIREFOX_102_8_0esr_BUILD1`
- [ ] **(Optional)** `base-browser` rebase and autosquash
- **NOTE** This step may be skipped if the `HEAD` of the previous `base-browser` branch is a `-buildN` tag
- [ ] Cherry-pick the previous `base-browser` commits up to `base-browser`'s `buildN` tag onto new `base-browser` rebase branch
- **Example**: `git cherry-pick FIREFOX_102_7_0esr_BUILD1..base-browser-102.7.0esr-12.5-1-build1`
- [ ] Rebase and autosquash these cherry-picked commits
- **Example**: `git rebase --autosquash --interactive FIREFOX_102_8_0esr_BUILD1 HEAD`
- [ ] Cherry-pick remainder of patches after the `buildN` tag
- **Example**: `git cherry-pick base-browser-102.7.0esr-12.5-1-build1..upstream/base-browser-102.7.0esr-12.5-1`
- [ ] `tor-browser` rebase and autosquash
- [ ] Note the current git hash of `HEAD` for `tor-browser` rebase+autosquash step: `git rev-parse HEAD`
- [ ] Cherry-pick the appropriate previous `tor-browser` branch's commit range up to the last `tor-browser` `buildN` tag
- **Example**: `git cherry-pick base-browser-102.7.0esr-12.5-1-build1..tor-browser-102.7.0esr-12.5-1-build1`
- **Example (if separate base-browser rebase was skipped)**: `git cherry-pick FIREFOX_102_7_0esr_BUILD1..tor-browser-102.7.0esr-12.5-1-build1`
- [ ] Rebase and autosquash **ONLY** these newly cherry-picked commits using the commit noted previously: `git rebase --autosquash --interactive $(PREV_HEAD)`
- **Example**: `git rebase --autosquash --interactive FIREFOX_102_8_0esr_RELEASE`
- [ ] **(Optional)** Patch reordering
- **NOTE**: We typically want to do this after new features or bug fix commits which are not !fixups to an existing commit have been merged and are just sitting at the end of the commit history
- Relocate new `base-browser` patches in the patch-set to enforce this rough thematic ordering:
- **MOZILLA BACKPORTS** - official Firefox patches we have backported to our ESR branch: Android-specific security updates, critical bug fixes, worthwhile features, etc
- **MOZILLA REVERTS** - revert commits of official Firefox patches
- **UPLIFT CANDIDATES** - patches which stand on their own and should be uplifted to `mozilla-central`
- **BUILD CONFIGURATION** - tools/scripts, gitlab templates, etc
- **BROWSER CONFIGURATION** - branding, mozconfigs, preference overrides, etc
- **SECURITY PATCHES** - security improvements, hardening, etc
- **PRIVACY PATCHES** - fingerprinting, linkability, proxy bypass, etc
- **FEATURES** - new functionality: updater, UX, letterboxing, security level, add-on
- Relocate new `tor-browser` patches in the patch-set to enforce this rough thematic ordering:
- **BUILD CONFIGURATION** - tools/scripts, gitlab templates, etc
- **BROWSER CONFIGURATION** - branding, mozconfigs, preference overrides, etc
- **UPDATER PATCHES** - updater tweaks, signing keys, etc
- **SECURITY PATCHES** - non tor-dependent security improvements, hardening, etc
- **PRIVACY PATCHES** - non tor-dependent fingerprinting, linkability, proxy bypass, etc
- **FEAURES** - non tor-dependent features
- **TOR INTEGRATION** - legacy tor-launcher/torbutton, tor modules, bootstrapping, etc
- **TOR SECURITY PATCHES** - tor-specific security improvements
- **TOR PRIVACY PATCHES** - tor-specific privacy improvements
- **TOR FEATURES** - new tor-specific functionality: manual, onion-location, onion service client auth, etc
- [ ] Cherry-pick remainder of patches after the last `tor-browser` `buildN` tag
- **Example**: `git cherry-pick tor-browser-102.7.0esr-12.5-1-build1..upstream/tor-browser-102.7.0esr-12.5-1`
- [ ] Rebase and autosquash again, this time replacing all `fixup` and `squash` commands with `pick`. The goal here is to have all of the `fixup` and `squash` commits beside the commit which they modify, but kept un-squashed for easy debugging/bisecting.
- **Example**: `git rebase --autosquash --interactive FIREFOX_102_8_0esr_RELEASE`
- [ ] Compare patch sets to ensure nothing *weird* happened during conflict resolution:
- [ ] diff of diffs:
- Do the diff between `current_patchset.diff` and `rebased_patchset.diff` with your preferred difftool and look at differences on lines that starts with + or -
- `git diff $(ESR_TAG_PREV)..$(BROWSER_BRANCH_PREV) > current_patchset.diff`
- `git diff $(ESR_TAG)..$(BROWSER_BRANCH) > rebased_patchset.diff`
- diff `current_patchset.diff` and `rebased_patchset.diff`
- If everything went correctly, the only lines which should differ should be the lines starting with `index abc123...def456` (unless the previous `base-browser` branch includes changes not included in the previous `tor-browser` branch)
- [ ] rangediff: `git range-diff $(ESR_TAG_PREV)..$(TOR_BROWSER_BRANCH_PREV) $(ESR_TAG)..HEAD`
- **Example**: `git range-dif FIREFOX_102_7_0esr_BUILD1..upstream/tor-browser-102.7.0esr-12.5-1 FIREFOX_102_8_0esr_BUILD1..HEAD`
- [ ] Open MR for the `tor-browser` rebase
- [ ] Merge
- Update and push `base-browser` branch
- [ ] Reset the new `base-browser` branch to the appropriate commit in this new `tor-browser` branch
- [ ] Push these commits to `upstream`
- [ ] Set `$(TOR_BROWSER_BRANCH)` as the default GitLab branch
- [ ] Go to [Repository Settings](https://gitlab.torproject.org/tpo/applications/tor-browser/-/settings/repository)
- [ ] Expand `Branch defaults`
- [ ] Set the branch and leave the `Auto-close` checkbox unchecked
- [ ] Save changes
### **Sign and Tag**
- [ ] Sign/Tag `HEAD` of the merged `tor-browser` branch:
- **Tag**: `tor-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1-build1`
- **Message**: `Tagging build1 for $(ESR_VERSION)esr-based alpha`
- [ ] Push tag to `upstream`
- [ ] Sign/Tag HEAD of the merged `base-browser` branch:
- **Tag**: `base-browser-$(ESR_VERSION)esr-$(BROWSER_MAJOR).$(BROWSER_MINOR)-1-build1`
- **Message**: `Tagging build1 for $(ESR_VERSION)esr-based alpha`
- [ ] Push tag to `upstream`
- [ ] Update tor-browser-build's main (no MR required, you can just push it if you have the permissions)
- [ ] Update `projects/firefox/config`
- [ ] Update `firefox_platform_version`
- [ ] Set `browser_build` to 1 (to prevent failures in alpha testbuilds)
- [ ] Update `projects/geckoview/config`
- [ ] Update `geckoview_version`
- [ ] Set `browser_build` to 1Pier Angelo VendramePier Angelo Vendrame