Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
The Tor Project
Applications
fenix
Commits
b0726c30
Unverified
Commit
b0726c30
authored
Oct 10, 2020
by
Matthew Finkel
Browse files
Merge remote-tracking branch 'acatgl/40062+1' into tor-browser-81.1.2-10.0-2
parents
6afc782a
78d91855
Pipeline
#1326
failed with stages
in 10 minutes and 5 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
app/src/main/assets/allowed_addons.json
0 → 100644
View file @
b0726c30
This source diff could not be displayed because it is too large. You can
view the blob
instead.
app/src/main/java/org/mozilla/fenix/addons/InstalledAddonDetailsFragment.kt
View file @
b0726c30
...
...
@@ -21,6 +21,7 @@ import kotlinx.coroutines.launch
import
mozilla.components.feature.addons.Addon
import
mozilla.components.feature.addons.AddonManagerException
import
mozilla.components.feature.addons.ui.translatedName
import
mozilla.components.support.webextensions.WebExtensionSupport.installedExtensions
import
org.mozilla.fenix.HomeActivity
import
org.mozilla.fenix.R
import
org.mozilla.fenix.ext.components
...
...
@@ -256,6 +257,8 @@ class InstalledAddonDetailsFragment : Fragment() {
}
}
private
fun
bindRemoveButton
(
view
:
View
)
{
val
isBuiltin
=
installedExtensions
[
addon
.
id
]
?.
isBuiltIn
()
?:
false
view
.
remove_add_on
.
isVisible
=
!
isBuiltin
view
.
remove_add_on
.
setOnClickListener
{
setAllInteractiveViewsClickable
(
view
,
false
)
requireContext
().
components
.
addonManager
.
uninstallAddon
(
...
...
app/src/main/java/org/mozilla/fenix/components/Components.kt
View file @
b0726c30
...
...
@@ -9,7 +9,6 @@ import android.content.Context
import
android.content.Intent
import
androidx.core.net.toUri
import
mozilla.components.feature.addons.AddonManager
import
mozilla.components.feature.addons.amo.AddonCollectionProvider
import
mozilla.components.feature.addons.migration.DefaultSupportedAddonsChecker
import
mozilla.components.feature.addons.migration.SupportedAddonsChecker
import
mozilla.components.feature.addons.update.AddonUpdater
...
...
@@ -71,18 +70,7 @@ class Components(private val context: Context) {
)
}
val
addonCollectionProvider
by
lazy
{
if
(!
BuildConfig
.
AMO_COLLECTION
.
isNullOrEmpty
())
{
AddonCollectionProvider
(
context
,
core
.
client
,
collectionName
=
BuildConfig
.
AMO_COLLECTION
,
maxCacheAgeInMinutes
=
DAY_IN_MINUTES
)
}
else
{
AddonCollectionProvider
(
context
,
core
.
client
,
maxCacheAgeInMinutes
=
DAY_IN_MINUTES
)
}
}
val
addonCollectionProvider
by
lazy
{
TorAddonCollectionProvider
(
context
,
core
.
client
)
}
val
appStartupTelemetry
by
lazy
{
AppStartupTelemetry
(
analytics
.
metrics
)
}
...
...
app/src/main/java/org/mozilla/fenix/components/TorAddonCollectionProvider.kt
0 → 100644
View file @
b0726c30
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// Copyright (c) 2020, The Tor Project, Inc.
package
org.mozilla.fenix.components
import
android.content.Context
import
android.graphics.Bitmap
import
kotlinx.coroutines.withContext
import
mozilla.components.concept.fetch.Client
import
mozilla.components.feature.addons.Addon
import
kotlinx.coroutines.Dispatchers
import
mozilla.components.feature.addons.amo.AddonCollectionProvider
import
java.io.IOException
internal
const
val
COLLECTION_NAME
=
"tor_browser_collection"
internal
const
val
ALLOWED_ADDONS_PATH
=
"allowed_addons.json"
internal
const
val
MAX_CACHE_AGE
=
1000L
*
365L
*
24L
*
60L
// 1000 years
class
TorAddonCollectionProvider
(
private
val
context
:
Context
,
client
:
Client
)
:
AddonCollectionProvider
(
context
,
client
,
serverURL
=
""
,
collectionName
=
COLLECTION_NAME
,
maxCacheAgeInMinutes
=
MAX_CACHE_AGE
)
{
private
var
isCacheLoaded
=
false
@Throws
(
IOException
::
class
)
override
suspend
fun
getAvailableAddons
(
allowCache
:
Boolean
,
readTimeoutInSeconds
:
Long
?
):
List
<
Addon
>
{
ensureCache
()
return
super
.
getAvailableAddons
(
true
,
readTimeoutInSeconds
)
}
@Throws
(
IOException
::
class
)
override
suspend
fun
getAddonIconBitmap
(
addon
:
Addon
):
Bitmap
?
{
ensureCache
()
return
super
.
getAddonIconBitmap
(
addon
)
}
@Throws
(
IOException
::
class
)
private
suspend
fun
ensureCache
()
{
if
(
isCacheLoaded
)
{
return
}
return
withContext
(
Dispatchers
.
IO
)
{
val
data
=
context
.
assets
.
open
(
ALLOWED_ADDONS_PATH
).
bufferedReader
().
use
{
it
.
readText
()
}
writeToDiskCache
(
data
)
isCacheLoaded
=
true
}
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment