[components] Closes https://github.com/mozilla-mobile/android-components/issues/4280: Use universal GeckoView build in browser-engine-gecko.

This commit is contained in:
Sebastian Kaspari
2019-09-04 14:51:39 +02:00
parent 7fc3bf11cc
commit d31f9dfaa5
5 changed files with 7 additions and 57 deletions

View File

@@ -81,7 +81,7 @@ else
flank_template="$FLANK_CONF_ARM" flank_template="$FLANK_CONF_ARM"
fi fi
APK_APP="./samples/${component}/build/outputs/apk/geckoNightlyUniversal/debug/samples-browser-geckoNightly-universal-debug.apk" APK_APP="./samples/${component}/build/outputs/apk/geckoNightly/debug/samples-browser-geckoNightly-debug.apk"
APK_TEST="./components/${component}/engine-gecko-nightly/build/outputs/apk/androidTest/debug/browser-engine-gecko-nightly-debug-androidTest.apk" APK_TEST="./components/${component}/engine-gecko-nightly/build/outputs/apk/androidTest/debug/browser-engine-gecko-nightly-debug-androidTest.apk"

View File

@@ -22,10 +22,6 @@ internal object GeckoVersions {
@Suppress("MaxLineLength") @Suppress("MaxLineLength")
object Gecko { object Gecko {
const val geckoview_nightly = "org.mozilla.geckoview:geckoview-nightly:${GeckoVersions.nightly_version}" const val geckoview_nightly = "org.mozilla.geckoview:geckoview-nightly:${GeckoVersions.nightly_version}"
const val geckoview_beta = "org.mozilla.geckoview:geckoview-beta:${GeckoVersions.beta_version}" const val geckoview_beta = "org.mozilla.geckoview:geckoview-beta:${GeckoVersions.beta_version}"
const val geckoview_release = "org.mozilla.geckoview:geckoview:${GeckoVersions.release_version}"
const val geckoview_release_arm = "org.mozilla.geckoview:geckoview-armeabi-v7a:${GeckoVersions.release_version}"
const val geckoview_release_x86 = "org.mozilla.geckoview:geckoview-x86:${GeckoVersions.release_version}"
const val geckoview_release_aarch64 = "org.mozilla.geckoview:geckoview-arm64-v8a:${GeckoVersions.release_version}"
} }

View File

@@ -34,10 +34,7 @@ dependencies {
implementation Dependencies.kotlin_stdlib implementation Dependencies.kotlin_stdlib
implementation Dependencies.kotlin_coroutines implementation Dependencies.kotlin_coroutines
// We only compile against the ARM artifact. External module will decide which module to provide by build configuration. api Gecko.geckoview_release
// As the Kotlin/Java API is the same for all ABIs it is not important which one we import here.
compileOnly Gecko.geckoview_release_arm
testImplementation Gecko.geckoview_release_arm
testImplementation Dependencies.androidx_test_core testImplementation Dependencies.androidx_test_core
testImplementation Dependencies.androidx_test_junit testImplementation Dependencies.androidx_test_junit
@@ -51,7 +48,6 @@ dependencies {
androidTestImplementation Dependencies.androidx_test_core androidTestImplementation Dependencies.androidx_test_core
androidTestImplementation Dependencies.androidx_test_runner androidTestImplementation Dependencies.androidx_test_runner
androidTestImplementation Dependencies.androidx_test_rules androidTestImplementation Dependencies.androidx_test_rules
androidTestImplementation Gecko.geckoview_release_arm
androidTestImplementation project(':tooling-fetch-tests') androidTestImplementation project(':tooling-fetch-tests')
} }

View File

@@ -32,6 +32,9 @@ permalink: /changelog/
* **feature-intent** * **feature-intent**
* ⚠️ **This is a breaking change**: `TabIntentProcessor` has moved to the `processing` sub-package, but is still in the same component. * ⚠️ **This is a breaking change**: `TabIntentProcessor` has moved to the `processing` sub-package, but is still in the same component.
* **browser-engine-gecko**
* Like with the nightly and beta flavor previously this component now has a hard dependency on the new [universal GeckoView build](https://bugzilla.mozilla.org/show_bug.cgi?id=1508976) that is no longer architecture specific (ARM, x86, ..). With that apps no longer need to specify the GeckoView dependency themselves and synchronize the used version with Android Components. Additionally apps can now make use of [APK splits](https://developer.android.com/studio/build/configure-apk-splits) or [Android App Bundles (AAB)](https://developer.android.com/guide/app-bundle).
# 11.0.0 # 11.0.0
* [Commits](https://github.com/mozilla-mobile/android-components/compare/v10.0.0...v11.0.0) * [Commits](https://github.com/mozilla-mobile/android-components/compare/v10.0.0...v11.0.0)

View File

@@ -28,7 +28,7 @@ android {
} }
} }
flavorDimensions "engine", "abi" flavorDimensions "engine"
productFlavors { productFlavors {
// GeckoView release channels // GeckoView release channels
@@ -46,20 +46,6 @@ android {
system { system {
dimension "engine" dimension "engine"
} }
// Processor architecture
arm {
dimension "abi"
}
x86 {
dimension "abi"
}
aarch64 {
dimension "abi"
}
universal {
dimension "abi"
}
} }
variantFilter { variant -> variantFilter { variant ->
@@ -68,33 +54,7 @@ android {
// release versions. // release versions.
setIgnore(true) setIgnore(true)
} }
def flavors = variant.flavors*.name.toString().toLowerCase()
if (flavors.contains("system") && !flavors.contains("universal")) {
setIgnore(true)
} }
// Only allow "universal" flavors of "system", "geckoviewNightly" and "geckoBeta" engines
if (flavors.contains("universal") && !(flavors.contains("system") || flavors.contains("geckonightly") || flavors.contains("geckobeta"))) {
setIgnore(true)
}
// Ignore all non-universal GeckoView Nightly builds
if (!flavors.contains("universal") && flavors.contains("geckonightly")) {
setIgnore(true)
}
// Ignore all non-universal GeckoView Beta builds
if (!flavors.contains("universal") && flavors.contains("geckobeta")) {
setIgnore(true)
}
}
}
configurations {
geckoReleaseArmImplementation {}
geckoReleaseX86Implementation {}
geckoReleaseAarch64Implementation {}
} }
dependencies { dependencies {
@@ -142,13 +102,8 @@ dependencies {
implementation project(':support-ktx') implementation project(':support-ktx')
geckoNightlyImplementation project(':browser-engine-gecko-nightly') geckoNightlyImplementation project(':browser-engine-gecko-nightly')
geckoBetaImplementation project(':browser-engine-gecko-beta') geckoBetaImplementation project(':browser-engine-gecko-beta')
geckoReleaseImplementation project(':browser-engine-gecko') geckoReleaseImplementation project(':browser-engine-gecko')
geckoReleaseArmImplementation Gecko.geckoview_release_arm
geckoReleaseX86Implementation Gecko.geckoview_release_x86
geckoReleaseAarch64Implementation Gecko.geckoview_release_aarch64
implementation Dependencies.google_material implementation Dependencies.google_material