[tbb-commits] [tor-browser/tor-browser-60.4.0esr-8.5-1] Bug 1450449 - Part 4: Starting from Nougat, install updates via content:// URIs. r=jchen

gk at torproject.org gk at torproject.org
Thu Jan 24 20:03:43 UTC 2019


commit 3b926685447ea2056e73d9b3396ea8d5cbdd349f
Author: Jan Henning <jh+bugzilla at buttercookie.de>
Date:   Sat May 12 23:34:25 2018 +0200

    Bug 1450449 - Part 4: Starting from Nougat, install updates via content:// URIs. r=jchen
    
    We download the update APK into the public downloads directory and normally the
    only relevant app consuming that URI should be the system package installer, but
    just to be safe we only switch usage from Nougat onward, too.
    
    MozReview-Commit-ID: GtoXMJ7NdJ3
    
    --HG--
    extra : rebase_source : 1e85f8352b7a59cb3cd2fd3034a0103c8705ff09
---
 .../base/java/org/mozilla/gecko/updater/UpdateService.java   | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/mobile/android/base/java/org/mozilla/gecko/updater/UpdateService.java b/mobile/android/base/java/org/mozilla/gecko/updater/UpdateService.java
index 71e1097711d9..d5093efca6d6 100644
--- a/mobile/android/base/java/org/mozilla/gecko/updater/UpdateService.java
+++ b/mobile/android/base/java/org/mozilla/gecko/updater/UpdateService.java
@@ -36,6 +36,7 @@ import android.os.Environment;
 import android.provider.Settings;
 import android.support.v4.app.NotificationManagerCompat;
 import android.support.v4.content.ContextCompat;
+import android.support.v4.content.FileProvider;
 import android.support.v4.net.ConnectivityManagerCompat;
 import android.support.v4.app.NotificationCompat;
 import android.support.v4.app.NotificationCompat.Builder;
@@ -707,8 +708,15 @@ public class UpdateService extends IntentService {
         }
 
         Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setDataAndType(Uri.fromFile(updateFile), "application/vnd.android.package-archive");
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        if (AppConstants.Versions.preN) {
+            intent.setDataAndType(Uri.fromFile(updateFile), "application/vnd.android.package-archive");
+        } else {
+            Uri apkUri = FileProvider.getUriForFile(this,
+                    AppConstants.MOZ_FILE_PROVIDER_AUTHORITY, updateFile);
+            intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
+            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        }
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivity(intent);
     }
 





More information about the tbb-commits mailing list