Commits:
-
86b24fa4
by Beatriz Rizental at 2025-02-11T11:21:27+01:00
TB 42669: [android] Use custom no-op app-services
Fetch the custom built no-op application services library
from tor-browser-build when building for Android.
12 changed files:
Changes:
.gitignore
| ... |
... |
@@ -359,6 +359,7 @@ media/libvpx/config/**/config.log |
|
359
|
359
|
mobile/android/.experimenter.json
|
|
360
|
360
|
|
|
361
|
361
|
# Tor libraries for local builds
|
|
|
362
|
+mobile/android/fenix/app/nimbus-fml
|
|
362
|
363
|
mobile/android/fenix/app/tor-expert-bundle.aar
|
|
363
|
364
|
mobile/android/fenix/app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi
|
|
364
|
365
|
|
build.gradle
| ... |
... |
@@ -4,6 +4,8 @@ import org.tomlj.TomlTable |
|
4
|
4
|
|
|
5
|
5
|
buildscript {
|
|
6
|
6
|
repositories {
|
|
|
7
|
+ mavenLocal()
|
|
|
8
|
+
|
|
7
|
9
|
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
|
|
8
|
10
|
maven {
|
|
9
|
11
|
url repository
|
| ... |
... |
@@ -136,6 +138,8 @@ allprojects { |
|
136
|
138
|
}
|
|
137
|
139
|
|
|
138
|
140
|
repositories {
|
|
|
141
|
+ mavenLocal()
|
|
|
142
|
+
|
|
139
|
143
|
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
|
|
140
|
144
|
maven {
|
|
141
|
145
|
url repository
|
mobile/android/android-components/components/browser/engine-gecko/build.gradle
| ... |
... |
@@ -4,6 +4,8 @@ |
|
4
|
4
|
|
|
5
|
5
|
buildscript {
|
|
6
|
6
|
repositories {
|
|
|
7
|
+ mavenLocal()
|
|
|
8
|
+
|
|
7
|
9
|
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
|
|
8
|
10
|
maven {
|
|
9
|
11
|
url repository
|
mobile/android/android-components/components/browser/storage-sync/src/main/java/mozilla/components/browser/storage/sync/Types.kt
| ... |
... |
@@ -71,6 +71,7 @@ internal fun mozilla.appservices.places.uniffi.VisitType.into() = when (this) { |
|
71
|
71
|
mozilla.appservices.places.uniffi.VisitType.REDIRECT_TEMPORARY -> VisitType.REDIRECT_TEMPORARY
|
|
72
|
72
|
mozilla.appservices.places.uniffi.VisitType.DOWNLOAD -> VisitType.DOWNLOAD
|
|
73
|
73
|
mozilla.appservices.places.uniffi.VisitType.FRAMED_LINK -> VisitType.FRAMED_LINK
|
|
|
74
|
+ mozilla.appservices.places.uniffi.VisitType.__NOOP -> VisitType.LINK
|
|
74
|
75
|
}
|
|
75
|
76
|
|
|
76
|
77
|
internal fun mozilla.appservices.places.uniffi.HistoryVisitInfo.into(): VisitInfo {
|
| ... |
... |
@@ -129,6 +130,18 @@ internal fun BookmarkItem.asBookmarkNode(): BookmarkNode { |
|
129
|
130
|
null,
|
|
130
|
131
|
)
|
|
131
|
132
|
}
|
|
|
133
|
+ is BookmarkItem.__NOOP -> {
|
|
|
134
|
+ BookmarkNode(
|
|
|
135
|
+ BookmarkNodeType.ITEM,
|
|
|
136
|
+ "",
|
|
|
137
|
+ "",
|
|
|
138
|
+ null,
|
|
|
139
|
+ null,
|
|
|
140
|
+ null,
|
|
|
141
|
+ 0L,
|
|
|
142
|
+ null,
|
|
|
143
|
+ )
|
|
|
144
|
+ }
|
|
132
|
145
|
}
|
|
133
|
146
|
}
|
|
134
|
147
|
|
| ... |
... |
@@ -152,6 +165,7 @@ internal fun mozilla.appservices.places.uniffi.DocumentType.into(): DocumentType |
|
152
|
165
|
return when (this) {
|
|
153
|
166
|
mozilla.appservices.places.uniffi.DocumentType.REGULAR -> DocumentType.Regular
|
|
154
|
167
|
mozilla.appservices.places.uniffi.DocumentType.MEDIA -> DocumentType.Media
|
|
|
168
|
+ mozilla.appservices.places.uniffi.DocumentType.__NOOP -> DocumentType.Regular
|
|
155
|
169
|
}
|
|
156
|
170
|
}
|
|
157
|
171
|
|
mobile/android/android-components/components/feature/fxsuggest/build.gradle
| ... |
... |
@@ -6,6 +6,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile |
|
6
|
6
|
|
|
7
|
7
|
buildscript {
|
|
8
|
8
|
repositories {
|
|
|
9
|
+ mavenLocal()
|
|
|
10
|
+
|
|
9
|
11
|
maven {
|
|
10
|
12
|
url "https://maven.mozilla.org/maven2"
|
|
11
|
13
|
}
|
mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/Types.kt
| ... |
... |
@@ -128,7 +128,7 @@ internal fun RustDeviceType.into(): DeviceType { |
|
128
|
128
|
RustDeviceType.TABLET -> DeviceType.TABLET
|
|
129
|
129
|
RustDeviceType.TV -> DeviceType.TV
|
|
130
|
130
|
RustDeviceType.VR -> DeviceType.VR
|
|
131
|
|
- RustDeviceType.UNKNOWN -> DeviceType.UNKNOWN
|
|
|
131
|
+ else-> DeviceType.UNKNOWN
|
|
132
|
132
|
}
|
|
133
|
133
|
}
|
|
134
|
134
|
|
| ... |
... |
@@ -165,7 +165,7 @@ fun DeviceCapability.into(): RustDeviceCapability { |
|
165
|
165
|
fun RustDeviceCapability.into(): DeviceCapability {
|
|
166
|
166
|
return when (this) {
|
|
167
|
167
|
RustDeviceCapability.SEND_TAB -> DeviceCapability.SEND_TAB
|
|
168
|
|
- RustDeviceCapability.CLOSE_TABS -> DeviceCapability.CLOSE_TABS
|
|
|
168
|
+ else -> DeviceCapability.CLOSE_TABS
|
|
169
|
169
|
}
|
|
170
|
170
|
}
|
|
171
|
171
|
|
| ... |
... |
@@ -250,7 +250,7 @@ fun AccountEvent.into(): mozilla.components.concept.sync.AccountEvent { |
|
250
|
250
|
deviceId = this.deviceId,
|
|
251
|
251
|
isLocalDevice = this.isLocalDevice,
|
|
252
|
252
|
)
|
|
253
|
|
- is AccountEvent.Unknown -> mozilla.components.concept.sync.AccountEvent.Unknown
|
|
|
253
|
+ else -> mozilla.components.concept.sync.AccountEvent.Unknown
|
|
254
|
254
|
}
|
|
255
|
255
|
}
|
|
256
|
256
|
|
| ... |
... |
@@ -258,6 +258,7 @@ fun IncomingDeviceCommand.into(): mozilla.components.concept.sync.DeviceCommandI |
|
258
|
258
|
return when (this) {
|
|
259
|
259
|
is IncomingDeviceCommand.TabReceived -> this.into()
|
|
260
|
260
|
is IncomingDeviceCommand.TabsClosed -> this.into()
|
|
|
261
|
+ is IncomingDeviceCommand.__NOOP -> this.into()
|
|
261
|
262
|
}
|
|
262
|
263
|
}
|
|
263
|
264
|
|
mobile/android/android-components/components/service/firefox-accounts/src/main/java/mozilla/components/service/fxa/sync/WorkManagerSyncManager.kt
| ... |
... |
@@ -484,6 +484,9 @@ internal class WorkManagerSyncWorker( |
|
484
|
484
|
|
|
485
|
485
|
// Finally, declare success, failure or request a retry based on 'sync status'.
|
|
486
|
486
|
return when (syncResult.status) {
|
|
|
487
|
+ ServiceStatus.__NOOP -> {
|
|
|
488
|
+ Result.success()
|
|
|
489
|
+ }
|
|
487
|
490
|
// Happy case.
|
|
488
|
491
|
ServiceStatus.OK -> {
|
|
489
|
492
|
// Worker should set the "last-synced" timestamp, and since we have a single timestamp,
|
mobile/android/android-components/components/service/nimbus/build.gradle
| ... |
... |
@@ -4,6 +4,8 @@ |
|
4
|
4
|
|
|
5
|
5
|
buildscript {
|
|
6
|
6
|
repositories {
|
|
|
7
|
+ mavenLocal()
|
|
|
8
|
+
|
|
7
|
9
|
gradle.mozconfig.substs.GRADLE_MAVEN_REPOSITORIES.each { repository ->
|
|
8
|
10
|
maven {
|
|
9
|
11
|
url repository
|
mobile/android/android-components/components/support/rustlog/src/main/java/mozilla/components/support/rustlog/RustLog.kt
| ... |
... |
@@ -86,6 +86,6 @@ internal fun Level.asLogPriority(): Log.Priority { |
|
86
|
86
|
Level.DEBUG -> Log.Priority.DEBUG
|
|
87
|
87
|
Level.INFO -> Log.Priority.INFO
|
|
88
|
88
|
Level.WARN -> Log.Priority.WARN
|
|
89
|
|
- Level.ERROR -> Log.Priority.ERROR
|
|
|
89
|
+ else -> Log.Priority.ERROR
|
|
90
|
90
|
}
|
|
91
|
91
|
} |
mobile/android/android-components/plugins/dependencies/src/main/java/ApplicationServices.kt
| ... |
... |
@@ -3,7 +3,7 @@ |
|
3
|
3
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
4
|
4
|
|
|
5
|
5
|
// These lines are generated by android-components/automation/application-services-nightly-bump.py
|
|
6
|
|
-val VERSION = "128.0.1"
|
|
|
6
|
+val VERSION = "128.0.1-TORBROWSER"
|
|
7
|
7
|
val CHANNEL = ApplicationServicesChannel.RELEASE
|
|
8
|
8
|
|
|
9
|
9
|
object ApplicationServicesConfig {
|
mobile/android/fenix/tools/tba-fetch-deps.sh
| ... |
... |
@@ -19,3 +19,65 @@ mkdir -p "app/src/main/assets/extensions" |
|
19
|
19
|
if [ -f "$noscript" ]; then
|
|
20
|
20
|
cp "$noscript" "app/src/main/assets/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi"
|
|
21
|
21
|
fi
|
|
|
22
|
+
|
|
|
23
|
+if [ -z "$GRADLE_MAVEN_REPOSITORIES" ]; then
|
|
|
24
|
+ GRADLE_MAVEN_REPOSITORIES="$HOME/.m2/repository"
|
|
|
25
|
+fi
|
|
|
26
|
+
|
|
|
27
|
+os="$(uname -s)"
|
|
|
28
|
+case "${os}" in
|
|
|
29
|
+ Linux*) os=unknown-linux;;
|
|
|
30
|
+ Darwin*) os=apple-darwin;;
|
|
|
31
|
+ # This is not quite correct, however the only option for the nimbus-fml
|
|
|
32
|
+ # build are these three... so if it's not Linux or Darwin it's very likely
|
|
|
33
|
+ # we are building from Windows. I apologize in advance to all the BSD users.
|
|
|
34
|
+ *) os="pc-windows";;
|
|
|
35
|
+esac
|
|
|
36
|
+
|
|
|
37
|
+arch="$(uname -m)"
|
|
|
38
|
+case "${arch}" in
|
|
|
39
|
+ # Also no quite correct, but again these are the only options for nimbus-fml.
|
|
|
40
|
+ aarch64) arch=aarch64;;
|
|
|
41
|
+ arm64) arch=aarch64;;
|
|
|
42
|
+ *) arch="x86_64";;
|
|
|
43
|
+esac
|
|
|
44
|
+
|
|
|
45
|
+if [ "$os" = "unsupported" ] || [ "$arch" = "unsupported" ]; then
|
|
|
46
|
+ echo "Android builds from $os-$arch are not supported."
|
|
|
47
|
+ exit 2
|
|
|
48
|
+fi
|
|
|
49
|
+
|
|
|
50
|
+app_services="$(find "$TOR_BROWSER_BUILD/out/application-services" -name 'application-services*.tar.zst' -print | sort | tail -1)"
|
|
|
51
|
+mkdir -p "$GRADLE_MAVEN_REPOSITORIES/org/mozilla"
|
|
|
52
|
+if [ -f "$app_services" ]; then
|
|
|
53
|
+ tar -C /tmp -xf "$app_services"
|
|
|
54
|
+ cp -r /tmp/application-services/maven/org/mozilla/* "$GRADLE_MAVEN_REPOSITORIES/org/mozilla"
|
|
|
55
|
+
|
|
|
56
|
+ # Over on tor-browser-build all build tools are built for x86_64-linux.
|
|
|
57
|
+ # If we are not building from that platform, we need to fetch the correct
|
|
|
58
|
+ # nimbus-fml binary.
|
|
|
59
|
+ #
|
|
|
60
|
+ # Even though we do modify nimbus-fml in tbb, all the changes are made to
|
|
|
61
|
+ # support reproducibility and are not necessary for development builds.
|
|
|
62
|
+ if [ "$os" != "unknown-linux" ] || [ "$arch" != "x86_64" ]; then
|
|
|
63
|
+ echo "Downloading nimbus-fml binary for $arch-$os"
|
|
|
64
|
+ app_services_version=$(echo "$app_services" | grep -oE 'application-services-[0-9]+\.[0-9]+\.[0-9]+' | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
|
|
|
65
|
+
|
|
|
66
|
+ curl -L -o /tmp/nimbus-fml.zip "https://archive.mozilla.org/pub/app-services/releases/$app_services_version/nimbus-fml.zip"
|
|
|
67
|
+ unzip -d /tmp/nimbus-fml /tmp/nimbus-fml.zip
|
|
|
68
|
+ nimbus_fml="$(find "/tmp/nimbus-fml/" -name 'nimbus-fml*' | grep "$arch-$os")"
|
|
|
69
|
+ echo "Using nimbus-fml binary: $nimbus_fml"
|
|
|
70
|
+ cp $nimbus_fml app/
|
|
|
71
|
+
|
|
|
72
|
+ rm -rf /tmp/nimbus-fml
|
|
|
73
|
+ rm /tmp/nimbus-fml.zip
|
|
|
74
|
+ else
|
|
|
75
|
+ cp /tmp/application-services/nimbus-fml app/
|
|
|
76
|
+ fi
|
|
|
77
|
+ chmod +x app/nimbus-fml
|
|
|
78
|
+
|
|
|
79
|
+ rm -rf /tmp/application-services
|
|
|
80
|
+else
|
|
|
81
|
+ echo "Cannot find application-services artifacts!"
|
|
|
82
|
+ exit 2
|
|
|
83
|
+fi |
tools/geckoview/build-fenix.sh
| ... |
... |
@@ -6,6 +6,8 @@ VARIANT=$3 |
|
6
|
6
|
|
|
7
|
7
|
source android-env.sh
|
|
8
|
8
|
|
|
|
9
|
+export NIMBUS_FML=$DEV_ROOT/mobile/android/fenix/app/nimbus-fml
|
|
|
10
|
+
|
|
9
|
11
|
cd $DEV_ROOT/mobile/android/fenix
|
|
10
|
12
|
MOZCONFIG=mozconfig-android-$ARCH $GRADLE_HOME/bin/gradle --no-daemon -Dorg.gradle.jvmargs=-Xmx20g -PdisableOptimization assemble$VARIANT
|
|
11
|
13
|
tools/tba-sign-devbuilds.sh |
|