<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crowder</id>
	<title>MozillaWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mozilla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Crowder"/>
	<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/Special:Contributions/Crowder"/>
	<updated>2026-04-09T08:57:37Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/13-Oct-2010&amp;diff=260670</id>
		<title>Mobile/Notes/13-Oct-2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/13-Oct-2010&amp;diff=260670"/>
		<updated>2010-10-13T16:31:31Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Performance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Wednesdays - 9:30am Pacific, 12:30pm Eastern, 16:30 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
== Schedule  ==&lt;br /&gt;
* Beta 1 has shipped&lt;br /&gt;
* Beta 2&lt;br /&gt;
** String freeze: Oct 9&lt;br /&gt;
** Code freeze: Oct 19&lt;br /&gt;
&lt;br /&gt;
== Major Topics for This Week ==&lt;br /&gt;
&lt;br /&gt;
== Front-end ==&lt;br /&gt;
* Primarily working on Beta 2 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b2%2B blockers]&lt;br /&gt;
** Triaging the blocker list to move out non-critical bugs &lt;br /&gt;
* Also working on other blockers and some performance/optimization bugs&lt;br /&gt;
* Features (see [[Mobile/Planning/2.0 | Planning]] page)&lt;br /&gt;
** Work re-started on scroll indicators&lt;br /&gt;
** Need to re-evaluate the page interactions feature&lt;br /&gt;
* New Core (nee Android) theme is underway&lt;br /&gt;
** Martell is supplying styles and glyphs&lt;br /&gt;
** Vivien landed first patch and we regressed Twinopen by ~180ms&lt;br /&gt;
** We are re-working the theme with less &amp;quot;slow&amp;quot; CSS parts&lt;br /&gt;
** We are breaking up the theme into smaller parts&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
* theme work ongoing in {{bug|575403}}&lt;br /&gt;
** WIP screenshots here http://www.flickr.com/photos/madhava_work/sets/72157625031737595/detail/&lt;br /&gt;
** link to mocks as well: http://www.flickr.com/photos/madhava_work/collections/72157625031739669/&lt;br /&gt;
* reviewing ux b2-intended ux bugs&lt;br /&gt;
&lt;br /&gt;
== Maemo ==&lt;br /&gt;
&lt;br /&gt;
=== Qt ===&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
&lt;br /&gt;
== Electrolysis ==&lt;br /&gt;
&lt;br /&gt;
== General Platform ==&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Performance  ===&lt;br /&gt;
&lt;br /&gt;
*Investigated Sync perf &lt;br /&gt;
**Encrypt/decrypt off-main-thread patch is done (by philiKON) just needs approval..&amp;amp;nbsp; this helps enormously with responsiveness during esp. first sync (bug 570619)&lt;br /&gt;
**Patch to remove &amp;quot;tmp&amp;quot; sqlite tables helps with errors/warnings that are perf-related during first sync (bug 552053), but might cause other issues (bug 585704)&lt;br /&gt;
**Dug into JS perf tools for profiling issues like this (not quite ready for prime-time, but soon -- maybe a week?)&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec/Android&amp;diff=256969</id>
		<title>Mobile/Fennec/Android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec/Android&amp;diff=256969"/>
		<updated>2010-09-29T22:02:22Z</updated>

		<summary type="html">&lt;p&gt;Crowder: typo fixes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Developing Fennec for Android ==&lt;br /&gt;
&lt;br /&gt;
This page contains developer information about [[Mobile/Platforms/Android|Firefox for Android]], part of the [[Fennec]] project.&lt;br /&gt;
&lt;br /&gt;
To download Firefox for Android or learn more about it, see the main &#039;&#039;&#039;[[Mobile/Platforms/Android|Fennec for Android]]&#039;&#039;&#039; page.&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
* [[Android/Status|Current bugs]]&lt;br /&gt;
&lt;br /&gt;
== Download Source Code ==&lt;br /&gt;
&lt;br /&gt;
Check out the mozilla-central [[Mercurial]] repository, and the separate mobile-browser repository in a subdirectory called &amp;quot;mobile&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
 hg clone http://hg.mozilla.org/mozilla-central&lt;br /&gt;
 cd mozilla-central&lt;br /&gt;
 hg clone http://hg.mozilla.org/mobile-browser mobile&lt;br /&gt;
&lt;br /&gt;
== Install Dependencies ==&lt;br /&gt;
&lt;br /&gt;
* Standard [https://developer.mozilla.org/En/Linux_Build_Prerequisites Linux build environment] or [https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites Mac OS X build environment]&lt;br /&gt;
* [http://ftp.mozilla.org/pub/mozilla.org/mobile/source/ Android NDK] - This version is based on the original [http://developer.android.com/sdk/ndk/ Android NDK], modified to include C++ standard libraries and sys/queue.h.&lt;br /&gt;
* [http://developer.android.com/sdk/ Android SDK]&lt;br /&gt;
&lt;br /&gt;
=== Set up a build environment ===&lt;br /&gt;
&lt;br /&gt;
==== Ubuntu 10.04 ====&lt;br /&gt;
 sudo add-apt-repository &amp;quot;deb http://archive.canonical.com/ lucid partner&amp;quot;&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get build-dep firefox&lt;br /&gt;
 sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts sun-java6-jdk &lt;br /&gt;
 sudo update-java-alternatives -s java-6-sun&lt;br /&gt;
if Running on amd64 or ia64 (basically 64bit linux), install the ia32-libs package :&lt;br /&gt;
 sudo apt-get install ia32-libs&lt;br /&gt;
Then install Android sdk and ndk :&lt;br /&gt;
 wget http://dl.google.com/android/android-sdk_r06-linux_86.tgz&lt;br /&gt;
 tar xzf android-sdk_r06-linux_86.tgz&lt;br /&gt;
 wget http://ftp.mozilla.org/pub/mozilla.org/mobile/source/android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
 tar xjf android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
 ./android-sdk-linux_86/tools/android update sdk&lt;br /&gt;
&lt;br /&gt;
==== Fedora 13 ====&lt;br /&gt;
&lt;br /&gt;
 yum install \&lt;br /&gt;
  cvs zip gcc-c++ glib2-devel gtk2-devel fontconfig-devel libnotify-devel \&lt;br /&gt;
  libIDL-devel alsa-lib-devel libXt-devel freetype-devel pkgconfig \&lt;br /&gt;
  dbus-glib-devel curl-devel autoconf213 xorg-x11-proto-devel libX11-devel \&lt;br /&gt;
  libXau-devel libXext-devel wireless-tools-devel glibc-static yasm&lt;br /&gt;
&lt;br /&gt;
Install java: http://wporta.wordpress.com/2010/07/06/installing-jdk-in-fedora-13/&lt;br /&gt;
&lt;br /&gt;
Then install Android sdk and ndk :&lt;br /&gt;
  wget http://dl.google.com/android/android-sdk_r06-linux_86.tgz&lt;br /&gt;
  tar xzf android-sdk_r06-linux_86.tgz&lt;br /&gt;
  wget http://ftp.mozilla.org/pub/mozilla.org/mobile/source/android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
  tar xjf android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
  ./android-sdk-linux_86/tools/android update sdk&lt;br /&gt;
&lt;br /&gt;
=== Quickstart (Linux) ===&lt;br /&gt;
&lt;br /&gt;
Download the SDK and NDK:&lt;br /&gt;
&lt;br /&gt;
 wget http://dl.google.com/android/android-sdk_r06-linux_86.tgz&lt;br /&gt;
 wget http://ftp.mozilla.org/pub/mozilla.org/mobile/source/android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Then unpack them:&lt;br /&gt;
&lt;br /&gt;
 tar xvfj android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
 tar xvfz android-sdk_r06-linux_86.tgz&lt;br /&gt;
&lt;br /&gt;
Install Java runtime and JDK:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts sun-java6-jdk&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ubuntu note:&#039;&#039;&#039; be sure to install the Sun or OpenJDK version of Java, gcj will not work. In Ubuntu 10.04 Sun Java was moved to the Partner repository. Open the Software Center, edit Software Sources and enable the Partner repository.&lt;br /&gt;
&lt;br /&gt;
Android SDK needs to be setup manually.&lt;br /&gt;
&lt;br /&gt;
* In the SDK directory, run tools/android&lt;br /&gt;
* Check Settings-&amp;gt;Force https://... sources to be fetched using http://...&lt;br /&gt;
* Click Save &amp;amp; Apply&lt;br /&gt;
* Installed Packages-&amp;gt;Update All...&lt;br /&gt;
* Select at least the Android SDK, API level 6.  Optionally you can install API levels 4 and 8.&lt;br /&gt;
* Click Install, Accept, etc.&lt;br /&gt;
&lt;br /&gt;
== Build Fennec for Android ==&lt;br /&gt;
&lt;br /&gt;
=== Full Build ===&lt;br /&gt;
&lt;br /&gt;
Normal Firefox build, with the following mozconfig. (Put this in a file called &amp;quot;mozconfig&amp;quot; in your top-level source directory.)&lt;br /&gt;
&lt;br /&gt;
 OBJDIR=objdir-android&lt;br /&gt;
 mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/$OBJDIR&lt;br /&gt;
 &lt;br /&gt;
 # Add the correct paths here:&lt;br /&gt;
 ac_add_options --with-android-ndk=&amp;quot;CHANGE/PATH/TO/android-ndk-r4c&amp;quot;&lt;br /&gt;
 ac_add_options --with-android-sdk=&amp;quot;CHANGE/PATH/TO/android-sdk-linux_86/platforms/android-8&amp;quot;&lt;br /&gt;
 ac_add_options --with-android-tools=&amp;quot;CHANGE/PATH/TO/android-sdk-linux_86/tools&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 # android options&lt;br /&gt;
 ac_add_options --enable-application=mobile&lt;br /&gt;
 ac_add_options --target=arm-android-eabi&lt;br /&gt;
 ac_add_options --with-endian=little&lt;br /&gt;
 &lt;br /&gt;
 # Uncomment to run on ARMv5 or ARMv6 devices, including the emulator&lt;br /&gt;
 #ac_add_options --disable-thumb2&lt;br /&gt;
 &lt;br /&gt;
 ac_add_options --disable-tests&lt;br /&gt;
 &lt;br /&gt;
 export MOZ_DEBUG_SYMBOLS=1&lt;br /&gt;
&lt;br /&gt;
A standard build should succeed with those paths.&lt;br /&gt;
&lt;br /&gt;
After that build finishes, a &amp;lt;tt&amp;gt;make -C embedding/android&amp;lt;/tt&amp;gt; in the OBJDIR should generate a fennec.apk that&#039;s installable on an Android device using &amp;lt;tt&amp;gt;adb install fennec.apk&amp;lt;/tt&amp;gt; -- to remove it you need to use the reverse domain name for the package: &amp;lt;tt&amp;gt;adb uninstall org.mozilla.fennec&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== JS/NSPR only ===&lt;br /&gt;
&lt;br /&gt;
In the commands below, replace these with the appropriate paths:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;$NDK&amp;lt;/tt&amp;gt; is the NDK location&lt;br /&gt;
* &amp;lt;tt&amp;gt;$moz&amp;lt;/tt&amp;gt; is the mozilla-droid repo checkout&lt;br /&gt;
* &amp;lt;tt&amp;gt;$out&amp;lt;/tt&amp;gt; is some base destination directory&lt;br /&gt;
&lt;br /&gt;
First, regenerate configure in the js dir (the nspr configure is checked in):&lt;br /&gt;
 &lt;br /&gt;
 cd $moz/js/src &amp;amp;&amp;amp; autoconf2.13&lt;br /&gt;
&lt;br /&gt;
Then create a nspr directory, configure nspr, and build it:&lt;br /&gt;
&lt;br /&gt;
 cd $out&lt;br /&gt;
 mkdir nspr&lt;br /&gt;
 cd nspr&lt;br /&gt;
 $moz/nsprpub/configure \&lt;br /&gt;
   --target=arm-android-eabi \&lt;br /&gt;
   --with-android-ndk=$NDK &lt;br /&gt;
 make -s&lt;br /&gt;
&lt;br /&gt;
Then do the same for JS, telling it where to find the NSPR you just built:&lt;br /&gt;
&lt;br /&gt;
 cd $out&lt;br /&gt;
 mkdir js&lt;br /&gt;
 cd js&lt;br /&gt;
 $moz/js/src/configure \&lt;br /&gt;
   --target=arm-android-eabi \&lt;br /&gt;
   --with-android-ndk=$NDK \&lt;br /&gt;
   --with-nspr-cflags=-I$out/nspr/dist/include/nspr \&lt;br /&gt;
   --with-nspr-libs=&#039;-L$out/nspr/dist/lib -lnspr4 -lplc4 -lplds4&#039; \&lt;br /&gt;
   --enable-threadsafe \&lt;br /&gt;
   --with-endian=little \&lt;br /&gt;
   --with-arm-kuser&lt;br /&gt;
 make -s&lt;br /&gt;
&lt;br /&gt;
More information about NSPR is on [[Android/NSPR|this separate page]].&lt;br /&gt;
&lt;br /&gt;
== Run JS/NSPR on Android ==&lt;br /&gt;
&lt;br /&gt;
You&#039;ll need to copy the NSPR libraries and the js shell to the emulator or your device.  Whether you&#039;re running on a physical device or an emulator, /data/local should be writable by the user.&lt;br /&gt;
&lt;br /&gt;
 cd $out/nspr/dist/lib&lt;br /&gt;
 for f in *.so ; do adb push $f /data/local ; done&lt;br /&gt;
 cd $out/js/shell&lt;br /&gt;
 adb push js /data/local&lt;br /&gt;
&lt;br /&gt;
Then, connect to a shell on the device, and run js (adb shell prompts prefixed with &amp;quot;android&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
 % adb shell&lt;br /&gt;
 android% cd /data/local&lt;br /&gt;
 android% LD_LIBRARY_PATH=. ./js&lt;br /&gt;
 js&amp;gt; 1+1&lt;br /&gt;
 2&lt;br /&gt;
&lt;br /&gt;
== Debugging with GDB ==&lt;br /&gt;
&lt;br /&gt;
=== Preparation ===&lt;br /&gt;
&lt;br /&gt;
Debugging with gdbserver requires root access.  If you have not rooted your phone, search the web for instructions for your particular device.  Or see [[User:Blassey/Notes/Android#debugging_without_rooting|notes on debugging without root access]].&lt;br /&gt;
&lt;br /&gt;
=== Using nVidia version (recommended) ===&lt;br /&gt;
&lt;br /&gt;
Need to document here. See [[User:Blassey/Notes/Android]] for how to install.&lt;br /&gt;
&lt;br /&gt;
Note that you&#039;ll still need to pull the system libraries as described in the next section -- don&#039;t skip it entirely just because you&#039;ve gotten the NVIDIA gdb.&lt;br /&gt;
&lt;br /&gt;
=== Using the NDK version ===&lt;br /&gt;
&lt;br /&gt;
NOTE: Fennec might crash when attaching using the gdb binaries included in the Google NDK. nVidia&#039;s gdb binaries are better.&lt;br /&gt;
&lt;br /&gt;
If you do not already have gdbserver on your device (use &amp;lt;tt&amp;gt;adb shell gdbserver&amp;lt;/tt&amp;gt; to check), you can push a pre-built version from the NDK.&lt;br /&gt;
&lt;br /&gt;
 adb push /PATH/TO/android-ndk-r4/build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/gdbserver /data/local&lt;br /&gt;
&lt;br /&gt;
Copy the necessary files from your device via adb pull. /system/bin/linker is referred to by absolute path so setting solib-absolute-prefix in gdb will be necessary for it to be found. Other files can be placed anywhere as long as they can be found in solib-search-path.&lt;br /&gt;
&lt;br /&gt;
In short, find a directory to put some libraries, make sure adb is in your path, and paste this into your terminal:&lt;br /&gt;
&lt;br /&gt;
 adb pull /system/bin/linker . &amp;amp;&amp;amp;&lt;br /&gt;
 adb pull /system/bin/app_process . &amp;amp;&amp;amp;&lt;br /&gt;
 mkdir -p system/bin &amp;amp;&amp;amp;&lt;br /&gt;
 mv linker system/bin &amp;amp;&amp;amp;&lt;br /&gt;
 for LIB in libc.so libm.so libstdc++.so liblog.so libz.so libGLESv1_CM.so&lt;br /&gt;
 do&lt;br /&gt;
 adb pull /system/lib/$LIB .&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
=== Attach GDB ===&lt;br /&gt;
&lt;br /&gt;
* launch in debug mode:&lt;br /&gt;
  (Host)$ adb shell am start -a org.mozilla.gecko.DEBUG \&lt;br /&gt;
                             -n org.mozilla.fennec/org.mozilla.fennec.App&lt;br /&gt;
* Forward a port for gdb between your device and computer using adb. Any port you can open should work. 1234 is used here.&lt;br /&gt;
  (Host)$ adb forward tcp:1234 tcp:1234&lt;br /&gt;
* Find the pid of your process if you don&#039;t know it. You can look at the second column of &amp;lt;tt&amp;gt;adb shell ps|grep fennec&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Attach gdbserver to the process&lt;br /&gt;
  (Host)$ adb shell /data/local/gdbserver localhost:1234 --attach YOURPID&lt;br /&gt;
  Attached; pid = YOURPID&lt;br /&gt;
  Listening on port 1234&lt;br /&gt;
* Run arm-eabi-gdb on your binary. (android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin) For debugging gecko, a copy of app_process from your device should be used. (Note that &amp;lt;tt&amp;gt;app_process&amp;lt;/tt&amp;gt; is not a variable name -- it is actually a binary pulled from the device in the previous section.)&lt;br /&gt;
  (Host)$ /PATH/TO/NDK/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-gdb app_process&lt;br /&gt;
  GNU gdb 6.6&lt;br /&gt;
  Copyright (C) 2006 Free Software Foundation, Inc.&lt;br /&gt;
  GDB is free software, covered by the GNU General Public License, and you are&lt;br /&gt;
  welcome to change it and/or distribute copies of it under certain conditions.&lt;br /&gt;
  Type &amp;quot;show copying&amp;quot; to see the conditions.&lt;br /&gt;
  There is absolutely no warranty for GDB.  Type &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
  This GDB was configured as &amp;quot;--host=x86_64-unknown-linux-gnu --target=arm-elf-linux&amp;quot;...&lt;br /&gt;
* Configure solib-absolute-prefix. This will point to the directory where you unpacked your system image or where you copied the libraries.&lt;br /&gt;
  (Host gdb) set solib-absolute-prefix ANDROIDLIBS&lt;br /&gt;
* Configure solib-search-path. This needs to point to the directories you need debugging symbols from - /system/lib or where ever you copied the libraries.&lt;br /&gt;
  (Host gdb) set solib-search-path ANDROIDLIBS:ANDROIDLIBS/system/lib:OBJDIR/dist/bin&lt;br /&gt;
* Connect to gdbserver&lt;br /&gt;
  (Host gdb) target remote localhost:1234&lt;br /&gt;
* These three Host gdb commands can be placed in a .gdbinit file to automate future gdb runs. .gdbinit should be located where you normally run gdb.&lt;br /&gt;
&lt;br /&gt;
=== Automating gdbserver setup ===&lt;br /&gt;
You can use the script below to setup gdbserver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
PORT=1234&lt;br /&gt;
PID=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# By default, this will attach to the parent process.&lt;br /&gt;
# Use &amp;quot;plugin-container&amp;quot; as argument to attach to child.&lt;br /&gt;
if [ -z $1 ]; then&lt;br /&gt;
  GREP=org.mozilla.fennec&lt;br /&gt;
else&lt;br /&gt;
  GREP=$1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
adb forward tcp:$PORT tcp:$PORT &amp;amp;&amp;amp;&lt;br /&gt;
adb shell am start -a org.mozilla.gecko.DEBUG -n org.mozilla.fennec/org.mozilla.fennec.App &amp;amp;&amp;amp;&lt;br /&gt;
while [ -z $PID ]; do&lt;br /&gt;
  PID=`adb shell ps | grep $GREP | head -n 1 | cut -c11-16`&lt;br /&gt;
done &amp;amp;&amp;amp;&lt;br /&gt;
adb shell run-as org.mozilla.fennec /data/local/gdbserver localhost:$PORT --attach $PID&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Debugging on Galaxy S devices ===&lt;br /&gt;
&lt;br /&gt;
These include AT&amp;amp;T Galaxy S, Tmobile Vibrant, Sprint Epic.&lt;br /&gt;
&lt;br /&gt;
Unfortunately, it appears that android v2.1 denies non-root programs the ptrace capability, which means that non-root gdb (and breakpad!) won&#039;t work there.  So if you have 2.1, you need to root first.&lt;br /&gt;
* [http://samsungvibranthacks.com/samsung-vibrant-hacks/how-to-root-samsung-vibrant-galaxy-s/ T-mobile Vibrant]&lt;br /&gt;
* ???&lt;br /&gt;
To ensure that your device is rooted (at least partially), run the following commands while the home screen is unlocked: you&#039;ll need to grant superuser permissions on the device itself.&lt;br /&gt;
 adb shell&lt;br /&gt;
 su&lt;br /&gt;
If you get a &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; prompt, you&#039;re good to go.&lt;br /&gt;
&lt;br /&gt;
Next find a good directory for your gdb install and set up gdb.  The dir where you installed the NDK/SDK works well.  Let&#039;s call that dir &amp;lt;code&amp;gt;~/android&amp;lt;/code&amp;gt;&lt;br /&gt;
 cd ~/android&lt;br /&gt;
 mkdir gdb &amp;amp;&amp;amp; cd gdb&lt;br /&gt;
 wget http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip&lt;br /&gt;
 unzip tegra-gdb-20100430.zip&lt;br /&gt;
 rm -f debug.sh and install.sh&lt;br /&gt;
tegra-gdb ships with install.sh and debug.sh scripts, but they don&#039;t work with the root above for the T-mobile Vibrant.  So we&#039;ll create our own ~/android/gdb/install.sh.&lt;br /&gt;
 chmod +x prebuilt/linux-x86/arm-eabi-gdb&lt;br /&gt;
 adb push prebuilt/gdbserver /data/local&lt;br /&gt;
 adb shell chmod 755 /data/local/gdbserver&lt;br /&gt;
 mkdir lib &amp;amp;&amp;amp; cd lib&lt;br /&gt;
 adb pull /system/bin/linker .&lt;br /&gt;
 adb pull /system/bin/app_process .&lt;br /&gt;
 mkdir -p system/bin&lt;br /&gt;
 mv linker system/bin&lt;br /&gt;
 for file in $(adb shell ls /system/lib | tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot; | tr &amp;quot;\r&amp;quot; &amp;quot; &amp;quot;); do&lt;br /&gt;
     adb pull /system/lib/$file .&lt;br /&gt;
 done&lt;br /&gt;
Then&lt;br /&gt;
 bash install.sh&lt;br /&gt;
Now you&#039;re ready to start gdbserver and gdb.  The tegra-gdb has a bug in which it apparently can&#039;t find threads created before it attaches to a process.  This sounds like an easy bug to fix, but a workaround is to use the DEBUG intent as follows.&lt;br /&gt;
 adb forward tcp:12345 tcp:12345&lt;br /&gt;
 adb shell&lt;br /&gt;
 su&lt;br /&gt;
 am start -a org.mozilla.gecko.DEBUG -n org.mozilla.fennec/org.mozilla.fennec.App&lt;br /&gt;
On device, you should see a button that says &amp;quot;Launch&amp;quot;.  Fennec is now waiting for you to connect with gdb.  Back in the adb shell&lt;br /&gt;
 ps&lt;br /&gt;
 # you should see a line like&lt;br /&gt;
 #   app_95    7549  2204  248356 26264 ffffffff 83844aa8 D org.mozilla.fennec&lt;br /&gt;
 # the first number is the PID&lt;br /&gt;
 /data/local/gdbserver localhost:12345 --attach 7549&lt;br /&gt;
If that goes well, gdbserver should print something like&lt;br /&gt;
 Attached; pid = 7549&lt;br /&gt;
 Listening on port 12345&lt;br /&gt;
You&#039;re now ready to connect a local gdb to the gdbserver on device.  We&#039;ll pretend that you installed tegra-gdb and the device libs into &amp;lt;code&amp;gt;/home/cjones/android/gdb&amp;lt;/code&amp;gt;, and that your objdir is &amp;lt;code&amp;gt;/home/cjones/mozilla/ma-opt/dist/bin&amp;lt;/code&amp;gt;.  Then in a new host shell (or emacs gdb), point gdb at the right symbols by running&lt;br /&gt;
 ~/android/gdb/prebuilt/linux-x86/arm-eabi-gdb ~/android/gdb/lib/app_process&lt;br /&gt;
 # (in gdb)&lt;br /&gt;
 set solib-absolute-prefix /home/cjones/android/gdb/lib&lt;br /&gt;
 set solib-search-path /home/cjones/android/gdb/lib:/home/cjones/android/gdb/lib/system/lib:/home/cjones/mozilla/ma-opt/dist/bin&lt;br /&gt;
You very much want to add this setup to a .gdbinit script.  Finally, connect to the gdbserver&lt;br /&gt;
 target remote localhost:12345&lt;br /&gt;
If all goes well, you should see something like&lt;br /&gt;
 (gdb) target remote localhost:12345&lt;br /&gt;
 Remote debugging using localhost:12345&lt;br /&gt;
 Reading symbols from /home/cjones/android/gdb/lib/system/bin/linker...(no debugging symbols found)...done.&lt;br /&gt;
 Loaded symbols for /home/cjones/android/gdb/lib/system/bin/linker&lt;br /&gt;
 Reading symbols from libc.so...(no debugging symbols found)...done.&lt;br /&gt;
 Loaded symbols for libc.so&lt;br /&gt;
 [snip]&lt;br /&gt;
 0xafe0d9c4 in __futex_wait () from libc.so&lt;br /&gt;
 (gdb) bt&lt;br /&gt;
 #0  0xafe0d9c4 in __futex_wait () from libc.so&lt;br /&gt;
 #1  0xafe0f444 in __pthread_cond_timedwait_relative () from libc.so&lt;br /&gt;
 #2  0xafe0f4d0 in __pthread_cond_timedwait () from libc.so&lt;br /&gt;
 #3  0xad0402d6 in ?? () from libdvm.so&lt;br /&gt;
 #4  0xad0402d6 in ?? () from libdvm.so&lt;br /&gt;
 Backtrace stopped: previous frame identical to this frame (corrupt stack?)&lt;br /&gt;
The final warning about a corrupt stack appears to be a quirk of the Dalvik VM&#039;s implementation, and isn&#039;t worrisome because the Java frames would be meaningless in C++ anyway.&lt;br /&gt;
&lt;br /&gt;
To connect to a content process, the steps are mostly the same, except you want to start fennec with&lt;br /&gt;
 am start -a org.mozilla.gecko.DEBUG -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 MOZ_DEBUG_CHILD_PROCESS=1&lt;br /&gt;
attach to a process that looks like&lt;br /&gt;
 app_95    16029 16005 20488  5852  c03b08dc afe0d0ac S /data/data/org.mozilla.fennec/plugin-container&lt;br /&gt;
and start android-gdb with&lt;br /&gt;
 ~/android/gdb/prebuilt/linux-x86/arm-eabi-gdb $objdir/dist/bin/plugin-container&lt;br /&gt;
&lt;br /&gt;
== Running tests on device ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s probably going to be painful, prepare thyself.&lt;br /&gt;
&lt;br /&gt;
=== JS trace-tests ===&lt;br /&gt;
&lt;br /&gt;
A rooted device isn&#039;t required to run trace-tests.  One may or may not be required to debug test failures, see debugging instructions bove.&lt;br /&gt;
&lt;br /&gt;
Install the &amp;quot;android scripting environment&amp;quot; (sl4a_r*.apk) and the python interpreter (python_for_android_r*.apk) from [http://code.google.com/p/android-scripting/downloads/list here].&lt;br /&gt;
&lt;br /&gt;
You need to apply the &amp;quot;Support for debugging on android&amp;quot; patch from {{bug|600488}} for the time being.&lt;br /&gt;
 hg qimport -n adbg bz:600488 &amp;amp;&amp;amp; hg qpush&lt;br /&gt;
&lt;br /&gt;
Set up a local staging directory for files to be pushed to device.  We&#039;ll push all the junk to /data/local/js/.&lt;br /&gt;
 mkdir testjs&lt;br /&gt;
 cd testjs&lt;br /&gt;
 wget https://bugzilla.mozilla.org/attachment.cgi?id=479421 -O - &amp;gt; testjs.py&lt;br /&gt;
 mkdir js&lt;br /&gt;
 cp $objdir/js/src/js \&lt;br /&gt;
    $objdir/memory/mozalloc/libmozalloc.so \&lt;br /&gt;
    $objdir/nsprpub/pr/src/libnspr4.so \&lt;br /&gt;
    $objdir/nsprpub/lib/libc/src/libplc4.so \&lt;br /&gt;
    $objdir/nsprpub/lib/ds/libplds4.so \&lt;br /&gt;
    js/&lt;br /&gt;
 cp -R $srcdir/js/src/trace-test js/trace-test&lt;br /&gt;
 adb push js /data/local/js&lt;br /&gt;
 adb push testjs.py /sdcard/sl4a/scripts/&lt;br /&gt;
&lt;br /&gt;
Time for a sanity check.  Try running&lt;br /&gt;
 adb shell LD_LIBRARY_PATH=&amp;quot;/data/local/js&amp;quot; /data/local/js/js&lt;br /&gt;
You may or may not get a &amp;quot;&amp;gt; &amp;quot; prompt (and if you do, it&#039;s broken anyway), but if you don&#039;t see any error messages you&#039;re probably good to go.&lt;br /&gt;
&lt;br /&gt;
testjs.py is a wrapper script for trace_test.py (and soon other tests).  We&#039;ll run testjs.py using the python interpreter.  If the scripting environment wasn&#039;t broken, you could run the tests with&lt;br /&gt;
 $ am start -a com.googlecode.android_scripting.action.LAUNCH_TERMINAL -n com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher -e com.googlecode.android_scripting.extra.SCRIPT_NAME testjs.py&lt;br /&gt;
(lol! java).  But it is broken.  So instead, you need to launch the &amp;quot;SL4A&amp;quot; application and then click &amp;quot;testjs.py&amp;quot;.  Choose the &amp;quot;terminal&amp;quot; icon to run the script in the built-in terminal.  You should then see trace-test&#039;s usual progress meter.&lt;br /&gt;
&lt;br /&gt;
When all the tests finish, the failed tests and their output will be in the file /data/local/js/trace-test-failures.txt (it gets stomped on every test run, beware). You may need to mark the /data/local/js directory as writable by all in order for the script to sae its output. See the results with&lt;br /&gt;
 $ adb shell cat /data/local/js/trace-test-failures.txt&lt;br /&gt;
 basic/testComparisons.js&lt;br /&gt;
 Exit code: -11  # oops, segfault&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
To debug a particular test, use the newly-added &amp;lt;code&amp;gt;js -g&amp;lt;/code&amp;gt; option, which has jsshell sleep for 30 seconds on startup, and then attach with gdb using the instructions above.&lt;br /&gt;
 adb shell LD_LIBRARY_PATH=&amp;quot;/data/local/js&amp;quot; /data/local/js/js -g -j -e &amp;quot;const platform=&#039;linux2&#039;; const libdir=&#039;/data/local/js/trace-test/lib/&#039;;&amp;quot; -f /data/local/js/trace-test/lib/prolog.js -f /data/local/js/trace-test/tests/basic/testComparisons.js&lt;br /&gt;
 # attach using gdb instructions for your device&lt;br /&gt;
&lt;br /&gt;
You run trace-test with custom options by editing testjs.py.  For example, to run with -mj, add&lt;br /&gt;
  trace_test.main([&lt;br /&gt;
      JS,&lt;br /&gt;
      &#039;--avoid-stdio&#039;,&lt;br /&gt;
 +    &#039;--jitflags&#039;, &#039;mj&#039;,&lt;br /&gt;
      &#039;--write-failure-log&#039;, failures_file&lt;br /&gt;
  ])&lt;br /&gt;
then&lt;br /&gt;
 adb push testjs.py /sdcard/sl4a/scripts/.&lt;br /&gt;
and re-run using the instructions above.&lt;br /&gt;
&lt;br /&gt;
== Profiling ==&lt;br /&gt;
&lt;br /&gt;
oprofile is enabled in the kernel on the G1 dev phone and SDK emulator images. The oprofile programs (opcontrol, oprofiled) are in &amp;lt;tt&amp;gt;/system/xbin&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Android Development Tips ==&lt;br /&gt;
&lt;br /&gt;
* You can build a full Android OS from source [http://wiki.cyanogenmod.com/index.php?title=Building_from_source following the instructions on Cyanogen&#039;s site].  This helps tremendously with debugging.&lt;br /&gt;
* Running in the Android SDK emulator requires a build with --disable-thumb2.  You might also need to change the emulator options to give it enough space to install and run Fennec: &amp;lt;tt&amp;gt;emulator -partition-size 256 -memory 512&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Pass command line arguments to Fennec as &amp;quot;extras&amp;quot; using the -es argument: &amp;lt;tt&amp;gt;adb shell am start -n org.mozilla.fennec/org.mozilla.fennec.App -es -safe-mode&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nightly builds are available unsigned, so that you can sign them with your local debug key and install them on top of your own debug builds (without uninstalling and losing your profile).  To sign and install the unsigned nightly build:&lt;br /&gt;
&lt;br /&gt;
 wget http://ftp.mozilla.org/pub/mozilla.org/mobile/nightly/latest-mozilla-central-android-r7/gecko-unsigned-unaligned.apk&lt;br /&gt;
 jarsigner -keystore ~/.android/debug.keystore -storepass android -keypass android gecko-unsigned-unaligned.apk androiddebugkey&lt;br /&gt;
 zipalign -f -v 4 gecko-unsigned-unaligned.apk gecko-signed-aligned.apk&lt;br /&gt;
 adb install -r gecko-signed-aligned.apk&lt;br /&gt;
&lt;br /&gt;
== Passing in environment variables to Fennec ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
adb shell am start -a org.mozilla.fennec -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 KEY=VALUE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
* [[Mobile/Fennec/Android/Updates|Updates check implementation]]&lt;br /&gt;
&lt;br /&gt;
== Other Resources ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.mozilla.org/User:Joel_Reymont/Android_Notes Joel&#039;s Notes]&lt;br /&gt;
* [https://wiki.mozilla.org/User:VladVukicevic/Android_Notes Vlad&#039;s Notes]&lt;br /&gt;
* [http://hg.mozilla.org/users/vladimir_mozilla.com/android-testapp/ Vlad&#039;s Test App Hg Repo]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/15-Sep-2010&amp;diff=253743</id>
		<title>Mobile/Notes/15-Sep-2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/15-Sep-2010&amp;diff=253743"/>
		<updated>2010-09-15T16:39:43Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Wednesdays - 9:30am Pacific, 12:30pm Eastern, 16:30 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
== Schedule  ==&lt;br /&gt;
* See [[Mobile/Planning/2.0#Timeline | timeline]]&lt;br /&gt;
** Beta 1 code freeze: Sept 13 (slipped but we are close)&lt;br /&gt;
** Design freeze: Sept 16&lt;br /&gt;
** Beta 2 code freeze: Sept 23 (might depend on Beta 1 slip)&lt;br /&gt;
&lt;br /&gt;
== Major Topics for This Week ==&lt;br /&gt;
&lt;br /&gt;
* Crashes&lt;br /&gt;
** {{bug|595868}} 20 second crash (garbage collection related? we have stack traces on Android but reported on Maemo, may not even be same issue)&lt;br /&gt;
** {{bug|596382}} N900 content crash (shows content for a little while)&lt;br /&gt;
** {{bug|596433}} Illegal instruction on Android (has a fix, needs a little work)&lt;br /&gt;
** {{bug|594563}}, {{bug|596482}} Regular expression on Android&lt;br /&gt;
&lt;br /&gt;
== Front-end ==&lt;br /&gt;
&lt;br /&gt;
* Working on Beta 1 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b1%2B blockers]&lt;br /&gt;
* Also working on Beta 2 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b2%2B blockers]&lt;br /&gt;
** Login Manager patchs landed and we have some followup work for it&lt;br /&gt;
** Tile Manager patch has been reviewed and should be OK to land when cedar lands on m-c. We have some followup bugs to file.&lt;br /&gt;
* Features (see [[Mobile/Planning/2.0 | Planning]] page)&lt;br /&gt;
** Sharing backend for Android and Maemo was pushed to Beta 2&lt;br /&gt;
** Beta Feedback XPI landed&lt;br /&gt;
** We have done some work on simplifying the downloads around downloading&lt;br /&gt;
** Webapps for Maemo might land for Beta 1&lt;br /&gt;
** RSS support is ready for another review&lt;br /&gt;
** Android theme is underway&lt;br /&gt;
** Need Madhava feedback on Master Password patch&lt;br /&gt;
** Making a final decision on clipboard context menu&lt;br /&gt;
* Working with Madhava on UX designs and loose ends&lt;br /&gt;
** Design freeze is looming&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
&lt;br /&gt;
* Android theme work is ready for final review;  see it here:&lt;br /&gt;
http://www.flickr.com/photos/madhava_work/sets/72157624962763028/&lt;br /&gt;
** accompanying notes on their way&lt;br /&gt;
&lt;br /&gt;
* finishing flow explanations for&lt;br /&gt;
** meego vkb&lt;br /&gt;
** android and meego sharing (just to be perfectly clear!)&lt;br /&gt;
** copy paste&lt;br /&gt;
&lt;br /&gt;
The following set of bugs describes the changes to what&#039;s in the nightly front end to get to what we want.  In terms of screen layout, the android theme mockups (and bug) shows the changes required.&lt;br /&gt;
&lt;br /&gt;
*Add-ons Manager&lt;br /&gt;
**{{bug|596594}} - ability to browse more add-ons in add-ons manager&lt;br /&gt;
**{{bug|594795}} - Add a &amp;quot;What&#039;s an Add-on&amp;quot; block to the Add-ons Manager&lt;br /&gt;
*Sharing redesign&lt;br /&gt;
**{{bug|596609}} - share items from the awesomescreen&lt;br /&gt;
**{{Bug|596615}} - autobookmark shared pages/links&lt;br /&gt;
**{{Bug|596632}} - on n900, make sure that SMS and email are sharing options&lt;br /&gt;
*Awesomescreen&lt;br /&gt;
** {{bug|596612}} - indicate &amp;quot;remote&amp;quot; pages in awesomescreen results&lt;br /&gt;
** {{bug|596614}} - focusing the URL field on the awesomescreen should not visibly change categories&lt;br /&gt;
**{{bug|596626}} - Use the vkb with &amp;quot;Go&amp;quot; button when on awesomescreen&lt;br /&gt;
**{{bug|594918}} - dismiss vkb as a user starts to pan the awesomelist&lt;br /&gt;
* Titlebar&lt;br /&gt;
** {{bug|596617}} - stop button should be responsive&lt;br /&gt;
*Find in page&lt;br /&gt;
** {{bug|596619}} - panning the page during findbar use shouldn&#039;t dismiss the findbar&lt;br /&gt;
** {{Bug|596621}} - findbar - need to indicate when no matches found&lt;br /&gt;
*Undo Close Tab&lt;br /&gt;
** {{bug|582583}} - Expose a small, simple UI for &#039;Undo Closed Tab&#039;&lt;br /&gt;
*Presf Pane&lt;br /&gt;
** {{bug|596629}} - Use vkb with &amp;quot;next&amp;quot; button when in prefs (sync)&lt;br /&gt;
*Themeing&lt;br /&gt;
** {{bug|596625}} - Theme Fennec for Android&lt;br /&gt;
&lt;br /&gt;
== Maemo ==&lt;br /&gt;
&lt;br /&gt;
=== Qt ===&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* Custom dlopen {{bug|588607}} 2/3rds done&lt;br /&gt;
** Can load libraries via our own dlopen&lt;br /&gt;
** Need to add new interface to load from regions within a file&lt;br /&gt;
** Compression may be difficult&lt;br /&gt;
* Investigating using gold {{bug|596024}}&lt;br /&gt;
&lt;br /&gt;
== Electrolysis ==&lt;br /&gt;
&lt;br /&gt;
== Layers==&lt;br /&gt;
&lt;br /&gt;
[[Mobile/Layers#2.0_b1_TODO|Some TODOs for b1]].&lt;br /&gt;
&lt;br /&gt;
== General Platform ==&lt;br /&gt;
&lt;br /&gt;
=== Geolocation Working Group ===&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
* Slipping the last of the platform pieces that aren&#039;t NPOTB for firefox into the tree today.  (565843 needs approval2.0)&lt;br /&gt;
* Dealing with a fun bug that a previous patch exposed (Bug 594964)&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
* Patches done for nsIEncodedChannel support in e10s (needed to get gzip/gunzip right for some cases), need review+landing, which should hopefully happen today.&lt;br /&gt;
* Working on Pause/Resume regression described in {{bug|596402}}&lt;br /&gt;
* Working w/ Honza on crash/assert-botch described in {{bug|596059}}&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
* android update status -- in progress.&lt;br /&gt;
** patches look good but i&#039;m uploading snippets to the wrong place -- i need to upload them to the *previous* nightly&#039;s buildid; same with release patches&lt;br /&gt;
** hoping to fix/review/land nightly patches today.&lt;br /&gt;
* android l10n -- will need to investigate how omnijar will change things&lt;br /&gt;
* android tests -- launching tests, running into remote logging issues&lt;br /&gt;
** bear to try using patches attached to bugs&lt;br /&gt;
*** android unit/talos tests testing with patch for {{bug|596132}} to finalize steps&lt;br /&gt;
** bug to order 10 tegras filed&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
=== Manual ===&lt;br /&gt;
* QA is having a work week, so take this opportunity to take to your 2.0 feature QA for anything that they should know.&lt;br /&gt;
* Notes:&lt;br /&gt;
** Builds are complete broken over the past 2-3 days. We can&#039;t provide any test coverage [https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&amp;amp;chfieldto=Now&amp;amp;chfield=bug_status&amp;amp;query_format=advanced&amp;amp;chfieldfrom=2010-08-10&amp;amp;chfieldvalue=resolved&amp;amp;bug_status=RESOLVED&amp;amp;product=Fennec on a lot of bugs] until builds are actually stable.&lt;br /&gt;
*** [https://bugzilla.mozilla.org/show_bug.cgi?id=595868 Builds are crashing]&lt;br /&gt;
**** Others: {{bug|596482}}, {{bug|596289}}, {{bug|596433}}, {{bug|594563}}&lt;br /&gt;
*** [https://bugzilla.mozilla.org/show_bug.cgi?id=596382 Pages don&#039;t load] because the content process crashes&lt;br /&gt;
*** Finally, why is [https://bugzilla.mozilla.org/show_bug.cgi?id=596610 tinderbox green across the board] when all of our builds are crashing on startup?&lt;br /&gt;
*** Finallyx2, why did we not branch before jagermonkey landed?&lt;br /&gt;
*** Finallyx3, where was the testing on ARM for jagermonkey before it landed?&lt;br /&gt;
* New Bugs over the week: [http://bit.ly/97ReXI filed]&lt;br /&gt;
* Results from [https://wiki.mozilla.org/QA/Fennec/Waverley#Results nightly Smoketest runs].&lt;br /&gt;
* [http://quality.mozilla.org/qmo-news/2010/09/14/firefox-moible-2-beta-testday-results/ MobiFx Testday] Results&lt;br /&gt;
&lt;br /&gt;
=== Automation ===&lt;br /&gt;
* talos&lt;br /&gt;
** {{bug|582997}} - working patch for android and n900, need to land&lt;br /&gt;
&lt;br /&gt;
* android&lt;br /&gt;
** lots of little fixes in the patch queue now, sounds like :bear has done a lot of work as we are finding some of these little bugs now:)&lt;br /&gt;
&lt;br /&gt;
* browser-chrome - need some attention, carryover from last week&lt;br /&gt;
** new test files {{bug|489163}} and {{bug|570706}} are blocked on awesomebar problem&lt;br /&gt;
** {{bug|593463}} - awesomescreen.js problem&lt;br /&gt;
&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Unittests/green#mochitest mochitest: green]]&lt;br /&gt;
** {{bug|590121}} - FIXED&lt;br /&gt;
** {{bug|590248}} and {{bug|587646}} account for 60% of known mochitest failures on n900!, no progress on these two bugs?!  Still no traction on this - WEEK #4!!!&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/15-Sep-2010&amp;diff=253739</id>
		<title>Mobile/Notes/15-Sep-2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/15-Sep-2010&amp;diff=253739"/>
		<updated>2010-09-15T16:38:45Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Wednesdays - 9:30am Pacific, 12:30pm Eastern, 16:30 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
== Schedule  ==&lt;br /&gt;
* See [[Mobile/Planning/2.0#Timeline | timeline]]&lt;br /&gt;
** Beta 1 code freeze: Sept 13 (slipped but we are close)&lt;br /&gt;
** Design freeze: Sept 16&lt;br /&gt;
** Beta 2 code freeze: Sept 23 (might depend on Beta 1 slip)&lt;br /&gt;
&lt;br /&gt;
== Major Topics for This Week ==&lt;br /&gt;
&lt;br /&gt;
* Crashes&lt;br /&gt;
** {{bug|595868}} 20 second crash (garbage collection related? we have stack traces on Android but reported on Maemo, may not even be same issue)&lt;br /&gt;
** {{bug|596382}} N900 content crash (shows content for a little while)&lt;br /&gt;
** {{bug|596433}} Illegal instruction on Android (has a fix, needs a little work)&lt;br /&gt;
** {{bug|594563}}, {{bug|596482}} Regular expression on Android&lt;br /&gt;
&lt;br /&gt;
== Front-end ==&lt;br /&gt;
&lt;br /&gt;
* Working on Beta 1 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b1%2B blockers]&lt;br /&gt;
* Also working on Beta 2 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b2%2B blockers]&lt;br /&gt;
** Login Manager patchs landed and we have some followup work for it&lt;br /&gt;
** Tile Manager patch has been reviewed and should be OK to land when cedar lands on m-c. We have some followup bugs to file.&lt;br /&gt;
* Features (see [[Mobile/Planning/2.0 | Planning]] page)&lt;br /&gt;
** Sharing backend for Android and Maemo was pushed to Beta 2&lt;br /&gt;
** Beta Feedback XPI landed&lt;br /&gt;
** We have done some work on simplifying the downloads around downloading&lt;br /&gt;
** Webapps for Maemo might land for Beta 1&lt;br /&gt;
** RSS support is ready for another review&lt;br /&gt;
** Android theme is underway&lt;br /&gt;
** Need Madhava feedback on Master Password patch&lt;br /&gt;
** Making a final decision on clipboard context menu&lt;br /&gt;
* Working with Madhava on UX designs and loose ends&lt;br /&gt;
** Design freeze is looming&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
&lt;br /&gt;
* Android theme work is ready for final review;  see it here:&lt;br /&gt;
http://www.flickr.com/photos/madhava_work/sets/72157624962763028/&lt;br /&gt;
** accompanying notes on their way&lt;br /&gt;
&lt;br /&gt;
* finishing flow explanations for&lt;br /&gt;
** meego vkb&lt;br /&gt;
** android and meego sharing (just to be perfectly clear!)&lt;br /&gt;
** copy paste&lt;br /&gt;
&lt;br /&gt;
The following set of bugs describes the changes to what&#039;s in the nightly front end to get to what we want.  In terms of screen layout, the android theme mockups (and bug) shows the changes required.&lt;br /&gt;
&lt;br /&gt;
*Add-ons Manager&lt;br /&gt;
**{{bug|596594}} - ability to browse more add-ons in add-ons manager&lt;br /&gt;
**{{bug|594795}} - Add a &amp;quot;What&#039;s an Add-on&amp;quot; block to the Add-ons Manager&lt;br /&gt;
*Sharing redesign&lt;br /&gt;
**{{bug|596609}} - share items from the awesomescreen&lt;br /&gt;
**{{Bug|596615}} - autobookmark shared pages/links&lt;br /&gt;
**{{Bug|596632}} - on n900, make sure that SMS and email are sharing options&lt;br /&gt;
*Awesomescreen&lt;br /&gt;
** {{bug|596612}} - indicate &amp;quot;remote&amp;quot; pages in awesomescreen results&lt;br /&gt;
** {{bug|596614}} - focusing the URL field on the awesomescreen should not visibly change categories&lt;br /&gt;
**{{bug|596626}} - Use the vkb with &amp;quot;Go&amp;quot; button when on awesomescreen&lt;br /&gt;
**{{bug|594918}} - dismiss vkb as a user starts to pan the awesomelist&lt;br /&gt;
* Titlebar&lt;br /&gt;
** {{bug|596617}} - stop button should be responsive&lt;br /&gt;
*Find in page&lt;br /&gt;
** {{bug|596619}} - panning the page during findbar use shouldn&#039;t dismiss the findbar&lt;br /&gt;
** {{Bug|596621}} - findbar - need to indicate when no matches found&lt;br /&gt;
*Undo Close Tab&lt;br /&gt;
** {{bug|582583}} - Expose a small, simple UI for &#039;Undo Closed Tab&#039;&lt;br /&gt;
*Presf Pane&lt;br /&gt;
** {{bug|596629}} - Use vkb with &amp;quot;next&amp;quot; button when in prefs (sync)&lt;br /&gt;
*Themeing&lt;br /&gt;
** {{bug|596625}} - Theme Fennec for Android&lt;br /&gt;
&lt;br /&gt;
== Maemo ==&lt;br /&gt;
&lt;br /&gt;
=== Qt ===&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* Custom dlopen {{bug|588607}} 2/3rds done&lt;br /&gt;
** Can load libraries via our own dlopen&lt;br /&gt;
** Need to add new interface to load from regions within a file&lt;br /&gt;
** Compression may be difficult&lt;br /&gt;
* Investigating using gold {{bug|596024}}&lt;br /&gt;
&lt;br /&gt;
== Electrolysis ==&lt;br /&gt;
&lt;br /&gt;
== Layers==&lt;br /&gt;
&lt;br /&gt;
[[Mobile/Layers#2.0_b1_TODO|Some TODOs for b1]].&lt;br /&gt;
&lt;br /&gt;
== General Platform ==&lt;br /&gt;
&lt;br /&gt;
=== Geolocation Working Group ===&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
* Slipping the last of the platform pieces that aren&#039;t NPOTB for firefox into the tree today.  (565843 needs approval2.0)&lt;br /&gt;
* Dealing with a fun bug that a previous patch exposed (Bug 594964)&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
* Patches done for nsIEncodedChannel support in e10s (needed to get gzip/gunzip right for some cases), need review+landing, which should hopefully happen today.&lt;br /&gt;
* Working on Pause/Resume regression described in {{bug|596402}}&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
* android update status -- in progress.&lt;br /&gt;
** patches look good but i&#039;m uploading snippets to the wrong place -- i need to upload them to the *previous* nightly&#039;s buildid; same with release patches&lt;br /&gt;
** hoping to fix/review/land nightly patches today.&lt;br /&gt;
* android l10n -- will need to investigate how omnijar will change things&lt;br /&gt;
* android tests -- launching tests, running into remote logging issues&lt;br /&gt;
** bear to try using patches attached to bugs&lt;br /&gt;
*** android unit tests waiting on {{bug|596132}} to finalize steps&lt;br /&gt;
*** android talos tests also waiting on {{bug|596132}} and steps are being iterated on now&lt;br /&gt;
** bug to order 10 tegras filed&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
=== Manual ===&lt;br /&gt;
* QA is having a work week, so take this opportunity to take to your 2.0 feature QA for anything that they should know.&lt;br /&gt;
* Notes:&lt;br /&gt;
** Builds are complete broken over the past 2-3 days. We can&#039;t provide any test coverage [https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&amp;amp;chfieldto=Now&amp;amp;chfield=bug_status&amp;amp;query_format=advanced&amp;amp;chfieldfrom=2010-08-10&amp;amp;chfieldvalue=resolved&amp;amp;bug_status=RESOLVED&amp;amp;product=Fennec on a lot of bugs] until builds are actually stable.&lt;br /&gt;
*** [https://bugzilla.mozilla.org/show_bug.cgi?id=595868 Builds are crashing]&lt;br /&gt;
**** Others: {{bug|596482}}, {{bug|596289}}, {{bug|596433}}, {{bug|594563}}&lt;br /&gt;
*** [https://bugzilla.mozilla.org/show_bug.cgi?id=596382 Pages don&#039;t load] because the content process crashes&lt;br /&gt;
*** Finally, why is [https://bugzilla.mozilla.org/show_bug.cgi?id=596610 tinderbox green across the board] when all of our builds are crashing on startup?&lt;br /&gt;
*** Finallyx2, why did we not branch before jagermonkey landed?&lt;br /&gt;
*** Finallyx3, where was the testing on ARM for jagermonkey before it landed?&lt;br /&gt;
* New Bugs over the week: [http://bit.ly/97ReXI filed]&lt;br /&gt;
* Results from [https://wiki.mozilla.org/QA/Fennec/Waverley#Results nightly Smoketest runs].&lt;br /&gt;
* [http://quality.mozilla.org/qmo-news/2010/09/14/firefox-moible-2-beta-testday-results/ MobiFx Testday] Results&lt;br /&gt;
&lt;br /&gt;
=== Automation ===&lt;br /&gt;
* talos&lt;br /&gt;
** {{bug|582997}} - working patch for android and n900, need to land&lt;br /&gt;
&lt;br /&gt;
* android&lt;br /&gt;
** lots of little fixes in the patch queue now, sounds like :bear has done a lot of work as we are finding some of these little bugs now:)&lt;br /&gt;
&lt;br /&gt;
* browser-chrome - need some attention, carryover from last week&lt;br /&gt;
** new test files {{bug|489163}} and {{bug|570706}} are blocked on awesomebar problem&lt;br /&gt;
** {{bug|593463}} - awesomescreen.js problem&lt;br /&gt;
&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Unittests/green#mochitest mochitest: green]]&lt;br /&gt;
** {{bug|590121}} - FIXED&lt;br /&gt;
** {{bug|590248}} and {{bug|587646}} account for 60% of known mochitest failures on n900!, no progress on these two bugs?!  Still no traction on this - WEEK #4!!!&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/15-Sep-2010&amp;diff=253727</id>
		<title>Mobile/Notes/15-Sep-2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/15-Sep-2010&amp;diff=253727"/>
		<updated>2010-09-15T16:35:03Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Networking */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Wednesdays - 9:30am Pacific, 12:30pm Eastern, 16:30 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
== Schedule  ==&lt;br /&gt;
* See [[Mobile/Planning/2.0#Timeline | timeline]]&lt;br /&gt;
** Beta 1 code freeze: Sept 13 (slipped but we are close)&lt;br /&gt;
** Design freeze: Sept 16&lt;br /&gt;
** Beta 2 code freeze: Sept 23 (might depend on Beta 1 slip)&lt;br /&gt;
&lt;br /&gt;
== Major Topics for This Week ==&lt;br /&gt;
&lt;br /&gt;
* Crashes&lt;br /&gt;
** {{bug|595868}} 20 second crash (garbage collection related? we have stack traces on Android but reported on Maemo, may not even be same issue)&lt;br /&gt;
** {{bug|596382}} N900 content crash (shows content for a little while)&lt;br /&gt;
** {{bug|596433}} Illegal instruction on Android (has a fix, needs a little work)&lt;br /&gt;
** {{bug|594563}}, {{bug|596482}} Regular expression on Android&lt;br /&gt;
&lt;br /&gt;
== Front-end ==&lt;br /&gt;
&lt;br /&gt;
* Working on Beta 1 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b1%2B blockers]&lt;br /&gt;
* Also working on Beta 2 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b2%2B blockers]&lt;br /&gt;
** Login Manager patchs landed and we have some followup work for it&lt;br /&gt;
** Tile Manager patch has been reviewed and should be OK to land when cedar lands on m-c. We have some followup bugs to file.&lt;br /&gt;
* Features (see [[Mobile/Planning/2.0 | Planning]] page)&lt;br /&gt;
** Sharing backend for Android and Maemo was pushed to Beta 2&lt;br /&gt;
** Beta Feedback XPI landed&lt;br /&gt;
** We have done some work on simplifying the downloads around downloading&lt;br /&gt;
** Webapps for Maemo might land for Beta 1&lt;br /&gt;
** RSS support is ready for another review&lt;br /&gt;
** Android theme is underway&lt;br /&gt;
** Need Madhava feedback on Master Password patch&lt;br /&gt;
** Making a final decision on clipboard context menu&lt;br /&gt;
* Working with Madhava on UX designs and loose ends&lt;br /&gt;
** Design freeze is looming&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
&lt;br /&gt;
* Android theme work is ready for final review;  see it here:&lt;br /&gt;
&lt;br /&gt;
* finishing flow explanations for&lt;br /&gt;
** meego vkb&lt;br /&gt;
** android and meego sharing (just to be perfectly clear!)&lt;br /&gt;
** copy paste&lt;br /&gt;
&lt;br /&gt;
The following set of bugs describes the changes to what&#039;s in the nightly front end to get to what we want.  In terms of screen layout, the android theme mockups (and bug) shows the changes required.&lt;br /&gt;
&lt;br /&gt;
*Add-ons Manager&lt;br /&gt;
**{{bug|596594}} - ability to browse more add-ons in add-ons manager&lt;br /&gt;
**{{bug|594795}} - Add a &amp;quot;What&#039;s an Add-on&amp;quot; block to the Add-ons Manager&lt;br /&gt;
*Sharing redesign&lt;br /&gt;
**{{bug|596609}} - share items from the awesomescreen&lt;br /&gt;
**{{Bug|596615}} - autobookmark shared pages/links&lt;br /&gt;
**{{Bug|596632}} - on n900, make sure that SMS and email are sharing options&lt;br /&gt;
*Awesomescreen&lt;br /&gt;
** {{bug|596612}} - indicate &amp;quot;remote&amp;quot; pages in awesomescreen results&lt;br /&gt;
** {{bug|596614}} - focusing the URL field on the awesomescreen should not visibly change categories&lt;br /&gt;
**{{bug|596626}} - Use the vkb with &amp;quot;Go&amp;quot; button when on awesomescreen&lt;br /&gt;
**{{bug|594918}} - dismiss vkb as a user starts to pan the awesomelist&lt;br /&gt;
* Titlebar&lt;br /&gt;
** {{bug|596617}} - stop button should be responsive&lt;br /&gt;
*Find in page&lt;br /&gt;
** {{bug|596619}} - panning the page during findbar use shouldn&#039;t dismiss the findbar&lt;br /&gt;
** {{Bug|596621}} - findbar - need to indicate when no matches found&lt;br /&gt;
*Undo Close Tab&lt;br /&gt;
** {{bug|582583}} - Expose a small, simple UI for &#039;Undo Closed Tab&#039;&lt;br /&gt;
*Presf Pane&lt;br /&gt;
** {{bug|596629}} - Use vkb with &amp;quot;next&amp;quot; button when in prefs (sync)&lt;br /&gt;
*Themeing&lt;br /&gt;
** {{bug|596625}} - Theme Fennec for Android&lt;br /&gt;
&lt;br /&gt;
== Maemo ==&lt;br /&gt;
&lt;br /&gt;
=== Qt ===&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
* Custom dlopen {{bug|588607}} 2/3rds done&lt;br /&gt;
** Can load libraries via our own dlopen&lt;br /&gt;
** Need to add new interface to load from regions within a file&lt;br /&gt;
** Compression may be difficult&lt;br /&gt;
* Investigating using gold {{bug|596024}}&lt;br /&gt;
&lt;br /&gt;
== Electrolysis ==&lt;br /&gt;
&lt;br /&gt;
== Layers==&lt;br /&gt;
&lt;br /&gt;
[[Mobile/Layers#2.0_b1_TODO|Some TODOs for b1]].&lt;br /&gt;
&lt;br /&gt;
== General Platform ==&lt;br /&gt;
&lt;br /&gt;
=== Geolocation Working Group ===&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
* Slipping the last of the platform pieces that aren&#039;t NPOTB for firefox into the tree today.  (565843 needs approval2.0)&lt;br /&gt;
* Dealing with a fun bug that a previous patch exposed (Bug 594964)&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
Patches done for nsIEncodedChannel support in e10s (needed to get gzip/gunzip right for some cases), need review+landing, which should hopefully happen today.&lt;br /&gt;
&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
* android update status -- in progress.&lt;br /&gt;
** patches look good but i&#039;m uploading snippets to the wrong place -- i need to upload them to the *previous* nightly&#039;s buildid; same with release patches&lt;br /&gt;
** hoping to fix/review/land nightly patches today.&lt;br /&gt;
* android l10n -- will need to investigate how omnijar will change things&lt;br /&gt;
* android tests -- launching tests, running into remote logging issues&lt;br /&gt;
** bear to try using patches attached to bugs&lt;br /&gt;
*** android unit tests waiting on bug 596132 to finalize steps&lt;br /&gt;
*** android talos tests also waiting on bug 596132 and steps are being iterated on now&lt;br /&gt;
** bug to order 10 tegras filed&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
=== Manual ===&lt;br /&gt;
* QA is having a work week, so take this opportunity to take to your 2.0 feature QA for anything that they should know.&lt;br /&gt;
* Notes:&lt;br /&gt;
** Builds are complete broken over the past 2-3 days. We can&#039;t provide any test coverage [https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&amp;amp;chfieldto=Now&amp;amp;chfield=bug_status&amp;amp;query_format=advanced&amp;amp;chfieldfrom=2010-08-10&amp;amp;chfieldvalue=resolved&amp;amp;bug_status=RESOLVED&amp;amp;product=Fennec on a lot of bugs] until builds are actually stable.&lt;br /&gt;
*** [https://bugzilla.mozilla.org/show_bug.cgi?id=595868 Builds are crashing]&lt;br /&gt;
**** Others: {{bug|596482}}, {{bug|596289}}, {{bug|596433}}, {{bug|594563}}&lt;br /&gt;
*** [https://bugzilla.mozilla.org/show_bug.cgi?id=596382 Pages don&#039;t load] because the content process crashes&lt;br /&gt;
*** Finally, why is [https://bugzilla.mozilla.org/show_bug.cgi?id=596610 tinderbox green across the board] when all of our builds are crashing on startup?&lt;br /&gt;
*** Finallyx2, why did we not branch before jagermonkey landed?&lt;br /&gt;
*** Finallyx3, where was the testing on ARM for jagermonkey before it landed?&lt;br /&gt;
* New Bugs over the week: [http://bit.ly/97ReXI filed]&lt;br /&gt;
* [https://bugzilla.mozilla.org/show_bug.cgi?id=591368 Beta Tester Tools] landed&lt;br /&gt;
* Results from [https://wiki.mozilla.org/QA/Fennec/Waverley#Results nightly Smoketest runs].&lt;br /&gt;
* [http://quality.mozilla.org/qmo-news/2010/09/14/firefox-moible-2-beta-testday-results/ MobiFx Testday] Results&lt;br /&gt;
&lt;br /&gt;
=== Automation ===&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=252866</id>
		<title>LandingQueue</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=252866"/>
		<updated>2010-09-13T18:37:46Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Ride-along patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Landing Queue for Mozilla-Central  =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please add an item containing your name, the bugs you want to land, and what the blocking status of them is to the bottom of the list. After you push, remove yourself from the top of the list. You should only push after consulting with the tree sheriff. &lt;br /&gt;
&lt;br /&gt;
* Your name, bug numbers and their blocker-status here.&lt;br /&gt;
* jdm - bug 474356&lt;br /&gt;
&lt;br /&gt;
== Ride-along patches  ==&lt;br /&gt;
&lt;br /&gt;
Add yourself here if you would prefer that some kind soul check your patch in on your behalf. &#039;&#039;&#039;And make sure you&#039;ve read [http://blog.bonardo.net/2010/06/22/so-youre-about-to-use-checkin-needed&amp;amp;nbsp; So You&#039;re About To Use checkin-needed]!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Priority ride-alongs are these [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking2.0%3Abeta6%20:toolkit,firefox%20kw%3Acheckin-needed checkin-needed B6 blockers].&lt;br /&gt;
&lt;br /&gt;
Approval+ ride-alongs:&lt;br /&gt;
* crowder - bug 589025&lt;br /&gt;
* crowder - bug 591081&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/01-Sep-2010&amp;diff=250179</id>
		<title>Mobile/Notes/01-Sep-2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/01-Sep-2010&amp;diff=250179"/>
		<updated>2010-09-01T16:10:27Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* General Platform */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Wednesdays - 9:30am Pacific, 12:30pm Eastern, 16:30 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
== Schedule  ==&lt;br /&gt;
* See [[Mobile/Planning/2.0#Timeline | timeline]]&lt;br /&gt;
** Alpha 1 released&lt;br /&gt;
** Beta 1 code freeze: Sept 7&lt;br /&gt;
*** ~ 1 week&lt;br /&gt;
&lt;br /&gt;
== Major Topics for This Week ==&lt;br /&gt;
&lt;br /&gt;
== Front-end ==&lt;br /&gt;
* Working on Beta 1 [https://bugzilla.mozilla.org/buglist.cgi?quicksearch=blocking-fennec%3A2.0b1%2B blockers]&lt;br /&gt;
* Features (see [[Mobile/Planning/2.0 | Planning]] page)&lt;br /&gt;
** Project to remove tile manager is well underway&lt;br /&gt;
** Working on tweaks to the new Awesomebarscreen search provider layout&lt;br /&gt;
** Looking for feedback on the &amp;quot;two-taps&amp;quot; behavior for virtual keyboards&lt;br /&gt;
* Working with Madhava on UX designs and loose ends&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
* Working with Martell on the Android theme [http://mozilla.seanmartell.com/fennec/fimo/mockups-full-v4.jpg mockups]&lt;br /&gt;
&lt;br /&gt;
== Maemo ==&lt;br /&gt;
&lt;br /&gt;
=== Qt ===&lt;br /&gt;
&lt;br /&gt;
== Android ==&lt;br /&gt;
&lt;br /&gt;
== Electrolysis ==&lt;br /&gt;
&lt;br /&gt;
== Layers==&lt;br /&gt;
&lt;br /&gt;
== General Platform ==&lt;br /&gt;
&lt;br /&gt;
=== Geolocation ===&lt;br /&gt;
&lt;br /&gt;
=== Video ===&lt;br /&gt;
&lt;br /&gt;
=== Camera ===&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Performance ===&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
Core download manager work is done, a couple of bugs still in progress {{bug|589025}}, {{bug|567267}}, {{bug|591081}}&lt;br /&gt;
=== Graphics ===&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
&lt;br /&gt;
== Release Engineering ==&lt;br /&gt;
&lt;br /&gt;
== QA ==&lt;br /&gt;
=== Manual ===&lt;br /&gt;
&lt;br /&gt;
=== Automation ===&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=249060</id>
		<title>LandingQueue</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=249060"/>
		<updated>2010-08-27T20:13:17Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Ride-along patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Landing Queue for Mozilla-Central  =&lt;br /&gt;
* Bas - blocking-beta5&lt;br /&gt;
* ddahl&lt;br /&gt;
** {{bug|591008}} - [orange] test fix r=sdwilsh a=sdwilsh&lt;br /&gt;
** {{bug|588730}} - r=dietrich a=blocking2.0&lt;br /&gt;
* mfinkle&lt;br /&gt;
** {{bug|584610}} - blocking-fennec (bump buffer size from 1024 to 8192)&lt;br /&gt;
* jlebar&lt;br /&gt;
** {{bug|590573}} - blocking beta N&lt;br /&gt;
** {{bug|589306}} - npotb&lt;br /&gt;
** {{bug|590179}} - ridealong from bz, a=beltzner&lt;br /&gt;
* felipe&lt;br /&gt;
** {{bug|574833}} - persona theme covers aero caption buttons (blocks betaN)&lt;br /&gt;
** {{bug|586961}} - Access key label click on label, not controlled element (blocks betaN)&lt;br /&gt;
** {{bug|575440}} - Deal with eWindowType_toplevel on WM_GESTURENOTIFY for bug 130078 landing (blocks 130078)&lt;br /&gt;
* gavin (bug 591026, bug 587691, bug 591371)&lt;br /&gt;
* tn: bug 130078 (make the world a better place)&lt;br /&gt;
* bz: bug 590179 (make mac faster)&lt;br /&gt;
*blassey&lt;br /&gt;
** {{bug|591153}}&lt;br /&gt;
** {{bug|591412}}&lt;br /&gt;
&lt;br /&gt;
Please add an item containing your name, the bugs you want to land, and what the blocking status of them is to the bottom of the list. After you push, remove yourself from the top of the list. You should only push after consulting with the tree sheriff.&lt;br /&gt;
&lt;br /&gt;
== Ride-along patches  ==&lt;br /&gt;
&lt;br /&gt;
Add yourself here if you would prefer that some kind soul check your patch in on your behalf. &amp;lt;b&amp;gt;And make sure you&#039;ve read http://blog.bonardo.net/2010/06/22/so-youre-about-to-use-checkin-needed !&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* {{bug|562313}} [https://bugzilla.mozilla.org/attachment.cgi?id=469916 attachment 469916] - Links browsercomps into firefox.exe statically, approved for landing before beta5 (checkin data in patch)&lt;br /&gt;
* {{bug|587691}} - ready-to-import patch&lt;br /&gt;
* {{bug|416743}} - r=bz, not part of the build, killing a silly assertion&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Blassey/Notes/Android&amp;diff=246465</id>
		<title>User:Blassey/Notes/Android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Blassey/Notes/Android&amp;diff=246465"/>
		<updated>2010-08-18T19:17:29Z</updated>

		<summary type="html">&lt;p&gt;Crowder: android:debuggable=&amp;quot;true&amp;quot; is already in there&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Build Env==&lt;br /&gt;
&lt;br /&gt;
After normal linux build pre-reqs:&lt;br /&gt;
&lt;br /&gt;
  wget ftp://ftp.mozilla.org/pub/mobile/source/android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
  wget http://dl.google.com/android/android-sdk_r06-linux_86.tgz&lt;br /&gt;
  tar -xf android-sdk_r06-linux_86.tgz&lt;br /&gt;
  tar -xjf android-ndk-r4-linux-x86-crystax-1.tar.bz2&lt;br /&gt;
  ./android-sdk-linux_86/tools/android update sdk&lt;br /&gt;
&lt;br /&gt;
And already set up VM can be found here: http://lassey.us/droid-vm.7z&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
Nvidia&#039;s gdb is better: http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip&lt;br /&gt;
&lt;br /&gt;
In order to attach before things get running, launch with: &lt;br /&gt;
   adb shell am start -a org.mozilla.gecko.DEBUG -n org.mozilla.fennec/org.mozilla.fennec.App&lt;br /&gt;
&lt;br /&gt;
and just click launch once gdb is attached. If you need to debug a crash that happens before XRE_Main is called, the patch on {{bug|572247}} may be useful.&lt;br /&gt;
&lt;br /&gt;
===Env Vars===&lt;br /&gt;
If you need to set and env var at run time, use append --es env# VAR=VAL to your activity manager command where # is the ordered number of variables for example:&lt;br /&gt;
  adb shell am start -a android.activity.MAIN -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 VAR=val --es env1 FOO=bar&lt;br /&gt;
&lt;br /&gt;
You may need {{bug|578493}} if the env var you&#039;re using is tested before XRE_Main is called&lt;br /&gt;
&lt;br /&gt;
===PR Logging===&lt;br /&gt;
You can use the env vars as described above to make logging work (along with {{bug|578493}}). With just that you can log to a file&lt;br /&gt;
  adb shell am start -a android.activity.MAIN -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 NSPR_LOG_MODULES=all:5 --es env1 NSPR_LOG_FILE=/mnt/sdcard/log.txt&lt;br /&gt;
&lt;br /&gt;
With the patch on {{bug|578496}} you can have the logging directed to the android logs and as such only need:&lt;br /&gt;
  adb shell am start -a android.activity.MAIN -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 NSPR_LOG_MODULES=all:5&lt;br /&gt;
&lt;br /&gt;
==debugging without rooting==&lt;br /&gt;
&lt;br /&gt;
with Froyo you can debug without rooting your phone. However to make this work with the nvidia gdb (which I found more reliable than the android r3 gdb) you need to modify install.sh and debug.sh.&lt;br /&gt;
&lt;br /&gt;
first, change the location where install.sh copies gdbserver to somewhere writable by a non-root process. I used /data/local. Be sure to update that both in the push command and the chmod command.&lt;br /&gt;
&lt;br /&gt;
second, update debug.sh with the new location of gdbserver.&lt;br /&gt;
&lt;br /&gt;
finally, you&#039;ll need to add run-as $2 to the adb shell command that launches gdbserver. In the end you should have:&lt;br /&gt;
install.sh:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mkdir lib&lt;br /&gt;
  adb push prebuilt/gdbserver /data/local&lt;br /&gt;
  adb shell chmod 755 /data/local/gdbserver&lt;br /&gt;
  for file in $(adb shell ls /system/lib | tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot; | tr &amp;quot;\r&amp;quot; &amp;quot; &amp;quot;); do&lt;br /&gt;
      adb pull /system/lib/$file lib&lt;br /&gt;
  done&lt;br /&gt;
  adb pull /system/bin/app_process lib &lt;br /&gt;
&lt;br /&gt;
debug.sh:&lt;br /&gt;
  !/bin/sh&lt;br /&gt;
  if [ $# -ne 2 ]&lt;br /&gt;
  then&lt;br /&gt;
      echo &amp;quot;usage: $0 /path/to/your/library.so packagename.of.your.activity&amp;quot;&lt;br /&gt;
      echo &amp;quot;for example:&amp;quot;&lt;br /&gt;
      echo &amp;quot;  $0 /code/mydemo/libs/armeabi/libmydemo.so com.nvidia.devtech.mydemo&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  if [ ! -f $1 ]&lt;br /&gt;
  then&lt;br /&gt;
      echo &amp;quot;ERROR: That library file doesn&#039;t exist&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  cp $1 lib&lt;br /&gt;
  &lt;br /&gt;
  p=`adb shell ps | grep $2 | awk &#039;{print $2}&#039;`&lt;br /&gt;
  if [ &amp;quot;$p&amp;quot; = &amp;quot;&amp;quot; ];&lt;br /&gt;
  then&lt;br /&gt;
      echo &amp;quot;ERROR: That doesn&#039;t seem to be a running process. Please make sure your&amp;quot;&lt;br /&gt;
      echo &amp;quot;application has been started and that you are using the correct&amp;quot;&lt;br /&gt;
      echo &amp;quot;namespace argument.&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  adb forward tcp:12345 tcp:12345&lt;br /&gt;
  adb shell run-as $2 /data/local/gdbserver --attach :12345 $p&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=User:Blassey/Notes/Android&amp;diff=246461</id>
		<title>User:Blassey/Notes/Android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=User:Blassey/Notes/Android&amp;diff=246461"/>
		<updated>2010-08-18T19:07:26Z</updated>

		<summary type="html">&lt;p&gt;Crowder: fixing what looks like a cut and paste error&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Build Env==&lt;br /&gt;
&lt;br /&gt;
After normal linux build pre-reqs:&lt;br /&gt;
&lt;br /&gt;
  wget ftp://ftp.mozilla.org/pub/mobile/source/android-ndk-r4c-0moz3.tar.bz2&lt;br /&gt;
  wget http://dl.google.com/android/android-sdk_r06-linux_86.tgz&lt;br /&gt;
  tar -xf android-sdk_r06-linux_86.tgz&lt;br /&gt;
  tar -xjf android-ndk-r4-linux-x86-crystax-1.tar.bz2&lt;br /&gt;
  ./android-sdk-linux_86/tools/android update sdk&lt;br /&gt;
&lt;br /&gt;
And already set up VM can be found here: http://lassey.us/droid-vm.7z&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
&lt;br /&gt;
Nvidia&#039;s gdb is better: http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip&lt;br /&gt;
&lt;br /&gt;
In order to attach before things get running, launch with: &lt;br /&gt;
   adb shell am start -a org.mozilla.gecko.DEBUG -n org.mozilla.fennec/org.mozilla.fennec.App&lt;br /&gt;
&lt;br /&gt;
and just click launch once gdb is attached. If you need to debug a crash that happens before XRE_Main is called, the patch on {{bug|572247}} may be useful.&lt;br /&gt;
&lt;br /&gt;
===Env Vars===&lt;br /&gt;
If you need to set and env var at run time, use append --es env# VAR=VAL to your activity manager command where # is the ordered number of variables for example:&lt;br /&gt;
  adb shell am start -a android.activity.MAIN -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 VAR=val --es env1 FOO=bar&lt;br /&gt;
&lt;br /&gt;
You may need {{bug|578493}} if the env var you&#039;re using is tested before XRE_Main is called&lt;br /&gt;
&lt;br /&gt;
===PR Logging===&lt;br /&gt;
You can use the env vars as described above to make logging work (along with {{bug|578493}}). With just that you can log to a file&lt;br /&gt;
  adb shell am start -a android.activity.MAIN -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 NSPR_LOG_MODULES=all:5 --es env1 NSPR_LOG_FILE=/mnt/sdcard/log.txt&lt;br /&gt;
&lt;br /&gt;
With the patch on {{bug|578496}} you can have the logging directed to the android logs and as such only need:&lt;br /&gt;
  adb shell am start -a android.activity.MAIN -n org.mozilla.fennec/org.mozilla.fennec.App --es env0 NSPR_LOG_MODULES=all:5&lt;br /&gt;
&lt;br /&gt;
==debugging without rooting==&lt;br /&gt;
&lt;br /&gt;
with Froyo you can debug without rooting your phone. However to make this work with the nvidia gdb (which I found more reliable than the android r3 gdb) you need to modify install.sh and debug.sh.&lt;br /&gt;
&lt;br /&gt;
first, change the location where install.sh copies gdbserver to somewhere writable by a non-root process. I used /data/local. Be sure to update that both in the push command and the chmod command.&lt;br /&gt;
&lt;br /&gt;
second, update debug.sh with the new location of gdbserver.&lt;br /&gt;
&lt;br /&gt;
finally, you&#039;ll need to add run-as $2 to the adb shell command that launches gdbserver. In the end you should have:&lt;br /&gt;
install.sh:&lt;br /&gt;
  #!/bin/sh&lt;br /&gt;
  mkdir lib&lt;br /&gt;
  adb push prebuilt/gdbserver /data/local&lt;br /&gt;
  adb shell chmod 755 /data/local/gdbserver&lt;br /&gt;
  for file in $(adb shell ls /system/lib | tr &amp;quot;\n&amp;quot; &amp;quot; &amp;quot; | tr &amp;quot;\r&amp;quot; &amp;quot; &amp;quot;); do&lt;br /&gt;
      adb pull /system/lib/$file lib&lt;br /&gt;
  done&lt;br /&gt;
  adb pull /system/bin/app_process lib &lt;br /&gt;
&lt;br /&gt;
debug.sh:&lt;br /&gt;
  !/bin/sh&lt;br /&gt;
  if [ $# -ne 2 ]&lt;br /&gt;
  then&lt;br /&gt;
      echo &amp;quot;usage: $0 /path/to/your/library.so packagename.of.your.activity&amp;quot;&lt;br /&gt;
      echo &amp;quot;for example:&amp;quot;&lt;br /&gt;
      echo &amp;quot;  $0 /code/mydemo/libs/armeabi/libmydemo.so com.nvidia.devtech.mydemo&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  if [ ! -f $1 ]&lt;br /&gt;
  then&lt;br /&gt;
      echo &amp;quot;ERROR: That library file doesn&#039;t exist&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  cp $1 lib&lt;br /&gt;
  &lt;br /&gt;
  p=`adb shell ps | grep $2 | awk &#039;{print $2}&#039;`&lt;br /&gt;
  if [ &amp;quot;$p&amp;quot; = &amp;quot;&amp;quot; ];&lt;br /&gt;
  then&lt;br /&gt;
      echo &amp;quot;ERROR: That doesn&#039;t seem to be a running process. Please make sure your&amp;quot;&lt;br /&gt;
      echo &amp;quot;application has been started and that you are using the correct&amp;quot;&lt;br /&gt;
      echo &amp;quot;namespace argument.&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
  &lt;br /&gt;
  adb forward tcp:12345 tcp:12345&lt;br /&gt;
  adb shell run-as $2 /data/local/gdbserver --attach :12345 $p&lt;br /&gt;
&lt;br /&gt;
The last step is to add &#039;android:debuggable=&amp;quot;true&amp;quot;&#039; to your AndroidManifest.xml. I&#039;ll file a bug for that eventually.&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246184</id>
		<title>LandingQueue</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246184"/>
		<updated>2010-08-18T03:29:26Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Landing Queue for Mozilla-Central */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Landing Queue for Mozilla-Central  =&lt;br /&gt;
&lt;br /&gt;
Please add your name to the bottom of the list, the bugs you want to land and what the blocking status of them is. After you push, remove yourself from the top of the list. All pushes should be made after consulting with the tree sheriff.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* roc - {{nbug|537890}} approved, {{nbug|497808}} blocking&lt;br /&gt;
* Bas - blocking-beta5+&lt;br /&gt;
* Josh, {{bug|578868}} blocking-beta5+&lt;br /&gt;
* bholley {{bug|512260}} blocking-beta5+&lt;br /&gt;
* birtles {{nbug|485157}} approved, {{nbug|544855}} blocking-betaN+ (away until 3am PDT, feel free to queue jump until then)&lt;br /&gt;
* mwu - landing Taras&#039; patch - {{nbug|559961}} beta5+&lt;br /&gt;
&lt;br /&gt;
== Ride-along patches  ==&lt;br /&gt;
&lt;br /&gt;
Add yourself here if you would prefer that some kind soul check your patch in on your behalf.&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246178</id>
		<title>LandingQueue</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246178"/>
		<updated>2010-08-18T02:31:57Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Landing Queue for Mozilla-Central */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Landing Queue for Mozilla-Central  =&lt;br /&gt;
&lt;br /&gt;
Please add your name to the bottom of the list, the bugs you want to land and what the blocking status of them is. After you push, remove yourself from the top of the list. All pushes should be made after consulting with the tree sheriff.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* crowder - {{nbug|562444}} blocking-fennec2.0a1+&lt;br /&gt;
* roc - {{nbug|537890}} approved, {{nbug|497808}} blocking&lt;br /&gt;
* Bas - blocking-beta5+&lt;br /&gt;
* Josh, {{bug|578868}} blocking-beta5+&lt;br /&gt;
* bholley {{bug|512260}} blocking-beta5+&lt;br /&gt;
* birtles {{nbug|485157}} approved, {{nbug|544855}} blocking-betaN+&lt;br /&gt;
* mwu - landing Taras&#039; patch - {{nbug|559961}} beta5+&lt;br /&gt;
&lt;br /&gt;
== Ride-along patches  ==&lt;br /&gt;
&lt;br /&gt;
Add yourself here if you would prefer that some kind soul check your patch in on your behalf.&lt;br /&gt;
&lt;br /&gt;
* robarnold - {{nbug|554982}} final+&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246176</id>
		<title>LandingQueue</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246176"/>
		<updated>2010-08-18T02:25:42Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Landing Queue for Mozilla-Central */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Landing Queue for Mozilla-Central  =&lt;br /&gt;
&lt;br /&gt;
Please add your name to the bottom of the list, the bugs you want to land and what the blocking status of them is. After you push, remove yourself from the top of the list. All pushes should be made after consulting with the tree sheriff.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* roc - {{nbug|537890}} approved, {{nbug|497808}} blocking&lt;br /&gt;
* Bas - blocking-beta5+&lt;br /&gt;
* Josh, {{bug|578868}} blocking-beta5+&lt;br /&gt;
* bholley {{bug|512260}} blocking-beta5+&lt;br /&gt;
* birtles {{nbug|485157}} approved, {{nbug|544855}} blocking-betaN+&lt;br /&gt;
* crowder - {{nbug|562444}} blocking-fennec2.0a1+&lt;br /&gt;
&lt;br /&gt;
== Ride-along patches  ==&lt;br /&gt;
&lt;br /&gt;
Add yourself here if you would prefer that some kind soul check your patch in on your behalf.&lt;br /&gt;
&lt;br /&gt;
* Taras - {{nbug|559961}} beta5+&lt;br /&gt;
* robarnold - {{nbug|554982}} final+&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246169</id>
		<title>LandingQueue</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=LandingQueue&amp;diff=246169"/>
		<updated>2010-08-18T01:52:37Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Landing Queue for Mozilla-Central */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Landing Queue for Mozilla-Central  =&lt;br /&gt;
&lt;br /&gt;
Please add your name to the bottom of the list, the bugs you want to land and what the blocking status of them is. After you push, remove yourself from the top of the list. All pushes should be made after consulting with the tree sheriff.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* roc - {{nbug|537890}} approved, {{nbug|497808}} blocking&lt;br /&gt;
* dougt - {{nbug|588201}} approved&lt;br /&gt;
* Bas - blocking-beta5+&lt;br /&gt;
* Josh, {{bug|578868}} blocking-beta5+&lt;br /&gt;
* bholley {{bug|512260}} blocking-beta5+&lt;br /&gt;
* birtles {{nbug|485157}} approved, {{nbug|544855}} blocking-betaN+&lt;br /&gt;
* crowder - {{nbug|562444}} blocking-fennec2.0a1+&lt;br /&gt;
&lt;br /&gt;
== Ride-along patches  ==&lt;br /&gt;
&lt;br /&gt;
Add yourself here if you would prefer that some kind soul check your patch in on your behalf.&lt;br /&gt;
&lt;br /&gt;
* Taras - {{nbug|559961}} beta5+&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Necko:_Electrolysis_design_and_subprojects&amp;diff=221050</id>
		<title>Necko: Electrolysis design and subprojects</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Necko:_Electrolysis_design_and_subprojects&amp;diff=221050"/>
		<updated>2010-05-05T20:50:21Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Download Manager */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page dedicated to the design issues involved in making necko work under electrolysis (i.e. moving all network traffic to the chrome process, and using IPDL to communicate with the content process(es)). &lt;br /&gt;
&lt;br /&gt;
= Protocols that need work for e10s =&lt;br /&gt;
&lt;br /&gt;
In the long term, we do not want to allow any network connections from child processes for security reasons (we may enforce this via operating system mechanisms).  In the short term, we are more concerned with memory footprint and correctness.  HTTP requires both caching and NSS, which are both memory-heavy, and it also uses cookies and auth, which require a single central database. So HTTP will need to be centralized in chrome immediately.   FTP (and gopher, if it&#039;s still supported) will initially continue to run unmodified in child processes as an interim step.  Eventually they too will need to do network traffic solely in chrome.  Web sockets will also need to be modified to run only in chrome.  &lt;br /&gt;
&lt;br /&gt;
Eventually we may sandbox all file access, and thus other protocols (about://, file://, jar://) will need some work.  But this is for &amp;quot;Stage 2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= High-level implementation description =&lt;br /&gt;
&lt;br /&gt;
Most of necko&#039;s logic is going to happen in the chrome process.  &lt;br /&gt;
&lt;br /&gt;
* Content process will open Channels, but these channels will essentially be stubs (HttpChannelChild) that are connected to a real Channel in the chrome process via IPDL. &lt;br /&gt;
&lt;br /&gt;
* When an HTTP request is made, for instance, all the nitty-gritty of socket creation, authentication, SSL, cookies, and caching will be made in the chrome process&lt;br /&gt;
&lt;br /&gt;
* The content process will then be notified with the usual OnStartRequest, OnDataAvailable, and OnStopRequest notifications.  &lt;br /&gt;
&lt;br /&gt;
So, the most obvious place for inter-process communication will be AsyncOpen (from content-&amp;gt;chrome, to queue the network request) and the various &amp;quot;On...&amp;quot; events back from chrome to the content process.  There will also be IPDL traffic for notifications, cancellations, and probably other things.  For HTTP, this traffic is handled by the netwerk/protocol/http/src/HttpChannel{Parent|Child} classes.&lt;br /&gt;
&lt;br /&gt;
= Design/architecture issues =&lt;br /&gt;
&lt;br /&gt;
=== Types of network requests under electrolysis ===&lt;br /&gt;
&lt;br /&gt;
The most common case of necko usage under electrolysis will be network requests that originate in a child (tab) process, and are serviced by the parent. But it is important to realize that there are actually three logically different types of network request:&lt;br /&gt;
&lt;br /&gt;
# Traditional, non-e10s single process mode.&lt;br /&gt;
#* e10s will be disabled for firefox on certain platforms, and may not be used at all in Thunderbird or other necko applications.  In such cases MOZ_IPC will not be #defined, and necko should work exactly as it used to.&lt;br /&gt;
#** So any code dealing with IPC must be guarded by #if MOZ_IPC.&lt;br /&gt;
# Requests from within the parent.&lt;br /&gt;
#* While most necko requests will be initiated from child (tab) processes, there will still be some (update checks, safebrowsing) that originate within the parent.&lt;br /&gt;
#** Note that some IPC may still be performed for these requests (an observer of the request may still live in a child process).&lt;br /&gt;
#** Otherwise, these requests should work essentially the same as in &amp;quot;traditional&amp;quot; mode.&lt;br /&gt;
# Request from a child process&lt;br /&gt;
#* The basic design for requests from child processes is that they should &amp;quot;wrap&amp;quot; a regular request on the parent, using IPDL.  In other words, we hope to keep the existing nsHttpChannel, nsHttpHandler, etc. code as unmodified as possible; this code should not need to know whether it is servicing a child or a parent request.  The logic for supporting a child request should be handled within the IPDL protocol classes instead whenever possible (for instance, HttpChannelParent).&lt;br /&gt;
#** Some of the existing necko architecture will exist in both the parent/child, and will need to know at some times where they are running; for instance, nsHttpHandler needs to know whether to hand out an nsHttpChannel (if it&#039;s in the parent) or an HttpChannelChild (if it&#039;s in the child).  For this there is a IsNeckoChild() function, which returns true if called within the child process.  For certain optimizations (ex: consolidating OnDataAvail and OnStatus/OnProgress into one IPDL message) it is also useful for the chrome nsHttpChannel to know if it is servicing a remote child request: this is true if &amp;quot;mRemoteChannel&amp;quot; is set.&lt;br /&gt;
&lt;br /&gt;
=== Sync and async IPC messages ===&lt;br /&gt;
&lt;br /&gt;
IPDL traffic between the parent/child channels should generally be asynchronous.  This is both for performance reasons, and to avoid tricky issues that can come up with sync messaging.  In particular, the child must avoid doing sync requests to the parent to get channel state information, as the parent channel may have diverged in state.  (See http://tinyurl.com/yaa9p7s for some discussion of this).  The child channel must instead cache all the state info that is needed to answer any queries from necko client code.&lt;br /&gt;
&lt;br /&gt;
=== Validating data ===&lt;br /&gt;
Lucas suggested that IPDL parent actors should take measures to validate data passed to them by children, in case the latter have been compromised (ex: validating that strings are actually UTF-16). In necko&#039;s case, that should mainly be the URI and other data for the initial request, but keep in mind for other IPC exchanges, too.&lt;br /&gt;
&lt;br /&gt;
= Building, running, and testing necko e10s =&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
&lt;br /&gt;
The code lives in the main e10s repo, so follow the regular e10s instructions at&lt;br /&gt;
[[Content_Processes#Building_.26_debugging]] to build.&lt;br /&gt;
&lt;br /&gt;
=== Running ===&lt;br /&gt;
&lt;br /&gt;
The necko e10s code is currently turned off by default (instead each child process gets its own full necko stack).  To turn it on, set NECKO_E10S_HTTP=1 in your environment.&lt;br /&gt;
&lt;br /&gt;
Depending on what you&#039;re trying to do, you&#039;ll either be running [https://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests xpcshell] tests or the [https://wiki.mozilla.org/Content_Processes/Build remote tab demo] (a.k.a. test-ipc.xul).   Running xpcshell tests is quite lightweight (text-based, and fewer XPCOM things to load, so fast to run on a remote machine over ssh, etc.), while test-ipc.xul fires up a version of the whole browser.  Develop with xpcshell when you can (unfortunately some important features--like load groups, notifications, etc.--are not tested by xpcshell, so you currently need to run test-ipc.xul).&lt;br /&gt;
&lt;br /&gt;
=== Testing and Logging ===&lt;br /&gt;
&lt;br /&gt;
Testing is currently mainly done in the form of [https://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests  xpcshell] tests (see netwerk/test/unit_ipc;  You&#039;ll need the patches for [https://bugzilla.mozilla.org/show_bug.cgi?id=521922 bug 521922] and (if you want to run the full set of existing necko tests) [https://bugzilla.mozilla.org/show_bug.cgi?id=526335 bug 526335].  The xpcshell framework is set up to run first on chrome (the tests in &#039;netwerk/test/unit&#039;) and then the child (&#039;netwerk/test/unit_ipc&#039;), since we need both codepaths to work).  If you are not interested in the chrome tests (which should all pass, unless you&#039;ve f*cked something up with chrome-side necko), you can turn them off in /netwerk/test/Makefile.in by setting XPCSHELL_TESTS= unit_ipc (i.e. changing the &amp;quot;+=&amp;quot; to &amp;quot;=&amp;quot;), after which &amp;quot;make xpcshell-tests&amp;quot; will run only the child-side tests.&lt;br /&gt;
&lt;br /&gt;
NOTE: the xpcshell tests currently by default do NOT run the e10s version of necko; instead they run the &amp;quot;each process gets the full necko stack&amp;quot; version.  This is both because we are still making sure that the xpcshell tests all work correctly on the child-side with necko unmodified ([https://bugzilla.mozilla.org/show_bug.cgi?id=526335 bug 526335]) before we try to test them against the experimental code, and because it is quite certain that many of the existing tests will fail if we try to run them against our buggy, incomplete e10s necko code.  You will want to turn on the e10s code if you&#039;re trying to test it.  You may also want [http://www.mozilla.org/projects/netlib/http/http-debugging.html HTTP logging] to work :), which is currently broken.  To turn on e10s HTTP for xpcshell and fix HTTP logging, apply my workaround patch for [https://bugzilla.mozilla.org/show_bug.cgi?id=534764 bug 534764].  I do not yet have a fix for HTTP logging for test-ipc.xul.&lt;br /&gt;
&lt;br /&gt;
= Bugzilla tracking =&lt;br /&gt;
&lt;br /&gt;
The necko e10s work is currently divided into two broad stages:  features that are needed for the next release of fennec (https://bugzilla.mozilla.org/show_bug.cgi?id=516730), and later work which will be needed for e10s firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=535725).  All necko e10s work should be grouped under one of these two tracking bugs.&lt;br /&gt;
&lt;br /&gt;
= Old notes =&lt;br /&gt;
&lt;br /&gt;
The remainder of this page is notes from the original revision of this page.   They are now superceded by the various bugs that have been created for them, but I&#039;m keeping them around for reference.  Please update the bugs, not these notes (unless you feel like doing both :)&lt;br /&gt;
&lt;br /&gt;
==== HTTP Headers ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536279 and https://bugzilla.mozilla.org/show_bug.cgi?id=536283&lt;br /&gt;
&lt;br /&gt;
HTTP headers will need to be parsed first in the chrome process--so things like auth, cache directives, cookies, etc., can be handled.  We will also need to provide some or all headers to the content process, via IPDL.  &lt;br /&gt;
* bz suggests we &amp;quot;whitelist&amp;quot; the headers and provide only needed headers to the content process.&lt;br /&gt;
&lt;br /&gt;
==== HTTP redirects  ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=513086 and https://bugzilla.mozilla.org/show_bug.cgi?id=536294&lt;br /&gt;
&lt;br /&gt;
The current architecture shifts out the original channel and replaces it with a channel to the new destination. &lt;br /&gt;
&lt;br /&gt;
*This will probably require IPDL traffic to tell the content process to do something similar on its end. &lt;br /&gt;
*There are also listeners that are notified of redirects, and have the ability to cancel if they don&#039;t approve (plugins such as flash use this). &lt;br /&gt;
**There will be listeners that need to notified in both chrome and content processes, so use IPC. &lt;br /&gt;
**But right now these notifications are synchronous: we should change this to async on mozilla-central, and then merge into e10s tree, before trying to implement with IPC. &lt;br /&gt;
***Opened as [https://bugzilla.mozilla.org/show_bug.cgi?id=513086 bug 513086]&lt;br /&gt;
*Security concerns&lt;br /&gt;
**Is it possible an observer to rewrite/redirect a navigation rather than just canceling it?  If so how would that change be propagated?&lt;br /&gt;
**Is the navigation blocked until all observers return?  Otherwise we might run the risk of a race condition.&lt;br /&gt;
&lt;br /&gt;
==== HTTPS ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536301&lt;br /&gt;
&lt;br /&gt;
e10s will hopefully only need minor mods for HTTPS. &lt;br /&gt;
* One issue: to determine if Lock Icon needed, content process will need handle to securityInfo, which is currently pointed to by nsHttpChannel.  Shouldn&#039;t need to actually read security info--see what exactly is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download Manager ====&lt;br /&gt;
&lt;br /&gt;
The download manager should live in the chrome process.  The chrome process is responsible for displaying &amp;quot;Where do you want to save this file?&amp;quot; and should be responsible for the network transfer and disk access.&lt;br /&gt;
&lt;br /&gt;
Issues arise in this architecture (as I understand it) because currently necko actually primarily resides in content processes.&lt;br /&gt;
&lt;br /&gt;
In the ideal world, necko would live in the chrome process entirely and would proxy requests for content processes.  Content processes would &amp;quot;subscribe&amp;quot; to the kinds of content they&#039;re able to handle for a given request, and if no handler is subscribed, the download manager should be invoked.&lt;br /&gt;
&lt;br /&gt;
How should this work in the existing incarnation of necko/e10s?&lt;br /&gt;
&lt;br /&gt;
==== LoadGroups ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536292&lt;br /&gt;
&lt;br /&gt;
LoadGroups will live in the content process.  &lt;br /&gt;
* They need to be able to cancel Channels, which should be fairly trivial IPC.  &lt;br /&gt;
* When Channels are added to a LoadGroup notifications must be sent, both to DocShell (in content) and various listeners in chrome.  Right now these notifications are SYNC, but we might want to change them to asynchronous to make them play better in the e10s model.  But for now bz/bsmedberg suggest we wait.&lt;br /&gt;
* We will need to keep track (via LoadGroups or otherwise) of which channels are &amp;quot;owned&amp;quot; by which content processes, so if one dies, we know to cancel its requests.&lt;br /&gt;
&lt;br /&gt;
==== Application cache ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536295&lt;br /&gt;
&lt;br /&gt;
The application cache is fairly recent &amp;amp; is used for offline mode for web apps like gmail.  Unlike the regular HTTP cache, which will be invisible effectively to the content process, the app cache will be visible to the content process, which needs among other things to parse HTTP headers to see if data needs to be cached.&lt;br /&gt;
* Presumably cache lives in chrome, and content processes read from it?  Not sure.&lt;br /&gt;
* This isn&#039;t getting lots of use yet, so it doesn&#039;t need to work immediately.&lt;br /&gt;
* Honza Bambas and/or Doug Camp (ex-Mozilla) are the ones to ask about this code.&lt;br /&gt;
&lt;br /&gt;
==== EventSink listeners ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536292&lt;br /&gt;
&lt;br /&gt;
(Firebug, for instance). We&#039;ll need to propagate these events to both chrome/content processes, as listeners will live on both.&lt;br /&gt;
* ideally we send one IPC msg per event, not one per remote listener.&lt;br /&gt;
* don&#039;t need much data (HTTP/Channel status?); might need to send the data along in the IPC msg.&lt;br /&gt;
* These calls are already async, so no API change should be needed.&lt;br /&gt;
&lt;br /&gt;
==== Suspending channels ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536321&lt;br /&gt;
&lt;br /&gt;
We suspend Channels from the Download manager, and also when plugins don&#039;t consume arriving Channel data quickly enough.  Also HTTP auth?&lt;br /&gt;
* We will need to keep around whatever data has arrived but hasn&#039;t been delivered, so resume works correctly.  Could happen on either chrome/content end.&lt;br /&gt;
&lt;br /&gt;
==== Http Auth dialog ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=537782&lt;br /&gt;
&lt;br /&gt;
How will chrome know which window to pop Auth tab up in when HTTP auth is needed?  Right now the Channel has callbacks which can be used to get originating window.  We&#039;ll need to make this work with e10s, possibly by including window info in chrome Channel when we create it during AsyncOpen.&lt;br /&gt;
&lt;br /&gt;
==== File form POSTs ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536273&lt;br /&gt;
&lt;br /&gt;
bz suggests that we can accomplish this without having the content process read the file by creating a new kind of stream class, in which the content process marks the name of the file and the chrome process actually reads it from disk and uploads it.&lt;br /&gt;
&lt;br /&gt;
==== Channel &amp;quot;owner&amp;quot; ====&lt;br /&gt;
Channels have Set/GetOwner methods, used to store the principal responsible for the request.  &lt;br /&gt;
* Apparently not used much for HTTP?&lt;br /&gt;
** jst: CSP (Content Security Protocol) may use?&lt;br /&gt;
* Not clear if get &amp;amp; set only on content side, or if set only on content, but read by both chrome/content.  Find out and propagate as needed&lt;br /&gt;
* bz would like to rework this API anyway&lt;br /&gt;
&lt;br /&gt;
== FTP ==&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536289 &lt;br /&gt;
&lt;br /&gt;
* Doug Turner knows this code.&lt;br /&gt;
* Proposal from bsmedberg:  we keep FTP purely within the chrome process, so that we don&#039;t need to make it IPC-savvy.&lt;br /&gt;
** We would only allow files to be downloaded (not rendered within browser) via FTP.&lt;br /&gt;
** browsing of FTP server tree would be done by hiding content process tab with a chrome one when a FTP directory is the target.&lt;br /&gt;
** FTP also supports upload--used by seamonkey and composer--but this happens all in chrome, so no changes needed?&lt;br /&gt;
&lt;br /&gt;
= Security Issues =&lt;br /&gt;
&lt;br /&gt;
For a general Electrolysis threat model see [[Security/ProcessIsolation/ThreatModel]]&lt;br /&gt;
&lt;br /&gt;
=== Race conditions ===&lt;br /&gt;
&lt;br /&gt;
* Could one frame navigate another frame without permission &lt;br /&gt;
* Could one window script into another window without permission&lt;br /&gt;
* Redirects - could a redirect happen in chrome while content is performing a security check&lt;br /&gt;
&lt;br /&gt;
=== Domain isolation ===&lt;br /&gt;
&lt;br /&gt;
* Do we try to restrict cookies to per process / per window&lt;br /&gt;
* Can we actually authenticate a network request from a given content process&lt;br /&gt;
* How do we handle access to file:// and related schemes... trusting content process might be too much (see below)&lt;br /&gt;
* If we do try to isolate, how do we verify the validity of a request (do we need to have a stateful proxy to determine which content is valid to access cross-domain and which isn&#039;t)&lt;br /&gt;
* Can we do anything to protect cookies?  Password manager?  Cache?  Local storage?&lt;br /&gt;
&lt;br /&gt;
=== Do we want to check principals in the chrome process? ===&lt;br /&gt;
&lt;br /&gt;
 (heard on IRC...)&lt;br /&gt;
 &lt;br /&gt;
    bz: long term we want to move CheckLoadURI checks into the chrome process and&lt;br /&gt;
    not trust any self-reported principals of content processes right?&lt;br /&gt;
 &lt;br /&gt;
    bsmedberg: hrm, I&#039;m not sure that&#039;s ever going to be feasible.  it&#039;s certainly&lt;br /&gt;
    not part of releasing anything, or even releasing anything with a sandbox&lt;br /&gt;
 &lt;br /&gt;
    bz: it seems like it lets you trivially escape the sandbox....  if not done&lt;br /&gt;
 &lt;br /&gt;
    bsmedberg: depends on what the sandbox is for, though.  If it&#039;s only to&lt;br /&gt;
    prevent viral infections and such, I think you&#039;re fine.  And protecting&lt;br /&gt;
    against XSS/cookiedata leaks is much harder due to interior iframes,&lt;br /&gt;
    document.cookie scripting, loading arbitrary JS/images&lt;br /&gt;
 &lt;br /&gt;
    bz is not sure why it&#039;s fine: As long as you can ask the chrome process to do&lt;br /&gt;
    network requests for you and it trusts your self-reported principal you can&lt;br /&gt;
    read arbitrary files and phone home.  Not a viral infection, but much worse&lt;br /&gt;
    than just XSS&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Necko:_Electrolysis_design_and_subprojects&amp;diff=221049</id>
		<title>Necko: Electrolysis design and subprojects</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Necko:_Electrolysis_design_and_subprojects&amp;diff=221049"/>
		<updated>2010-05-05T20:46:56Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* LoadGroups */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a page dedicated to the design issues involved in making necko work under electrolysis (i.e. moving all network traffic to the chrome process, and using IPDL to communicate with the content process(es)). &lt;br /&gt;
&lt;br /&gt;
= Protocols that need work for e10s =&lt;br /&gt;
&lt;br /&gt;
In the long term, we do not want to allow any network connections from child processes for security reasons (we may enforce this via operating system mechanisms).  In the short term, we are more concerned with memory footprint and correctness.  HTTP requires both caching and NSS, which are both memory-heavy, and it also uses cookies and auth, which require a single central database. So HTTP will need to be centralized in chrome immediately.   FTP (and gopher, if it&#039;s still supported) will initially continue to run unmodified in child processes as an interim step.  Eventually they too will need to do network traffic solely in chrome.  Web sockets will also need to be modified to run only in chrome.  &lt;br /&gt;
&lt;br /&gt;
Eventually we may sandbox all file access, and thus other protocols (about://, file://, jar://) will need some work.  But this is for &amp;quot;Stage 2&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= High-level implementation description =&lt;br /&gt;
&lt;br /&gt;
Most of necko&#039;s logic is going to happen in the chrome process.  &lt;br /&gt;
&lt;br /&gt;
* Content process will open Channels, but these channels will essentially be stubs (HttpChannelChild) that are connected to a real Channel in the chrome process via IPDL. &lt;br /&gt;
&lt;br /&gt;
* When an HTTP request is made, for instance, all the nitty-gritty of socket creation, authentication, SSL, cookies, and caching will be made in the chrome process&lt;br /&gt;
&lt;br /&gt;
* The content process will then be notified with the usual OnStartRequest, OnDataAvailable, and OnStopRequest notifications.  &lt;br /&gt;
&lt;br /&gt;
So, the most obvious place for inter-process communication will be AsyncOpen (from content-&amp;gt;chrome, to queue the network request) and the various &amp;quot;On...&amp;quot; events back from chrome to the content process.  There will also be IPDL traffic for notifications, cancellations, and probably other things.  For HTTP, this traffic is handled by the netwerk/protocol/http/src/HttpChannel{Parent|Child} classes.&lt;br /&gt;
&lt;br /&gt;
= Design/architecture issues =&lt;br /&gt;
&lt;br /&gt;
=== Types of network requests under electrolysis ===&lt;br /&gt;
&lt;br /&gt;
The most common case of necko usage under electrolysis will be network requests that originate in a child (tab) process, and are serviced by the parent. But it is important to realize that there are actually three logically different types of network request:&lt;br /&gt;
&lt;br /&gt;
# Traditional, non-e10s single process mode.&lt;br /&gt;
#* e10s will be disabled for firefox on certain platforms, and may not be used at all in Thunderbird or other necko applications.  In such cases MOZ_IPC will not be #defined, and necko should work exactly as it used to.&lt;br /&gt;
#** So any code dealing with IPC must be guarded by #if MOZ_IPC.&lt;br /&gt;
# Requests from within the parent.&lt;br /&gt;
#* While most necko requests will be initiated from child (tab) processes, there will still be some (update checks, safebrowsing) that originate within the parent.&lt;br /&gt;
#** Note that some IPC may still be performed for these requests (an observer of the request may still live in a child process).&lt;br /&gt;
#** Otherwise, these requests should work essentially the same as in &amp;quot;traditional&amp;quot; mode.&lt;br /&gt;
# Request from a child process&lt;br /&gt;
#* The basic design for requests from child processes is that they should &amp;quot;wrap&amp;quot; a regular request on the parent, using IPDL.  In other words, we hope to keep the existing nsHttpChannel, nsHttpHandler, etc. code as unmodified as possible; this code should not need to know whether it is servicing a child or a parent request.  The logic for supporting a child request should be handled within the IPDL protocol classes instead whenever possible (for instance, HttpChannelParent).&lt;br /&gt;
#** Some of the existing necko architecture will exist in both the parent/child, and will need to know at some times where they are running; for instance, nsHttpHandler needs to know whether to hand out an nsHttpChannel (if it&#039;s in the parent) or an HttpChannelChild (if it&#039;s in the child).  For this there is a IsNeckoChild() function, which returns true if called within the child process.  For certain optimizations (ex: consolidating OnDataAvail and OnStatus/OnProgress into one IPDL message) it is also useful for the chrome nsHttpChannel to know if it is servicing a remote child request: this is true if &amp;quot;mRemoteChannel&amp;quot; is set.&lt;br /&gt;
&lt;br /&gt;
=== Sync and async IPC messages ===&lt;br /&gt;
&lt;br /&gt;
IPDL traffic between the parent/child channels should generally be asynchronous.  This is both for performance reasons, and to avoid tricky issues that can come up with sync messaging.  In particular, the child must avoid doing sync requests to the parent to get channel state information, as the parent channel may have diverged in state.  (See http://tinyurl.com/yaa9p7s for some discussion of this).  The child channel must instead cache all the state info that is needed to answer any queries from necko client code.&lt;br /&gt;
&lt;br /&gt;
=== Validating data ===&lt;br /&gt;
Lucas suggested that IPDL parent actors should take measures to validate data passed to them by children, in case the latter have been compromised (ex: validating that strings are actually UTF-16). In necko&#039;s case, that should mainly be the URI and other data for the initial request, but keep in mind for other IPC exchanges, too.&lt;br /&gt;
&lt;br /&gt;
= Building, running, and testing necko e10s =&lt;br /&gt;
&lt;br /&gt;
=== Building ===&lt;br /&gt;
&lt;br /&gt;
The code lives in the main e10s repo, so follow the regular e10s instructions at&lt;br /&gt;
[[Content_Processes#Building_.26_debugging]] to build.&lt;br /&gt;
&lt;br /&gt;
=== Running ===&lt;br /&gt;
&lt;br /&gt;
The necko e10s code is currently turned off by default (instead each child process gets its own full necko stack).  To turn it on, set NECKO_E10S_HTTP=1 in your environment.&lt;br /&gt;
&lt;br /&gt;
Depending on what you&#039;re trying to do, you&#039;ll either be running [https://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests xpcshell] tests or the [https://wiki.mozilla.org/Content_Processes/Build remote tab demo] (a.k.a. test-ipc.xul).   Running xpcshell tests is quite lightweight (text-based, and fewer XPCOM things to load, so fast to run on a remote machine over ssh, etc.), while test-ipc.xul fires up a version of the whole browser.  Develop with xpcshell when you can (unfortunately some important features--like load groups, notifications, etc.--are not tested by xpcshell, so you currently need to run test-ipc.xul).&lt;br /&gt;
&lt;br /&gt;
=== Testing and Logging ===&lt;br /&gt;
&lt;br /&gt;
Testing is currently mainly done in the form of [https://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests  xpcshell] tests (see netwerk/test/unit_ipc;  You&#039;ll need the patches for [https://bugzilla.mozilla.org/show_bug.cgi?id=521922 bug 521922] and (if you want to run the full set of existing necko tests) [https://bugzilla.mozilla.org/show_bug.cgi?id=526335 bug 526335].  The xpcshell framework is set up to run first on chrome (the tests in &#039;netwerk/test/unit&#039;) and then the child (&#039;netwerk/test/unit_ipc&#039;), since we need both codepaths to work).  If you are not interested in the chrome tests (which should all pass, unless you&#039;ve f*cked something up with chrome-side necko), you can turn them off in /netwerk/test/Makefile.in by setting XPCSHELL_TESTS= unit_ipc (i.e. changing the &amp;quot;+=&amp;quot; to &amp;quot;=&amp;quot;), after which &amp;quot;make xpcshell-tests&amp;quot; will run only the child-side tests.&lt;br /&gt;
&lt;br /&gt;
NOTE: the xpcshell tests currently by default do NOT run the e10s version of necko; instead they run the &amp;quot;each process gets the full necko stack&amp;quot; version.  This is both because we are still making sure that the xpcshell tests all work correctly on the child-side with necko unmodified ([https://bugzilla.mozilla.org/show_bug.cgi?id=526335 bug 526335]) before we try to test them against the experimental code, and because it is quite certain that many of the existing tests will fail if we try to run them against our buggy, incomplete e10s necko code.  You will want to turn on the e10s code if you&#039;re trying to test it.  You may also want [http://www.mozilla.org/projects/netlib/http/http-debugging.html HTTP logging] to work :), which is currently broken.  To turn on e10s HTTP for xpcshell and fix HTTP logging, apply my workaround patch for [https://bugzilla.mozilla.org/show_bug.cgi?id=534764 bug 534764].  I do not yet have a fix for HTTP logging for test-ipc.xul.&lt;br /&gt;
&lt;br /&gt;
= Bugzilla tracking =&lt;br /&gt;
&lt;br /&gt;
The necko e10s work is currently divided into two broad stages:  features that are needed for the next release of fennec (https://bugzilla.mozilla.org/show_bug.cgi?id=516730), and later work which will be needed for e10s firefox (https://bugzilla.mozilla.org/show_bug.cgi?id=535725).  All necko e10s work should be grouped under one of these two tracking bugs.&lt;br /&gt;
&lt;br /&gt;
= Old notes =&lt;br /&gt;
&lt;br /&gt;
The remainder of this page is notes from the original revision of this page.   They are now superceded by the various bugs that have been created for them, but I&#039;m keeping them around for reference.  Please update the bugs, not these notes (unless you feel like doing both :)&lt;br /&gt;
&lt;br /&gt;
==== HTTP Headers ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536279 and https://bugzilla.mozilla.org/show_bug.cgi?id=536283&lt;br /&gt;
&lt;br /&gt;
HTTP headers will need to be parsed first in the chrome process--so things like auth, cache directives, cookies, etc., can be handled.  We will also need to provide some or all headers to the content process, via IPDL.  &lt;br /&gt;
* bz suggests we &amp;quot;whitelist&amp;quot; the headers and provide only needed headers to the content process.&lt;br /&gt;
&lt;br /&gt;
==== HTTP redirects  ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=513086 and https://bugzilla.mozilla.org/show_bug.cgi?id=536294&lt;br /&gt;
&lt;br /&gt;
The current architecture shifts out the original channel and replaces it with a channel to the new destination. &lt;br /&gt;
&lt;br /&gt;
*This will probably require IPDL traffic to tell the content process to do something similar on its end. &lt;br /&gt;
*There are also listeners that are notified of redirects, and have the ability to cancel if they don&#039;t approve (plugins such as flash use this). &lt;br /&gt;
**There will be listeners that need to notified in both chrome and content processes, so use IPC. &lt;br /&gt;
**But right now these notifications are synchronous: we should change this to async on mozilla-central, and then merge into e10s tree, before trying to implement with IPC. &lt;br /&gt;
***Opened as [https://bugzilla.mozilla.org/show_bug.cgi?id=513086 bug 513086]&lt;br /&gt;
*Security concerns&lt;br /&gt;
**Is it possible an observer to rewrite/redirect a navigation rather than just canceling it?  If so how would that change be propagated?&lt;br /&gt;
**Is the navigation blocked until all observers return?  Otherwise we might run the risk of a race condition.&lt;br /&gt;
&lt;br /&gt;
==== HTTPS ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536301&lt;br /&gt;
&lt;br /&gt;
e10s will hopefully only need minor mods for HTTPS. &lt;br /&gt;
* One issue: to determine if Lock Icon needed, content process will need handle to securityInfo, which is currently pointed to by nsHttpChannel.  Shouldn&#039;t need to actually read security info--see what exactly is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download Manager ====&lt;br /&gt;
&lt;br /&gt;
==== LoadGroups ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536292&lt;br /&gt;
&lt;br /&gt;
LoadGroups will live in the content process.  &lt;br /&gt;
* They need to be able to cancel Channels, which should be fairly trivial IPC.  &lt;br /&gt;
* When Channels are added to a LoadGroup notifications must be sent, both to DocShell (in content) and various listeners in chrome.  Right now these notifications are SYNC, but we might want to change them to asynchronous to make them play better in the e10s model.  But for now bz/bsmedberg suggest we wait.&lt;br /&gt;
* We will need to keep track (via LoadGroups or otherwise) of which channels are &amp;quot;owned&amp;quot; by which content processes, so if one dies, we know to cancel its requests.&lt;br /&gt;
&lt;br /&gt;
==== Application cache ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536295&lt;br /&gt;
&lt;br /&gt;
The application cache is fairly recent &amp;amp; is used for offline mode for web apps like gmail.  Unlike the regular HTTP cache, which will be invisible effectively to the content process, the app cache will be visible to the content process, which needs among other things to parse HTTP headers to see if data needs to be cached.&lt;br /&gt;
* Presumably cache lives in chrome, and content processes read from it?  Not sure.&lt;br /&gt;
* This isn&#039;t getting lots of use yet, so it doesn&#039;t need to work immediately.&lt;br /&gt;
* Honza Bambas and/or Doug Camp (ex-Mozilla) are the ones to ask about this code.&lt;br /&gt;
&lt;br /&gt;
==== EventSink listeners ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536292&lt;br /&gt;
&lt;br /&gt;
(Firebug, for instance). We&#039;ll need to propagate these events to both chrome/content processes, as listeners will live on both.&lt;br /&gt;
* ideally we send one IPC msg per event, not one per remote listener.&lt;br /&gt;
* don&#039;t need much data (HTTP/Channel status?); might need to send the data along in the IPC msg.&lt;br /&gt;
* These calls are already async, so no API change should be needed.&lt;br /&gt;
&lt;br /&gt;
==== Suspending channels ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536321&lt;br /&gt;
&lt;br /&gt;
We suspend Channels from the Download manager, and also when plugins don&#039;t consume arriving Channel data quickly enough.  Also HTTP auth?&lt;br /&gt;
* We will need to keep around whatever data has arrived but hasn&#039;t been delivered, so resume works correctly.  Could happen on either chrome/content end.&lt;br /&gt;
&lt;br /&gt;
==== Http Auth dialog ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=537782&lt;br /&gt;
&lt;br /&gt;
How will chrome know which window to pop Auth tab up in when HTTP auth is needed?  Right now the Channel has callbacks which can be used to get originating window.  We&#039;ll need to make this work with e10s, possibly by including window info in chrome Channel when we create it during AsyncOpen.&lt;br /&gt;
&lt;br /&gt;
==== File form POSTs ====&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536273&lt;br /&gt;
&lt;br /&gt;
bz suggests that we can accomplish this without having the content process read the file by creating a new kind of stream class, in which the content process marks the name of the file and the chrome process actually reads it from disk and uploads it.&lt;br /&gt;
&lt;br /&gt;
==== Channel &amp;quot;owner&amp;quot; ====&lt;br /&gt;
Channels have Set/GetOwner methods, used to store the principal responsible for the request.  &lt;br /&gt;
* Apparently not used much for HTTP?&lt;br /&gt;
** jst: CSP (Content Security Protocol) may use?&lt;br /&gt;
* Not clear if get &amp;amp; set only on content side, or if set only on content, but read by both chrome/content.  Find out and propagate as needed&lt;br /&gt;
* bz would like to rework this API anyway&lt;br /&gt;
&lt;br /&gt;
== FTP ==&lt;br /&gt;
&lt;br /&gt;
https://bugzilla.mozilla.org/show_bug.cgi?id=536289 &lt;br /&gt;
&lt;br /&gt;
* Doug Turner knows this code.&lt;br /&gt;
* Proposal from bsmedberg:  we keep FTP purely within the chrome process, so that we don&#039;t need to make it IPC-savvy.&lt;br /&gt;
** We would only allow files to be downloaded (not rendered within browser) via FTP.&lt;br /&gt;
** browsing of FTP server tree would be done by hiding content process tab with a chrome one when a FTP directory is the target.&lt;br /&gt;
** FTP also supports upload--used by seamonkey and composer--but this happens all in chrome, so no changes needed?&lt;br /&gt;
&lt;br /&gt;
= Security Issues =&lt;br /&gt;
&lt;br /&gt;
For a general Electrolysis threat model see [[Security/ProcessIsolation/ThreatModel]]&lt;br /&gt;
&lt;br /&gt;
=== Race conditions ===&lt;br /&gt;
&lt;br /&gt;
* Could one frame navigate another frame without permission &lt;br /&gt;
* Could one window script into another window without permission&lt;br /&gt;
* Redirects - could a redirect happen in chrome while content is performing a security check&lt;br /&gt;
&lt;br /&gt;
=== Domain isolation ===&lt;br /&gt;
&lt;br /&gt;
* Do we try to restrict cookies to per process / per window&lt;br /&gt;
* Can we actually authenticate a network request from a given content process&lt;br /&gt;
* How do we handle access to file:// and related schemes... trusting content process might be too much (see below)&lt;br /&gt;
* If we do try to isolate, how do we verify the validity of a request (do we need to have a stateful proxy to determine which content is valid to access cross-domain and which isn&#039;t)&lt;br /&gt;
* Can we do anything to protect cookies?  Password manager?  Cache?  Local storage?&lt;br /&gt;
&lt;br /&gt;
=== Do we want to check principals in the chrome process? ===&lt;br /&gt;
&lt;br /&gt;
 (heard on IRC...)&lt;br /&gt;
 &lt;br /&gt;
    bz: long term we want to move CheckLoadURI checks into the chrome process and&lt;br /&gt;
    not trust any self-reported principals of content processes right?&lt;br /&gt;
 &lt;br /&gt;
    bsmedberg: hrm, I&#039;m not sure that&#039;s ever going to be feasible.  it&#039;s certainly&lt;br /&gt;
    not part of releasing anything, or even releasing anything with a sandbox&lt;br /&gt;
 &lt;br /&gt;
    bz: it seems like it lets you trivially escape the sandbox....  if not done&lt;br /&gt;
 &lt;br /&gt;
    bsmedberg: depends on what the sandbox is for, though.  If it&#039;s only to&lt;br /&gt;
    prevent viral infections and such, I think you&#039;re fine.  And protecting&lt;br /&gt;
    against XSS/cookiedata leaks is much harder due to interior iframes,&lt;br /&gt;
    document.cookie scripting, loading arbitrary JS/images&lt;br /&gt;
 &lt;br /&gt;
    bz is not sure why it&#039;s fine: As long as you can ask the chrome process to do&lt;br /&gt;
    network requests for you and it trusts your self-reported principal you can&lt;br /&gt;
    read arbitrary files and phone home.  Not a viral infection, but much worse&lt;br /&gt;
    than just XSS&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec_Unittests/green&amp;diff=217854</id>
		<title>Mobile/Fennec Unittests/green</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec_Unittests/green&amp;diff=217854"/>
		<updated>2010-04-22T19:41:23Z</updated>

		<summary type="html">&lt;p&gt;Crowder: marking spellcheck bug wfm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== overview ==&lt;br /&gt;
&lt;br /&gt;
This is a list of tests which I found to fail on both the n900 and n810 over repeated runs.  I believe making these tests pass (either by fixing the tests or ignoring the tests and writing new ones if necessary) will get us to a good position where we can start seeing green.&lt;br /&gt;
&lt;br /&gt;
Until reftest/crashtest/xpcshell are green we will continue to ignore the mochitest stuff.  &lt;br /&gt;
&lt;br /&gt;
== reftest ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Reftests maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Reftest winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| test || status || bug&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/colordepth.html || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/pngsuite-ancillary/ccwn2c08.png || || &amp;lt;strike&amp;gt;{{bug|471917}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/pngsuite-ancillary/ccwn3p08.png || || &amp;lt;strike&amp;gt;{{bug|471917}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/134706-3-left-scrollframe.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/134706-3-right-scrollframe.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/240536-resizer-ltr.xul || This is a nativetheme issue. It depends on the resize handle being rendered. ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1a.html || spellcheck squiggle || &amp;lt;strike&amp;gt;{{bug|556076}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1b.html || spellcheck squiggle || &amp;lt;strike&amp;gt;{{bug|556076}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1c.html || spellcheck squiggle || &amp;lt;strike&amp;gt;{{bug|556076}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1d.html || spellcheck squiggle || &amp;lt;strike&amp;gt;{{bug|556076}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1e.html || spellcheck squiggle || &amp;lt;strike&amp;gt;{{bug|556076}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1f.html || spellcheck squiggle || &amp;lt;strike&amp;gt;{{bug|556076}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/301726-2.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/338251-p-oh.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/362901-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/367247-s-auto.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/367247-l-hidden.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/371561-1.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/376532-2.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/376532-3.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/379461-3-container-xhtml.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/379461-3-container-xhtml.html (!=)|| round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/385569-1a.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/385569-1b.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/386470-1b.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/423823-1.html || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/424074-1-ref2.xul || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/440112.html ||  pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/466395-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/466395-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/467084-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/474417-1.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/bugs/491180-1.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548826}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/bugs/491180-2.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548826}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/495385-2h.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/513318-2.xul || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/513318-3.xul || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/canvas/text-bidi-ltr-test.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/canvas/text-bidi-rtl-test.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/generated-content/table-parts-01.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/src-list-local-full.html &amp;lt;/strike&amp;gt;|| || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/src-list-local-full-quotes.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/local-1.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/margin-collapsing/block-overflow-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/margin-collapsing/block-overflow-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/text-input-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/textarea-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/button-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/combobox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/listbox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/radio-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/checkbox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/box-shadow-styling.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--display-inline--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--display-inline-block--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--position-relative--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-cb-height.xhtml || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-cb-width.xhtml || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-window-width.xhtml || marked as fails in m-c ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/opacity-and-gradient-01.svg || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/text/wordwrap-01.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/transform/iframe-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/content/test/reftest/xml-stylesheet/lreas_selflink_dtd_id.svg || marked as fails in m-c || &lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/xul/base/src/grid/reftests/scrollable-columns.xul || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crashtest ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Reftests maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Reftest winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| Test || Status || Bugs&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/base/crashtests/311611-1.html || FAIL || &lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/base/crashtests/500467-1.html || HANG || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== xpcshell ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Xpcshell maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Xpcshell winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| Test || Status || Bugs&lt;br /&gt;
|- &lt;br /&gt;
| tests/jsctypes-test/unit/test_jsctypes.js || || &lt;br /&gt;
|- &lt;br /&gt;
| tests/test_uriloader_exthandler/unit/test_handlerService.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_docshell/unit/test_bug414201_jfif.js || || &lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/autocomplete/test_download_embed_bookmarks.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/autocomplete/test_livemarks.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/sync/test_expire_on_timed_flush.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/sync/test_expire_on_timed_flush_not_whole_entry.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_000_frecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_408221.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_empty_tags.js || HANGS ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_frecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_history_autocomplete_tags.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_migrateFrecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_satchel/unit/test_autocomplete.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_satchel/unit/test_expire.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug299716.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug371495.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug396129.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug428341.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug463819.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug470377_1.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug470377_2.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_necko/unit/test_file_protocol.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_necko/unit/test_localstreams.js || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec_Unittests/green&amp;diff=212706</id>
		<title>Mobile/Fennec Unittests/green</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec_Unittests/green&amp;diff=212706"/>
		<updated>2010-04-01T16:27:13Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* marking 471917 fixed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== overview ==&lt;br /&gt;
&lt;br /&gt;
This is a list of tests which I found to fail on both the n900 and n810 over repeated runs.  I believe making these tests pass (either by fixing the tests or ignoring the tests and writing new ones if necessary) will get us to a good position where we can start seeing green.&lt;br /&gt;
&lt;br /&gt;
Until reftest/crashtest/xpcshell are green we will continue to ignore the mochitest stuff.  &lt;br /&gt;
&lt;br /&gt;
== reftest ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Reftests maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Reftest winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| test || status || bug&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/colordepth.html || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/pngsuite-ancillary/ccwn2c08.png || || &amp;lt;strike&amp;gt;{{bug|471917}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/pngsuite-ancillary/ccwn3p08.png || || &amp;lt;strike&amp;gt;{{bug|471917}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/134706-3-left-scrollframe.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/134706-3-right-scrollframe.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/240536-resizer-ltr.xul || This is a nativetheme issue. It depends on the resize handle being rendered. ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1a.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1b.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1c.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1d.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1e.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1f.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/301726-2.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/338251-p-oh.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/362901-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/367247-s-auto.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/367247-l-hidden.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/371561-1.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/376532-2.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/376532-3.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/379461-3-container-xhtml.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/379461-3-container-xhtml.html (!=)|| round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/385569-1a.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/385569-1b.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/386470-1b.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/423823-1.html || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/424074-1-ref2.xul || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/440112.html ||  pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/466395-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/466395-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/467084-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/474417-1.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/bugs/491180-1.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548826}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/bugs/491180-2.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548826}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/495385-2h.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/513318-2.xul || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/513318-3.xul || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/canvas/text-bidi-ltr-test.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/canvas/text-bidi-rtl-test.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/generated-content/table-parts-01.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/src-list-local-full.html &amp;lt;/strike&amp;gt;|| || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/src-list-local-full-quotes.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/local-1.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/margin-collapsing/block-overflow-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/margin-collapsing/block-overflow-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/text-input-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/textarea-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/button-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/combobox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/listbox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/radio-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/checkbox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/box-shadow-styling.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--display-inline--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--display-inline-block--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--position-relative--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-cb-height.xhtml || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-cb-width.xhtml || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-window-width.xhtml || marked as fails in m-c ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/opacity-and-gradient-01.svg || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/text/wordwrap-01.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/transform/iframe-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/content/test/reftest/xml-stylesheet/lreas_selflink_dtd_id.svg || marked as fails in m-c || &lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/xul/base/src/grid/reftests/scrollable-columns.xul || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crashtest ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Reftests maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Reftest winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| Test || Status || Bugs&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/base/crashtests/311611-1.html || FAIL || &lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/base/crashtests/500467-1.html || HANG || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== xpcshell ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Xpcshell maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Xpcshell winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| Test || Status || Bugs&lt;br /&gt;
|- &lt;br /&gt;
| tests/jsctypes-test/unit/test_jsctypes.js || || &lt;br /&gt;
|- &lt;br /&gt;
| tests/test_uriloader_exthandler/unit/test_handlerService.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_docshell/unit/test_bug414201_jfif.js || || &lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/autocomplete/test_download_embed_bookmarks.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/autocomplete/test_livemarks.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/sync/test_expire_on_timed_flush.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/sync/test_expire_on_timed_flush_not_whole_entry.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_000_frecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_408221.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_empty_tags.js || HANGS ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_frecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_history_autocomplete_tags.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_migrateFrecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_satchel/unit/test_autocomplete.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_satchel/unit/test_expire.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug299716.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug371495.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug396129.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug428341.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug463819.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug470377_1.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug470377_2.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_necko/unit/test_file_protocol.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_necko/unit/test_localstreams.js || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec_Unittests/green&amp;diff=212704</id>
		<title>Mobile/Fennec Unittests/green</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec_Unittests/green&amp;diff=212704"/>
		<updated>2010-04-01T16:25:12Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* marking 556087 fixed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== overview ==&lt;br /&gt;
&lt;br /&gt;
This is a list of tests which I found to fail on both the n900 and n810 over repeated runs.  I believe making these tests pass (either by fixing the tests or ignoring the tests and writing new ones if necessary) will get us to a good position where we can start seeing green.&lt;br /&gt;
&lt;br /&gt;
Until reftest/crashtest/xpcshell are green we will continue to ignore the mochitest stuff.  &lt;br /&gt;
&lt;br /&gt;
== reftest ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Reftests maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Reftest winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| test || status || bug&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/colordepth.html || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/pngsuite-ancillary/ccwn2c08.png || || {{bug|471917}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/modules/libpr0n/test/reftest/pngsuite-ancillary/ccwn3p08.png || || {{bug|471917}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/134706-3-left-scrollframe.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/134706-3-right-scrollframe.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/240536-resizer-ltr.xul || This is a nativetheme issue. It depends on the resize handle being rendered. ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1a.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1b.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1c.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1d.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1e.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/300691-1f.html || spellcheck squiggle || {{bug|556076}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/301726-2.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/338251-p-oh.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/362901-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/367247-s-auto.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/367247-l-hidden.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/371561-1.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/376532-2.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/376532-3.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/379461-3-container-xhtml.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/379461-3-container-xhtml.html (!=)|| round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/385569-1a.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/385569-1b.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/386470-1b.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/423823-1.html || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/424074-1-ref2.xul || ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/440112.html ||  pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/466395-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/466395-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/467084-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/474417-1.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/bugs/491180-1.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548826}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/bugs/491180-2.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548826}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/495385-2h.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/513318-2.xul || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/bugs/513318-3.xul || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/canvas/text-bidi-ltr-test.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/canvas/text-bidi-rtl-test.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/generated-content/table-parts-01.html || round2 ||&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/src-list-local-full.html &amp;lt;/strike&amp;gt;|| || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/src-list-local-full-quotes.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/font-face/local-1.html&amp;lt;/strike&amp;gt; || || &amp;lt;strike&amp;gt;{{bug|548865}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/margin-collapsing/block-overflow-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/margin-collapsing/block-overflow-2.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/text-input-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/textarea-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/button-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/combobox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/listbox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/radio-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/checkbox-native.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;strike&amp;gt;tests/layout/reftests/native-theme/box-shadow-styling.html&amp;lt;/strike&amp;gt; || expected fail (native widget) || &amp;lt;strike&amp;gt;{{bug|471700}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--display-inline--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--display-inline-block--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/inline--position-relative--01.xhtml || left edge of box is broken || {{bug|548648}}&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-cb-height.xhtml || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-cb-width.xhtml || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/sizing/dynamic--inline-resize-window-width.xhtml || marked as fails in m-c ||&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/svg/opacity-and-gradient-01.svg || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/text/wordwrap-01.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/reftests/transform/iframe-1.html || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| tests/content/test/reftest/xml-stylesheet/lreas_selflink_dtd_id.svg || marked as fails in m-c || &lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/xul/base/src/grid/reftests/scrollable-columns.xul || pass with no-scrollbar || &amp;lt;strike&amp;gt;{{bug|556087}}&amp;lt;/strike&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== crashtest ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Reftests maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Reftest winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| Test || Status || Bugs&lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/base/crashtests/311611-1.html || FAIL || &lt;br /&gt;
|-&lt;br /&gt;
| tests/layout/base/crashtests/500467-1.html || HANG || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== xpcshell ==&lt;br /&gt;
&lt;br /&gt;
Here are some guides for running the tests:&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/Fennec_Xpcshell maemo]]&lt;br /&gt;
* [[https://wiki.mozilla.org/Mobile/WinMo_Xpcshell winmo]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot; class=&amp;quot;fullwidth-table sortable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| Test || Status || Bugs&lt;br /&gt;
|- &lt;br /&gt;
| tests/jsctypes-test/unit/test_jsctypes.js || || &lt;br /&gt;
|- &lt;br /&gt;
| tests/test_uriloader_exthandler/unit/test_handlerService.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_docshell/unit/test_bug414201_jfif.js || || &lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/autocomplete/test_download_embed_bookmarks.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/autocomplete/test_livemarks.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/sync/test_expire_on_timed_flush.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/sync/test_expire_on_timed_flush_not_whole_entry.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_000_frecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_408221.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_empty_tags.js || HANGS ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_frecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_history_autocomplete_tags.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_places/unit/test_migrateFrecency.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_satchel/unit/test_autocomplete.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_satchel/unit/test_expire.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug299716.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug371495.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug396129.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug428341.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug463819.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug470377_1.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_extensionmanager/unit/test_bug470377_2.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_necko/unit/test_file_protocol.js || ||&lt;br /&gt;
|- &lt;br /&gt;
| tests/test_necko/unit/test_localstreams.js || ||&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec/WinMoPain&amp;diff=187002</id>
		<title>Mobile/Fennec/WinMoPain</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec/WinMoPain&amp;diff=187002"/>
		<updated>2009-12-01T21:51:49Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Needs 1.9.2 landing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bug status==&lt;br /&gt;
===Waiting for review===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527384}} device-width/height support for viewport meta tag &#039;&#039;&#039;(mfinkle)&#039;&#039;&#039;&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|510917}} Downloading a .cab file from nightly builds page shows nothing in downloads manager (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|531547}} content is fuzzy, chrome too big (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Waiting for approval===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|529348}} improve xptcinvoke implementation on wince&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|520521}} add touch enabled support to windows mobile&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527182}} fixes broken QI impl for TextEditRules&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Needs landing===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|490189}} fennec should offer to be the default browser&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|519316}} remote start should happen earlier in start up sequence (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Needs 1.9.2 landing===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|531332}} Run fast-start service&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|530676}} WinMo Installer gets stuck at User Profile Creation on 11/23 1.9.2 nightly &amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|529092}}, fixes {{bug|527511}} trailing when panning on windows mobile &amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|530367}} Echo only typed passwords (don&#039;t flash password from PW manager)&amp;lt;/strike&amp;gt; &lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527674}} password echoing shows more asterisks than than typed letters&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|519316}} remote start should happen earlier in start up sequence (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* {{bug|529852}} cannot install with .exe installer (&#039;&#039;&#039;alexp&#039;&#039;&#039;) - &#039;&#039;depends on the following&#039;&#039;:&lt;br /&gt;
** &amp;lt;strike&amp;gt;{{bug|530889}} Shutdown FastStart service&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;{{bug|529897}} Make it possible to install Fennec over the existing version&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Needs patch (owned)===&lt;br /&gt;
* {{bug|525902}} [Regression] No See All Bookmarks icon on today&#039;s WinMo 1.9.2 Build (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&lt;br /&gt;
* {{bug|526257}} first character(s) are lost when typing into the URL bar (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Unowned===&lt;br /&gt;
* &amp;lt;strike&amp;gt; {{bug|518323}} Install breaks off half way on Windows Mobile 6.5 build 23047&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|522647}} Regression: HTC click wheel zooming broken&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pain Points==&lt;br /&gt;
===Perf===&lt;br /&gt;
* slow startup (16s with or 35+s without fast start) &#039;&#039;&#039;blocking alpha 4&#039;&#039;&#039;&lt;br /&gt;
** Ts talos running by the end of the week&lt;br /&gt;
** How to test fast start daemon perf&lt;br /&gt;
* panning is too slow&lt;br /&gt;
** not blocking alpha 4&lt;br /&gt;
* awesome bar takes too long to come up &#039;&#039;&#039;blocking alpha 4&#039;&#039;&#039; also a maemo blocker&lt;br /&gt;
** we have race conditions involving selection that we consistently loose ({{bug|526257}})&lt;br /&gt;
** First UI showing&lt;br /&gt;
** selection and test switching&lt;br /&gt;
** sqlite issues&lt;br /&gt;
** results populating&lt;br /&gt;
* zoom is super slow &#039;&#039;&#039;need to investigate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Usability===&lt;br /&gt;
* hard to click on links&lt;br /&gt;
* no spatial navigation (as a winmo user, I&#039;m used to having this)&lt;br /&gt;
* after selecting an item in the awesome bar (or typing a new url) the previous page&#039;s title is shown&lt;br /&gt;
* closing and reopening the browser show&#039;s the last page you were on for sever seconds before reloading the first run page &#039;&#039;&#039;blocking a4&#039;&#039;&#039;&lt;br /&gt;
* notification bar cut off in portrait mode &#039;&#039;should be fixed&#039;&#039;&lt;br /&gt;
* First run page looks crappy (zoomed out due to being in portrait)&lt;br /&gt;
* lots of little front end polish issues&lt;br /&gt;
&lt;br /&gt;
===Platform Issues===&lt;br /&gt;
* Trailing while panning ({{bug|527511}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* not the default browser ({{bug|490189}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* task bar pops in when changing orientation &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* compact querty soft kb unusable&lt;br /&gt;
* can&#039;t switch keyboards (no SIP button) &#039;&#039;&#039;block final&#039;&#039;&#039;&lt;br /&gt;
* no flash support, need to sort out the activeX side of things&lt;br /&gt;
* no html5 video support &#039;&#039;&#039;not blocking final&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;strike&amp;gt;new 7zip installer ({{bug|502933}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&amp;lt;/strike&amp;gt; - &#039;&#039;&#039;&#039;&#039;landed&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec/WinMoPain&amp;diff=186871</id>
		<title>Mobile/Fennec/WinMoPain</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec/WinMoPain&amp;diff=186871"/>
		<updated>2009-12-01T17:59:23Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Needs 1.9.2 landing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bug status==&lt;br /&gt;
===Waiting for review===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527384}} device-width/height support for viewport meta tag &#039;&#039;&#039;(mfinkle)&#039;&#039;&#039;&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|510917}} Downloading a .cab file from nightly builds page shows nothing in downloads manager (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|531547}} content is fuzzy, chrome too big (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Waiting for approval===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|529348}} improve xptcinvoke implementation on wince&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|520521}} add touch enabled support to windows mobile&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527182}} fixes broken QI impl for TextEditRules&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Needs landing===&lt;br /&gt;
* {{bug|490189}} fennec should offer to be the default browser &#039;&#039;&#039;(r+, with nits, need patch)&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|519316}} remote start should happen earlier in start up sequence (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* {{bug|529852}} cannot install with .exe installer (&#039;&#039;&#039;alexp&#039;&#039;&#039;) - &#039;&#039;depends on the following&#039;&#039;:&lt;br /&gt;
** &amp;lt;strike&amp;gt;{{bug|529897}} Make it possible to install Fennec over the existing version&amp;lt;/strike&amp;gt;&lt;br /&gt;
** {{bug|530889}} Shutdown FastStart service&lt;br /&gt;
&lt;br /&gt;
===Needs 1.9.2 landing===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|531332}} Run fast-start service&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|530676}} WinMo Installer gets stuck at User Profile Creation on 11/23 1.9.2 nightly &amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|529092}}, fixes {{bug|527511}} trailing when panning on windows mobile &amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|530367}} Echo only typed passwords (don&#039;t flash password from PW manager)&amp;lt;/strike&amp;gt; &lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527674}} password echoing shows more asterisks than than typed letters&amp;lt;/strike&amp;gt;&lt;br /&gt;
* {{bug|519316}} remote start should happen earlier in start up sequence (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Needs patch (owned)===&lt;br /&gt;
* {{bug|525902}} [Regression] No See All Bookmarks icon on today&#039;s WinMo 1.9.2 Build (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&lt;br /&gt;
* {{bug|526257}} first character(s) are lost when typing into the URL bar (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Unowned===&lt;br /&gt;
* &amp;lt;strike&amp;gt; {{bug|518323}} Install breaks off half way on Windows Mobile 6.5 build 23047&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|522647}} Regression: HTC click wheel zooming broken&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pain Points==&lt;br /&gt;
===Perf===&lt;br /&gt;
* slow startup (16s with or 35+s without fast start) &#039;&#039;&#039;blocking alpha 4&#039;&#039;&#039;&lt;br /&gt;
** Ts talos running by the end of the week&lt;br /&gt;
** How to test fast start daemon perf&lt;br /&gt;
* panning is too slow&lt;br /&gt;
** not blocking alpha 4&lt;br /&gt;
* awesome bar takes too long to come up &#039;&#039;&#039;blocking alpha 4&#039;&#039;&#039; also a maemo blocker&lt;br /&gt;
** we have race conditions involving selection that we consistently loose ({{bug|526257}})&lt;br /&gt;
** First UI showing&lt;br /&gt;
** selection and test switching&lt;br /&gt;
** sqlite issues&lt;br /&gt;
** results populating&lt;br /&gt;
* zoom is super slow &#039;&#039;&#039;need to investigate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Usability===&lt;br /&gt;
* hard to click on links&lt;br /&gt;
* no spatial navigation (as a winmo user, I&#039;m used to having this)&lt;br /&gt;
* after selecting an item in the awesome bar (or typing a new url) the previous page&#039;s title is shown&lt;br /&gt;
* closing and reopening the browser show&#039;s the last page you were on for sever seconds before reloading the first run page &#039;&#039;&#039;blocking a4&#039;&#039;&#039;&lt;br /&gt;
* notification bar cut off in portrait mode &#039;&#039;should be fixed&#039;&#039;&lt;br /&gt;
* First run page looks crappy (zoomed out due to being in portrait)&lt;br /&gt;
* lots of little front end polish issues&lt;br /&gt;
&lt;br /&gt;
===Platform Issues===&lt;br /&gt;
* Trailing while panning ({{bug|527511}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* not the default browser ({{bug|490189}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* task bar pops in when changing orientation &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* compact querty soft kb unusable&lt;br /&gt;
* can&#039;t switch keyboards (no SIP button) &#039;&#039;&#039;block final&#039;&#039;&#039;&lt;br /&gt;
* no flash support, need to sort out the activeX side of things&lt;br /&gt;
* no html5 video support &#039;&#039;&#039;not blocking final&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;strike&amp;gt;new 7zip installer ({{bug|502933}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&amp;lt;/strike&amp;gt; - &#039;&#039;&#039;&#039;&#039;landed&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec/WinMoPain&amp;diff=186870</id>
		<title>Mobile/Fennec/WinMoPain</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec/WinMoPain&amp;diff=186870"/>
		<updated>2009-12-01T17:58:37Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Needs landing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bug status==&lt;br /&gt;
===Waiting for review===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527384}} device-width/height support for viewport meta tag &#039;&#039;&#039;(mfinkle)&#039;&#039;&#039;&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|510917}} Downloading a .cab file from nightly builds page shows nothing in downloads manager (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|531547}} content is fuzzy, chrome too big (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Waiting for approval===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|529348}} improve xptcinvoke implementation on wince&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|520521}} add touch enabled support to windows mobile&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527182}} fixes broken QI impl for TextEditRules&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Needs landing===&lt;br /&gt;
* {{bug|490189}} fennec should offer to be the default browser &#039;&#039;&#039;(r+, with nits, need patch)&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|519316}} remote start should happen earlier in start up sequence (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&amp;lt;/strike&amp;gt;&lt;br /&gt;
* {{bug|529852}} cannot install with .exe installer (&#039;&#039;&#039;alexp&#039;&#039;&#039;) - &#039;&#039;depends on the following&#039;&#039;:&lt;br /&gt;
** &amp;lt;strike&amp;gt;{{bug|529897}} Make it possible to install Fennec over the existing version&amp;lt;/strike&amp;gt;&lt;br /&gt;
** {{bug|530889}} Shutdown FastStart service&lt;br /&gt;
&lt;br /&gt;
===Needs 1.9.2 landing===&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|531332}} Run fast-start service&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|530676}} WinMo Installer gets stuck at User Profile Creation on 11/23 1.9.2 nightly &amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|529092}}, fixes {{bug|527511}} trailing when panning on windows mobile &amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|530367}} Echo only typed passwords (don&#039;t flash password from PW manager)&amp;lt;/strike&amp;gt; &lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|527674}} password echoing shows more asterisks than than typed letters&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Needs patch (owned)===&lt;br /&gt;
* {{bug|525902}} [Regression] No See All Bookmarks icon on today&#039;s WinMo 1.9.2 Build (&#039;&#039;&#039;mfinkle&#039;&#039;&#039;)&lt;br /&gt;
* {{bug|526257}} first character(s) are lost when typing into the URL bar (&#039;&#039;&#039;crowder&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===Unowned===&lt;br /&gt;
* &amp;lt;strike&amp;gt; {{bug|518323}} Install breaks off half way on Windows Mobile 6.5 build 23047&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;{{bug|522647}} Regression: HTC click wheel zooming broken&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pain Points==&lt;br /&gt;
===Perf===&lt;br /&gt;
* slow startup (16s with or 35+s without fast start) &#039;&#039;&#039;blocking alpha 4&#039;&#039;&#039;&lt;br /&gt;
** Ts talos running by the end of the week&lt;br /&gt;
** How to test fast start daemon perf&lt;br /&gt;
* panning is too slow&lt;br /&gt;
** not blocking alpha 4&lt;br /&gt;
* awesome bar takes too long to come up &#039;&#039;&#039;blocking alpha 4&#039;&#039;&#039; also a maemo blocker&lt;br /&gt;
** we have race conditions involving selection that we consistently loose ({{bug|526257}})&lt;br /&gt;
** First UI showing&lt;br /&gt;
** selection and test switching&lt;br /&gt;
** sqlite issues&lt;br /&gt;
** results populating&lt;br /&gt;
* zoom is super slow &#039;&#039;&#039;need to investigate&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Usability===&lt;br /&gt;
* hard to click on links&lt;br /&gt;
* no spatial navigation (as a winmo user, I&#039;m used to having this)&lt;br /&gt;
* after selecting an item in the awesome bar (or typing a new url) the previous page&#039;s title is shown&lt;br /&gt;
* closing and reopening the browser show&#039;s the last page you were on for sever seconds before reloading the first run page &#039;&#039;&#039;blocking a4&#039;&#039;&#039;&lt;br /&gt;
* notification bar cut off in portrait mode &#039;&#039;should be fixed&#039;&#039;&lt;br /&gt;
* First run page looks crappy (zoomed out due to being in portrait)&lt;br /&gt;
* lots of little front end polish issues&lt;br /&gt;
&lt;br /&gt;
===Platform Issues===&lt;br /&gt;
* Trailing while panning ({{bug|527511}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* not the default browser ({{bug|490189}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* task bar pops in when changing orientation &#039;&#039;&#039;block a4&#039;&#039;&#039;&lt;br /&gt;
* compact querty soft kb unusable&lt;br /&gt;
* can&#039;t switch keyboards (no SIP button) &#039;&#039;&#039;block final&#039;&#039;&#039;&lt;br /&gt;
* no flash support, need to sort out the activeX side of things&lt;br /&gt;
* no html5 video support &#039;&#039;&#039;not blocking final&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;strike&amp;gt;new 7zip installer ({{bug|502933}}) &#039;&#039;&#039;block a4&#039;&#039;&#039;&amp;lt;/strike&amp;gt; - &#039;&#039;&#039;&#039;&#039;landed&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/08-Jul-2009&amp;diff=154179</id>
		<title>Mobile/Notes/08-Jul-2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/08-Jul-2009&amp;diff=154179"/>
		<updated>2009-07-08T16:36:33Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Windows Mobile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Details ==&lt;br /&gt;
&lt;br /&gt;
* Wednesdays - 9:30am Pacific, 12:30pm Eastern, 17:30 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x92 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
== Fennec Requirements ==&lt;br /&gt;
* [http://people.mozilla.com/~csejersen/fennec/req.html Requirements]&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
&lt;br /&gt;
* working on a review / polish of the Weave UI for Fennec&lt;br /&gt;
** Query for Weave Fennec UI bugs:  [http://bit.ly/weave-fennec-ui http://bit.ly/weave-fennec-ui]&lt;br /&gt;
&lt;br /&gt;
=== Front end ===&lt;br /&gt;
* Fixes for small-screen&lt;br /&gt;
* Awesome bar patches getting review&lt;br /&gt;
* Landed some fixes for &amp;lt;select&amp;gt; handling&lt;br /&gt;
* Kinetic/InputHandler patches getting review&lt;br /&gt;
&lt;br /&gt;
=== Geolocation support ===&lt;br /&gt;
* waiting on reviews.&lt;br /&gt;
* want to look at cell position this q.  Need platform cap.&lt;br /&gt;
&lt;br /&gt;
=== Windows Mobile ===&lt;br /&gt;
* updater&lt;br /&gt;
** all blocking patches have landed&lt;br /&gt;
** Joel has unit tests running locally&lt;br /&gt;
** main updater patch awaiting review from bsmedberg&lt;br /&gt;
* start up&lt;br /&gt;
** image scaling issues largely resolved&lt;br /&gt;
** largest amount of time spent loading dll&#039;s&lt;br /&gt;
** work begun on &amp;quot;browserd&amp;quot; and DDE-replacement to enable it&lt;br /&gt;
** Windows Mobile profiler is very usable now, though the profiling itself does sway results.&lt;br /&gt;
* low-res theme&lt;br /&gt;
** Kanth&#039;s patches waiting for review from mfinkle (today)&lt;br /&gt;
** waiting for new images from sean&lt;br /&gt;
* Fullscreen&lt;br /&gt;
** backed out, hopefully relanding today&lt;br /&gt;
* painting perf&lt;br /&gt;
** is there anything we can do for the omnia?&lt;br /&gt;
&lt;br /&gt;
=== Symbian ===&lt;br /&gt;
&lt;br /&gt;
=== [[Mobile#Performance|Performance]] ===&lt;br /&gt;
&lt;br /&gt;
* Networking&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
&lt;br /&gt;
* Startup&lt;br /&gt;
&lt;br /&gt;
* Layout&lt;br /&gt;
&lt;br /&gt;
* Fennec&lt;br /&gt;
&lt;br /&gt;
** Tile cache (froystig)&lt;br /&gt;
** Changing how we scroll (stuart)&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
&lt;br /&gt;
=== Builds ===&lt;br /&gt;
&lt;br /&gt;
=== QA ===&lt;br /&gt;
&lt;br /&gt;
=== Weave ===&lt;br /&gt;
&lt;br /&gt;
== Current Milestone ==&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec/Releases&amp;diff=144235</id>
		<title>Mobile/Fennec/Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec/Releases&amp;diff=144235"/>
		<updated>2009-05-14T20:57:49Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Formatting tweaks.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fennec releases will run on a couple different platforms (eventually). Each platform may have it&#039;s own way of installing applications.&lt;br /&gt;
&lt;br /&gt;
== Installing Fennec on Windows Mobile ==&lt;br /&gt;
Using your current web browser, navigate to http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/wince/1.0a1/fennec-1.0a1.en-US.wince-arm.cab&lt;br /&gt;
&lt;br /&gt;
[[Image:Install-enter-url.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Click yes to accept the download.&lt;br /&gt;
&lt;br /&gt;
[[Image:install-accept-download.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Depending on your connection speed, the download may take a while.&lt;br /&gt;
&lt;br /&gt;
[[Image:install-download-progress.png|240px]]&lt;br /&gt;
&lt;br /&gt;
If you had previously installed Fennec, you&#039;ll see this dialog. Click yes.&lt;br /&gt;
&lt;br /&gt;
[[Image:install-previous-version.png|240px]]&lt;br /&gt;
&lt;br /&gt;
If you device is software locked, you&#039;ll see this dialog. Click yes.&lt;br /&gt;
&lt;br /&gt;
[[Image:install-unsigned-cab.png|240px]]&lt;br /&gt;
&lt;br /&gt;
The install process will take a few minutes&lt;br /&gt;
&lt;br /&gt;
[[Image:install-install-progress.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Once its complete you&#039;ll see this dialog. Click OK.&lt;br /&gt;
&lt;br /&gt;
[[Image:install-success.png|240px]]&lt;br /&gt;
&lt;br /&gt;
To launch click on &amp;quot;Programs&amp;quot; in the start menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:launch-programs.png|240px]]&lt;br /&gt;
&lt;br /&gt;
From there, click on the Fennec icon.&lt;br /&gt;
&lt;br /&gt;
[[Image:launch-icon.png|240px]]&lt;br /&gt;
&lt;br /&gt;
== Installing Fennec on Nokia N810 ==&lt;br /&gt;
&lt;br /&gt;
Fennec releases are provided as .deb packages and can be installed directly to your N810 from the Application Manager. But first, you&#039;ll need to configure your Application Manager to look in the Mozilla repository. That&#039;s easy to do and once you do it, you won&#039;t need to worry about it again. Here is the quick information for setting up the Application Manager:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Web Address:&#039;&#039;&#039; http://ftp.mozilla.org/pub/mozilla.org/mobile/&lt;br /&gt;
* &#039;&#039;&#039;Distribution:&#039;&#039;&#039; chinook (Note: The chinook builds work on diablo as well.)&lt;br /&gt;
* &#039;&#039;&#039;Components:&#039;&#039;&#039; release&lt;br /&gt;
&lt;br /&gt;
Here are the step-by-step instructions:&lt;br /&gt;
&lt;br /&gt;
* Open the Application Manager. You should it listed under the &#039;&#039;&#039;Settings&#039;&#039;&#039; folder.&lt;br /&gt;
[[Image:Appman-main.png]]&lt;br /&gt;
&lt;br /&gt;
* You need to add the Mozilla repository to your list of catalogs. Choose &amp;quot;Application manager &amp;gt; Tools &amp;gt; Application catalog...&amp;quot; from the menu.&lt;br /&gt;
[[Image:Appman-catalog.png]]&lt;br /&gt;
&lt;br /&gt;
* You should see some application repositories already in the list. You need to add Mozilla&#039;s, so press the &#039;&#039;&#039;New&#039;&#039;&#039; button. Here is the information you need to fill into the form so Mozilla&#039;s repository is added to the catalog:&lt;br /&gt;
[[Image:Appman-details.png]]&lt;br /&gt;
&lt;br /&gt;
* After filling in the information and pressing &#039;&#039;&#039;OK&#039;&#039;&#039;, you can also &#039;&#039;&#039;Close&#039;&#039;&#039; the Catalog window. At this point, you should see the catalog list is being refreshed.&lt;br /&gt;
&lt;br /&gt;
* You can now &#039;&#039;&#039;Browse installable applications&#039;&#039;&#039; from the main Application Manager window. You can choose &#039;&#039;&#039;All&#039;&#039;&#039; or &#039;&#039;&#039;Internet&#039;&#039;&#039; and Fennec should be listed as an installable application.&lt;br /&gt;
[[Image:Appman-chooseapp.png]]&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;fennec&#039;&#039;&#039; and press the &#039;&#039;&#039;Install&#039;&#039;&#039; button (at the bottom of the screen). After some dialogs double check your desire to install this non-official software, the application will be downloaded and installed.&lt;br /&gt;
[[Image:Appman-dialogs.png]]&lt;br /&gt;
&lt;br /&gt;
* After a successful installation, you can launch Fennec from the &#039;&#039;&#039;Extras&#039;&#039;&#039; folder:&lt;br /&gt;
[[Image:Appman-launchapp.png]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Fennec/Releases&amp;diff=144233</id>
		<title>Mobile/Fennec/Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Fennec/Releases&amp;diff=144233"/>
		<updated>2009-05-14T20:54:08Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Installing Fennec on Windows Mobile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Fennec releases will run on a couple different platforms (eventually). Each platform may have it&#039;s own way of installing applications.&lt;br /&gt;
&lt;br /&gt;
== Installing Fennec on Windows Mobile ==&lt;br /&gt;
Using your current web browser, navigate to http://ftp.mozilla.org/pub/mozilla.org/mobile/releases/wince/1.0a1/fennec-1.0a1.en-US.wince-arm.cab&lt;br /&gt;
[[Image:Install-enter-url.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Click yes to accept the download.&lt;br /&gt;
[[Image:install-accept-download.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Depending on your connection speed, the download may take a while.&lt;br /&gt;
[[Image:install-download-progress.png|240px]]&lt;br /&gt;
&lt;br /&gt;
if you had previously installed Fennec, you&#039;ll see this dialog. Click yes.&lt;br /&gt;
[[Image:install-previous-version.png|240px]]&lt;br /&gt;
&lt;br /&gt;
If you device is software locked, you&#039;ll see this dialog. Click yes.&lt;br /&gt;
[[Image:install-unsigned-cab.png|240px]]&lt;br /&gt;
&lt;br /&gt;
The install process will take a few minutes&lt;br /&gt;
[[Image:install-install-progress.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Once its complete you&#039;ll see this dialog. Click OK.&lt;br /&gt;
[[Image:install-success.png|240px]]&lt;br /&gt;
&lt;br /&gt;
To launch click on &amp;quot;Programs&amp;quot; in the start menu.&lt;br /&gt;
[[Image:launch-programs.png|240px]]&lt;br /&gt;
&lt;br /&gt;
From there, click on the Fennec icon.&lt;br /&gt;
[[Image:launch-icon.png|240px]]&lt;br /&gt;
&lt;br /&gt;
== Installing Fennec on Nokia N810 ==&lt;br /&gt;
&lt;br /&gt;
Fennec releases are provided as .deb packages and can be installed directly to your N810 from the Application Manager. But first, you&#039;ll need to configure your Application Manager to look in the Mozilla repository. That&#039;s easy to do and once you do it, you won&#039;t need to worry about it again. Here is the quick information for setting up the Application Manager:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Web Address:&#039;&#039;&#039; http://ftp.mozilla.org/pub/mozilla.org/mobile/&lt;br /&gt;
* &#039;&#039;&#039;Distribution:&#039;&#039;&#039; chinook (Note: The chinook builds work on diablo as well.)&lt;br /&gt;
* &#039;&#039;&#039;Components:&#039;&#039;&#039; release&lt;br /&gt;
&lt;br /&gt;
Here are the step-by-step instructions:&lt;br /&gt;
&lt;br /&gt;
* Open the Application Manager. You should it listed under the &#039;&#039;&#039;Settings&#039;&#039;&#039; folder.&lt;br /&gt;
[[Image:Appman-main.png]]&lt;br /&gt;
&lt;br /&gt;
* You need to add the Mozilla repository to your list of catalogs. Choose &amp;quot;Application manager &amp;gt; Tools &amp;gt; Application catalog...&amp;quot; from the menu.&lt;br /&gt;
[[Image:Appman-catalog.png]]&lt;br /&gt;
&lt;br /&gt;
* You should see some application repositories already in the list. You need to add Mozilla&#039;s, so press the &#039;&#039;&#039;New&#039;&#039;&#039; button. Here is the information you need to fill into the form so Mozilla&#039;s repository is added to the catalog:&lt;br /&gt;
[[Image:Appman-details.png]]&lt;br /&gt;
&lt;br /&gt;
* After filling in the information and pressing &#039;&#039;&#039;OK&#039;&#039;&#039;, you can also &#039;&#039;&#039;Close&#039;&#039;&#039; the Catalog window. At this point, you should see the catalog list is being refreshed.&lt;br /&gt;
&lt;br /&gt;
* You can now &#039;&#039;&#039;Browse installable applications&#039;&#039;&#039; from the main Application Manager window. You can choose &#039;&#039;&#039;All&#039;&#039;&#039; or &#039;&#039;&#039;Internet&#039;&#039;&#039; and Fennec should be listed as an installable application.&lt;br /&gt;
[[Image:Appman-chooseapp.png]]&lt;br /&gt;
&lt;br /&gt;
* Choose &#039;&#039;&#039;fennec&#039;&#039;&#039; and press the &#039;&#039;&#039;Install&#039;&#039;&#039; button (at the bottom of the screen). After some dialogs double check your desire to install this non-official software, the application will be downloaded and installed.&lt;br /&gt;
[[Image:Appman-dialogs.png]]&lt;br /&gt;
&lt;br /&gt;
* After a successful installation, you can launch Fennec from the &#039;&#039;&#039;Extras&#039;&#039;&#039; folder:&lt;br /&gt;
[[Image:Appman-launchapp.png]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Notes/24-Nov-2008&amp;diff=117751</id>
		<title>Mobile/Notes/24-Nov-2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Notes/24-Nov-2008&amp;diff=117751"/>
		<updated>2008-11-24T17:05:27Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Windows Mobile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Details ===&lt;br /&gt;
&lt;br /&gt;
* Mondays - 9:00am Pacific, 12:00pm Eastern, 17:00 UTC&lt;br /&gt;
* 650-903-0800 or 650-215-1282 x91 Conf# 8605 (US/INTL)&lt;br /&gt;
* 1-800-707-2533 (pin 369) Conf# 8605 (US)&lt;br /&gt;
* irc.mozilla.org #mobile for backchannel&lt;br /&gt;
&lt;br /&gt;
=== Notices ===&lt;br /&gt;
* [http://people.mozilla.com/~csejersen/fennec/req.html Requirements]&lt;br /&gt;
&lt;br /&gt;
== Fennec Status ==&lt;br /&gt;
&lt;br /&gt;
* M10 / Alpha 2 Scheduling&lt;br /&gt;
&lt;br /&gt;
=== UX design ===&lt;br /&gt;
&lt;br /&gt;
* work-in-progress UI design status page [http://spreadsheets.google.com/ccc?key=p2tjDbTybTBrG9uAjuSPTZQ&amp;amp;hl=en UI design status spreadsheet]&lt;br /&gt;
* queries: [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;product=Fennec&amp;amp;long_desc_type=substring&amp;amp;long_desc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;status_whiteboard_type=allwordssubstr&amp;amp;status_whiteboard=UI+polish&amp;amp;keywords_type=allwords&amp;amp;keywords=&amp;amp;resolution=DUPLICATE&amp;amp;resolution=---&amp;amp;emailassigned_to1=1&amp;amp;emailtype1=exact&amp;amp;email1=&amp;amp;emailassigned_to2=1&amp;amp;emailreporter2=1&amp;amp;emailqa_contact2=1&amp;amp;emailtype2=exact&amp;amp;email2=&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0= all Fennec UI polish bugs], [https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&amp;amp;short_desc_type=allwordssubstr&amp;amp;short_desc=&amp;amp;product=Fennec&amp;amp;long_desc_type=substring&amp;amp;long_desc=&amp;amp;bug_file_loc_type=allwordssubstr&amp;amp;bug_file_loc=&amp;amp;status_whiteboard_type=allwordssubstr&amp;amp;status_whiteboard=&amp;amp;keywords_type=allwords&amp;amp;keywords=uiwanted&amp;amp;resolution=DUPLICATE&amp;amp;resolution=---&amp;amp;emailassigned_to1=1&amp;amp;emailtype1=exact&amp;amp;email1=&amp;amp;emailassigned_to2=1&amp;amp;emailreporter2=1&amp;amp;emailqa_contact2=1&amp;amp;emailtype2=exact&amp;amp;email2=&amp;amp;bugidtype=include&amp;amp;bug_id=&amp;amp;votes=&amp;amp;chfieldfrom=&amp;amp;chfieldto=Now&amp;amp;chfieldvalue=&amp;amp;cmdtype=doit&amp;amp;order=Reuse+same+sort+as+last+time&amp;amp;field0-0-0=noop&amp;amp;type0-0-0=noop&amp;amp;value0-0-0= Fennec uiwanted bugs]&lt;br /&gt;
* if you open a bug that needs some UI/UX attention, use the &amp;quot;uiwanted&amp;quot; keyword&lt;br /&gt;
&lt;br /&gt;
New:&lt;br /&gt;
* Doing more with the site button (for RSS and search plugin discovery): [[Mobile/UI/Designs/TouchScreen/workingUI#Extended_Site_Button]]&lt;br /&gt;
* Mockups for authentication: [[Mobile/UI/Designs/TouchScreen/workingUI#Authentication]]&lt;br /&gt;
* Defining the desktop integration (weave) UX&lt;br /&gt;
** Overview: [[Mobile/UI/Designs/TouchScreen/workingUI/desktop_integration]]&lt;br /&gt;
** jono&#039;s proposed UI: [http://people.mozilla.com/~jdicarlo/weave-fennec-ui.html]&lt;br /&gt;
** proposed UI for tabs: [[Mobile/UI/Designs/TouchScreen/workingUI/desktop_integration/interface1]] (madhava)&lt;br /&gt;
&lt;br /&gt;
Ongoing:&lt;br /&gt;
&lt;br /&gt;
* bookmark management - early wireframes here: [[Mobile/UI/Designs/TouchScreen/workingUI/bookmark_management]]&lt;br /&gt;
* context-sensitive menus [[Mobile/UI/Designs/TouchScreen/workingUI/CSM]]&lt;br /&gt;
* [https://wiki.mozilla.org/Mobile/UI/Designs/TouchScreen/workingUI#Panning_and_Zooming better defining panning and zooming behaviour]&lt;br /&gt;
&lt;br /&gt;
=== UI ===&lt;br /&gt;
&lt;br /&gt;
* Unified panning (mfinkle/gavin/vlad/stuart)&lt;br /&gt;
** [https://bugzilla.mozilla.org/show_bug.cgi?id=462425 landed]&lt;br /&gt;
(see the [https://wiki.mozilla.org/User:Pavlov/MobileRefactoring tracking] page for remaining work to get it back to a1 functionality)&lt;br /&gt;
&lt;br /&gt;
=== Geo support ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Platform ===&lt;br /&gt;
&lt;br /&gt;
=== Windows Mobile ===&lt;br /&gt;
* working on &amp;quot;faux gcc&amp;quot;less build system (crowder)&lt;br /&gt;
&lt;br /&gt;
=== [[Mobile#Performance|Performance]] ===&lt;br /&gt;
* {{bug|461031}} Content sink notifications&lt;br /&gt;
&lt;br /&gt;
* Networking&lt;br /&gt;
** {{bug|447866}} Better pipelining&lt;br /&gt;
&lt;br /&gt;
* Graphics&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* {{bug|456091}}&lt;br /&gt;
* {{bug|456045}}&lt;br /&gt;
&lt;br /&gt;
=== Builds ===&lt;br /&gt;
&lt;br /&gt;
=== QA ===&lt;br /&gt;
* Big Blockers for Mochitests (unlocks a large number of mochitests)&lt;br /&gt;
** {{bug|455891}} - issues with setting Focus on elements -- has patch, in review&lt;br /&gt;
** &amp;lt;strike&amp;gt;{{bug|454613}} - showModalDialog issue&amp;lt;/strike&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Lesser issues, related to plugin support:&lt;br /&gt;
** {{bug|455956}} - plugin style&lt;br /&gt;
** {{bug|455866}} - pluginNotFound event not firing&lt;br /&gt;
&lt;br /&gt;
* Developed script to run reftests/crashtests on device&lt;br /&gt;
* Developed [[https://wiki.mozilla.org/Mobile/Fennec_Automation table]] to track automated tests on fennec&lt;br /&gt;
&lt;br /&gt;
* Additional [[https://litmus.mozilla.org/run_tests.cgi?test_run_id=35 litmus]] BFT&#039;s created for fennec&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Mobile/Build/WindowsMobileBugs&amp;diff=116078</id>
		<title>Mobile/Build/WindowsMobileBugs</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Mobile/Build/WindowsMobileBugs&amp;diff=116078"/>
		<updated>2008-11-11T16:18:43Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Build Bustages */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Build Bustages ==&lt;br /&gt;
* {{bug|456449}}nspr_love&lt;br /&gt;
** dougt&lt;br /&gt;
** &#039;&#039;&#039;r? wtc&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464091}} widget_hacky_stuff&lt;br /&gt;
** &#039;&#039;&#039;dougt&#039;&#039;&#039; needs update&lt;br /&gt;
* {{bug|455381}}xpcom_unicode_changes&lt;br /&gt;
** blassey&lt;br /&gt;
** &#039;&#039;&#039;r? bsmedberg&#039;&#039;&#039;&lt;br /&gt;
* {{bug|455381}}nsCommonProcess&lt;br /&gt;
** &#039;&#039;&#039;r? bsmedberg&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464088}}dont_build_dbm&lt;br /&gt;
** dougt&lt;br /&gt;
** patched attached, &#039;&#039;&#039;who should review?&#039;&#039;&#039;&lt;br /&gt;
* {{bug|454120}}nss_love&lt;br /&gt;
** dougt&lt;br /&gt;
** &#039;&#039;&#039;Blocked on NSS Reviewer&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464095}} sqlite&lt;br /&gt;
** blassey&lt;br /&gt;
** r? sdwilsh&lt;br /&gt;
** &#039;&#039;fixed upstream&#039;&#039;&lt;br /&gt;
* {{bug|461839}}unscribe_breaker&lt;br /&gt;
** dougt&lt;br /&gt;
** &#039;&#039;&#039;ready for review?&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461841}}js_cleanup&lt;br /&gt;
** dougt&lt;br /&gt;
** &#039;&#039;&#039;r? crowder&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461845}}lcm_fixes&lt;br /&gt;
** dougt&lt;br /&gt;
** &#039;&#039;&#039;r? pavlov&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461847}}bzlib_bustage&lt;br /&gt;
** &#039;&#039;&#039;r? pavlov&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461848}}libjar_bustage&lt;br /&gt;
** r+sr+ dveditz &lt;br /&gt;
** &#039;&#039;&#039;needs checkin&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461849}}icon_bustage&lt;br /&gt;
** &#039;&#039;&#039;r? pavlov&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461856}}toolkit_username&lt;br /&gt;
** r+ bsmedberg&lt;br /&gt;
** &#039;&#039;&#039;needs checking&#039;&#039;&#039;&lt;br /&gt;
* {{bug|461858}}toolkit_bustage&lt;br /&gt;
** &#039;&#039;&#039;blassey&#039;&#039;&#039; needs to update &lt;br /&gt;
** r- bsmedberg&lt;br /&gt;
* {{bug|461859}}xpcom_bustage&lt;br /&gt;
** &#039;&#039;&#039;blassey&#039;&#039;&#039; ready for review?&lt;br /&gt;
* {{bug|461860}}gfx_fixup&lt;br /&gt;
** &#039;&#039;&#039;dougt&#039;&#039;&#039; ready for review?&lt;br /&gt;
* {{bug|461844}}media_cleanup&lt;br /&gt;
** &#039;&#039;&#039;dougt&#039;&#039;&#039; needs to update&lt;br /&gt;
** asking chris double for suggestions.&lt;br /&gt;
* {{bug|463326}} expand_env_strings&lt;br /&gt;
** r- blassey&lt;br /&gt;
** &#039;&#039;&#039;wolfe needs to update&#039;&#039;&#039;&lt;br /&gt;
* {{bug|463532}} freetype2_import&lt;br /&gt;
** blassey&lt;br /&gt;
** &#039;&#039;&#039;r? ted&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;sr? vlad&#039;&#039;&#039;&lt;br /&gt;
* {{bug|462908}} windows_freetype_font_backend&lt;br /&gt;
** &#039;&#039;&#039;blassey&#039;&#039;&#039; needs to update&lt;br /&gt;
** &#039;&#039;r? karlt&#039;&#039;&lt;br /&gt;
** &#039;&#039;sr? pav&#039;&#039;&lt;br /&gt;
** comments from karlt and vlad, &lt;br /&gt;
* {{bug|462912}} js_tracing_bustage&lt;br /&gt;
** needs landing&lt;br /&gt;
* {{bug|464166}} dllmain_wince&lt;br /&gt;
** blassey&lt;br /&gt;
** &#039;&#039;&#039;r? bsmedberg&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464178}} js_bustage_int_ptr&lt;br /&gt;
** p=blassey&lt;br /&gt;
** passing ownership to &#039;&#039;&#039;crowder&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464190}} GetProcAddress_configure&lt;br /&gt;
** dougt&lt;br /&gt;
** &#039;&#039;&#039;r? ted&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464180}}_FNan_fix&lt;br /&gt;
** blassey&lt;br /&gt;
** bustage from wave decoder landing&lt;br /&gt;
** &#039;&#039;&#039;r? kinetik&#039;&#039;&#039;&lt;br /&gt;
* {{bug|463532}} ft_char_bit&lt;br /&gt;
** blassey&lt;br /&gt;
** root cause of mkdepend crash&lt;br /&gt;
** &#039;&#039;&#039;r? ted&#039;&#039;&#039;&lt;br /&gt;
* {{bug|464052}} no_far&lt;br /&gt;
** blassey&lt;br /&gt;
** already fixed on i386&lt;br /&gt;
** needs landing&lt;br /&gt;
&lt;br /&gt;
== Runtime Errors ==&lt;br /&gt;
* {{bug|459677}} dpi_scale&lt;br /&gt;
** blassey&lt;br /&gt;
** sr+r = bz&lt;br /&gt;
** &#039;&#039;&#039;needs checkin&#039;&#039;&#039;&lt;br /&gt;
* {{bug|460767}} imgRequest_null_frame&lt;br /&gt;
** blassey&lt;br /&gt;
** r= pavlov&lt;br /&gt;
** &#039;&#039;&#039;checkin needed&#039;&#039;&#039;&lt;br /&gt;
* {{bug|463562}} mmtimer&lt;br /&gt;
** blassey&lt;br /&gt;
** &#039;&#039;&#039;r? pavlov&#039;&#039;&#039;&lt;br /&gt;
** discussion on trade off of accuracy/speed/additional dep &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Not Critical ==&lt;br /&gt;
* {{bug|458950}}updater_fixes&lt;br /&gt;
** blassey&lt;br /&gt;
** let&#039;s just disable the updater for now?&lt;br /&gt;
* {{bug|463561}} mkdepends_div_by_0&lt;br /&gt;
** blassey&lt;br /&gt;
** &#039;&#039;&#039;r? bs&#039;&#039;&#039;&lt;br /&gt;
** not in critical path anymore&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Tamarin:WeeklyUpdates&amp;diff=93949</id>
		<title>Tamarin:WeeklyUpdates</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Tamarin:WeeklyUpdates&amp;diff=93949"/>
		<updated>2008-05-20T20:58:56Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;:&#039;&#039;These updates concern Tamarin and related projects only.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Meeting Details&#039;&#039;&#039;&lt;br /&gt;
* 2:00pm Pacific Time (21:00 UTC) on Tuesdays&lt;br /&gt;
** (5PM Eastern US, 11PM Oslo, 6AM (Wed) Seoul, 7AM (Wed) Melbourne)&lt;br /&gt;
&lt;br /&gt;
* Location: Tel: 866 705 2554 (us), 913 227 1201 (int’l)&lt;br /&gt;
** Passcode: 9140087&lt;br /&gt;
* Duration: 60 minutes&lt;br /&gt;
* join irc.mozilla.org #tamarin for attendence taking and questions&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Next meeting&#039;s Agenda Items:&#039;&#039;&#039;&lt;br /&gt;
** (Moh/Intel)- &lt;br /&gt;
*** Significant performance improvements through a shortcut in String::equalsUTF8 &lt;br /&gt;
**** https://bugzilla.mozilla.org/show_bug.cgi?id=433799&lt;br /&gt;
*** runtests.py script is unfair &lt;br /&gt;
**** https://bugzilla.mozilla.org/show_bug.cgi?id=434118&lt;br /&gt;
*** Does it make sense to have a fast post-codegen pass to do code-alignment among other peephole optimizations? Starting points? Jungwoo is exploring.&lt;br /&gt;
*** Shengnan needs LIR_file and LIR_line in TT to enable VTune. Starting points?&lt;br /&gt;
**** https://bugzilla.mozilla.org/show_bug.cgi?id=432737&lt;br /&gt;
** (Jim/Mozilla)-&lt;br /&gt;
*** Moving TC&#039;s MMgc into TT: compiles, but there are still test regressions.  Tommy has reviewed changes from TT&#039;s MMgc for inclusion in TC&#039;s MMgc (backmerge); seven patches waiting for review&lt;br /&gt;
**** https://bugzilla.mozilla.org/show_bug.cgi?id=409021&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Last meeting&#039;s Agenda Items:&#039;&#039;&#039;&lt;br /&gt;
** (Moh/Intel)- &lt;br /&gt;
*** Major performance gains from optimized doubleToInt32(double d) using integer code. https://bugzilla.mozilla.org/show_bug.cgi?id=412978&lt;br /&gt;
***CMOV is no longer considered harmful! A discussion on the performance considerations of using CMOV.&lt;br /&gt;
** (Mark Hammond)-&lt;br /&gt;
*** How to best evangelize Tamarin through ScreamingMonkey?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 6th May 2008 =&lt;br /&gt;
&lt;br /&gt;
== Attendees ==&lt;br /&gt;
&lt;br /&gt;
* Adobe: Ed, Scott, Rick, Steven, Tom&lt;br /&gt;
* Mozilla: Dave, Jason, Jim, Brian Crowder&lt;br /&gt;
* Intel: Shengnan Cong, Marsha Eng, Jungwoo Ha, Moh Haghighat, Mingqiu Sun&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
&lt;br /&gt;
** Moh (Intel)- &lt;br /&gt;
*** Major performance gains from optimized doubleToInt32 (double d) using integer code. https://bugzilla.mozilla.org/show_bug.cgi?id=412978&lt;br /&gt;
**** This is used in SpiderMonkey and Tamarin.  Intel’s numeric team has helped out with this issue. Great performance gains thus far- Ed has also gotten these consistent results&lt;br /&gt;
***** Mozilla to see how this works with Firefox&lt;br /&gt;
**** Now it needs to be tested! &lt;br /&gt;
*** CMOV is no longer considered harmful! &lt;br /&gt;
**** A discussion on the performance considerations of using CMOV. Intel recommends using CMOV except in certain highly predictable cases.&lt;br /&gt;
&lt;br /&gt;
** Steven (Adobe)-&lt;br /&gt;
*** Working on a patch for an interpreter speed-up. Currently is only working on Mac. Patch should be viewable later today. &lt;br /&gt;
**** Progress is being made!&lt;br /&gt;
&lt;br /&gt;
** Rick (Adobe)-&lt;br /&gt;
*** Is continuing to work on trees.  Expects to land patch soon and go over updates in the next few weeks.&lt;br /&gt;
&lt;br /&gt;
** Jim (Mozilla)-&lt;br /&gt;
*** Update on regression of performance.  In order for Tamarin to get into Mozilla, then patches can’t land if they slow things down.  Take a benchmark approach and get TT to be on par w/ SpiderMonkey- then it can be switched over.&lt;br /&gt;
**** Mozilla will contribute speed optimizations to Adobe.  Adobe needs to be comfortable making optimized code “clean” going forward, while making sure the numbers hit.&lt;br /&gt;
***** Adobe is building out its own internal performance measurements now. Going forward, make sure Mozilla and Adobe have agreement on benchmarks.&lt;br /&gt;
&lt;br /&gt;
** Tom (Adobe)-&lt;br /&gt;
*** Has posted a wiki page on Hosting APIs that he wants Mozilla to review.  He will also send around to the list.&lt;br /&gt;
&lt;br /&gt;
** Mark Hammond-&lt;br /&gt;
*** How to best evangelize Tamarin through ScreamingMonkey? How to get folks using it?&lt;br /&gt;
**** The IE DOM works as hopes (minus some expected issues).  Can we evangelize and package?  Yes, but who can assist? John R and other evangelists can blog on this. Brendan to follow-up with Mark on this.&lt;br /&gt;
&lt;br /&gt;
= Older meetings =&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2008-04-15|April 15, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2008-03-25|March 25, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2008-03-18|March 18, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2008-03-11|March 11, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/TamarinSummit2008|Tamarin Tech Summit Agenda, February 1, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2008-01-15|January 15, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2008-01-08|January 08, 2008]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-12-18|December 18, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-12-01|December 11, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-12-04|December 4, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-11-27|November 27, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-11-07|November 7, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-10-30|October 30, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-10-23|October 23, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-10-16|October 16, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-10-09|October 9, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-10-02|October 2, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-09-25|September 25, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-09-18|September 18, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-09-11|September 11, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-09-04|September 4, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-08-28|August 28, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-08-14|August 14, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/2007-08-07|August 7, 2007]]&lt;br /&gt;
* [[Tamarin:WeeklyUpdates/Announcement|Meeting Announcement]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Breakpad/Design/Database&amp;diff=53582</id>
		<title>Breakpad/Design/Database</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Breakpad/Design/Database&amp;diff=53582"/>
		<updated>2007-03-31T03:16:36Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Some feedback morgamic asked me to contribute&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[Breakpad/Design|&amp;amp;laquo; back to Breakpad design page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Breakpad Database =&lt;br /&gt;
ER draft:&lt;br /&gt;
http://people.mozilla.org/~morgamic/breakpad-er.jpg&lt;br /&gt;
* [http://www.flickr.com/photo_zoom.gne?id=440017945&amp;amp;size=l whiteboarded first run] (don&#039;t laugh, sucka!)&lt;br /&gt;
&lt;br /&gt;
Not sure about:&lt;br /&gt;
* How much we need to break apart the frames table?&lt;br /&gt;
** &#039;&#039;What you have here looks about right, imho.&#039;&#039; - [[User:Crowder|Crowder]]&lt;br /&gt;
* How normalized do we want things?&lt;br /&gt;
** &#039;&#039;Err on the side of more rather than less.&#039;&#039; - [[User:Crowder|Crowder]]&lt;br /&gt;
* For id-&amp;gt;name pairings is it worth pulling the values out since data will be duplicated heavily for things like product, platform, os, etc.?  To reduce the size of the main reports table I think it&#039;s necessary but I&#039;m open to being convinced otherwise.&lt;br /&gt;
** &#039;&#039;For things where you can save time and space, normalize here, otherwise don&#039;t.&#039;&#039;  - [[User:Crowder|Crowder]]&lt;br /&gt;
* Do comment and reason need to be separated from the report table as well?&lt;br /&gt;
** &#039;&#039;No&#039;&#039; - [[User:Crowder|Crowder]]&lt;br /&gt;
* Need some additional tables not talked about&lt;br /&gt;
** Crash groupings by address, module, function?&lt;br /&gt;
** For each of these groupings -- bugs open, bugs closed table&lt;br /&gt;
** Stored bugzilla queries in each of these groupings pointing to a query that brings up all related bugs&lt;br /&gt;
** A table (or set of tables) recording all the DLLs associated and captured with each report (perhaps DLL ID/version, then normalize DLL names to elsewhere) [[User:Crowder|Crowder]]&lt;br /&gt;
&lt;br /&gt;
PostgreSQL 8.2 or higher should be used because it offers things that MySQL does not have:&lt;br /&gt;
* Partitioning if we need to scale the database in the future, which will likely happen if we plan on keeping more than 3 months worth of data.  For example, we could partition by date and have the db create a new child table for each new month as time goes on, then pop off outdated partitions once they become too old but keep them in another db for since-beginning-of-time queries.  Popping the old tables off the &amp;quot;stack&amp;quot; could be done using a backend script/procedure/cron -- whatever.&lt;br /&gt;
* Arguably better performance for larger data sets (read Google if you want to, but most of this lies in partitioning and bitmask joins)&lt;br /&gt;
* More precise datatypes (adhering to SQL standards is a plus)&lt;br /&gt;
* Long-standing support for stored procedures&lt;br /&gt;
* Views for databases that are heavily normalized (helps in simple reporting!)&lt;br /&gt;
&lt;br /&gt;
Designing the schema is an important task and shouldn&#039;t be taken lightly.  In general, there are typically two routes to take:&lt;br /&gt;
* Normalize, come up with a snowflake-like schema, abstract up-front but better long-term&lt;br /&gt;
* Leave denormalized, just swallow inefficiencies in the short term and pay the price later on&lt;br /&gt;
** &#039;&#039;As mentioned above, I vote for the former.&#039;&#039; - [[User:Crowder|Crowder]]&lt;br /&gt;
&lt;br /&gt;
How we can have both:&lt;br /&gt;
* Normalize properly, generating a properly abstracted set of tables with partitions&lt;br /&gt;
* Use views to pull together common queries used for reporting&lt;br /&gt;
&lt;br /&gt;
The current schema has:&lt;br /&gt;
* individual minidump records&lt;br /&gt;
* product/OS/buildid information&lt;br /&gt;
* control information used to &amp;quot;register&amp;quot; an incoming minidump and monitor/track/control its progress though all the stages from being transfered from the client until it is fully collected and processed on the server and available for reporting and analysis.&lt;br /&gt;
&lt;br /&gt;
A major concern about over-normalization is data insertion and the problems it presents for the processor, which should probably be transactional and may have to do lookups and some db magic in order to successfully insert new records.&lt;br /&gt;
* &#039;&#039;Should be able to cache repetitive stuff like OS in whatever tool is talking to the DB to save it some work, if necessary&#039;&#039; - [[User:Crowder|Crowder]]&lt;br /&gt;
The lookups would be on stuff like product name, build, platform, os, locale, url, etc.  I am interested in getting all this stuff out of the main table mainly because there is going to be a ridiculous amount of duplication.&lt;br /&gt;
&lt;br /&gt;
I think there are two options here:&lt;br /&gt;
* Just dynamically add non-existent data if it hasn&#039;t been previously recorded, which could end up creating a bunch of messed up records depending on what we get back from clients&lt;br /&gt;
* Ignore stuff we haven&#039;t already accounted for, which ensures ACID but could eliminate things we &amp;quot;forgot&amp;quot; to prefill&lt;br /&gt;
&lt;br /&gt;
I am not sure if this is the same problem as below -- I&#039;d like to talk more about this in the meeting (this was on this page from before):&lt;br /&gt;
* Using the same database and schema for the minidump data and also for control over the processing of the minidumps has created problems in the past.  when coruption is introduced, database performance problems crop up, or maintenance is required to manage the collection of minidumps,  the processing of incoming minidumps is hindered and we start into a downward spiral of compounding problems.  We should do some thinking to see if there are ways to improve on the existing design.&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Breakpad/Design/Client&amp;diff=53581</id>
		<title>Breakpad/Design/Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Breakpad/Design/Client&amp;diff=53581"/>
		<updated>2007-03-31T02:48:29Z</updated>

		<summary type="html">&lt;p&gt;Crowder: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[Breakpad/Design|&amp;amp;laquo; back to Breakpad design page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Breakpad Client Design and Requirements =&lt;br /&gt;
&lt;br /&gt;
* Platform integration for Windows, Mac OS X, Linux&lt;br /&gt;
* UI parity with Mozilla products&lt;br /&gt;
* crash minidumps will be stored on the user HD automatically. NOTE: need to delete on &amp;quot;Clear Private Data&amp;quot;&lt;br /&gt;
* opt-in control for users to participate in sending data at all, and confirmation before sending any individual blackbox.  also the ability to supply e-mail contact info, last visited site, and comments about activity leading up to the crash.&lt;br /&gt;
* Collect and send data to Breakpad Server** Product info (product, version, platform, build id, airbag version) &lt;br /&gt;
** System information &lt;br /&gt;
*** os version &lt;br /&gt;
*** processor, processor speed&lt;br /&gt;
*** available and in use memory and diskspace&lt;br /&gt;
*** screen size resolution and any available info on graphic system&lt;br /&gt;
*** process list for other programs that might be in use and conflicting&lt;br /&gt;
*** command line start up options -- &lt;br /&gt;
*** extensions loaded (new)&lt;br /&gt;
*** we could also consider improvements like auto filling crash url with info out of history, or send a recent history list under user control.&lt;br /&gt;
** Stability statistics (total runtime, time since last crash, crash frequency, etc.)&lt;br /&gt;
** Minidumps automatically contain the list of DLLs in the process that crashed, which will give us plugin data&lt;br /&gt;
* Store incident queue/history&lt;br /&gt;
* Talkback also has the ability to receive config changes back from the server to control operations of the client.  This is useful for such things as controls for shutting down the client for obsolete versions, slow down the transmission re-try rate or for another throttling mechanisms.&lt;br /&gt;
&lt;br /&gt;
* It seems like, with some cleverness in recording symbol-offsets for various functions, we might be able to cause the client to analyze interesting stack variables in frames it recognizes.  Perhaps this would allow us to collect information about JS (python?) code that was running at the time of the crash?&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Breakpad/Design/Client&amp;diff=53580</id>
		<title>Breakpad/Design/Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Breakpad/Design/Client&amp;diff=53580"/>
		<updated>2007-03-31T02:47:58Z</updated>

		<summary type="html">&lt;p&gt;Crowder: adding a brainstorm&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[Breakpad/Design|&amp;amp;laquo; back to Breakpad design page]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
= Breakpad Client Design and Requirements =&lt;br /&gt;
&lt;br /&gt;
* Platform integration for Windows, Mac OS X, Linux&lt;br /&gt;
* UI parity with Mozilla products&lt;br /&gt;
* crash minidumps will be stored on the user HD automatically. NOTE: need to delete on &amp;quot;Clear Private Data&amp;quot;&lt;br /&gt;
* opt-in control for users to participate in sending data at all, and confirmation before sending any individual blackbox.  also the ability to supply e-mail contact info, last visited site, and comments about activity leading up to the crash.&lt;br /&gt;
* Collect and send data to Breakpad Server** Product info (product, version, platform, build id, airbag version) &lt;br /&gt;
** System information &lt;br /&gt;
*** os version &lt;br /&gt;
*** processor, processor speed&lt;br /&gt;
*** available and in use memory and diskspace&lt;br /&gt;
*** screen size resolution and any available info on graphic system&lt;br /&gt;
*** process list for other programs that might be in use and conflicting&lt;br /&gt;
*** command line start up options -- &lt;br /&gt;
*** extensions loaded (new)&lt;br /&gt;
*** we could also consider improvements like auto filling crash url with info out of history, or send a recent history list under user control.&lt;br /&gt;
** Stability statistics (total runtime, time since last crash, crash frequency, etc.)&lt;br /&gt;
** Minidumps automatically contain the list of DLLs in the process that crashed, which will give us plugin data&lt;br /&gt;
* Store incident queue/history&lt;br /&gt;
* Talkback also has the ability to receive config changes back from the server to control operations of the client.  This is useful for such things as controls for shutting down the client for obsolete versions, slow down the transmission re-try rate or for another throttling mechanisms.&lt;br /&gt;
&lt;br /&gt;
* It seems like, with some cleverness in recording symbol-offsets for various functions, we might be able to cause the client to analyse interesting stack variables in frames it recognizes.  Perhaps this would allow us to collect information about JS (python?) code that was running at the time of the crash?&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=Gecko:1.9a2/ReleaseNotes&amp;diff=48350</id>
		<title>Gecko:1.9a2/ReleaseNotes</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=Gecko:1.9a2/ReleaseNotes&amp;diff=48350"/>
		<updated>2007-02-06T07:08:35Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Added removal of JS Script object&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== What should be on this page ==&lt;br /&gt;
&lt;br /&gt;
There are four categories of items that should be on this page.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Areas of Focus/Major Changes&#039;&#039;&#039; --- these are areas that all users of the alpha release should pay attention to, and should cover major changes since the last release as well as any known stability or data loss issues that users should be aware of.  Issues that may affect web compatibility should also be in this section.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Minor Changes&#039;&#039;&#039; --- areas that have been improved or changed and deserve explicit mention in the release notes.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bugfixes&#039;&#039;&#039; --- specific bugs that were fixed that deserve explicit mention.  Items in this category will not make it into the actual release notes page that lives on mozilla.org, but that page will link to this page for those desiring more information.&lt;br /&gt;
&lt;br /&gt;
For reference, here are [http://www.mozilla.org/projects/firefox/3.0a1/releasenotes/ the 1.9a1 release notes].&lt;br /&gt;
&lt;br /&gt;
== Major Changes ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Known memory leak after prolonged browser usage.&#039;&#039;&#039;  In order to better handle memory issues, a new garbage collection system has been implemented for native code.  However, the process of integrating code into this system is still ongoing, and you may notice excessive memory usage after the browser is used for a long period of time.  A restart should fix this problem, which will also be fixed in 1.9a3.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Some Windows font rendering issues.&#039;&#039;&#039;  With the partial landing of the new Cairo-based [http://wiki.mozilla.org/Gecko2:NewTextAPI nsTextFrame], some font rendering issues have been discovered on Windows-based platforms.  These regressions will be fixed when the new code is fully landed for 1.9a3.&lt;br /&gt;
&lt;br /&gt;
* Changes that [http://wiki.mozilla.org/Gecko:Reflow_Refactoring refactored] intrinsic width computation and incremental layout landed.  This means that the code for determining intrinsic widths, used for width calculations in tables, floats, and absolutely positioned elements, has been rewritten.  The code for handling incremental layout of pages (as the page arrives over the network, as images load, or as other dynamic changes are made) has also been changed extensively.  These changes also resolved all of the remaining issues with ACID2 compliance&lt;br /&gt;
&lt;br /&gt;
* The &amp;lt;code&amp;gt;inline-block&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;inline-table&amp;lt;/code&amp;gt; values of CSS2.1&#039;s display property are now implemented.&lt;br /&gt;
&lt;br /&gt;
== Minor Changes ==&lt;br /&gt;
* &#039;&#039;&#039;Incremental XML rendering.&#039;&#039;&#039;  XML documents can now be rendered as they&#039;re downloaded from the originating server instead of after the full document has been downloaded.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Support for Web Apps 1.0 API for changing stylesheets.&#039;&#039;&#039; This change enables Gecko to use a standard method for changing stylesheets via the DOM.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Removed &#039;&#039;Script&#039;&#039; Object.&#039;&#039;&#039;  The non-standard JavaScript &#039;&#039;Script&#039;&#039; object is no longer supported in default browser builds.&lt;br /&gt;
&lt;br /&gt;
== Bugfixes ==&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Text_and_Typography&amp;diff=41797</id>
		<title>FirefoxSummit/2006/ProposedSessions/Text and Typography</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Text_and_Typography&amp;diff=41797"/>
		<updated>2006-11-14T19:53:27Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Text And Typography&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
Robert O&#039;Callahan&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
We are reworking Gecko text infrastructure to support higher quality typography, to better support I18N, and (hopefully) for better performance. This session is to talk about where we&#039;re at and what still needs to be done for Gecko 1.9 and beyond.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* Overview of what&#039;s going on&lt;br /&gt;
** New textframe&lt;br /&gt;
** New textrun API&lt;br /&gt;
** Platform textrun implementations&lt;br /&gt;
* Discuss how this fits with SVG, I18N&lt;br /&gt;
* New linebreaker API?&lt;br /&gt;
* Changes to line breaking algorithm&lt;br /&gt;
* Auto-hyphenation?&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts.&lt;br /&gt;
&lt;br /&gt;
* tor&lt;br /&gt;
* [[User:Dbaron|David Baron]]&lt;br /&gt;
* Christopher Aillon&lt;br /&gt;
* [[User:Smontagu|Simon Montagu]]&lt;br /&gt;
* Sheppy&lt;br /&gt;
* biesi&lt;br /&gt;
* Axel Hecht&lt;br /&gt;
* ispiked&lt;br /&gt;
* [[User:Waldo|Jeff Walden]] (want to attend, depends on schedule)&lt;br /&gt;
* rbs&lt;br /&gt;
* stuart&lt;br /&gt;
* [[User:Stan Shebs|Stan Shebs]]&lt;br /&gt;
* timeless&lt;br /&gt;
* [[User:rcampbell|robcee]]&lt;br /&gt;
* [[User:Crowder|Crowder]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Microformats&amp;diff=41795</id>
		<title>FirefoxSummit/2006/ProposedSessions/Microformats</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Microformats&amp;diff=41795"/>
		<updated>2006-11-14T19:52:38Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Microformat Detection in Firefox&lt;br /&gt;
&lt;br /&gt;
== Session Leaders ==&lt;br /&gt;
&lt;br /&gt;
[[User:Faaborg | Alex Faaborg]] (UE) and dmose/Myk (Implementation)&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Should Web browsers retroactively react to the organic development of the Web, or should they proactively drive innovation and progress?  In this session we will discuss adding support for microformats in Firefox 3.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* Introduction to microformats&lt;br /&gt;
* Overview of the competitive landscape&lt;br /&gt;
** Apple&lt;br /&gt;
** IE8&lt;br /&gt;
** Live Clipboard&lt;br /&gt;
* The pros and cons of native support&lt;br /&gt;
* The need for a unified user experience for data detectors&lt;br /&gt;
* The user experience of microformat detection&lt;br /&gt;
* Implementation issues&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
* [[User:Faaborg | Alex Faaborg]]&lt;br /&gt;
* Sherman&lt;br /&gt;
* Myk&lt;br /&gt;
* Jay Goldman (Radiant Core) - we&#039;ve been working on a Firefox Extension for some time that does Microformat detection and will, one day, do handling of different formats. I&#039;ve done a bunch of thinking around how to do the UI side of things, so maybe our efforts can end up part of the Fx3 conversation.&lt;br /&gt;
* Dria&lt;br /&gt;
* [[User:Dbaron|David Baron]]&lt;br /&gt;
* [[User:Wenzel|Frederic Wenzel]]&lt;br /&gt;
* Sheppy&lt;br /&gt;
* Dietrich&lt;br /&gt;
* Axel Hecht&lt;br /&gt;
* Gen Kanai - fwiw, I used to work at Technorati Japan and have had a close working relationship with the Technorati US team as well as Tantek&lt;br /&gt;
* Ian Hayward (Glaxstar)&lt;br /&gt;
* [[User:Rflint|Ryan Flint]]&lt;br /&gt;
* ispiked&lt;br /&gt;
* beltzner&lt;br /&gt;
* [[User:StevenGarrity|Steven Garrity]] (if schedule allows)&lt;br /&gt;
* Basil Hashem&lt;br /&gt;
* robcee&lt;br /&gt;
* Juan Becerra&lt;br /&gt;
* [[User:Crowder|Crowder]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/FuzzTesting&amp;diff=41794</id>
		<title>FirefoxSummit/2006/ProposedSessions/FuzzTesting</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/FuzzTesting&amp;diff=41794"/>
		<updated>2006-11-14T19:51:31Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Fuzz-testing Gecko&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
Jesse Ruderman&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fuzz testing&#039;&#039;&#039; is the art of creating &amp;quot;random&amp;quot; but interesting input to a program.  For example, someone wanting to test an HTML parser might feed it thousands of horribly invalid HTML files.  But someone testing code that displays SVG would want to use well-formed XML, only using SVG tags and attributes in random combinations and sometimes in invalid ways.&lt;br /&gt;
&lt;br /&gt;
Hundreds of bugs have been fixed as a result of fuzz-testing components of Gecko over the last 15 months.  Many of these were bogus assertion failures or obscure hangs, but some were security holes.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* How the Gecko fuzzers work&lt;br /&gt;
* The state of Gecko (with respect to fuzzing)&lt;br /&gt;
* Strategies for creating new fuzzers that are effective at finding bugs and facilitate creating reduced testcases after finding bugs&lt;br /&gt;
* What Gecko features, components, and APIs haven&#039;t been fuzz-tested and should be?&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts&lt;br /&gt;
&lt;br /&gt;
* [[User:Waldo|Jeff Walden]]&lt;br /&gt;
* [[User:GavinSharp|Gavin]]&lt;br /&gt;
* tor&lt;br /&gt;
* [[User:Dbaron|David Baron]]&lt;br /&gt;
* [[User:Zachlipton|Zach Lipton]]&lt;br /&gt;
* Christopher Aillon&lt;br /&gt;
* rbs&lt;br /&gt;
* Steven Michaud&lt;br /&gt;
* [[User:Pettay|Olli Pettay]]&lt;br /&gt;
* Jonas Sicking&lt;br /&gt;
* chofmann&lt;br /&gt;
* Roc&lt;br /&gt;
* ispiked&lt;br /&gt;
* [[User:Rflint|Ryan Flint]]&lt;br /&gt;
* [[User:MartijnWargers| Martijn Wargers]]&lt;br /&gt;
* [[User:rcampbell|robcee]]&lt;br /&gt;
* [[User:Crowder|Crowder]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=AutomatedTestingSummit2006&amp;diff=41793</id>
		<title>AutomatedTestingSummit2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=AutomatedTestingSummit2006&amp;diff=41793"/>
		<updated>2006-11-14T19:50:55Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Automated testing:  unit testing, test frameworks, test tools&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
Tim Riley&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Review and discuss current test automation activities around unit testing, web page compatibility, performance testing, and execution/reporting infrastructure&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* review specific activities&lt;br /&gt;
** mochikit&lt;br /&gt;
** RefTest&lt;br /&gt;
** New Tp performance tests&lt;br /&gt;
** Eggplant automation of smoke tests&lt;br /&gt;
** Setting up test buildbots&lt;br /&gt;
** others?&lt;br /&gt;
* Discuss upcoming activities&lt;br /&gt;
** fully automating the JS tests and security tests&lt;br /&gt;
** Ts Performance tests&lt;br /&gt;
** Getting the reporting tied into the tinderbox pages&lt;br /&gt;
** Other ideas??&lt;br /&gt;
** Prioritizing projects&lt;br /&gt;
** Who can help?&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts&lt;br /&gt;
&lt;br /&gt;
* Robert Sayre&lt;br /&gt;
* Rob Campbell&lt;br /&gt;
* [[User:GavinSharp|Gavin]]&lt;br /&gt;
* Dave Townsend&lt;br /&gt;
* tor&lt;br /&gt;
* biesi&lt;br /&gt;
* shaver&lt;br /&gt;
* [[User:Waldo|Jeff Walden]]&lt;br /&gt;
* ispiked&lt;br /&gt;
* Jesse Ruderman&lt;br /&gt;
* Steve England&lt;br /&gt;
* Jay Goldman or Michael Glenn (Radiant Core)&lt;br /&gt;
* Steven Michaud&lt;br /&gt;
* [[User:Pettay|Olli Pettay]]&lt;br /&gt;
* Roc&lt;br /&gt;
* dietrich&lt;br /&gt;
* bsmedberg&lt;br /&gt;
* Christopher Aillon&lt;br /&gt;
* Javier Pedemonte&lt;br /&gt;
* [[User:AxelHecht|Axel Hecht]]&lt;br /&gt;
* [[User:Rhelmer| Rob Helmer]]&lt;br /&gt;
* Juan Becerra&lt;br /&gt;
* [[User:Crowder|Crowder]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=VersionControlSummit2006&amp;diff=41791</id>
		<title>VersionControlSummit2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=VersionControlSummit2006&amp;diff=41791"/>
		<updated>2006-11-14T19:48:35Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Version Control System Shootout Extravaganza&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Preed&#039;&#039;, &#039;&#039;Vlad&#039;&#039;, &#039;&#039;Rhelmer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Lock everyone in a room and finally decide a) If we&#039;re switching version control systems, and b) the plan for switching&lt;br /&gt;
&lt;br /&gt;
The goal is to not leave until b) is decided (assuming a) is true; if it&#039;s not, this will be a short meeting!)&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* Kick people out who haven&#039;t reviewed the [[Version_Control_System_Requirements|original requirements]] :-)&lt;br /&gt;
* Review the revision control systems we&#039;ve prototyped (This implies that there&#039;s been some minimal level of investigation on the system done, i.e. an import of the current CVS tree)&lt;br /&gt;
** SVN (Note: the SVN team have provided [[Version_Control_System_Requirements/SVN_Responses|responses]] to the original requirements)&lt;br /&gt;
** Hg&lt;br /&gt;
* A deathmatch until we&#039;ve reached a decision. Will be broadcast on pay-per-view. Proceeds to go to the Foundation. (I kid, I kid...)&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts.&lt;br /&gt;
&lt;br /&gt;
* Roc&lt;br /&gt;
* Reed&lt;br /&gt;
* caillon&lt;br /&gt;
* [[User:Dbaron|David Baron]]&lt;br /&gt;
* [[User:Wenzel|Frederic Wenzel]]&lt;br /&gt;
* tor&lt;br /&gt;
* biesi&lt;br /&gt;
* ispiked&lt;br /&gt;
* [[User:Rflint|Ryan Flint]]&lt;br /&gt;
* graydon&lt;br /&gt;
* Zach&lt;br /&gt;
* [[User:GavinSharp|Gavin]]&lt;br /&gt;
* [[User:Waldo|Jeff Walden]]&lt;br /&gt;
* shaver&lt;br /&gt;
* stuart&lt;br /&gt;
* bsmedberg&lt;br /&gt;
* [[User:Sancus|sancus]]&lt;br /&gt;
* [[User:Brendan|Brendan Eich]]&lt;br /&gt;
* [[User:Crowder|Crowder]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=VersionControlSummit2006&amp;diff=41788</id>
		<title>VersionControlSummit2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=VersionControlSummit2006&amp;diff=41788"/>
		<updated>2006-11-14T19:39:10Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Version Control System Shootout Extravaganza&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Preed&#039;&#039;, &#039;&#039;Vlad&#039;&#039;, &#039;&#039;Rhelmer&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Lock everyone in a room and finally decide a) If we&#039;re switching version control systems, and b) the plan for switching&lt;br /&gt;
&lt;br /&gt;
The goal is to not leave until b) is decided (assuming a) is true; if it&#039;s not, this will be a short meeting!)&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* Kick people out who haven&#039;t reviewed the [[Version_Control_System_Requirements|original requirements]] :-)&lt;br /&gt;
* Review the revision control systems we&#039;ve prototyped (This implies that there&#039;s been some minimal level of investigation on the system done, i.e. an import of the current CVS tree)&lt;br /&gt;
** SVN (Note: the SVN team have provided [[Version_Control_System_Requirements/SVN_Responses|responses]] to the original requirements)&lt;br /&gt;
** Hg&lt;br /&gt;
* A deathmatch until we&#039;ve reached a decision. Will be broadcast on pay-per-view. Proceeds to go to the Foundation. (I kid, I kid...)&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts.&lt;br /&gt;
&lt;br /&gt;
* Roc&lt;br /&gt;
* Reed&lt;br /&gt;
* caillon&lt;br /&gt;
* [[User:Dbaron|David Baron]]&lt;br /&gt;
* [[User:Wenzel|Frederic Wenzel]]&lt;br /&gt;
* tor&lt;br /&gt;
* biesi&lt;br /&gt;
* ispiked&lt;br /&gt;
* [[User:Rflint|Ryan Flint]]&lt;br /&gt;
* graydon&lt;br /&gt;
* Zach&lt;br /&gt;
* [[User:GavinSharp|Gavin]]&lt;br /&gt;
* [[User:Waldo|Jeff Walden]]&lt;br /&gt;
* shaver&lt;br /&gt;
* stuart&lt;br /&gt;
* bsmedberg&lt;br /&gt;
* [[User:Sancus|sancus]]&lt;br /&gt;
* [[User:Brendan|Brendan Eich]]&lt;br /&gt;
* [[User:Crowder|Crowder]] 11:39, 14 November 2006 (PST)&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Mozilla_2&amp;diff=41787</id>
		<title>FirefoxSummit/2006/ProposedSessions/Mozilla 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Mozilla_2&amp;diff=41787"/>
		<updated>2006-11-14T19:38:21Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Mozilla 2 Kick-off&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
[[User:Brendan|Brendan Eich]]&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Update, planning, and discussion of the proposals and challenges set forth in my [http://weblogs.mozillazine.org/roadmap/archives/2006/10/mozilla_2.html|Mozilla 2] blog item.&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
See [[Mozilla_2]].&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts&lt;br /&gt;
&lt;br /&gt;
* [[User:rcampbell|robcee]]&lt;br /&gt;
* Jesse Ruderman&lt;br /&gt;
* [[User:AxelHecht|Axel Hecht]]&lt;br /&gt;
* [[User:Rhelmer|Rob Helmer]]&lt;br /&gt;
* Brian Crowder&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Oink&amp;diff=41782</id>
		<title>FirefoxSummit/2006/ProposedSessions/Oink</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=FirefoxSummit/2006/ProposedSessions/Oink&amp;diff=41782"/>
		<updated>2006-11-14T19:19:33Z</updated>

		<summary type="html">&lt;p&gt;Crowder: /* Interested Attendees */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Session Title ==&lt;br /&gt;
&lt;br /&gt;
Elsa/Oink/Cqual++: Open-Source Static Analysis for C++&lt;br /&gt;
&lt;br /&gt;
== Session Leader ==&lt;br /&gt;
&lt;br /&gt;
[http://www.cs.berkeley.edu/~dsw/ Daniel S. Wilkerson], with [[Users:Brendan | Brendan Eich]] hosting&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
Dan&#039;s Oink presentation, with (I hope) helpful examples aimed at Mozilla 2&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
Dan&#039;s talk is [[http://www.cs.berkeley.edu/~dsw/elsa_cqual_codecon.ppt|online]] (PowerPoint, boo hiss).&lt;br /&gt;
&lt;br /&gt;
== Interested Attendees ==&lt;br /&gt;
&lt;br /&gt;
Please add your name here if you&#039;re likely to attend this session, this will help prioritize sessions and minimize conflicts&lt;br /&gt;
&lt;br /&gt;
* Jesse Ruderman&lt;br /&gt;
* Roc&lt;br /&gt;
* [[User:Rhelmer|Rob Helmer]]&lt;br /&gt;
* Brian Crowder&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:RegExp_API&amp;diff=35069</id>
		<title>JavaScript:SpiderMonkey:RegExp API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:RegExp_API&amp;diff=35069"/>
		<updated>2006-09-29T23:11:49Z</updated>

		<summary type="html">&lt;p&gt;Crowder: the already-defined routines don&amp;#039;t offer &amp;quot;flat&amp;quot; param, so ditch it&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=JavaScript Regular Expression API=&lt;br /&gt;
&lt;br /&gt;
The purpose of this addition to the JS API is to make ECMA-262 compliant regular expression APIs available to C/C++ users.  As with other JS API routines, clients are required to provide a properly initialized execution context (JSContext), and the API has the potential to throw JS exceptions, just as a script might.&lt;br /&gt;
&lt;br /&gt;
==Structures==&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to track a JSRegExp, the structure of which we do not expose publically.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Routines==&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewRegExpObjectFromString(JSContext *cx, &amp;lt;i&amp;gt;const?&amp;lt;/i&amp;gt; JSString *str, uintN flags)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to build a JSObject which holds a precompiled regular expression to be used in future routines.&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;I also am not entirely clear on what &amp;quot;flat&amp;quot; does, can someone explain it to me? --[[User:Crowder|Crowder]] 09:15, 31 August 2006 (PDT)&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Do we need this?&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_DestroyRegExpObject(JSContext *cx, JSObject *obj)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to destroy the object built with JS_NewRegExpObject.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSBool JS_ExecuteRegExp(JSContext *cx, JSObject *re, &amp;lt;i&amp;gt;const?&amp;lt;/i&amp;gt; JSString *input, JSBool test, jsval *rval)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Executes the expression compiled into &#039;&#039;re&#039;&#039; against &#039;&#039;input&#039;&#039;.  &#039;&#039;test&#039;&#039; is a flag which dictates whether or not&lt;br /&gt;
we&#039;re actually interested in results beyond whether the expression matches or not (ie., for parenthesized parts of the&lt;br /&gt;
expression, $1, $2, and so on).  The results returned in &#039;&#039;rval&#039;&#039; are with JSVAL_NULL, JS_TRUE (if we&#039;re only &#039;&#039;test&#039;&#039;ing),&lt;br /&gt;
or a JSArray object containing the discovered result strings.  If rval is an array, the 0-index value contains the results&lt;br /&gt;
of any substitutions that occurred.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewRegExpObject(JSContext *cx, char *bytes, size_t length, uintN flags)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;Wonder why bytes is not const? --[[User:Crowder|Crowder]] 09:15, 31 August 2006 (PDT)&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewUCRegExpObject(JSContext *cx, jschar *chars, size_t length, uintN flags)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_SetRegExpInput(JSContext *cx, JSString *input, JSBool multiline)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_ClearRegExpStatics(JSContext *cx)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_ClearRegExpRoots(JSContext *cx)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SpiderMonkey]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:RegExp_API&amp;diff=33139</id>
		<title>JavaScript:SpiderMonkey:RegExp API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:RegExp_API&amp;diff=33139"/>
		<updated>2006-08-31T16:15:09Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Adding some junk that already exists.  And some constness questions/changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=JavaScript Regular Expression API=&lt;br /&gt;
&lt;br /&gt;
The purpose of this addition to the JS API is to make ECMA-262 compliant regular expression APIs available to C/C++ users.  As with other JS API routines, clients are required to provide a properly initialized execution context (JSContext), and the API has the potential to throw JS exceptions, just as a script might.&lt;br /&gt;
&lt;br /&gt;
==Structures==&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to track a JSRegExp, the structure of which we do not expose publically.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Routines==&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewRegExpObjectFromString(JSContext *cx, &amp;lt;i&amp;gt;const?&amp;lt;/i&amp;gt; JSString *str, uintN flags, JSBool flat)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to build a JSObject which holds a precompiled regular expression to be used in future routines.&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;I also am not entirely clear on what &amp;quot;flat&amp;quot; does, can someone explain it to me? --[[User:Crowder|Crowder]] 09:15, 31 August 2006 (PDT)&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Do we need this?&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_DestroyRegExpObject(JSContext *cx, JSObject *obj)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to destroy the object built with JS_NewRegExpObject.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSBool JS_ExecuteRegExp(JSContext *cx, JSObject *re, &amp;lt;i&amp;gt;const?&amp;lt;/i&amp;gt; JSString *input, JSBool test, jsval *rval)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Executes the expression compiled into &#039;&#039;re&#039;&#039; against &#039;&#039;input&#039;&#039;.  &#039;&#039;test&#039;&#039; is a flag which dictates whether or not&lt;br /&gt;
we&#039;re actually interested in results beyond whether the expression matches or not (ie., for parenthesized parts of the&lt;br /&gt;
expression, $1, $2, and so on).  The results returned in &#039;&#039;rval&#039;&#039; are with JSVAL_NULL, JS_TRUE (if we&#039;re only &#039;&#039;test&#039;&#039;ing),&lt;br /&gt;
or a JSArray object containing the discovered result strings.  If rval is an array, the 0-index value contains the results&lt;br /&gt;
of any substitutions that occurred.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewRegExpObject(JSContext *cx, char *bytes, size_t length, uintN flags)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;Wonder why bytes is not const? --[[User:Crowder|Crowder]] 09:15, 31 August 2006 (PDT)&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewUCRegExpObject(JSContext *cx, jschar *chars, size_t length, uintN flags)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_SetRegExpInput(JSContext *cx, JSString *input, JSBool multiline)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_ClearRegExpStatics(JSContext *cx)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_ClearRegExpRoots(JSContext *cx)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Already exists.&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SpiderMonkey]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:JS_Tests&amp;diff=33117</id>
		<title>JavaScript:SpiderMonkey:JS Tests</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:JS_Tests&amp;diff=33117"/>
		<updated>2006-08-31T05:37:26Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Couple more rules&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Rules for Writing JavaScript Test Cases ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  Use reportCompare() to report success/failure!  (except for e4x cases)&lt;br /&gt;
*  If your test will always throw an uncaught exception then you should name it with a suffix -n; it is always preferable to catch and handle exceptions directly.&lt;br /&gt;
*  Don&#039;t use print(), use printStatus() or writeLineToLog(), etc.&lt;br /&gt;
*  The tests will also be run in the browser in addition to the shell.  If you use shell only features, detect that and let the browser report success.&lt;br /&gt;
*  Do the converse, if you have a browser-only test.&lt;br /&gt;
*  Each sub-suite has its own style -- use the template.js in that sub-suite&#039;s directory to as a starting-point for new tests.&lt;br /&gt;
*  Each new sub-suite directory must have an empty shell.js and browser.js&lt;br /&gt;
&lt;br /&gt;
When in doubt about this, ask for help.&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:JS_Tests&amp;diff=33116</id>
		<title>JavaScript:SpiderMonkey:JS Tests</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:JS_Tests&amp;diff=33116"/>
		<updated>2006-08-31T05:31:24Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Compiled by crowder from an IRC convo with bclary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Rules for Writing JavaScript Test Cases ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*  Use reportCompare() to report success/failure!&lt;br /&gt;
*  If your test will always throw an uncaught exception then you should name it with a suffix -n; it is always preferable to catch and handle exceptions directly.&lt;br /&gt;
*  Don&#039;t use print(), use printStatus() or writeLineToLog(), etc.&lt;br /&gt;
*  The tests will also be run in the browser in addition to the shell.  If you use shell only features, detect that and let the browser report success.&lt;br /&gt;
*  Do the converse, if you have a browser-only test.&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:Home_Page&amp;diff=33115</id>
		<title>JavaScript:Home Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:Home_Page&amp;diff=33115"/>
		<updated>2006-08-31T05:24:39Z</updated>

		<summary type="html">&lt;p&gt;Crowder: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
&lt;br /&gt;
JavaScript language and implementation plans go here.  For background, see:&lt;br /&gt;
&lt;br /&gt;
* JS items in [http://weblogs.mozillazine.org/roadmap/ Brendan&#039;s roadmap blog].&lt;br /&gt;
* The [http://www.mozilla.org/js/language mozilla.org website&#039;s JS language] page.&lt;br /&gt;
* [http://developer.mozilla.org/en/docs/JavaScript JS pages] at the [http://developer.mozilla.org Mozilla Developer Center].&lt;br /&gt;
&lt;br /&gt;
== New Projects ==&lt;br /&gt;
&lt;br /&gt;
* Narcissus ([http://lxr.mozilla.org/mozilla/source/js/narcissus source code]).&lt;br /&gt;
* A [[JavaScript:SpiderMonkey:Parser API|new SpiderMonkey API]] for building and inspecting parse trees.&lt;br /&gt;
* [[JavaScript:SpiderMonkey:Context Threading|Context-thread]] the SpiderMonkey interpreter.&lt;br /&gt;
* Make mostly-dense arrays [https://bugzilla.mozilla.org/show_bug.cgi?id=322889 blazingly fast].&lt;br /&gt;
* [[JavaScript:SpiderMonkey:RegExp API|Expose ECMA 262 Regular Expression API]] to C/C++ clients.&lt;br /&gt;
&lt;br /&gt;
== Coding Style Guidelines ==&lt;br /&gt;
&lt;br /&gt;
* [[JavaScript:SpiderMonkey:Coding_Style|SpiderMonkey]]&lt;br /&gt;
* How to write [[JavaScript:SpiderMonkey:JS_Tests|unit tests]] for use by jsDriver.pl.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* &amp;quot;[http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html Garbage Collection: algorithms for automatic dynamic memory management]&amp;quot;, by Richard Jones, is a comprehensive reference book about different garbage collection algorithms.&lt;br /&gt;
* Also Richard Jones&#039;s webpage has a collection of [http://www.cs.kent.ac.uk/people/staff/rej/gc.html references].&lt;br /&gt;
* Several conferences where most memory management papers go: [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES858&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 ISMM], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES363&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 PLDI], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES318&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 OOPSLA], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES11259&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574, VEE].&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:Home_Page&amp;diff=33114</id>
		<title>JavaScript:Home Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:Home_Page&amp;diff=33114"/>
		<updated>2006-08-31T05:23:54Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Adding a link to a page describing the process for writing JS unit tests&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
&lt;br /&gt;
JavaScript language and implementation plans go here.  For background, see:&lt;br /&gt;
&lt;br /&gt;
* JS items in [http://weblogs.mozillazine.org/roadmap/ Brendan&#039;s roadmap blog].&lt;br /&gt;
* The [http://www.mozilla.org/js/language mozilla.org website&#039;s JS language] page.&lt;br /&gt;
* [http://developer.mozilla.org/en/docs/JavaScript JS pages] at the [http://developer.mozilla.org Mozilla Developer Center].&lt;br /&gt;
&lt;br /&gt;
== New Projects ==&lt;br /&gt;
&lt;br /&gt;
* Narcissus ([http://lxr.mozilla.org/mozilla/source/js/narcissus source code]).&lt;br /&gt;
* A [[JavaScript:SpiderMonkey:Parser API|new SpiderMonkey API]] for building and inspecting parse trees.&lt;br /&gt;
* [[JavaScript:SpiderMonkey:Context Threading|Context-thread]] the SpiderMonkey interpreter.&lt;br /&gt;
* Make mostly-dense arrays [https://bugzilla.mozilla.org/show_bug.cgi?id=322889 blazingly fast].&lt;br /&gt;
* [[JavaScript:SpiderMonkey:RegExp API|Expose ECMA 262 Regular Expression API]] to C/C++ clients.&lt;br /&gt;
&lt;br /&gt;
== Coding Style Guidelines ==&lt;br /&gt;
&lt;br /&gt;
* [[JavaScript:SpiderMonkey:Coding_Style|SpiderMonkey]]&lt;br /&gt;
* How to write [[JavaScript:SpiderMonkey:JS_Tests|unit tests]] for use by jsDriver.pl&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* &amp;quot;[http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html Garbage Collection: algorithms for automatic dynamic memory management]&amp;quot;, by Richard Jones, is a comprehensive reference book about different garbage collection algorithms.&lt;br /&gt;
* Also Richard Jones&#039;s webpage has a collection of [http://www.cs.kent.ac.uk/people/staff/rej/gc.html references].&lt;br /&gt;
* Several conferences where most memory management papers go: [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES858&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 ISMM], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES363&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 PLDI], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES318&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 OOPSLA], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES11259&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574, VEE].&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:RegExp_API&amp;diff=32468</id>
		<title>JavaScript:SpiderMonkey:RegExp API</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:SpiderMonkey:RegExp_API&amp;diff=32468"/>
		<updated>2006-08-25T16:07:57Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Moving this here from MDC&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=JavaScript Regular Expression API=&lt;br /&gt;
&lt;br /&gt;
The purpose of this addition to the JS API is to make ECMA-262 compliant regular expression APIs available to C/C++ users.  As with other JS API routines, clients are required to provide a properly initialized execution context (JSContext), and the API has the potential to throw JS exceptions, just as a script might.&lt;br /&gt;
&lt;br /&gt;
==Structures==&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to track a JSRegExp, the structure of which we do not expose publically.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Routines==&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_NewRegExpObject(JSContext *cx, JSString *str, uintN flags, JSBool flat)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to build a JSObject which holds a precompiled regular expression to be used in future routines.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSObject * JS_CloneRegExpObject(JSContext *cx, JSObject *obj, JSObject *parent)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;&amp;lt;i&amp;gt;Do we need this?&amp;lt;/i&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;void JS_DestroyRegExpObject(JSContext *cx, JSObject *obj)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Used to destroy the object built with JS_NewRegExpObject.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;JSBool JS_ExecuteRegExp(JSContext *cx, JSObject *re, JSString *input, JSBool test, jsval *rval)&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;gt;Executes the expression compiled into &#039;&#039;re&#039;&#039; against &#039;&#039;input&#039;&#039;.  &#039;&#039;test&#039;&#039; is a flag which dictates whether or not&lt;br /&gt;
we&#039;re actually interested in results beyond whether the expression matches or not (ie., for parenthesized parts of the&lt;br /&gt;
expression, $1, $2, and so on).  The results returned in &#039;&#039;rval&#039;&#039; are with JSVAL_NULL, JS_TRUE (if we&#039;re only &#039;&#039;test&#039;&#039;ing),&lt;br /&gt;
or a JSArray object containing the discovered result strings.  If rval is an array, the 0-index value contains the results&lt;br /&gt;
of any substitutions that occurred.&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:SpiderMonkey]]&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
	<entry>
		<id>https://wiki.mozilla.org/index.php?title=JavaScript:Home_Page&amp;diff=32467</id>
		<title>JavaScript:Home Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mozilla.org/index.php?title=JavaScript:Home_Page&amp;diff=32467"/>
		<updated>2006-08-25T16:07:03Z</updated>

		<summary type="html">&lt;p&gt;Crowder: Adding page for JS RegExp API&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Intro ==&lt;br /&gt;
&lt;br /&gt;
JavaScript language and implementation plans go here.  For background, see:&lt;br /&gt;
&lt;br /&gt;
* JS items in [http://weblogs.mozillazine.org/roadmap/ Brendan&#039;s roadmap blog].&lt;br /&gt;
* The [http://www.mozilla.org/js/language mozilla.org website&#039;s JS language] page.&lt;br /&gt;
* [http://developer.mozilla.org/en/docs/JavaScript JS pages] at the [http://developer.mozilla.org Mozilla Developer Center].&lt;br /&gt;
&lt;br /&gt;
== New Projects ==&lt;br /&gt;
&lt;br /&gt;
* Narcissus ([http://lxr.mozilla.org/mozilla/source/js/narcissus source code]).&lt;br /&gt;
* A [[JavaScript:SpiderMonkey:Parser API|new SpiderMonkey API]] for building and inspecting parse trees.&lt;br /&gt;
* [[JavaScript:SpiderMonkey:Context Threading|Context-thread]] the SpiderMonkey interpreter.&lt;br /&gt;
* Make mostly-dense arrays [https://bugzilla.mozilla.org/show_bug.cgi?id=322889 blazingly fast].&lt;br /&gt;
* [[JavaScript:SpiderMonkey:RegExp API|Expose ECMA 262 Regular Expression API]] to C/C++ clients.&lt;br /&gt;
&lt;br /&gt;
== Coding Style Guidelines ==&lt;br /&gt;
&lt;br /&gt;
* [[JavaScript:SpiderMonkey:Coding_Style|SpiderMonkey]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* &amp;quot;[http://www.cs.kent.ac.uk/people/staff/rej/gcbook/gcbook.html Garbage Collection: algorithms for automatic dynamic memory management]&amp;quot;, by Richard Jones, is a comprehensive reference book about different garbage collection algorithms.&lt;br /&gt;
* Also Richard Jones&#039;s webpage has a collection of [http://www.cs.kent.ac.uk/people/staff/rej/gc.html references].&lt;br /&gt;
* Several conferences where most memory management papers go: [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES858&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 ISMM], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES363&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 PLDI], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES318&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574 OOPSLA], [http://portal.acm.org/browse_dl.cfm?linked=1&amp;amp;part=series&amp;amp;idx=SERIES11259&amp;amp;coll=portal&amp;amp;dl=ACM&amp;amp;CFID=43281450&amp;amp;CFTOKEN=59448574, VEE].&lt;/div&gt;</summary>
		<author><name>Crowder</name></author>
	</entry>
</feed>