Mobile/e10s: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 39: Line 39:


== How to build ==
== How to build ==
* pull e10s repo
 
** http://hg.mozilla.org/projects/electrolysis
=== Setting up scratchbox (for Maemo devices only) ===
* pull e10s patch queue and apply
 
** pull mq patch directory http://hg.mozilla.org/users/dougt_mozilla.com/e10s-patches/ into .hg/patches
 
** NOTE: if you push to the patches queue, please don't modify status
=== Getting the source ===
* pull e10s fennec repo
 
** http://hg.mozilla.org/users/pavlov_mozilla.com/mobile-e10s/
Get mozilla and mobile projects off mercurial:
* mozconfig:
<pre>
** http://people.mozilla.org/~dougt/random/e10s/mozconfig
hg clone http://hg.mozilla.org/projects/electrolysis
cd electrolysis
hg clone http://hg.mozilla.org/users/pavlov_mozilla.com/mobile-e10s mobile
</pre>
 
Right now, for Fennec we need additional platform patches on top of electrolysis branch.  You will need mq for this.
<pre>
cd .hg
hg clone http://hg.mozilla.org/users/dougt_mozilla.com/e10s-patches/ patches
</pre>
 
::<b>NOTE</b>: when getting a new patch queue, don't forget to <pre>hg qpop -a</pre> before you do so!
 
::<b>NOTE for contributors:</b> 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:
 
<pre>
# 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
</pre>
 
:: 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:
 
:: <pre>[scratchbox $] echo export MOZCONFIG=$HOME/.mozconfig >> .bash_profile</pre>
 
Finally, run: <pre>make -f client.mk</pre>


== How to run ==
== How to run ==

Revision as of 17:02, 29 March 2010

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.