Code Monkey home page Code Monkey logo

firefoxlite's Introduction

๐Ÿšจ Important notice about Firefox Lite

Effective June 30, 2021, this app will no longer receive security or other updates. Download the official Firefox Android app now for a fast, private & safe web browser.

Learn more about the upcoming changes: https://support.mozilla.org/en-US/kb/end-support-firefox-lite

Download Firefox Android: https://play.google.com/store/apps/details?id=org.mozilla.firefox&hl=en_US

Privacy Notice: https://www.mozilla.org/privacy/firefox-lite/

About Mozilla

Mozilla exists to build the Internet as a public resource accessible to all because we believe open and free is better than closed and controlled. We build products like Firefox to promote choice and transparency and give people more control over their lives online. Learn more at https://www.mozilla.org


Firefox Lite

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 https://github.com/mozilla-tw/FirefoxLite
  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

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.

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/apk_size.py focus webkit
  3. (Unit test) run ./gradlew testFocusWebkitDebugUnitTest
  4. (UI test) run ./gradlew connectedAndroidTest

ktlint

  • Download ktlint
curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.30.0/ktlint &&
  chmod a+x ktlint &&
  sudo mv ktlint /usr/local/bin/
  • Run ktlint --install-git-pre-commit-hook for hooks
  • Run ./gradlew ktlint or ktlint to run check
  • Run ktlint applyToIDEAProject to make your IDE align with ktlint
  • 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 it right now.
  • See https://ktlint.github.io/ for details.

Docs

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/

firefoxlite's People

Contributors

ahunt avatar ann-private avatar ben-yplai avatar benjamin-cheng avatar chianger avatar cnevinc avatar conjuror avatar daisy-pliu avatar dimplejiang avatar fablejames avatar harly21 avatar hartsu avatar hsiangyu69 avatar idiotmax avatar jacklin-ux avatar josephyu1110 avatar kinse avatar mastizada avatar mcomella avatar mtwtm avatar mxlius avatar niyali avatar pharspher avatar pocmo avatar ppnfk avatar proevan avatar sabbir044 avatar tlhuang avatar walkingice avatar youwenliang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firefoxlite's Issues

[Function] Menu->Browsing History

acceptance criteria:

  1. able to display the history panel, and scroll up/down to navigate. Historical links are sorted by time of visit.
  2. able to open link from history panel
  3. able to clear history one by one
  4. able to clear history all at once

The UrlFragment can be added for multiple times

STR:

  1. Click search FAB
  2. Press back to hide the keyboard
  3. repeat step 1-2

Expected result:
UrlFragment is added only once.

Actual result:
UrlFragment is added for multiple times, to get back to Top site several back press is needed.

Cookie state is not always synced

STR:

  1. Login to any page such as Facebook, then swipe Zerda away from task bar.
  2. Open Zerda again.

Expected result:
Login session is still valid.

Actual result:
Login session is (mostly) invalid.

--

Cookies are stored in the memory and is stored into the persistent store every five minutes. (Source: https://developer.android.com/reference/android/webkit/CookieSyncManager.html) (Note that the class is deprecated so we may want to verify if the condition still holds. My current observation aligns to this claim.)

So we might want to do something like
public void onPageFinished(WebView view, final String url) {
...
CookieManager.getInstance().flush();
}
to flush cookie after each request. like proposed here, but using the not-deprecated api: https://stackoverflow.com/a/8390280/3591480

We may want to make sure this does not have a performance regression before committing this. We may find a way to flush only the request is cookie related too.

Remove "Open with Firefox"

This is needed because Focus does not position itself as a works-for-everything browser. We probably don't need this. Remove it just to make structure cleaner! We can easily roll back if we actually need this (or at least see what needs to be add back from the commit message if the structure is already too dramastically changed).

Remove Stealth mode

This is needed because Focus is a privacy browser. We probably don't need this. Remove it just to make structure cleaner! We can easily roll back if we actually need this (or at least see what needs to be add back from the commit message if the structure is already too dramastically changed).

Initial core browser wireframe visualization

acceptance criteria:
Functions including cookies, URL bar, navigation, media playback, context menu (system UI for text;share/copy for hyperlinks ;share/save for images; not handling video)

dependent: #8, #23

Top Site from history

acceptance criteria:

  1. the top sites will be based on users' browsing frecency (whenever available) instead of default ones

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.