Fennec/NativeUI
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
- http://starkravingfinkle.org/blog/2011/11/firefox-for-android-nightly-channel-switches-to-native-ui-builds/
- http://madhava.com/egotism/archive/005058.html
- http://arstechnica.com/open-source/news/2011/11/-mozilla-is-working-on.ars
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
- Contact: Kevin Brosnan (kbrosnan)
- Bugs: Fennec native UI testing
- Notes: Fennec native UI notes
Weekly Showcase
- Wednesdays @ 12:00 PDT/Warp Core
- Notes 10-26
- 11-9
- 11-16
- 11-23
- 11-30