Confirmed users
3,339
edits
m (Fix section indentation) |
(→Documentation and Examples: GeckoView Lite now requires Android 5.0 (API 21) or later.) |
||
| (15 intermediate revisions by 8 users not shown) | |||
| Line 1: | Line 1: | ||
'''GeckoView | '''GeckoView''' wraps Mozilla's [https://wikipedia.org/wiki/Gecko_(software) Gecko browser engine] in a reusable Android library for applications that wish to use Mozilla’s JavaScript, HTML layout, and rendering engines (generally referred to as SpiderMonkey and Gecko). | ||
Mozilla uses GeckoView to power [https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/ Firefox Reality], [https://www.mozilla.org/firefox/mobile/#focus Firefox Focus], and | Mozilla uses GeckoView to power [https://www.mozilla.org/en-US/firefox/browsers/mobile/android/ Firefox for Android], [https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/ Firefox Reality], [https://www.mozilla.org/firefox/mobile/#focus Firefox Focus], and other Android apps. GeckoView serves a similar purpose to Android's built-in WebView, but it has its own APIs and is ''not'' a drop in replacement. | ||
GeckoView serves a similar purpose to Android's built-in WebView, but it has its own APIs and is ''not'' a drop in replacement. | |||
== Why GeckoView? == | == Why GeckoView? == | ||
| Line 14: | Line 12: | ||
* '''Self-Contained''': Because GeckoView is a standalone library that you bundle with your application, you can be confident that the code you test is the code that will actually run. | * '''Self-Contained''': Because GeckoView is a standalone library that you bundle with your application, you can be confident that the code you test is the code that will actually run. | ||
* '''Standards Compliant''': Like Firefox, GeckoView offers excellent support for modern Web standards. | * '''Standards Compliant''': Like Firefox, GeckoView offers excellent support for modern Web standards. | ||
== About GeckoView == | |||
Mozilla provides a GeckoView package and a [https://maven.mozilla.org/?prefix=maven2/org/mozilla/geckoview/ Maven Repo] along with [https://mozilla.github.io/geckoview/javadoc/mozilla-central/org/mozilla/geckoview/package-summary.html package documentation]. GeckoView has Stable, Beta, and Nightly channels that follow the [https://wiki.mozilla.org/Release_Management/Calendar Firefox browser’s Release Calendar] which typically ships a new major version to the Stable channel every 4 weeks and the maven repository is updated accordingly. | |||
When a new version is released to the Stable channel, any relevant security fixes will be published to the [https://www.mozilla.org/en-US/security/advisories/ Mozilla Security Advisories page]. While GeckoView is not explicitly called out in the advisories, most but not strictly all vulnerabilities will affect GeckoView. Exceptions would be vulnerabilities that occur in user-facing components excluded from GeckoView (such as the address bar) or desktop-platform-specific vulnerabilities. Keeping the GeckoView dependency up-to-date is the most effective way to incorporate security fixes. | |||
== Getting Help == | == Getting Help == | ||
| Line 19: | Line 23: | ||
Interested in GeckoView? We're here to help! | Interested in GeckoView? We're here to help! | ||
If you have questions or need assistance, please reach out | If you have questions or need assistance, please reach out to us in the [https://chat.mozilla.org/#/room/#geckoview:mozilla.org #geckoview] Matrix room. | ||
The overall Mozilla security team can be reached at security@mozilla.org. If you ship GeckoView in your application you are encouraged to let us know at that address. | |||
== Get Started == | == Get Started == | ||
| Line 29: | Line 32: | ||
=== Configure Gradle === | === Configure Gradle === | ||
'''1. Set the GeckoView version''' | '''1. Set the GeckoView version''' | ||
| Line 38: | Line 39: | ||
ext { | ext { | ||
geckoviewChannel = "nightly" | geckoviewChannel = "nightly" | ||
geckoviewVersion = " | geckoviewVersion = "70.0.20190712095934" | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 51: | Line 52: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''3. Configure | '''3. Configure Java 8 support''' | ||
<syntaxhighlight lang="Groovy"> | <syntaxhighlight lang="Groovy"> | ||
| Line 63: | Line 62: | ||
sourceCompatibility JavaVersion.VERSION_1_8 | sourceCompatibility JavaVersion.VERSION_1_8 | ||
targetCompatibility JavaVersion.VERSION_1_8 | targetCompatibility JavaVersion.VERSION_1_8 | ||
} | } | ||
} | } | ||
| Line 80: | Line 70: | ||
dependencies { | dependencies { | ||
// ... | // ... | ||
implementation "org.mozilla.geckoview:geckoview-${geckoviewChannel}:${geckoviewVersion}" | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 127: | Line 113: | ||
'''APIs''' | '''APIs''' | ||
* [https://mozilla.github.io/geckoview/javadoc/mozilla-central/ | * [https://mozilla.github.io/geckoview/javadoc/mozilla-central/ GeckoView API Documentation] (JavaDoc format) | ||
* [https://mozilla-mobile.github.io/android-components/reference/ Android Components APIs] | * [https://mozilla-mobile.github.io/android-components/reference/ Android Components APIs] | ||
'''Building / Contributing''' | '''Building / Contributing''' | ||
* [https://mozilla.github.io/geckoview/ | * [https://mozilla.github.io/geckoview/contributor/geckoview-quick-start GeckoView Contributor Quick Start Guide]. | ||
* [[Mobile/Get_Involved]] | * [[Mobile/Get_Involved]] | ||
* [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction Mozilla Developer Guide] | * [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction Mozilla Developer Guide] | ||
| Line 138: | Line 124: | ||
'''Bugs''' | '''Bugs''' | ||
* [https://bugzilla.mozilla.org/enter_bug.cgi?product= | * [https://bugzilla.mozilla.org/enter_bug.cgi?product=GeckoView&component=General File a new GeckoView bug] | ||
* [https://bugzilla.mozilla.org/buglist.cgi?product=GeckoView&component=General&resolution=---&list_id=14532935 All GeckoView Bugs] | * [https://bugzilla.mozilla.org/buglist.cgi?product=GeckoView&component=General&resolution=---&list_id=14532935 All GeckoView Bugs] | ||
* [[Mobile/GeckoView/Bugs|GeckoView Bug Dashboard]] 🐛 | * [[Mobile/GeckoView/Bugs|GeckoView Bug Dashboard]] 🐛 | ||
'''Products / Examples''' | '''Products / Examples''' | ||
* [https://blog.mozilla.org/futurereleases/2019/06/27/reinventing-firefox-for-android-a-preview/ Firefox Preview] ([https://github.com/mozilla-mobile/fenix GitHub]) | |||
* [https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/ Firefox Reality] ([https://github.com/mozillareality/firefoxreality GitHub]) | * [https://blog.mozilla.org/blog/2018/09/18/firefox-reality-now-available/ Firefox Reality] ([https://github.com/mozillareality/firefoxreality GitHub]) | ||
* [https://www.mozilla.org/firefox/mobile/#focus Firefox Focus] ([https://github.com/mozilla-mobile/focus-android/ GitHub]) | * [https://www.mozilla.org/firefox/mobile/#focus Firefox Focus] ([https://github.com/mozilla-mobile/focus-android/ GitHub]) | ||
| Line 149: | Line 136: | ||
'''Minimum System Requirements''' | '''Minimum System Requirements''' | ||
* | * GeckoView, Fenix, and Focus all require Android 5.0 (API 21) or later. | ||
* 32-bit ARMv7-A, 64-bit ARMv8-A (aka ARM64), 32-bit x86, or x86_64 CPU | * 32-bit ARMv7-A, 64-bit ARMv8-A (aka ARM64), 32-bit x86, or x86_64 CPU | ||
* Mozilla | * Minimum device specs are quad-core 1.2 GHz and 2 GB RAM (like the [https://www.gsmarena.com/compare.php3?&idPhone3=8104&idPhone2=8721&idPhone1=9008 Moto G4 Play, E4, or E5]), though Mozilla's GeckoView test devices are the [https://en.wikipedia.org/wiki/Moto_G5 Moto G5] with an octa-core 1.4 GHz CPU and 2 GB RAM and the [https://en.wikipedia.org/wiki/Pixel_2 Google Pixel 2] with an octa-core 1.9 GHz CPU and 4 GB RAM. | ||