Skip to content

A full-featured CENO browser reference implementation using Mozilla Android Components + Ouinet

License

Notifications You must be signed in to change notification settings

baronrustamov/ceno-browser-v2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,372 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CENO Browser v2

WARNING: This repository does represent the stable version of CENO Browser, please see https://github.com/censorship-no/ceno-browser for the current stable release of CENO Browser.

A web browser reference implementation using Mozilla Android Components.

The Reference Browser is not a product intended to ship to end users. Instead it is a Technology Preview for many new mobile components that multiple teams at Mozilla are currently working on

It includes the Mozilla Web Platform via GeckoView, a new modern Firefox Accounts and Cloud Sync implementation and the new "Glean" telemetry library. All these components will be foundational for Mozilla's existing and upcoming Android products.

The Reference Browser can also be a starting point for your own new browser-like applications. It depends heavily on the Android Components project where most of the actual implementation lives. That project also includes many smaller sample applications.

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.

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

Test Channel on Google Play Store

To get the Reference Browser on your device, follow these two steps:

  1. Visit https://groups.google.com/forum/#!forum/mozilla-reference-browser and join the Google Group
  2. Visit https://play.google.com/apps/testing/org.mozilla.reference.browser on your device to join the test program and to install the app

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

Download Nightly Builds Directly

Signed Nightly builds can be downloaded from:

Please note that these builds do not auto-update, you will have to keep up to date manually.

The latest Nightly build task can be found here.

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.

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

Local Development

You might be interested in building this project against local versions of some of the dependencies. Depending on which dependencies you're building against, there are couple of paths.

Auto-publication workflow

This is the most streamlined workflow which fully automates dependency publication. It currently supports android-components and application-services dependencies.

In a local.properties file in root of the reference-browser checkout, specify relative paths to a repository you need (or both):

# Local workflow
autoPublish.android-components.dir=../android-components
autoPublish.application-services.dir=../application-services

That's it! Next build of reference-browser will be against your local versions of these repositories. Simply make changes in android-components or application-services, press Play in reference-browser and those changes will be picked-up.

See a demo of this workflow in action. Video mentions Fenix, but it works in exactly the same with with reference-browser.

Dependency substitutions for GeckoView

GeckoView currently can be configured via a dependency substitution.

In a local.properties file in root of the reference-browser checkout, specify GeckoView's path via dependencySubstitutions.geckoviewTopsrcdir=/path/to/mozilla-central (and, optionally, dependencySubstitutions.geckoviewTopobjdir=/path/to/topobjdir). See Bug 1533465.

This assumes that you have built, packaged, and published your local GeckoView -- but don't worry, the dependency substitution script has the latest instructions for doing that.

Do not forget to run a Gradle sync in Android Studio after changing local.properties. If you specified any substitutions (e.g. GeckoView), they will be reflected in the modules list, and you'll be able to modify them from a single Android Studio window. For auto-publication workflow, use seperate Android Studio windows.

Ouinet Integration

Prior to building the CENO Reference Browser, you will need to build our fork of gecko-dev, which is cloned as submodule to this repo, create a local.properties file in the root of this project, and set the values as follows before building the app, assuming your test device is 64bit architecture:

dependencySubstitutions.geckoviewTopsrcdir=../gecko-dev
dependencySubstitutions.geckoviewTopobjdir=../gecko-dev/obj-aarch64-unknown-linux-android
ABI=arm64_v8a
CACHE_PUB_KEY="YOUR OUINET CACHE PUB KEY"
INJECTOR_CREDENTIALS="ouinet:YOURINJECTORPASSWORD"
INJECTOR_TLS_CERT="-----BEGIN CERTIFICATE-----\\n\
ABCDEFG...\
\\n-----END CERTIFICATE-----"

Those values should be loaded by Gradle during the build process in app/build.gradle:

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/

About

A full-featured CENO browser reference implementation using Mozilla Android Components + Ouinet

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 86.6%
  • Python 5.4%
  • Shell 4.9%
  • Dockerfile 1.6%
  • HTML 1.1%
  • CSS 0.4%