Fennec/NativeUI

From MozillaWiki
< Fennec
Revision as of 03:41, 30 January 2012 by Kats (talk | contribs) (→‎Known Issue: rip out the known issues section, it's waaay out-of-date)
Jump to navigation Jump to search

Features

  • Awesome Bar – Go to your favorite sites in just a couple of keystrokes with intelligent and personalized searching
  • Firefox Sync – Sync your Firefox tabs, history, bookmarks and passwords between your desktop and mobile device for a seamless browsing experience
  • Tabbed browsing – View open tabs as thumbnails to easily identify and select the Web page you’d like to go to next
  • Fast - Instantly startup (<300ms)
  • Small - Low memory usage (consistent with other browsers)
  • Energy - Doesn't eat your battery

Background

Nightly Builds

If you want to try the new NativeUI on your Android device, you can download the latest nightly builds here: https://wiki.mozilla.org/Mobile/Platforms/Android#Download_Nightly

What's in them? See here: https://wiki.mozilla.org/Fennec/NativeUI/NightlyFeatures

How To Build

The project repository is here: http://hg.mozilla.org/mozilla-central

Follow the instructions from Mobile/Fennec/Android. Build as you normally would (make -f client.mk), just with a different mozconfig.

Here's an example mozconfig:

# Add the correct paths here:
ac_add_options --with-android-ndk="$HOME/android-ndk-r6b"
ac_add_options --with-android-sdk="$HOME/android-sdk-linux_x86/platforms/android-13"
ac_add_options --with-android-version=5

# android options
ac_add_options --enable-application=mobile/android
ac_add_options --target=arm-linux-androideabi
ac_add_options --with-ccache

mk_add_options MOZ_OBJDIR=./objdir-droid
mk_add_options MOZ_MAKE_FLAGS="-j9 -s"


hg clone http://hg.mozilla.org/mozilla-central src
cd src
vi mozconfig-droid
...
export MOZCONFIG=~/src/mozconfig-droid
make -f client.mk

Build for Mac OSX

Requirements : Mercurial (hg), autoconf-2.13 (Use Macports to install), Android SDK/NDK (use r6 or r5c; r6bc and r7 will build but crash)

hg clone http://hg.mozilla.org/mozilla-central src
cd src
vi .mozconfig

Here's an example .mozconfig:

# Add the correct paths here:
ac_add_options --with-android-ndk="$HOME/android-ndk-r5c"
ac_add_options --with-android-toolchain="$HOME/android-ndk-r5c/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86"
ac_add_options --with-android-platform="$HOME/android-ndk-r5c/platforms/android-8/arch-arm"
ac_add_options --with-android-tools="$HOME/android-sdk-mac_x86/tools"
ac_add_options --with-android-sdk="$HOME/android-sdk-mac_x86/platforms/android-13"
ac_add_options --with-android-version=8

# android options
ac_add_options --enable-debug
ac_add_options --disable-optimize
ac_add_options --with-ccache
ac_add_options --disable-crashreporter

mk_add_options MOZ_OBJDIR=./objdir-droid
mk_add_options MOZ_MAKE_FLAGS="-j16 -s"

# Android options
ac_add_options --enable-application=mobile/android
ac_add_options --target=arm-linux-androideabi

Build and intall on your device:

make -f client.mk
make -C objdir-droid/ package
adb install -r objdir-droid/dist/fennec-12.0a1.en-US.android-arm.apk


Architecture Overview

Get a bird's eye view of how the native UI version of Fennec is structured. There are also some examples of messaging between Java and XUL/JS.

Design

The UI design is under revision, to make it simpler and to make more use of standard Android controls (i.e. hardware/system menu button, back button) and to make sure that more touchevents can be passed directly to web content.

Overview and detail here: https://wiki.mozilla.org/Fennec/NativeUI/UserExperience

QA

Weekly Showcase