briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-05-04T10:43:53Zhttps://code.briarproject.org/briar/briar/-/issues/2317Restarting app quickly after startup failure sometimes does not work2022-05-04T10:43:53ZSebastianRestarting app quickly after startup failure sometimes does not workhttps://code.briarproject.org/briar/briar-desktop/-/issues/344Hidden expiration banner is displayed again when changing language/theme2022-05-03T15:48:13ZMikolai GütschowHidden expiration banner is displayed again when changing language/themeSince we are invalidating the whole screen, the hidden banner state is lost.Since we are invalidating the whole screen, the hidden banner state is lost.https://code.briarproject.org/briar/briar-desktop/-/issues/343Improve color contrast2022-09-27T08:10:08ZMikolai GütschowImprove color contrastDuring the accessibility audit #341 several issues were identified concerning poor color contrast:
- [x] registration screen: text field label (light blue on white/black background) > !213
- [x] settings/change password screen: text fi...During the accessibility audit #341 several issues were identified concerning poor color contrast:
- [x] registration screen: text field label (light blue on white/black background) > !213
- [x] settings/change password screen: text field labels (light blue on white) > !213
- [x] settings screen: "change password" button (light blue on white/black) > !213
- [x] registration screen: "next" button (black text color on blue/gray (disabled) button) > already fixed on current `main`
- [ ] registration screen: visual focus indicator on "show/hide password" button (light gray on white)
- [x] registration screen: password strength indicator (light green on white / dark red on black) > !211
- [x] registration screen: form error color (red on black) > !202
- [x] message compose screen: send button (light green on white) > !212
these two issues were post-poned to #364:
- registration screen: disabled "next" button if some of the fields are not properly filled (light gray on white/black)
- settings/change password screen: disabled button (light gray on white)
as well as:
- add contact screen: close button (system-dependant window decoration, so I don't think we can/should do anything about it)Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar/-/issues/2313Move share app offline button to main side view (navigation menu)2022-04-28T11:45:13ZFlyingP1g FlyingP1gMove share app offline button to main side view (navigation menu)Why is share app offline button in the Settings?
I think it would be better and more natural to have that option in the main side view(navigation menu), not in the settings.
Also someone from matrix briar server was searching for share o...Why is share app offline button in the Settings?
I think it would be better and more natural to have that option in the main side view(navigation menu), not in the settings.
Also someone from matrix briar server was searching for share offline option and wasn't able to find it(It was about a week ago).https://code.briarproject.org/briar/briar/-/issues/2312Briar fails to start if clock was unreasonably wrong on first run2022-05-11T14:23:37ZakwizgranBriar fails to start if clock was unreasonably wrong on first runSteps to reproduce:
* If a Briar account exists, delete it
* Set the system clock to a date before 1 Jan 2021
* Launch Briar and create an account
* Briar will show the startup failure screen due to the clock being wrong
* Set the system...Steps to reproduce:
* If a Briar account exists, delete it
* Set the system clock to a date before 1 Jan 2021
* Launch Briar and create an account
* Briar will show the startup failure screen due to the clock being wrong
* Set the system clock to the right date
* Launch Briar again
* The password screen will be shown
* Enter the password
* Briar will show the startup failure screen, saying the database is corrupt
Log snippet from the second run (after correcting the clock):
```
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: Contents of account directory before opening DB:
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug 4096
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/lib 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/lib/libobfs4proxy.so 6481961
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/lib/libtor.so 5957620
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/cache 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/cache/com.android.renderscript.cache 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/shared_prefs 4096
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/org.briarproject.briar.android.debug_preferences.xml 115
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/_has_set_default_values.xml 126
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/db.xml 65
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_key 4096
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/app_key/db.key.bak 218
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/app_key/db.key 218
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_db 4096
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_tor 4096
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: Reopening DB: false
```
Stacktrace:
```
2022-04-27 08:55:00.046 22506-22542/org.briarproject.briar.android.debug W/LifecycleManagerImpl: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at org.briarproject.bramble.identity.IdentityManagerImpl.loadIdentityWithKeyPair(IdentityManagerImpl.java:159)
at org.briarproject.bramble.identity.IdentityManagerImpl.getCachedIdentity(IdentityManagerImpl.java:147)
at org.briarproject.bramble.identity.IdentityManagerImpl.onDatabaseOpened(IdentityManagerImpl.java:95)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.lambda$startServices$0(LifecycleManagerImpl.java:129)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.$r8$lambda$R30tTgoiROvN8ROsUbPogFK9rjY(LifecycleManagerImpl.java)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:123)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0(BriarService.java:141)
at org.briarproject.briar.android.BriarService.$r8$lambda$HDU85pNkqbcIvjlH9WM8JDDv2bo(BriarService.java)
at org.briarproject.briar.android.BriarService$$ExternalSyntheticLambda5.run(Unknown Source)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$1(AndroidWakeLockManagerImpl.java:95)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.$r8$lambda$HU3N-m0ADiLNH1gKAKkCiyTw2fM(AndroidWakeLockManagerImpl.java)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
```
It looks like the DB key was saved on the first run but the DB wasn't created. On the second run we assumed an identity had already been created so we didn't store one, and then we got an exception when trying to load an identity from the newly created DB.Android 1.4https://code.briarproject.org/briar/briar-desktop/-/issues/342Briar Desktop Usability Audit2022-05-03T14:59:57ZElio Qoshielio@ura.designBriar Desktop Usability AuditWe worked with Kay from Blickwinkel Digital, an external UX expert group who tested Briar Desktop as part of their Usability Audit according to ISO 9241-110.They have been immensely helpful in identifying common usability issues on the B...We worked with Kay from Blickwinkel Digital, an external UX expert group who tested Briar Desktop as part of their Usability Audit according to ISO 9241-110.They have been immensely helpful in identifying common usability issues on the Briar Desktop app. As someone without prior experiences with Briar, their insights were refreshing and much needed after we ourselves have worked with Briar over 4 years. As part of this collaboration we produced a PDF presentation including over 17 UX issues identified by Blickwinkel (including commentary from our side for further context) as well additional 8 issues identified by our Lead UX Researcher, Renata according to the UX Heuristics framework by Nielsen Norman Group.
![image](/uploads/4e87ec2fe74911cb7fd63a8ae77d58fb/image.png)
In a similar manner to the accessibility audit, the usability audit includes an issue description, an annotated screenshot, a recommendation, the severity as well as the criteria/heuristics being violated in this case.
Majority of the review has been conducted on a Mac M1 (with apparently an older version of Briar Desktop), though most things apply on both versions.
Presentation:
https://docs.google.com/presentation/d/1tDmSPzW26luF3ySaGUwbNelhvkRwXAFJ/edit?usp=sharing&ouid=100104676494073512080&rtpof=true&sd=true
[Briar_Desktop_Usability_Audit.pdf](/uploads/78097e2dcba23fe82e2fd0384041ad14/Briar_Desktop_Usability_Audit.pdf)Desktop 1.0.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/341Briar Desktop Accessibility Audit (Ubuntu+Mac)2023-01-09T21:39:55ZElio Qoshielio@ura.designBriar Desktop Accessibility Audit (Ubuntu+Mac)The accessibility audit supported by OTF has been completed, following is a detailed spreadsheet report with screenshots and recommendations on how to address over 70 accessibility issues. The accessibility audit has been conducted with ...The accessibility audit supported by OTF has been completed, following is a detailed spreadsheet report with screenshots and recommendations on how to address over 70 accessibility issues. The accessibility audit has been conducted with keyboard as well as screen readers (Voice Over on macOS and Orca on Ubuntu).
https://docs.google.com/spreadsheets/d/17G_qYlHzXJJwyc7d2y6vXC-qyDA2ia-dqbBpuQXnteE/edit?usp=sharing
Each issue includes various details for triaging and provided required context:
- Issue Number
- Environment (Operating System details)
- Page Name (which screen of the application this issue appears in)
- Issues/Summary (issue description)
- Actual Result (the behavior of the issue)
- Expected Result (how the experience should behave ideally)
- User Impact (the repercussions of the issue)
- Screen Images (annotated screenshot)
- Recommendation (how to solve this issue)
- WCAG Guideline (link on the WCAG chapter the issue violates)
- Severity ( how severe this issue is)
[Briar_Desktop_Accessibility_Report.ods](/uploads/5360e4fc7f43fe4336d1e29345e2d628/Briar_Desktop_Accessibility_Report.ods)[Screenshots.zip](/uploads/b180dda7e0374769cb8936cca798c546/Screenshots.zip)Desktop 1.0.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/340Detect when LAN IP address changes2022-04-18T09:39:50ZakwizgranDetect when LAN IP address changesThis already works on Android, but how to do it on the desktop is an open question.This already works on Android, but how to do it on the desktop is an open question.https://code.briarproject.org/briar/briar/-/issues/2307Connections to Tor v3 hidden services fail repeatedly after about 1 second2023-03-15T12:45:52ZakwizgranConnections to Tor v3 hidden services fail repeatedly after about 1 secondConnections to Tor v3 hidden services sometimes fail repeatedly with `java.io.IOException: Connection failed: Host unreachable` after about 1 second, despite the remote peer being online.
To reproduce this, it's helpful to prevent the r...Connections to Tor v3 hidden services sometimes fail repeatedly with `java.io.IOException: Connection failed: Host unreachable` after about 1 second, despite the remote peer being online.
To reproduce this, it's helpful to prevent the remote peer from making outgoing connections (eg change the check at the top of TorPlugin#createConnection() from `if (getState() != ACTIVE) return null` to `if(getState() != ACTIVE || true) return null` for the remote peer only). This ensures that the local peer won't receive any incoming connections that would prevent it from polling.
Next, start both peers and wait for the local peer to connect to the remote peer. Disable Tor on the remote peer, wait for the local peer to notice that the connection has been lost, then re-enable Tor on the remote peer. The local peer's subsequent connection attempts will continue to fail after about 1 second each for about the next 2 minutes, despite the remote peer being online.
I wonder if Tor is storing some kind of internal state related to previous connection failures that causes subsequent connection attempts to fail early. This may be deliberate (eg avoiding frequent HS descriptor lookups or rendezvous attempts for the same hidden service). Still, it causes Briar to take longer than necessary to reconnect to a contact who has been offline.
Alternatively, perhaps the remote peer isn't reconnecting quickly to its introduction points after coming back online.https://code.briarproject.org/briar/briar-desktop/-/issues/339Feature request: native wayland support2023-08-14T14:06:34ZAminda SuomalainenFeature request: native wayland supportI was asking about this on IRC/Matrix and `matterbridge-b0t` users `seb` and `akwizgran` responded that there is currently nothing to be done until it gets fixed by openjdk or compose ui framework
* https://wiki.openjdk.java.net/display...I was asking about this on IRC/Matrix and `matterbridge-b0t` users `seb` and `akwizgran` responded that there is currently nothing to be done until it gets fixed by openjdk or compose ui framework
* https://wiki.openjdk.java.net/display/wakefield
* https://youtrack.jetbrains.com/issue/JBR-3206
For now Briar starts with `xwayland`, while it doesn't fully utilise the window size.
* ![2022-04-15T19_49_35_599241599+03_00](/uploads/b099b5e3c6f5deb3ec0a4b2a3a996307/2022-04-15T19_49_35_599241599+03_00.png)
I am using sway 1.7 on Fedora 36. I am opening this issue just in case someone else asks after wayland or the upstream issues get fixed.https://code.briarproject.org/briar/briar/-/issues/2304adding contact issues2022-04-14T23:02:29ZJeremie Lariviereadding contact issuesI am trying to add a contact. We're both online, but Briar on both says the other is offline. One is running 1.4.5 from F-Droid, the other installed 1.4.6 from ApkPure.I am trying to add a contact. We're both online, but Briar on both says the other is offline. One is running 1.4.5 from F-Droid, the other installed 1.4.6 from ApkPure.https://code.briarproject.org/briar/briar/-/issues/2303Power management setup doesn't work on some Huawei devices2022-04-14T11:53:29ZakwizgranPower management setup doesn't work on some Huawei devicesSome Huawei devices running Android 10 throw a SecurityException when we try to open the App Launch settings (#2270).
!1602 fixed the crash by catching the exception, but we need to update the UI so that it shows instructions for openin...Some Huawei devices running Android 10 throw a SecurityException when we try to open the App Launch settings (#2270).
!1602 fixed the crash by catching the exception, but we need to update the UI so that it shows instructions for opening the App Launch settings manually.
These instructions will involve several steps and may be hard for users to follow. Unfortunately this means on affected Huawei devices, users are unlikely to succeed in protecting Briar from being killed.
Affected devices:
* Huawei P40 Pro without Google apps
* Huawei P30 Pro
* Huawei Mate 20 X
* Huawei Mate 20
Not affected:
* Huawei Y6P
* Honor 8Ahttps://code.briarproject.org/briar/briar-desktop/-/issues/336UI thread is blocked when display goes into power saving mode2022-05-16T06:36:11ZakwizgranUI thread is blocked when display goes into power saving modeThis sounds insane, so bear with me.
When sending a message from Briar Android to Briar Desktop, Android shows the message as sent and acked immediately, as expected. But when the desktop's screen is locked it takes several minutes for ...This sounds insane, so bear with me.
When sending a message from Briar Android to Briar Desktop, Android shows the message as sent and acked immediately, as expected. But when the desktop's screen is locked it takes several minutes for Android to show the message as sent, and several more minutes to show it as acked.
To check that my laptop wasn't suspending when the screen was locked, I added some debugging code to log a message once per second. The messages were logged regularly, confirming that the laptop wasn't suspending.
Then I modified the debugging code to also post a task to the EventExecutor once per second to log a message on the UI thread. When the screen was locked, the messages from the background thread continued to be logged, but the messages from the UI thread didn't. The tasks posted to the UI thread didn't run until the screen was unlocked, at which point all the tasks ran in quick succession. It seems that the UI thread is blocked while the screeen is locked.
Why does this cause problems for message sync? Because events are delivered on the UI thread. When the UI thread is blocked, no events are delivered, so the sync session doesn't properly react to records received from the Android peer.
The Android peer offers the message and the desktop peer receives the offer, but due to events not being delivered it doesn't send a request. Eventually, by chance, the Android peer briefly loses connectivity, the connection is lost and a new connection is made. The desktop peer's UI thread is still blocked, but the new sync session finds the offered message ID in the DB and sends a request without needing to use any events. The Android peer responds by sending the message. The desktop peer stores the message and marks it as needing an ack, but due to events not being delivered, it doesn't immediately send an ack. Eventually the Android peer loses connectivity again, another new connection is made, the desktop peer's new sync session finds that the message still needs an ack, and it sends one.
I'm using XFCE and XOrg on Debian Buster, with xflock4 for screen locking. I'd be interested to know whether it's possible to reproduce the bug on other setups.https://code.briarproject.org/briar/briar/-/issues/2300Show more information about startup failures2022-04-08T12:33:12ZakwizgranShow more information about startup failuresRecently we've had several reports of corrupt databases (StartResult#DB_ERROR). Because these errors prevent the app from starting, we can't use crash reports or user feedback to learn about the cause.
We should expose more information ...Recently we've had several reports of corrupt databases (StartResult#DB_ERROR). Because these errors prevent the app from starting, we can't use crash reports or user feedback to learn about the cause.
We should expose more information about startup failures in the UI. This will involve returning the information from LifecycleManager#startService() and then attaching it to the intent that launches StartupFailureActivity. StartupFailureActivity should allow the user to copy the information so they can send it to us.Android 1.4https://code.briarproject.org/briar/briar-mailbox/-/issues/100Refactor TorPlugin into a library2023-08-28T16:00:09ZSebastianRefactor TorPlugin into a libraryhttps://code.briarproject.org/briar/briar-desktop/-/issues/334Consider builds for Debian oldstable (10 / Buster)2022-05-03T02:08:46ZSebastianConsider builds for Debian oldstable (10 / Buster)There might still be a number of distros with their latest version based on that version of Debian.
A known example is Deepin 20.5, release 1st of April 2022.
Maybe we should get an overview over significant distros still based on olds...There might still be a number of distros with their latest version based on that version of Debian.
A known example is Deepin 20.5, release 1st of April 2022.
Maybe we should get an overview over significant distros still based on oldstable.https://code.briarproject.org/briar/website/-/issues/41Include hashes and PGP signatures for APK downloads2022-03-29T10:43:06ZakwizgranInclude hashes and PGP signatures for APK downloadsJenny at eQ asked us to provide hashes and PGP signatures for APK downloads, like we do for Briar Desktop downloads.Jenny at eQ asked us to provide hashes and PGP signatures for APK downloads, like we do for Briar Desktop downloads.https://code.briarproject.org/briar/website/-/issues/40Show current app version on APK download page2022-03-29T10:42:04ZakwizgranShow current app version on APK download pageJenny at eQ pointed out that there's no indication of the current app version on the APK download page. We already include this in the front page's metadata so it could be moved to config.yaml and inserted into the APK download page too.Jenny at eQ pointed out that there's no indication of the current app version on the APK download page. We already include this in the front page's metadata so it could be moved to config.yaml and inserted into the APK download page too.https://code.briarproject.org/briar/tor-reproducer/-/issues/13Tor binaries are not being stripped properly2022-03-21T11:18:43ZakwizgranTor binaries are not being stripped properlyThe Tor binaries for 0.4.5.12 aren't being stripped properly. `file` reports the binaries as unstripped and running `strip` with no arguments significantly reduces the size of the binaries.
For the previous release (0.3.5.17), `file` re...The Tor binaries for 0.4.5.12 aren't being stripped properly. `file` reports the binaries as unstripped and running `strip` with no arguments significantly reduces the size of the binaries.
For the previous release (0.3.5.17), `file` reports the binaries as stripped and `strip` with no arguments has no effect on the size.https://code.briarproject.org/briar/briar/-/issues/2288Check whether Tor complains about absence of ec_nistp_64_gcc_128 optimisation...2022-03-18T14:56:41ZakwizgranCheck whether Tor complains about absence of ec_nistp_64_gcc_128 optimisation on Android x86_64On Windows and Linux x64_64, Tor complains if the `ec_nistp_64_gcc_128` optimisation wasn't enabled at compile time. Check whether this also needs to be enabled on Android x86_64.On Windows and Linux x64_64, Tor complains if the `ec_nistp_64_gcc_128` optimisation wasn't enabled at compile time. Check whether this also needs to be enabled on Android x86_64.