Privacy Browser 3.3 has been released. This release took a lot longer than I expected due to a sudden increase in the business of my day job combined with the time constraints of having another child.
There was a major reworking of the way Privacy Browser handles proxies. The underlying code was switched from using an undocumented and unsupported method of tricking WebView to use a proxy to the newly minted AndroidX ProxyController. Not only does this mean that, going forward, we won’t have problems with updates to WebView breaking the proxy, but this also enables the use of SOCKS proxies, which is the preferred way of connecting to Orbot. This removes the problem with HTTP not proxying correctly through recent versions of Orbot.
In previous versions of Privacy Browser, the full name of the app was displayed in the launcher. Depending on the device and the font size, this could cause the displayed name to be truncated.
The launcher display name has now been shortened to one word. This only affects the launcher; the full name will be displayed in most other contexts.
Note that this is not a change I am fully comfortable with, and it might be further revised in the future. On devices where there is enough room for the full name, it is suboptimal to shorten it. There was some discussion about whether
Browser would be the better short name. And, when displayed in the app chooser, both names will be listed. This last problem can be worked around if intents from the launcher enter the app through a different activity than intents from other programs, but doing so would require refactoring the code and could introduce unintended consequences, so I am not sure I want to go that route.
Privacy Browser is now removed from the recent apps list when it is closed via the back button. This brings the back button in line with Clear and Exit from the navigation menu and closing the app with the tab close button.
A bug was fixed that caused on-the-fly settings (the quick settings available in the options menu) to be reset if navigating history (using the forward or back buttons) even if the domain didn’t change. The intended behavior is for these setting to reset only when the domain changes.
Previous version of Privacy Browser had a preset list of font sizes. This has now been changed to a free-form text box that allows any size.
Privacy Browser can now save webpages as MHT archives. A navigation entry to open files has also been added. Privacy Browser can handle MHT files as well as images, text, and anything else that can be displayed in a browser.
There are now separate context menu entries for opening links in the foreground and the background.
Long pressing a link in the bookmarks drawer now opens it in a new tab in the background. This allows users to quickly open multiple bookmarks. Editing of bookmarks is available in the bookmarks activity.
The screen timeout is now explicitly disabled when playing videos in full screen mode. Previously, some videos, like those from YouTube would disable the screen timeout, while others wouldn’t.
HSTS (HTTP Strict Transport Security) is now disabled. The purpose of HSTS is to keep a list of websites that the browser should only connect to via HTTPS instead of HTTP. This has no benefit in Privacy Browser because every website is loaded via HTTPS unless the user explicitly connects via HTTP. And it has the negative downside of creating a de facto list of all the websites a user has visited in the past.
The new Sec-Fetch headers are now displayed in View Source.
The target API was bumped to 29 (Android 10). There is a new French translation provided by Kévin L. The German translation was updated by Bernhard G. Keller, the Italian translation was updated by Francesco Buratti, and the Spanish translation was updated by Jose A. León. The Russian translation was also updated. I am currently looking for a new Turkish translator.