Skip to content
Emerging Market Experiment
Branch: master
Clone or download
l10n workflow
Latest commit 1e273ee Jun 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update Feb 18, 2019
app Import Strings with Bitrise l10n workflow from l10n repo ec1a79b Jun 23, 2019
buildSrc Prevent progress bar displaying forever when there's a problem loadin… Jun 15, 2019
components Treat network error as no data Jun 15, 2019
docs Add telemetry, waiting for Eddie to provide the telemetry ID Jun 13, 2019
fastlane run screengrab debug build (#3671) Jun 5, 2019
firebase fix UI testing by remove findById to get bottom bar items May 17, 2019
gradle/wrapper Upgrade Gradle to 4.10 Feb 13, 2019
quality Apply the LiveData component on loading the bookmark list Jun 29, 2018
shavar-prod-lists Update Disconnect tracking protect list Dec 13, 2018
third_party Centralized Android library plugin config in one place Nov 20, 2018
tools modify input from stdin Jun 18, 2019
.android2po Add gradle tasks for l10n tasks. (#140) Mar 2, 2017
.gitignore fix DownloadScreenshot with pop delay and add PrivateBrowsingScreensh… Feb 18, 2019
.gitmodules Use PermissionHandler submodule Feb 13, 2019
LICENSE Initial commit Dec 9, 2016
LICENSE.thirdparty Update third-party license / folder mapping list Oct 26, 2017 Nevercode is fixing its bug, let's test via its console Feb 9, 2018 add pre and post scripts Jan 31, 2018 Update readme for ktlint May 14, 2019 skip jacocoTestReport Jul 17, 2017 Run 'checkstyle' before buddybuild build Nov 21, 2017
build.gradle Remove unused jacoco lib Feb 13, 2019
codecov.yml Turn off codecov comments May 29, 2017 Re-enable aapt2 to default enabled Jul 18, 2018
gradlew Let's do this. #mozAloha Dec 9, 2016
gradlew.bat Let's do this. #mozAloha Dec 9, 2016
ktlint Migrate ktlint May 14, 2019
settings.gradle Delete bhaskar repository project Apr 30, 2019

Firefox Lite

Bitrise build status

Getting Involved

We encourage you to participate in this open source project. We love Pull Requests, Bug Reports, ideas, (security) code reviews or any kind of positive contribution. Please read the Community Participation Guidelines.

Build instructions

  1. Clone the repository:
git clone
  1. Since we're using submodule, run:
git submodule init
git submodule update
  1. Open Android Studio and select File->Open and select FirefoxLite to open the project. Make sure to select the right build variant in Android Studio: focusWebkitDebug

  2. Disable Instant Run in: Settings/Build, Execution, Deployment > Instant Run. (See note #1 for details.)

[1] We currently don't support instant run. An error message similar to:

/Users/tyu/Documents/zerda/FirefoxLite/app/src/main/java/org/mozilla/focus/utils/ error: cannot find symbol
final public class FirebaseHelper extends FirebaseWrapper {
  symbol: class FirebaseWrapper

will shown when building with instant run. We have an issue for this so feel free to help with this limitation. To disable instant run , press Cmd+Shit+a on Mac or Ctrl+Shift+a on Windows and enter "instant run" under "Preference" category. If it still doesn't work, try enter ./gradlew clean" on mac or gradlew clean on Windows using command line in the project root.

Build instructions regarding Firebase

We're leveraging Firebase to offer some extra functionalities. However, Firebase is optional so normally you should be able to just develop on focusWebkitDebug.

Here are some Firebase build workarounds that you may need during normal development:

  1. If you want to run UI test without setting up firebase tokens, remove testBuildType "firebase" from build.gradle or you will most likely see error message like this when you run connectedAndroidTest directly:
No tests found. This usually means that your test classes are not in the form that your test runner expects (e.g. don't inherit from TestCase or lack @Test annotations).

If you'd like to test the fully functional Firebase build, you should first setup the environment variables following these instructions and select focusWebkitFirebase

Pull request checks

To mimimize the chance you are blocked by our build checks, you can self check these locally:

  1. (build) run ./gradlew clean checkstyle assembleFocusWebkitDebug lint findbugs assembleAndroidTest ktlint
  2. (size check) run python tools/metrics/ focus webkit
  3. (Unit test) run ./gradlew testFocusWebkitDebugUnitTest
  4. (UI test) run ./gradlew connectedAndroidTest


Run ktlint --install-git-pre-commit-hook or ktlint --install-git-pre-push-hook for hooks Run ./gradlew ktlint or ktlint to run check Run ./gradlew ktlintformat -F or ktlint -F to fix format If you want to go extreme,run ktlint -a -F. This will use Android rule and gives you a lot of complains about max length, but we are not using right now. See for details.



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
You can’t perform that action at this time.