[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] fixup! Modify add-on support



Title: GitLab

Pier Angelo Vendrame pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android

Commits:

  • 9020793e
    by Pier Angelo Vendrame at 2024-06-10T16:02:49+02:00
    fixup! Modify add-on support
    
    Bug 42619: Remove our custom AddonCollectionProvider.
    
    Our own custom list of allowed addons will get outdate very soon,
    breaking the installation of addons from AMO, and maybe preventing the
    update of the ones already installed.
    
    However, the AMO collection might not be available until the boostrap is
    done in some conditions (when it has never been cached, or if the cache
    expired) and in these cases the installed addons will not be displayed
    either.
    

3 changed files:

Changes:

  • fenix/app/src/main/assets/allowed_addons.json deleted The diff for this file was not included because it is too large.
  • fenix/app/src/main/java/org/mozilla/fenix/components/Components.kt
    ... ... @@ -12,6 +12,7 @@ import androidx.compose.ui.platform.LocalContext
    12 12
     import androidx.core.app.NotificationManagerCompat
    
    13 13
     import com.google.android.play.core.review.ReviewManagerFactory
    
    14 14
     import mozilla.components.feature.addons.AddonManager
    
    15
    +import mozilla.components.feature.addons.amo.AddonCollectionProvider
    
    15 16
     import mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker
    
    16 17
     import mozilla.components.feature.addons.update.DefaultAddonUpdater
    
    17 18
     import mozilla.components.feature.autofill.AutofillConfiguration
    
    ... ... @@ -113,7 +114,32 @@ class Components(private val context: Context) {
    113 114
         }
    
    114 115
     
    
    115 116
         val addonCollectionProvider by lazyMonitored {
    
    116
    -        TorAddonCollectionProvider(context, core.client)
    
    117
    +        // Check if we have a customized (overridden) AMO collection (supported in Nightly & Beta)
    
    118
    +        if (FeatureFlags.customExtensionCollectionFeature && context.settings().amoCollectionOverrideConfigured()) {
    
    119
    +            AddonCollectionProvider(
    
    120
    +                context,
    
    121
    +                core.client,
    
    122
    +                collectionUser = context.settings().overrideAmoUser,
    
    123
    +                collectionName = context.settings().overrideAmoCollection,
    
    124
    +            )
    
    125
    +        }
    
    126
    +        // Use build config otherwise
    
    127
    +        else if (!BuildConfig.AMO_COLLECTION_USER.isNullOrEmpty() &&
    
    128
    +            !BuildConfig.AMO_COLLECTION_NAME.isNullOrEmpty()
    
    129
    +        ) {
    
    130
    +            AddonCollectionProvider(
    
    131
    +                context,
    
    132
    +                core.client,
    
    133
    +                serverURL = BuildConfig.AMO_SERVER_URL,
    
    134
    +                collectionUser = BuildConfig.AMO_COLLECTION_USER,
    
    135
    +                collectionName = BuildConfig.AMO_COLLECTION_NAME,
    
    136
    +                maxCacheAgeInMinutes = AMO_COLLECTION_MAX_CACHE_AGE,
    
    137
    +            )
    
    138
    +        }
    
    139
    +        // Fall back to defaults
    
    140
    +        else {
    
    141
    +            AddonCollectionProvider(context, core.client, maxCacheAgeInMinutes = AMO_COLLECTION_MAX_CACHE_AGE)
    
    142
    +        }
    
    117 143
         }
    
    118 144
     
    
    119 145
         @Suppress("MagicNumber")
    

  • fenix/app/src/main/java/org/mozilla/fenix/components/TorAddonCollectionProvider.kt deleted
    1
    -/* This Source Code Form is subject to the terms of the Mozilla Public
    
    2
    - * License, v. 2.0. If a copy of the MPL was not distributed with this
    
    3
    - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
    
    4
    -
    
    5
    -// Copyright (c) 2020, The Tor Project, Inc.
    
    6
    -
    
    7
    -package org.mozilla.fenix.components
    
    8
    -
    
    9
    -import android.content.Context
    
    10
    -import android.graphics.Bitmap
    
    11
    -import kotlinx.coroutines.withContext
    
    12
    -import mozilla.components.concept.fetch.Client
    
    13
    -import mozilla.components.feature.addons.Addon
    
    14
    -import kotlinx.coroutines.Dispatchers
    
    15
    -import mozilla.components.feature.addons.amo.AddonCollectionProvider
    
    16
    -import java.io.IOException
    
    17
    -
    
    18
    -internal const val COLLECTION_NAME = "tor_browser_collection"
    
    19
    -internal const val ALLOWED_ADDONS_PATH = "allowed_addons.json"
    
    20
    -internal const val MAX_CACHE_AGE = 1000L * 365L * 24L * 60L // 1000 years
    
    21
    -
    
    22
    -class TorAddonCollectionProvider(
    
    23
    -    private val context: Context,
    
    24
    -    client: Client
    
    25
    -) : AddonCollectionProvider(
    
    26
    -    context, client, serverURL = "",
    
    27
    -    collectionName = COLLECTION_NAME,
    
    28
    -    maxCacheAgeInMinutes = MAX_CACHE_AGE
    
    29
    -) {
    
    30
    -    private var isCacheLoaded = false
    
    31
    -
    
    32
    -    @Throws(IOException::class)
    
    33
    -    override suspend fun getAvailableAddons(
    
    34
    -        allowCache: Boolean,
    
    35
    -        readTimeoutInSeconds: Long?,
    
    36
    -        language: String?
    
    37
    -    ): List<Addon> {
    
    38
    -        ensureCache(language)
    
    39
    -        return super.getAvailableAddons(true, readTimeoutInSeconds, language)
    
    40
    -    }
    
    41
    -
    
    42
    -    @Throws(IOException::class)
    
    43
    -    override suspend fun getAddonIconBitmap(addon: Addon): Bitmap? {
    
    44
    -        // super.getAddonIconBitmap does not look at the cache, so calling
    
    45
    -        // ensureCache here is not helpful. In addition, now the cache depends
    
    46
    -        // on a language, and that isn't available right now.
    
    47
    -        // ensureCache(language)
    
    48
    -        return super.getAddonIconBitmap(addon)
    
    49
    -    }
    
    50
    -
    
    51
    -    @Throws(IOException::class)
    
    52
    -    private suspend fun ensureCache(language: String?) {
    
    53
    -        if (isCacheLoaded) {
    
    54
    -            return
    
    55
    -        }
    
    56
    -        return withContext(Dispatchers.IO) {
    
    57
    -            val data = context.assets.open(ALLOWED_ADDONS_PATH).bufferedReader().use {
    
    58
    -                it.readText()
    
    59
    -            }
    
    60
    -            writeToDiskCache(data, language)
    
    61
    -            isCacheLoaded = true
    
    62
    -        }
    
    63
    -    }
    
    64
    -}

  • _______________________________________________
    tor-commits mailing list
    tor-commits@xxxxxxxxxxxxxxxxxxxx
    https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits