• This repository has been archived on 12/Jan/2023
  • Stars
    star
    2,115
  • Rank 21,048 (Top 0.5 %)
  • Language
    Kotlin
  • License
    Mozilla Public Li...
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

⚠️ Firefox Focus (Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android

Firefox Focus for Android

Browse like no one’s watching. The new Firefox Focus automatically blocks a wide range of online trackers — from the moment you launch it to the second you leave it. Easily erase your history, passwords and cookies, so you won’t get followed by things like unwanted ads.

Firefox Focus provides automatic ad blocking and tracking protection on an easy-to-use private browser.

Get it on Google Play

Getting Involved

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

Before you attempt to make a contribution please read the Community Participation Guidelines.

Beginners! - Watch out for Issues with the "Good First Issue" label. These are easy bugs that have been left for first timers to have a go, get involved and make a positive contribution to the project!

Build Instructions

  1. Clone or Download the repository:
git clone https://github.com/mozilla-mobile/focus-android
  1. Import the project into Android Studio or build on the command line:
./gradlew clean app:assembleFocusDebug
  1. Make sure to select the correct build variant in Android Studio: focusArmDebug for ARM focusX86Debug for X86 focusAarch64Debug for ARM64

local.properties helpers

You can speed up or enhance local development by setting a few helper flags available in local.properties which will be made easily available as gradle properties.

Automatically sign release builds

To sign your release builds with your debug key automatically, add the following to <proj-root>/local.properties:

autosignReleaseWithDebugKey

With this line, release build variants will automatically be signed with your debug key (like debug builds), allowing them to be built and installed directly through Android Studio or the command line.

This is helpful when you're building release variants frequently, for example to test feature flags and or do performance analyses.

Building debuggable release variants

Nightly, Beta and Release variants are getting published to Google Play and therefore are not debuggable. To locally create debuggable builds of those variants, add the following to <proj-root>/local.properties:

debuggable

Auto-publication workflow for android-components and application-services

If you're making changes to these projects and want to test them in Focus, auto-publication workflow is the fastest, most reliable way to do that.

In local.properties, specify a relative path to your local android-components and/or application-services projects. E.g.:

  • autoPublish.android-components.dir=../firefox-android/android-components
  • autoPublish.application-services.dir=../application-services

Note that the Android Components project was already migrated to the new firefox-android repository. Therefore, this auto publication workflow won't be neccessary for Android Components once Focus is integrated in the new repository as well.

Once these flags are set, your Focus builds will include any local modifications present in these projects.

See a demo of auto-publication workflow in action.

Pre-push hooks

To reduce review turn-around time, we'd like all pushes to run tests locally. We'd recommend you use our provided pre-push hook in quality/pre-push-recommended.sh. Using this hook will guarantee your hook gets updated as the repository changes. This hook tries to run as much as possible without taking too much time.

To add it, run this command from the project root:

ln -s ../../quality/pre-push-recommended.sh .git/hooks/pre-push

To push without running the pre-push hook (e.g. doc updates):

git push <remote> --no-verify

Test Channel on Google PlayStore

To get Focus Nightly on your device, follow these steps:

  1. Visit https://groups.google.com/g/firefox-focus-pre-release and join the Google Group
  2. After you have joined the group opt-in to receive Nightly builds, again with the same Google account: https://play.google.com/apps/testing/org.mozilla.focus.nightly
  3. Download Firefox Focus (Nightly) from Google Play: https://play.google.com/store/apps/details?id=org.mozilla.focus.nightly

Make sure you use the same Google Account for both steps.

License

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/

More Repositories

1

firefox-ios

Firefox for iOS
Swift
11,977
star
2

fenix

⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
Kotlin
6,500
star
3

android-components

⚠️ This project moved to a new repository. It is now developed and maintained at: https://github.com/mozilla-mobile/firefox-android
Kotlin
2,025
star
4

firefox-android

⚠️ This repository hosts the Firefox for Android (Fenix), Focus for Android, and Mozilla Android Components projects. It is now developed and maintained as part of Mozilla Central. See the announcement here: https://github.com/mozilla-mobile/firefox-android/wiki#upcoming-migration-to-mozilla-central. ”
Kotlin
1,611
star
5

focus-ios

⚠️ Firefox Focus (iOS) has moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-ios
Swift
1,258
star
6

reference-browser

A full-featured browser reference implementation using Mozilla Android Components.
Kotlin
549
star
7

mozilla-vpn-client

A fast, secure and easy to use VPN. Built by the makers of Firefox.
C++
427
star
8

FirefoxLite

Emerging Market Experiment
Java
286
star
9

firefox-tv

Firefox for Amazon's Fire TV
Kotlin
248
star
10

webxr-ios

An iOS app for testing WebXR
Swift
207
star
11

guardian-vpn-android

DEPRECATED - Mozilla VPN for Android
Kotlin
53
star
12

guardian-vpn-ios

Mozilla VPN for iOS
Swift
52
star
13

ios-l10n-scripts

Python
45
star
14

firefox-ios-open-in-client

Reference client for opening links in Firefox for iOS.
Swift
43
star
15

ScrollingCardView

A card view widget for iOS that will grow with its content, enabling scrolling when the content is larger than the view.
Swift
43
star
16

FirefoxData-android

DEPRECATED - A library for accessing a user's Firefox data: history, bookmarks, etc.
Java
38
star
17

shared-docs

⚠️ shared-docs moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
33
star
18

telemetry-ios

A generic library for sending telemetry pings from iOS applications to Mozilla's telemetry service.
Swift
28
star
19

firefox-echo-show

Firefox for Amazon's Echo Show
Java
25
star
20

android-automation-tools

Tools for automating tasks in Android projects
Kotlin
23
star
21

prox

[INACTIVE] A search and discovery app for the "here & now". We're experimenting with ideas on mobile that can better surface content from the open web.
Swift
22
star
22

android-permission-handler

A permission helper systemizing runtime permission handling on Android devices
Java
21
star
23

MappaMundi

A declarative Don't Repeat Yourself tool for XCUITesting and screenshots.
Swift
19
star
24

AutocompleteTextField

An iOS text field that autocompletes text with the supplied list of words.
Swift
18
star
25

telemetry-android

A generic library for generating and sending telemetry pings from Android applications to Mozilla's telemetry service.
Java
18
star
26

outreachy-UX-2020

A place to document UX contributions for the summer 2020 Outreachy program.
8
star
27

gradle-apilint

Gradle Plugin that tracks the API of an Android library and helps maintain backward compatibility.
Python
7
star
28

relbot

Python
6
star
29

mozilla-mobile.github.io

Mozilla Mobile Blog
Ruby
6
star
30

perf-tools

Tools for the performance team that don't fit into other repositories
Python
6
star
31

fretboard

A simple A/B testing framework for mobile applications
Kotlin
6
star
32

buddybuild

Instructions on how to install an iOS app via BuddyBuild
5
star
33

testapp

Page for testing web page controls
JavaScript
5
star
34

prox-server

[INACTIVE] Server & data scripts for the Prox client.
Python
5
star
35

fenix-beta-version

GitHub Action that discovers the current Fenix Beta version
Python
5
star
36

web_metadata_ios

Client side web page metadata extraction
Swift
4
star
37

perf-frontend-issues

A repository to hold issues related to front-end mobile application performance.
4
star
38

fennec-profile-manager

Fennec Profile Manager (Backup / Restore)
Kotlin
4
star
39

test-dashboard

Python
3
star
40

nmx-video-prototypes

A collection of NMX prototypes for video-related topics
Kotlin
3
star
41

focus_foxfooding_campaign

3
star
42

fenix-nightly-perftest-results

Fenix nightly performance test results
3
star
43

onyx_ios

iOS Client for the Onyx link server https://github.com/mozilla/onyx
Swift
3
star
44

sync-strings-action

Sync Strings GitHub Action
Python
3
star
45

mobile-test-eng

Task tracking for Mobile Test Engineering Team
2
star
46

focus-ios-open-in-client

Reference client for opening links in Focus for iOS.
2
star
47

ac-version-for-fenix-beta

⚠️ This GitHub action is now developed and maintained as part of: https://github.com/mozilla-mobile/fenix-beta-version
Python
2
star
48

qt_static_windows

2
star
49

ndhook

A server that answers webhook calls from Github and instantiates Nimbledroid profiles
Rust
2
star
50

prox-explorer

[INACTIVE] A web-based exploration of event APIs for Project Prox.
JavaScript
2
star
51

FNPRMS

"funperms": Fenix Nightly Performance Regression Measurement System used by the Android FE perf team to measure cold startup. Please file issues in perf-frontend-issues
Python
1
star
52

testops-looker

LookML
1
star
53

qt_static_macos

This repo is needed to compile MozillaVPN on macOS as artifact
1
star
54

LocalizationTools

Swift
1
star
55

whatsnew

Update the Firefox for iOS info on iTunes Connect
Python
1
star
56

mobile-ci-tools

Home for Mobile cross-project CI tasks
Python
1
star
57

data-sync-user-testing

test repo for smoketesting the sync bot
1
star
58

strbot

String Bot - To sync strings to release branches (Fenix, A-C)
Python
1
star
59

ff-test-buddybuild

BuddyBuild - Test App
Swift
1
star
60

nimbledroidrs

A Rust library for interacting with Nimbledroid.
Rust
1
star