Privacy Browser 3.12 has been released. This adds a link to WebView DevTools in the navigation menu.
There is an entire post about WebView DevTools. I won’t repeat most of it here except to say that changes made in WebView DevTools affects all WebViews on a device, not just those inside Privacy Browser.
Currently the most interesting thing users can do with WebView DevTools is completely disable the X-Requested-With header.
It is now possible to open a bookmark in a new tab and switch to it automatically by long-pressing on a bookmark (previously the bookmark was opened in a new tab but users had to manually switch to that new tab). A new section has been added to the Guide to explain some of the less obvious aspects of dealing with bookmarks.
Privacy Browser now includes per-app language support on Android 13 (API 33). This is an OS level configuration that lets you set an app to use a different language than the rest of the device.
A crash was fixed that occurred when Add Domain Settings was called on an empty tab.
The color of red text and icons in night mode was improved.
Privacy Browser now recognizes I2P installations from both F-Droid and Google Play (they use a different app ID). Previously, Privacy Browser did not detect the app ID from Google Play, which caused an alert dialog to pop up when a user selected I2P proxying if they had the Google Play version installed.
The Settings activity now has a bottom app bar version. Previously, the bottom app bar applied to all the activities except Settings (because it is generated using an XML file, which is different than the other activities).
The Service Worker directory is now deleted after each page loads. Previously this was only done in Incognito Mode. The Service Worker directory is like a secret, second cache dreamed up by browser developers who think the browser should be an OS. It serves no good purpose. Testing indicates there is no downside to continuously deleting it.
The file provider, used by OpenPGP import/export encryption, now uses a subdirectory of the cache directory. This provides a defense-in-depth design. Because of the way Android is designed, it should be impossible for any app besides OpenKeychain to read from this provider, and it should be impossible for OpenKeychain to read any file besides the export settings that is specifically created by the user for encryption, but by restricting the file provider to a subdirectory it prevents another app from reading the WebView cache if the previous two defenses are somehow thwarted.
This release bumps the target API to 33 (Android 13). The main difference with this API is that WebView’s dark mode works a bit differently. On previous versions of Android, the user could select a light app theme and a dark WebView mode. But beginning with API 33, when an app is using the day theme the only option for the WebView is to be in light mode. When using the night theme WebView defaults to light mode, but the option exists to force night mode. The interface has been updated accordingly.
The Download With External App summary has been updated with additional information to help users understand its limitations.
The width of some of the WebViews in About have been shrunk so that they fit on an average phone screen.
The way some of the strings are handled has been updated to make it more efficient and to work better with present and future translations. Settings preferences now use the AndroidX library, which should make them work better across the range of Android versions and devices. There is now a donation entry in About > Links.
The loading blocklists screen no longer shows on top of the rest of the interface when returning to the main activity if the app is restarted in a subactivity. The
compress method used to generate PNGs from BMPs in
MoveToFolderDialog has been moved to a coroutine to handling the processing on a background thread. The location of the service worker directory has been updated to match changes in Android’s WebView.
OutputStream calls have also been moved to coroutines to make API 33 happy.
A new modification to EasyPrivacy was added to make newsroom.churchofjesuschrist.org work correctly.
As with previous releases, the majority of development effort is currently being spent preparing Privacy Browser PC for alpha release, which is getting fairly close and will likely happen in early 2023. Minimal development of Privacy Browser Android will continue with interspersed releases until Privacy Browser PC reaches feature parity, at which point the two will be developed in tandem.
3 responses to “Privacy Browser 3.12”
[…] Browser 3.12.1 is an emergency release to fix a crash. The transition to SwitchPreferenceCompat in Privacy Browser 3.12 was incomplete. Specifically, it was not possible for the new SwitchPreferenceCompat to set default […]
[…] – 32 (Android 10 – Android 12L) that was introduced with the switch to target API 33 in Privacy Browser 3.12. Initially this was fixed for only API 33 (unless you had a really on and insecure WebView), but […]
[…] Privacy Browser 3.12 contained a change to the behavior of long-pressing bookmarks in the bookmarks drawer. Previously, it would open the bookmark in a background tab and leave the bookmarks drawer open. Beginning with 3.12, it would open the bookmark in a new tab, move to that tab, and close the bookmarks drawer. It turns out this behavior broke the workflow for a small number of users. The behavior introduced in 3.12 is what is desirable for the majority of users, but two features have been added with 3.13 to accommodate those who liked the previous functionality. First, long-pressing on a bookmark folder in the bookmark drawer now opens all the bookmarks it immediately contains. Second, it is now possible to pin the bookmarks drawer, which allows users to open a number of bookmarks at once by long-pressing them without having the bookmarks drawer close each time. […]