Mobile/e10s

From MozillaWiki
Jump to navigation Jump to search

Tasks

  • unowned tasks
    • Intermittent scrolling problem with autocomplete widget (?)
  • ben
    • scroll syncing does not work (ben)
    • zooming to an element does not work (ben)
    • highlighting elements on mousedown (ben)
    • checkerboarding happens a lot (ben)
    • select boxes (ben)
    • url bar shifted up on new page (https://bugzilla.mozilla.org/show_bug.cgi?id=552971)

How to build

Setting up scratchbox (for Maemo devices only)

Getting the source

Get mozilla and mobile projects off mercurial:

hg clone http://hg.mozilla.org/projects/electrolysis
cd electrolysis
hg clone http://hg.mozilla.org/users/pavlov_mozilla.com/mobile-e10s mobile

Right now, for Fennec we need additional platform patches on top of electrolysis branch. You will need mq for this.

cd .hg
hg clone http://hg.mozilla.org/users/dougt_mozilla.com/e10s-patches/ patches
NOTE: when getting a new patch queue, don't forget to
hg qpop -a
before you do so!
NOTE for contributors: If you push to the patches queue, please don't modify the status file.

Building for Maemo devices

Create your .mozconfig in your electrolysis directory. Your .mozconfig should look something like this:

# For improved compile speeds, all optional.
export CCACHE_HARDLINK=1
export CC="ccache gcc"
export CXX="ccache g++"
mk_add_options MOZ_MAKE_FLAGS=-j3

# Make an optimized debug build.
export MOZ_DEBUG_SYMBOLS=1
ac_add_options --enable-optimize
ac_add_options --disable-debug
ac_add_options --enable-debugger-info-modules=yes

# important mobile options
mk_add_options MOZ_OBJDIR=mobilebase-qt-@CONFIG_GUESS@
ac_add_options --enable-application=mobile
ac_add_options --with-arm-kuser

# important qt options
ac_add_options --enable-default-toolkit=cairo-qt
ac_add_options --disable-crashreporter
ac_add_options --with-maemo-version=5

# e10s
ac_add_options --enable-ipc
Pro tip: if you are building for desktop and device, take the environment variable MOZCONFIG to your advantage. Put your device mozconfig in your scratchbox home directory. Then, in your scratchbox session:
[scratchbox $] echo export MOZCONFIG=$HOME/.mozconfig >> .bash_profile

Finally, run:

make -f client.mk

How to run

Create an executable script fennectrolysis in your $PATH as

#!/bin/bash
objdir=[$OBJDIR]/mobile/
export LD_LIBRARY_PATH="$objdir/dist/bin/xulrunner:/usr/lib/debug/lib:/usr/lib/debug/usr/lib"
cd $objdir/dist/bin && exec "$@" ./xulrunner/xulrunner-bin application.ini

replacing [$OBJDIR] with your fennec objdir.