Opened 12 months ago

Last modified 7 weeks ago

#26242 new defect

Implement update strategy for TBA

Reported by: igt0 Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: tbb-mobile, tbb-8.5, tbb-parity, TorBrowserTeam201904
Cc: sysrqb, gk, dmr Actual Points:
Parent ID: Points:
Reviewer: Sponsor: Sponsor8

Description

When a new Tor Browser for Desktop is released there are two main visual changes in the Browser:

  1. the about:tor page changes saying that the browser is out dated
  1. Tor Button icon changes. It adds an exclamation mark informing the user that there is a new browser version.

We need to discuss how we notify the users about TBA updates.

Child Tickets

TicketStatusOwnerSummaryComponent
#26528closedtbb-teamApp stores should not be allowed to use UpdateServiceApplications/Tor Browser
#26574newtbb-teamSave TBA updates in the internal android storageApplications/Tor Browser
#26938newtbb-teamTBA - Enable updaterApplications/Tor Browser

Change History (27)

comment:1 Changed 12 months ago by igt0

I see two solutions:

  1. Follow what Tor Browser Desktop does: When the user opens a tab, we show a warning message saying that there is a new version and the browser is out to date.


Pros: It is not intrusive and the user decides if they want to upgrade it or not.

Cons: The user never upgrades the app because it is not just one click, they need to go to settings to upgrade it.

  1. Open a dialog covering the whole screen saying that the app is out to date and allowing or not the user to close the modal.

Pros: Force the user to update the browser, if there is a security issue, the user will not use an out dated browser.

Cons: It affects the app usability, because it blocks the user interaction with the main application.

comment:2 Changed 12 months ago by igt0

Cc: sysrqb gk added

comment:3 Changed 12 months ago by gk

So, to be clear wrt the basics the general update strategy on Android is just to get a new .apk over the old one, right? Or is there a cleverer one with just applying diffs?

Last edited 12 months ago by gk (previous) (diff)

comment:4 in reply to:  3 ; Changed 12 months ago by mcs

Replying to gk:

So, to be clear wrt the basics the general update strategy on Android is just to get a new .apk over the old one, right? Or is there a cleverer one with just applying diffs?

It sounds like the Google Play Store update mechanism uses deltas. See:
https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html

For F-Droid, they have an open issue for that feature:
https://gitlab.com/fdroid/fdroidclient/issues/450

comment:5 in reply to:  4 ; Changed 12 months ago by igt0

Yes, however differently of Desktop, the app doesn't control when the user should update and it doesn't handle the update, Android does it itself.

Replying to mcs:

Replying to gk:

So, to be clear wrt the basics the general update strategy on Android is just to get a new .apk over the old one, right? Or is there a cleverer one with just applying diffs?

It sounds like the Google Play Store update mechanism uses deltas. See:
https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html

For F-Droid, they have an open issue for that feature:
https://gitlab.com/fdroid/fdroidclient/issues/450

comment:6 in reply to:  5 ; Changed 12 months ago by sysrqb

Replying to igt0:

Yes, however differently of Desktop, the app doesn't control when the user should update and it doesn't handle the update, Android does it itself.

Replying to mcs:

Replying to gk:

So, to be clear wrt the basics the general update strategy on Android is just to get a new .apk over the old one, right? Or is there a cleverer one with just applying diffs?

It sounds like the Google Play Store update mechanism uses deltas. See:
https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html

For F-Droid, they have an open issue for that feature:
https://gitlab.com/fdroid/fdroidclient/issues/450

Right. (See also #25587). I'm concerned about two situations regarding distributing updates.

1) We need alternatives for the app marketplaces. This may mean distributing the app as a download from our website along with the desktop downloads.
2) I don't think using the Firefox updater is a crazy idea (if the app was downloaded directly from torproject.org and not installed from a marketplace), but as far as I know this is not well supported or tested by Mozilla - so we may experience bugs if we use it.

Mozilla (will be) shipping OTA updates for system add-ons on fennec (from what I've seen), but I don't know if that is different from full fennec updates.

comment:7 in reply to:  6 Changed 12 months ago by sysrqb

Replying to sysrqb:

Replying to igt0:

Yes, however differently of Desktop, the app doesn't control when the user should update and it doesn't handle the update, Android does it itself.

Replying to mcs:

Replying to gk:

So, to be clear wrt the basics the general update strategy on Android is just to get a new .apk over the old one, right? Or is there a cleverer one with just applying diffs?

It sounds like the Google Play Store update mechanism uses deltas. See:
https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html

For F-Droid, they have an open issue for that feature:
https://gitlab.com/fdroid/fdroidclient/issues/450

Right. (See also #25587). I'm concerned about two situations regarding distributing updates.

1) We need alternatives for the app marketplaces. This may mean distributing the app as a download from our website along with the desktop downloads.

Although not directly related to updating, one problem we will have with providing downloads directly from our website is how users can verify the apk is authentic. This is something the marketplaces (to some extent) handle. I don't have a good solution right now. I opened #26318 for that (I don't think we already have a ticket for it).

comment:8 in reply to:  6 Changed 12 months ago by gk

Replying to sysrqb:

Replying to igt0:

Yes, however differently of Desktop, the app doesn't control when the user should update and it doesn't handle the update, Android does it itself.

Replying to mcs:

Replying to gk:

So, to be clear wrt the basics the general update strategy on Android is just to get a new .apk over the old one, right? Or is there a cleverer one with just applying diffs?

It sounds like the Google Play Store update mechanism uses deltas. See:
https://android-developers.googleblog.com/2016/07/improvements-for-smaller-app-downloads.html

For F-Droid, they have an open issue for that feature:
https://gitlab.com/fdroid/fdroidclient/issues/450

Right. (See also #25587). I'm concerned about two situations regarding distributing updates.

1) We need alternatives for the app marketplaces. This may mean distributing the app as a download from our website along with the desktop downloads.
2) I don't think using the Firefox updater is a crazy idea (if the app was downloaded directly from torproject.org and not installed from a marketplace), but as far as I know this is not well supported or tested by Mozilla - so we may experience bugs if we use it.

+1 to both. Although, we should think carefully if we want to do 2).

Mozilla (will be) shipping OTA updates for system add-ons on fennec (from what I've seen), but I don't know if that is different from full fennec updates.

Updating add-ons (and with it systems addons) relies on a different mechanism than you get with application updates, at least on desktop. Might be worth verifying the mobile part here, though.

Last edited 11 months ago by gk (previous) (diff)

comment:9 Changed 11 months ago by igt0

I have been testing the Fennec UpdateService to download and update TBA, my finds:

  1. It downloads a new apk(updated version) and saves it to an external storage. So the user must have the WRITE_EXTERNAL_STORAGE permission enabled.
  1. We should not allow the user to use the UpdateService when the app was installed using any app store(google play, f-droid). It already has some logic to handle google play we need to add the same one for f-droid.
  1. After downloading the apk, there are two methods to install it. Fennec can install it for you, or it sends a notification asking the user to click on it to install the apk. For us, I think that the second one has a better user experience.
Last edited 11 months ago by igt0 (previous) (diff)

comment:10 Changed 11 months ago by dmr

Cc: dmr added

comment:11 Changed 11 months ago by gk

Parent ID: #26531

comment:12 Changed 9 months ago by sysrqb

Keywords: TBA-a2 added
Parent ID: #26531

Moving to second-alpha TBA keyword.

comment:13 Changed 8 months ago by gk

Keywords: TorBrowserTeam201810 added

Putting on October radar.

comment:14 Changed 7 months ago by gk

Keywords: TorBrowserTeam201811 added; TorBrowserTeam201810 removed

Moving our tickets to November.

comment:15 Changed 6 months ago by pili

Sponsor: Sponsor8

comment:16 Changed 6 months ago by gk

Keywords: TorBrowserTeam201812 added; TorBrowserTeam201811 removed

Moving our tickets to December.

comment:17 Changed 6 months ago by gk

Keywords: TBA-a3 added

Setting tag for third Tor Browser for Android alpha milestone.

comment:18 Changed 6 months ago by gk

Keywords: TBA-a2 removed

We are beyond TBA-a2, TBA-a3 is the new black.

comment:19 Changed 4 months ago by gk

Keywords: TorBrowserTeam201901 added; TorBrowserTeam201812 removed

Moving tickets to Jan 2019.

comment:20 Changed 4 months ago by gk

Some good material (with further links) in case we want to set up and own F-Droid repo: https://github.com/TeamNewPipe/NewPipe/issues/1981.

comment:21 Changed 4 months ago by gk

Keywords: TorBrowserTeam201902 added; TorBrowserTeam201901 removed

Moving tickets to February.

comment:22 Changed 3 months ago by gk

Keywords: TBA-8.5 added; TBA-a3 removed

Move tickets out of TBA-a3 into TBA-stable.

comment:23 Changed 3 months ago by gk

Keywords: TorBrowserTeam201903 added; TorBrowserTeam201902 removed

Moving remaining tickets to March.

comment:24 Changed 3 months ago by gk

Keywords: tbb-8.5 added

Tickets on our radar for 8.5

comment:25 Changed 2 months ago by gk

Keywords: tbb-parity added

tbb-parity items.

comment:26 Changed 8 weeks ago by gk

Keywords: TBA-8.5 removed

comment:27 Changed 7 weeks ago by gk

Keywords: TorBrowserTeam201904 added; TorBrowserTeam201903 removed

Moving tickets to April.

Note: See TracTickets for help on using tickets.