Merge mozilla-central to mozilla-inbound
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Fri, 21 Nov 2014 13:00:50 +0100
changeset 241228 c69ae3b12a2d8e2a8a8d28ec0da3a16606073694
parent 241227 2c39d4a57818b5bdb4b987146e8fb54c4e0be737 (current diff)
parent 241148 3366c0fcf9c2dd4fd447079f9ba7b42d21a2d171 (diff)
child 241229 138da162366873a25cf1b9436b41114181d40243
push idunknown
push userunknown
push dateunknown
milestone36.0a1
Merge mozilla-central to mozilla-inbound
mobile/android/base/tests/robocop_article.html
--- a/b2g/config/dolphin/sources.xml
+++ b/b2g/config/dolphin/sources.xml
@@ -10,25 +10,25 @@
   <!--original fetch url was git://codeaurora.org/-->
   <remote fetch="https://git.mozilla.org/external/caf" name="caf"/>
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
   <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <!-- Stock Android things -->
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" revision="8b880805d454664b3eed11d0f053cdeafa1ff06e"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" revision="a1e239a0bb5cd1d69680bf1075883aa9a7bf2429"/>
   <project groups="linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" path="prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" revision="c7931763d41be602407ed9d71e2c0292c6597e00"/>
   <project groups="linux,x86" name="platform/prebuilts/python/linux-x86/2.7.5" path="prebuilts/python/linux-x86/2.7.5" revision="83760d213fb3bec7b4117d266fcfbf6fe2ba14ab"/>
   <project name="device/common" path="device/common" revision="6a2995683de147791e516aae2ccb31fdfbe2ad30"/>
--- a/b2g/config/emulator-ics/sources.xml
+++ b/b2g/config/emulator-ics/sources.xml
@@ -14,23 +14,23 @@
   <!--original fetch url was git://github.com/apitrace/-->
   <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/>
   <default remote="caf" revision="refs/tags/android-4.0.4_r2.1" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="df362ace56338da8173d30d3e09e08c42c1accfa">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
-  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d5d3f93914558b6f168447b805cd799c8233e300"/>
   <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="a47dd04f8f66e42fd331711140f2c3e2fed0767d"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
   <project name="platform/bionic" path="bionic" revision="c72b8f6359de7ed17c11ddc9dfdde3f615d188a9"/>
   <project name="platform/bootable/recovery" path="bootable/recovery" revision="425f8b5fadf5889834c5acd27d23c9e0b2129c28"/>
   <project name="device/common" path="device/common" revision="42b808b7e93d0619286ae8e59110b176b7732389"/>
   <project name="device/sample" path="device/sample" revision="237bd668d0f114d801a8d6455ef5e02cc3577587"/>
   <project name="platform_external_apriori" path="external/apriori" remote="b2g" revision="11816ad0406744f963537b23d68ed9c2afb412bd"/>
   <project name="platform/external/bluetooth/bluez" path="external/bluetooth/bluez" revision="52a1a862a8bac319652b8f82d9541ba40bfa45ce"/>
--- a/b2g/config/emulator-jb/sources.xml
+++ b/b2g/config/emulator-jb/sources.xml
@@ -12,20 +12,20 @@
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="0e94c080bee081a50aa2097527b0b40852f9143f">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
   <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
   <!-- Stock Android things -->
   <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.1" path="prebuilts/clang/linux-x86/3.1" revision="5c45f43419d5582949284eee9cef0c43d866e03b"/>
   <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.2" path="prebuilts/clang/linux-x86/3.2" revision="3748b4168e7bd8d46457d4b6786003bc6a5223ce"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="9025e50b9d29b3cabbbb21e1dd94d0d13121a17e"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="b89fda71fcd0fa0cf969310e75be3ea33e048b44"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" revision="2e7d5348f35575870b3c7e567a9a9f6d66f8d6c5"/>
--- a/b2g/config/emulator-kk/sources.xml
+++ b/b2g/config/emulator-kk/sources.xml
@@ -10,25 +10,25 @@
   <!--original fetch url was git://codeaurora.org/-->
   <remote fetch="https://git.mozilla.org/external/caf" name="caf"/>
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
   <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <!-- Stock Android things -->
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="f92a936f2aa97526d4593386754bdbf02db07a12"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="6e47ff2790f5656b5b074407829ceecf3e6188c4"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" revision="1950e4760fa14688b83cdbb5acaa1af9f82ef434"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" revision="ac6eb97a37035c09fb5ede0852f0881e9aadf9ad"/>
   <project groups="linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" path="prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" revision="737f591c5f95477148d26602c7be56cbea0cdeb9"/>
   <project groups="linux,x86" name="platform/prebuilts/python/linux-x86/2.7.5" path="prebuilts/python/linux-x86/2.7.5" revision="51da9b1981be481b92a59a826d4d78dc73d0989a"/>
   <project name="device/common" path="device/common" revision="798a3664597e6041985feab9aef42e98d458bc3d"/>
--- a/b2g/config/emulator/sources.xml
+++ b/b2g/config/emulator/sources.xml
@@ -14,23 +14,23 @@
   <!--original fetch url was git://github.com/apitrace/-->
   <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/>
   <default remote="caf" revision="refs/tags/android-4.0.4_r2.1" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="df362ace56338da8173d30d3e09e08c42c1accfa">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
-  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d5d3f93914558b6f168447b805cd799c8233e300"/>
   <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="a47dd04f8f66e42fd331711140f2c3e2fed0767d"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
   <project name="platform/bionic" path="bionic" revision="c72b8f6359de7ed17c11ddc9dfdde3f615d188a9"/>
   <project name="platform/bootable/recovery" path="bootable/recovery" revision="425f8b5fadf5889834c5acd27d23c9e0b2129c28"/>
   <project name="device/common" path="device/common" revision="42b808b7e93d0619286ae8e59110b176b7732389"/>
   <project name="device/sample" path="device/sample" revision="237bd668d0f114d801a8d6455ef5e02cc3577587"/>
   <project name="platform_external_apriori" path="external/apriori" remote="b2g" revision="11816ad0406744f963537b23d68ed9c2afb412bd"/>
   <project name="platform/external/bluetooth/bluez" path="external/bluetooth/bluez" revision="52a1a862a8bac319652b8f82d9541ba40bfa45ce"/>
--- a/b2g/config/flame-kk/sources.xml
+++ b/b2g/config/flame-kk/sources.xml
@@ -10,25 +10,25 @@
   <!--original fetch url was git://codeaurora.org/-->
   <remote fetch="https://git.mozilla.org/external/caf" name="caf"/>
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="3ab0d9c70f0b2e1ededc679112c392303f037361">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
   <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <!-- Stock Android things -->
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" revision="8b880805d454664b3eed11d0f053cdeafa1ff06e"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7" revision="a1e239a0bb5cd1d69680bf1075883aa9a7bf2429"/>
   <project groups="linux,x86" name="platform/prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" path="prebuilts/gcc/linux-x86/x86/i686-linux-android-4.7" revision="c7931763d41be602407ed9d71e2c0292c6597e00"/>
   <project groups="linux,x86" name="platform/prebuilts/python/linux-x86/2.7.5" path="prebuilts/python/linux-x86/2.7.5" revision="a32003194f707f66a2d8cdb913ed1869f1926c5d"/>
   <project name="device/common" path="device/common" revision="96d4d2006c4fcb2f19a3fa47ab10cb409faa017b"/>
--- a/b2g/config/flame/sources.xml
+++ b/b2g/config/flame/sources.xml
@@ -12,20 +12,20 @@
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="0e94c080bee081a50aa2097527b0b40852f9143f">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
   <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
   <!-- Stock Android things -->
   <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.1" path="prebuilts/clang/linux-x86/3.1" revision="e95b4ce22c825da44d14299e1190ea39a5260bde"/>
   <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.2" path="prebuilts/clang/linux-x86/3.2" revision="471afab478649078ad7c75ec6b252481a59e19b8"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" revision="8b880805d454664b3eed11d0f053cdeafa1ff06e"/>
--- a/b2g/config/gaia.json
+++ b/b2g/config/gaia.json
@@ -1,9 +1,9 @@
 {
     "git": {
         "git_revision": "", 
         "remote": "", 
         "branch": ""
     }, 
-    "revision": "830d094e31350d07d6354deafbd58a19b2ac0236", 
+    "revision": "dc9a51bd4d985bcb30c9a4413bdb5084f0f500ea", 
     "repo_path": "integration/gaia-central"
 }
--- a/b2g/config/hamachi/sources.xml
+++ b/b2g/config/hamachi/sources.xml
@@ -12,21 +12,21 @@
   <!--original fetch url was git://github.com/apitrace/-->
   <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/>
   <default remote="caf" revision="b2g/ics_strawberry" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="df362ace56338da8173d30d3e09e08c42c1accfa">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
-  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
   <project name="platform/bionic" path="bionic" revision="d2eb6c7b6e1bc7643c17df2d9d9bcb1704d0b9ab"/>
   <project name="platform/bootable/recovery" path="bootable/recovery" revision="746bc48f34f5060f90801925dcdd964030c1ab6d"/>
   <project name="platform/development" path="development" revision="2460485184bc8535440bb63876d4e63ec1b4770c"/>
   <project name="device/common" path="device/common" revision="0dcc1e03659db33b77392529466f9eb685cdd3c7"/>
   <project name="device/sample" path="device/sample" revision="68b1cb978a20806176123b959cb05d4fa8adaea4"/>
   <project name="platform_external_apriori" path="external/apriori" remote="b2g" revision="11816ad0406744f963537b23d68ed9c2afb412bd"/>
--- a/b2g/config/helix/sources.xml
+++ b/b2g/config/helix/sources.xml
@@ -10,17 +10,17 @@
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <default remote="caf" revision="b2g/ics_strawberry" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="df362ace56338da8173d30d3e09e08c42c1accfa">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
-  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
   <project name="gonk-patches" path="patches" remote="b2g" revision="223a2421006e8f5da33f516f6891c87cae86b0f6"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
   <project name="platform/bionic" path="bionic" revision="d2eb6c7b6e1bc7643c17df2d9d9bcb1704d0b9ab"/>
--- a/b2g/config/nexus-4/sources.xml
+++ b/b2g/config/nexus-4/sources.xml
@@ -12,20 +12,20 @@
   <!--original fetch url was https://git.mozilla.org/releases-->
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="0e94c080bee081a50aa2097527b0b40852f9143f">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
   <project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
   <!-- Stock Android things -->
   <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.1" path="prebuilts/clang/linux-x86/3.1" revision="5c45f43419d5582949284eee9cef0c43d866e03b"/>
   <project groups="linux" name="platform/prebuilts/clang/linux-x86/3.2" path="prebuilts/clang/linux-x86/3.2" revision="3748b4168e7bd8d46457d4b6786003bc6a5223ce"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="9025e50b9d29b3cabbbb21e1dd94d0d13121a17e"/>
   <project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="b89fda71fcd0fa0cf969310e75be3ea33e048b44"/>
   <project groups="linux,arm" name="platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" path="prebuilts/gcc/linux-x86/arm/arm-eabi-4.7" revision="2e7d5348f35575870b3c7e567a9a9f6d66f8d6c5"/>
--- a/b2g/config/wasabi/sources.xml
+++ b/b2g/config/wasabi/sources.xml
@@ -12,22 +12,22 @@
   <!--original fetch url was git://github.com/apitrace/-->
   <remote fetch="https://git.mozilla.org/external/apitrace" name="apitrace"/>
   <default remote="caf" revision="ics_chocolate_rb4.2" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="df362ace56338da8173d30d3e09e08c42c1accfa">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
-  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="d695e7cdcd162e779e15594054931c84dec34a95"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="25388c6bce932657ebf93adedf31881bfaf88c15"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="45c54a55e31758f7e54e5eafe0d01d387f35897a"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="fe893bb760a3bb64375f62fdf4762a58c59df9ef"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6a8f8bd05043e7b8f8e26ad390c82021b995ee4d"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="6ce96da28ea23c3d6804d13dc00d886cdb797134"/>
   <project name="gonk-patches" path="patches" remote="b2g" revision="223a2421006e8f5da33f516f6891c87cae86b0f6"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
   <project name="platform/bionic" path="bionic" revision="cd5dfce80bc3f0139a56b58aca633202ccaee7f8"/>
   <project name="platform/bootable/recovery" path="bootable/recovery" revision="e0a9ac010df3afaa47ba107192c05ac8b5516435"/>
   <project name="platform/development" path="development" revision="a384622f5fcb1d2bebb9102591ff7ae91fe8ed2d"/>
   <project name="device/common" path="device/common" revision="7c65ea240157763b8ded6154a17d3c033167afb7"/>
   <project name="device/sample" path="device/sample" revision="c328f3d4409db801628861baa8d279fb8855892f"/>
--- a/browser/components/loop/jar.mn
+++ b/browser/components/loop/jar.mn
@@ -91,18 +91,18 @@ browser.jar:
   content/browser/loop/shared/libs/backbone-1.1.2.js  (content/shared/libs/backbone-1.1.2.js)
 
   # Shared sounds
   content/browser/loop/shared/sounds/ringtone.ogg       (content/shared/sounds/ringtone.ogg)
   content/browser/loop/shared/sounds/connecting.ogg     (content/shared/sounds/connecting.ogg)
   content/browser/loop/shared/sounds/connected.ogg      (content/shared/sounds/connected.ogg)
   content/browser/loop/shared/sounds/terminated.ogg     (content/shared/sounds/terminated.ogg)
   content/browser/loop/shared/sounds/room-joined.ogg    (content/shared/sounds/room-joined.ogg)
-  content/browser/loop/shared/sounds/room-joined-in.org (content/shared/sounds/room-joined-in.ogg)
-  content/browser/loop/shared/sounds/room-left.org      (content/shared/sounds/room-left.ogg)
+  content/browser/loop/shared/sounds/room-joined-in.ogg (content/shared/sounds/room-joined-in.ogg)
+  content/browser/loop/shared/sounds/room-left.ogg      (content/shared/sounds/room-left.ogg)
   content/browser/loop/shared/sounds/failure.ogg        (content/shared/sounds/failure.ogg)
 
   # Partner SDK assets
   content/browser/loop/libs/sdk.js                                                    (content/shared/libs/sdk.js)
   content/browser/loop/sdk-content/css/ot.css                                 (content/shared/libs/sdk-content/css/ot.css)
   content/browser/loop/sdk-content/js/dynamic_config.min.js                   (content/shared/libs/sdk-content/js/dynamic_config.min.js)
   content/browser/loop/sdk-content/images/rtc/access-denied-chrome.png        (content/shared/libs/sdk-content/images/rtc/access-denied-chrome.png)
   content/browser/loop/sdk-content/images/rtc/access-denied-copy-firefox.png  (content/shared/libs/sdk-content/images/rtc/access-denied-copy-firefox.png)
--- a/build/mobile/robocop/Makefile.in
+++ b/build/mobile/robocop/Makefile.in
@@ -60,16 +60,17 @@ ROBOCOP_FILES := \
   $(wildcard $(TESTPATH)/*.sjs) \
   $(wildcard $(TESTPATH)/test*.js) \
   $(wildcard $(TESTPATH)/robocop*.js) \
   $(wildcard $(TESTPATH)/*.xml) \
   $(wildcard $(TESTPATH)/*.ogg) \
   $(wildcard $(TESTPATH)/*.mp4) \
   $(wildcard $(TESTPATH)/*.webm) \
   $(wildcard $(TESTPATH)/*.swf) \
+  $(wildcard $(TESTPATH)/reader_mode_pages) \
   $(NULL)
 
 ROBOCOP_DEST = $(DEPTH)/_tests/testing/mochitest/tests/robocop/
 INSTALL_TARGETS += ROBOCOP
 
 GARBAGE += \
   AndroidManifest.xml \
   $(robocop-deps) \
--- a/dom/nfc/gonk/Nfc.js
+++ b/dom/nfc/gonk/Nfc.js
@@ -594,23 +594,24 @@ Nfc.prototype = {
     gSystemMessenger.broadcastMessage("nfc-hci-event-transaction", message);
   },
 
   /**
    * Process a message from the gMessageManager.
    */
   receiveMessage: function receiveMessage(message) {
     let isRFAPI = message.name == "NFC:ChangeRFState";
-    if (!isRFAPI) {
-      if (this.rfState != NFC.NFC_RF_STATE_DISCOVERY) {
-        debug("NFC is not enabled. current rfState:" + this.rfState);
-        this.sendNfcErrorResponse(message, NFC.NFC_GECKO_ERROR_NOT_ENABLED);
-        return null;
-      }
+    let isSendFile = message.name == "NFC:SendFile";
+    if (!isRFAPI && (this.rfState != NFC.NFC_RF_STATE_DISCOVERY)) {
+      debug("NFC is not enabled. current rfState:" + this.rfState);
+      this.sendNfcErrorResponse(message, NFC.NFC_GECKO_ERROR_NOT_ENABLED);
+      return null;
+    }
 
+    if (!isRFAPI && !isSendFile) {
       // Update the current sessionId before sending to the NFC service.
       message.data.sessionId = SessionHelper.getId(message.data.sessionToken);
     }
 
     switch (message.name) {
       case "NFC:ChangeRFState":
         this.sendToNfcService("changeRFState", message.data);
         break;
--- a/dom/telephony/test/marionette/manifest.ini
+++ b/dom/telephony/test/marionette/manifest.ini
@@ -14,16 +14,17 @@ qemu = true
 [test_outgoing_hangup_held.js]
 [test_outgoing_radio_off.js]
 [test_outgoing_badNumber.js]
 [test_outgoing_busy.js]
 [test_outgoing_reject.js]
 [test_incoming_hold_resume.js]
 [test_outgoing_hold_resume.js]
 [test_incoming_already_connected.js]
+disabled = Bug 1098193
 [test_incoming_answer_remote_hangup.js]
 [test_incoming_connecting_hangup.js]
 [test_incoming_connecting_remote_hangup.js]
 [test_incoming_hangup_held.js]
 [test_incoming_remote_cancel.js]
 [test_incoming_remote_hangup_held.js]
 [test_outgoing_already_held.js]
 [test_outgoing_answer_local_hangup.js]
@@ -45,25 +46,36 @@ disabled = Bug 821958
 [test_emergency_label.js]
 [test_dsds_default_service_id.js]
 [test_call_mute.js]
 [test_dsds_normal_call.js]
 [test_dsds_connection_conflict.js]
 [test_audiomanager_phonestate.js]
 [test_outgoing_answer_radio_off.js]
 [test_conference_two_calls.js]
+disabled = Bug 1098193
 [test_conference_add_error.js]
+disabled = Bug 1098193
 [test_conference_remove_error.js]
+disabled = Bug 1098193
 [test_conference_two_hangup_all.js]
+disabled = Bug 1098193
 [test_conference_two_hangup_one.js]
+disabled = Bug 1098193
 [test_conference_two_hold_resume.js]
+disabled = Bug 1098193
 [test_conference_two_remove_one.js]
+disabled = Bug 1098193
 [test_conference_three_hangup_one.js]
+disabled = Bug 1098193
 [test_conference_three_remove_one.js]
+disabled = Bug 1098193
 [test_conference_add_twice_error.js]
+disabled = Bug 1098193
 [test_outgoing_when_two_calls_on_line.js]
 [test_call_presentation.js]
 [test_temporary_clir.js]
 [test_outgoing_error_state.js]
 [test_outgoing_auto_hold.js]
+disabled = Bug 1098193
 [test_mmi.js]
 [test_mmi_change_pin.js]
 [test_mmi_call_forwarding.js]
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -116,16 +116,17 @@ static const char sPrintOptionsContractI
 #include "nsISHistoryInternal.h"
 #include "nsIWebNavigation.h"
 #include "nsXMLHttpRequest.h"
 
 //paint forcing
 #include <stdio.h>
 
 #include "mozilla/dom/Element.h"
+#include "mozilla/Telemetry.h"
 
 using namespace mozilla;
 using namespace mozilla::dom;
 
 #define BEFOREUNLOAD_DISABLED_PREFNAME "dom.disable_beforeunload"
 
 //-----------------------------------------------------
 // PR LOGGING
@@ -1194,36 +1195,40 @@ nsDocumentViewer::PermitUnloadInternal(b
       bool dummy = false;
       int32_t buttonPressed = 0;
       uint32_t buttonFlags = (nsIPrompt::BUTTON_POS_0_DEFAULT |
                              (nsIPrompt::BUTTON_TITLE_IS_STRING * nsIPrompt::BUTTON_POS_0) |
                              (nsIPrompt::BUTTON_TITLE_IS_STRING * nsIPrompt::BUTTON_POS_1));
 
       nsAutoSyncOperation sync(mDocument);
       mInPermitUnloadPrompt = true;
+      mozilla::Telemetry::Accumulate(mozilla::Telemetry::ONBEFOREUNLOAD_PROMPT_COUNT, 1);
       rv = prompt->ConfirmEx(title, message, buttonFlags,
                              leaveLabel, stayLabel, nullptr, nullptr,
                              &dummy, &buttonPressed);
       mInPermitUnloadPrompt = false;
 
       // If the prompt aborted, we tell our consumer that it is not allowed
       // to unload the page. One reason that prompts abort is that the user
       // performed some action that caused the page to unload while our prompt
       // was active. In those cases we don't want our consumer to also unload
       // the page.
       //
       // XXX: Are there other cases where prompts can abort? Is it ok to
       //      prevent unloading the page in those cases?
       if (NS_FAILED(rv)) {
+        mozilla::Telemetry::Accumulate(mozilla::Telemetry::ONBEFOREUNLOAD_PROMPT_ACTION, 2);
         *aPermitUnload = false;
         return NS_OK;
       }
 
       // Button 0 == leave, button 1 == stay
       *aPermitUnload = (buttonPressed == 0);
+      mozilla::Telemetry::Accumulate(mozilla::Telemetry::ONBEFOREUNLOAD_PROMPT_ACTION,
+        (*aPermitUnload ? 1 : 0));
       // If the user decided to go ahead, make sure not to prompt the user again
       // by toggling the internal prompting bool to false:
       if (*aPermitUnload) {
         *aShouldPrompt = false;
       }
     }
   }
 
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/tests/reader_mode_pages/addons.mozilla.org/en-US/firefox/index.html
@@ -0,0 +1,320 @@
+<!DOCTYPE html>
+<html lang="en-US" dir="ltr">
+  <head>
+          <style>
+        html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}table{border-collapse:collapse;border-spacing:0}.js-hidden{display:none}i{font-style:italic;color:#838382}.item details .vitals:after,header:after,header nav:after,section:after,.menu:after,.grouped_ratings:after,.persona-confirm:after,.persona-slider .confirm-buttons:after{content:".";display:block;clear:both;height:0;visibility:hidden}.locked #page{display:none}.moz-menu .tab{background:#33589f}footer:before,.tabs{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAEElEQVQIHWP8//8/Aw7wHwBR6AP+G53o6QAAAABJRU5ErkJggg==),-moz-linear-gradient(#fff, #dcedfd);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAEElEQVQIHWP8//8/Aw7wHwBR6AP+G53o6QAAAABJRU5ErkJggg==),-webkit-gradient(linear,left top,left bottom,from(#fff),to( #dcedfd))}#page{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAEElEQVQIHWP8//8/Aw7wHwBR6AP+G53o6QAAAABJRU5ErkJggg==),-moz-linear-gradient( #dcedfd 0,#fff 200px);background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAEElEQVQIHWP8//8/Aw7wHwBR6AP+G53o6QAAAABJRU5ErkJggg==),-webkit-gradient(linear,left top,left 200,from( #dcedfd),to(#fff));margin-bottom:30px;min-height:430px}#sort-menu .label span:after,.moz-menu .tab a:after,.menu a.expando:after{content:"\00a0";display:block;position:absolute;right:8px;width:0;height:0;-moz-transition:.3s -moz-transform ease;-webkit-transition:.3s -webkit-transform ease;-moz-transform-origin:50% 25%;-webkit-transform-origin:50% 25%;top:16px;border:5px solid transparent;border-top-color:#000;pointer-events:none}html,body{height:100%}table{width:100%}table tr{border:1px solid #ddd}table th,table td{padding:4px 8px 4px 4px;vertical-align:top}.html-rtl table th,.html-rtl table td{padding:4px 4px 4px 8px}table th{background:#f4f4f4;color:#666;text-align:right;font-weight:700;width:50%}.html-rtl table th{text-align:left}#content{width:100%;overflow:hidden;position:relative;padding:8px 0 16px}.paginator{display:-moz-box;display:-webkit-box;text-align:center;color:#ccc;font-size:1.1em;width:100%;height:40px}.paginator .page{color:#666;margin:0 2%;-moz-box-flex:1;-webkit-box-flex:1}.paginator a{padding:14px}.paginator .next a:after{content:' \00bb'}.paginator .prev a:before{content:' \00ab'}#sort-menu{-moz-box-align:center;padding:0 14px}#sort-menu ul{height:0;position:relative;top:-1px;overflow:hidden;-moz-transition:.5s height ease;-webkit-transition:.5s height ease;border:0 solid transparent;border-width:1px 0}#sort-menu.expand ul{border-color:#a9badb;height:254px;margin:0 -14px}.purchases #sort-menu.expand ul{height:100px}#sort-menu li{border-top:1px solid #dde4ef}#sort-menu li a{display:block;height:26px;line-height:26px;padding:12px 14px}#sort-menu li:first-child{border-top:0}#sort-menu .label{color:#888}#sort-menu .label span{position:relative;display:inline-block;z-index:10;background:transparent;color:#447bc4;text-align:center;white-space:nowrap;border:1px solid transparent;border-width:1px 1px 0 1px;border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;-webkit-border-radius:6px 6px 0 0;margin-left:4px;padding:11px 22px 11px 6px;-moz-transition:.3s background ease}#sort-menu.expand .label span{background:#fff;border-color:#a9badb;border-bottom:1px solid white;box-shadow:0 -1px 1px #dde4ef}#sort-menu .label span:after{top:16px;border:5px solid transparent;border-top-color:#447BC4}#sort-menu.expand .label span:after{-moz-transform:rotate(180deg);-webkit-transform:rotate(180deg)}.tabs{border-bottom:1px solid #a2bbdc;height:41px;font:16px Georgia,serif;padding:14px 14px 0;box-shadow:0 -1px 1px rgba(0,0,0,.1) inset}.tabs ul{display:-webkit-box;display:-moz-box;margin:0;width:100%;z-index:1}.tabs ul li{-moz-box-flex:1;-webkit-box-flex:1;border:0;-webkit-transition:.3s background ease;-moz-transition:.3s background ease}.tabs a:-moz-focusring{outline:0;border:0}.tabs ul li a{display:block;white-space:nowrap;text-align:center;color:#447bc4;padding:11px 8px 11px 6px}.tabs ul li.selected{background:#fff;box-shadow:0 -1px 1px rgba(0,0,0,.1);border:1px solid #a2bbdc;border-width:1px 1px 0 1px;border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;-webkit-border-radius:6px 6px 0 0}.tabs ul li.selected a{color:#444;padding:11px 8px 11px 6px}.tab-pane{display:none}.tab-pane.selected{display:block}.slider{white-space:nowrap;position:relative;left:0;-moz-transition-duration:.3s;-moz-transition-property:left,right;-webkit-transition-duration:.3s;-webkit-transition-property:left,right}.html-rtl .slider{left:auto;right:0}.slider-mask{width:100%;overflow:hidden}.slider .tab-pane{vertical-align:top;width:100%;display:inline-block}#lightbox{background:rgba(0,0,0,.9);position:absolute;width:100%;height:101%;display:none;z-index:9000;color:#fff;text-align:center;opacity:0;overflow:hidden;pointer-events:none;-moz-transition:.5s opacity ease;-webkit-transition:.5s opacity ease}#lightbox .close{display:block;position:absolute;z-index:100;font-family:sans-serif;color:#fff;top:14px;right:14px;line-height:12px;text-align:center;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;width:12px;height:12px;padding:12px;border:1px solid white}#lightbox.show{pointer-events:auto;opacity:1}#lightbox section{position:relative;width:100%;height:100%}#lightbox .content{height:70%;display:block;position:relative;text-align:center}#lightbox .controls{height:25%;min-height:100px;position:relative;padding:5% 40px 0}#lightbox .control.prev,#lightbox .control.next{color:#fff;left:0;-moz-transition:.3s opacity ease}.html-rtl #lightbox .control.prev{left:auto;right:0}#lightbox .control.next{left:auto;right:0}.html-rtl #lightbox .control.next{right:auto;left:0}#lightbox .control.disabled{opacity:0}#lightbox .caption{font-size:18px}#lightbox img{max-width:95%;max-height:100%;-moz-transition:.5s opacity ease;-webkit-transition:.5s opacity ease;opacity:0;position:absolute}td .versions li a{display:block;margin:0 0 8px}td .versions li:last-child a{margin:0}.author,.author a{font-family:"Droid Sans",Helvetica,Arial,sans-serif;color:#888;font-size:12px;line-height:12px}.personas-grid h2{border-bottom:#ccc 1px solid}#persona-lists{padding-bottom:104px}#persona-header{margin:0 14px}#persona-header hgroup{padding-left:0}#persona-header h2{margin:0}#persona-header h3{color:#444;font-size:18px;margin-bottom:14px}#persona-header h2{font-style:normal;text-transform:uppercase}#persona h3,#persona .author{display:inline-block;font-size:14px}#persona h3{color:#444;font-family:"Droid Sans",Helvetica,sans-serif;font-weight:700}#persona .author,#persona .persona-large{margin-bottom:8px}#persona .badges{margin-top:0}#persona .badges li{margin:8px 0 0}ul.license{position:relative;top:3px}ul.license li{display:block;float:left;list-style:none;margin-right:2px}.html-rtl ul.license li{float:right;margin:0 0 0 2px}ul.license li.text{font-size:90%;line-height:15px;margin-left:4px}.html-rtl ul.license li.text{margin:0 4px 0 0}ul.license li.icon{background:url(../../media/img/zamboni/licenses.png%3Ffa83f55) no-repeat top left;height:15px;width:15px}ul.license li.cc-attrib{background-position:0 0}ul.license li.cc-noderiv{background-position:0 -65px}ul.license li.cc-noncom{background-position:0 -130px}ul.license li.cc-share{background-position:0 -195px}ul.license li.copyr{background-position:0 -260px}.persona-preview [data-browsertheme]{display:block;position:relative}.persona-large [data-browsertheme],.persona-large p{border-radius:6px}#listing-featured .persona-previewer:last-child .persona-slider{border-radius:0 0 6px 6px}.persona-large{max-width:680px}.persona-large [data-browsertheme]{background:transparent no-repeat right top;border-bottom:1px solid rgba(0,0,0,.4);display:table;height:64px;width:100%}.persona-large p{background-image:url(../../media/img/zamboni/mobile/loading-white.png%3F2816057);background-repeat:no-repeat;background-position:50% 50%;-moz-background-size:auto 32px;-wekbkit-background-size:auto 32px;background-size:auto 32px;color:#fff;display:none;font:18px Georgia,serif;pointer-events:none;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,.5);vertical-align:middle}.persona-hover [data-browsertheme] p{background-color:rgba(0,0,0,.4);display:table-cell}.persona-previewing p,.persona-installed p{background:0}#persona .confirm-buttons,.persona-slider .badges{display:none}.persona-previewer .confirm-buttons .add{float:left;width:-moz-calc(50% - 63px)}.persona-previewer .confirm-buttons .cancel{float:right;width:-moz-calc(50% - 39px)}.persona-previewer .persona-installed p:before{background:url(../../media/img/zamboni/mobile/checkmark.png%3F521c6c8) no-repeat top left;content:" ";display:inline-block;margin:0 3px -3px 0;position:relative;top:3px;height:25px;width:25px}li.persona-previewer{padding:10px}.persona-slider{background-color:#ccc;height:0;overflow:hidden;padding:0 10px;position:relative;top:11px;left:-10px;width:100%;-moz-transition:.5s height ease;-webkit-transition:.5s height ease}.persona-slider.expand{border-top:1px solid #999}.persona-slider .more{clear:both;color:#447bc4;display:block;font-weight:700;line-height:1;padding-top:10px;text-align:center}.persona-slider .confirm-buttons{margin-top:10px}.version h3{font-size:20px;color:#000}.version time{display:block;font-family:"Droid Sans",Helvetica,Arial,sans-serif;margin:10px 0}.version blockquote{color:#666;font-family:Georgia,serif;overflow:hidden}.version .meta{font-style:italic;color:#666}.version .meta h4{margin-top:12px;font-family:"Droid Sans",Helvetica,Arial,sans-serif;font-weight:700;color:#666}.message{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;margin:14px;padding:14px}.message h3{font-family:"Droid Sans",Helvetica,sans-serif;font-weight:700;margin-bottom:14px}.message.warning{background:#fff0a6}.apps-error-msg{display:none;padding:1em 0}#content .apps-error-msg h2{font-style:normal}#content .apps-error-msg p{margin-bottom:1em;margin-left:1em}.install-wrapper{margin:10px 0 4px;padding-top:8px;text-align:center;font-weight:700}.infobox .install-wrapper,#persona .persona-confirm{border-top:2px solid #fff;box-shadow:0 -1px #ccc}#persona .persona-confirm{padding-top:8px}.persona-confirm .install-wrapper{margin:0;padding-top:0}#persona .persona-confirm .install-wrapper{border-top-width:0;box-shadow:none}button{cursor:pointer;margin:0}button,.button,a.button{-moz-transition:-moz-box-shadow .3s ease 0s;background-color:#669BE1;border:0;-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;box-shadow:0 3px rgba(0,0,0,.1),0 -4px rgba(0,0,0,.1) inset;-moz-box-shadow:0 3px rgba(0,0,0,.1),0 -4px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 3px rgba(0,0,0,.1),0 -4px rgba(0,0,0,.1) inset;color:#fff;font:bold 20px/1 "Trebuchet MS",sans-serif;padding:12px 16px 14px;position:relative;text-align:center;display:block;text-decoration:none}a.button:link{color:#fff}button:active,.button:active,.button.selected{top:2px;-moz-box-shadow:0 1px rgba(0,0,0,.1),0 -4px rgba(0,0,0,.1) inset,0 0 100px rgba(255,255,255,.2) inset}.button.small{font-size:13px;font-weight:400;padding:6px 12px;padding-bottom:9px;-moz-box-shadow:0 2px rgba(0,0,0,.1),0 -3px rgba(0,0,0,.1) inset}.button.small:hover,.button.small:focus,.button.small:active,.button.small.selected{-moz-box-shadow:0 2px rgba(0,0,0,.1),0 -3px rgba(0,0,0,.1) inset,0 0 100px rgba(255,255,255,.2) inset}.button.small:active,.button.small.selected{top:2px;-moz-box-shadow:0 0 rgba(0,0,0,.1),0 -3px rgba(0,0,0,.1) inset,0 0 100px rgba(255,255,255,.2) inset}.button.preview,.button.affirmative,.button.add{background-color:#84C63C;color:#fff}.button.premium{background:#da6}.button.negative{background-color:#84C63C;color:#fff}.button.cancel{background-color:#b25951}.button.add{padding-left:40px}.button.add:before{content:" ";display:block;width:24px;height:24px;position:absolute;left:14px;top:10px;background:url(../../media/img/zamboni/mobile/install.svg%3Fad1ef3d) no-repeat top left}.button.warning{background-attachment:scroll,scroll;background-clip:border-box,border-box;background-color:transparent;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGlJREFUeNqc0cEJACEMRFFNARaw/RexFe1dG3AjCBJJYDL/kNtjDqn9lRLUnlrixjd5qVdo6WNQOhiXN05Jg7PyYEJuzMmFaRn+GZG6KrQMlxHpY1A6GJc3TkmDs/JgQm7MyYVpqf0CDABVcj3T2ITzOAAAAABJRU5ErkJggg==);background-origin:padding-box,padding-box;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:auto auto,auto auto;text-shadow:0 -1px 0 rgba(255,255,255,.5);top:0}.button.warning,.button.warning:link{color:#333}.button.add.warning:before{background:url(../../media/img/zamboni/mobile/install.svg%3Fad1ef3d) no-repeat 0 -50px}.button.disabled,.button.waiting{background-color:#d1d4d7;color:#fff;-moz-box-shadow:0 3px rgba(0,0,0,.05),0 -4px rgba(0,0,0,.05) inset;top:0}.button.add.disabled:before{background:url(../../media/img/zamboni/mobile/install.svg%3Fad1ef3d) no-repeat top left}.badges{margin-top:8px}.badges a,.badges li{display:block;color:#000}#content .badges li{border:1px solid #ddd;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;margin-bottom:8px;font-size:12px;line-height:20px;height:20px;background:#fff}#content .badges .error{background-color:#edd4d2;border-color:#ac9a98}#content .badges .warning{background-color:#fef9d7;border-color:#bebaa1}#content .badges .warning span{cursor:pointer}.install .privacy-policy{display:block;margin-top:12px;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;height:27px;font-size:.9em;color:#000;line-height:25px;border:1px solid #ccc;background-color:#e6e6e6}.badges li span{color:#447bc4}.lite-msg{display:none;font-size:.9em}#eula{display:block;position:absolute;top:0;left:0;width:100%;min-height:100%;background:#333;display:none}#eula-content{-moz-border-radius:6px;-webkit-border-radius:6px;border-radius:6px;margin:14px;padding:14px 0 70px 0;background:#fff}#eula-text{padding:0 14px;font-family:Georgia,serif;line-height:1.2em}#eula-body{margin-top:14px;color:#666}#eula-body ul{list-style:disc outside none;margin-left:20px}#eula-body ol{list-style:decimal outside none;margin-left:20px}#eula-menu{position:fixed;bottom:-1px;left:14px;width:-moz-calc(100% - 28px);background:#fff}#eula:after{position:absolute;content:"";bottom:0;height:20px;width:-moz-calc(100% - 28px);z-index:1000;border-width:14px;border-style:solid;pointer-events:none;border-color:transparent #333 #333;-moz-border-radius:14px;-webkit-border-radius:14px;border-radius:14px}#eula-menu div{margin-bottom:14px;overflow:hidden;position:relative;background:#fff;-moz-border-radius:0 0 6px 6px;-webkit-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}#eula-menu .button{margin:8px;display:block;float:left;width:-moz-calc(50% - 48px)}.stars{text-indent:-5000px;background-image:url(../../media/img/icons/stars.png%3F29bed4f);background-position:0 50%;background-repeat:no-repeat;width:63px;display:block}.reviews .stars{float:left}.html-rtl .stars{float:right}.stars-4{background-position:-13px 50%}.stars-3{background-position:-26px 50%}.stars-2{background-position:-39px 50%}.stars-1{background-position:-52px 50%}.stars-0{background-position:-65px 50%}.grouped_ratings{margin:16px 0}.grouped_ratings .stars-4{background-position:13px 50%}.grouped_ratings .stars-3{background-position:26px 50%}.grouped_ratings .stars-2{background-position:39px 50%}.grouped_ratings .stars-1{background-position:52px 50%}.grouped_ratings .stars-0{background-position:65px 50%}.grouped_ratings li{height:12px;margin-bottom:8px;clear:both}.grouped_ratings .rating_bar{float:left;height:12px;margin-top:4px;background:#eee;position:relative;overflow:visible;width:120px}.num_ratings{color:#888;width:1px;position:absolute;right:-6px;top:0;line-height:1em;font-size:.9em}.grouped_ratings .rating_bar span.bar{display:block;height:100%;background:#888;height:12px}.review p{max-height:6.2em;overflow:hidden}.html-rtl .grouped_ratings .rating_bar{border-left:0;float:right}.html-rtl .grouped_ratings .rating_bar span.bar{float:right}.html-rtl .grouped_ratings .rating_bar span.num_ratings{right:auto;left:-4px}.review .old-version{font-size:.8em;font-style:italic;line-height:1em;color:#888;margin-top:4px}.review{margin-bottom:1.5em}.carousel .control,#lightbox .control{display:block;position:absolute;top:0;opacity:.9;width:45px;height:95%;line-height:100px;font-size:48px;text-align:center;color:#447BC4;text-shadow:0 0 5px #fff;-moz-transition:.2s color ease;-webkit-transition:.2s color ease}.carousel .control.disabled{color:#ccc}.carousel .control.prev,.html-rtl .carousel .control.next{background-image:-moz-linear-gradient(left,#fff 20%,rgba(255,255,255,0));right:auto;left:0}.carousel .control.next,.html-rtl .carousel .control.prev{background-image:-moz-linear-gradient(left,rgba(255,255,255,0),#fff 80%);left:auto;right:0}.carousel{position:relative;padding:14px 40px;overflow:hidden;background-color:#fff;border-bottom:2px solid #dcedfd;margin-bottom:20px}.carousel ul{height:78px;white-space:nowrap;position:relative;left:0;-moz-transition-duration:.5s;-moz-transition-property:left,right;-webkit-transition-duration:.5s;-webkit-transition-property:left,right}.carousel li{display:inline-block;width:50%;text-align:center}.carousel li img{border:1px solid #afbed0;max-height:75px;max-width:100px;border-radius:6px;-moz-box-shadow:0 0 4px rgba(0,0,0,.2);-webkit-box-shadow:0 0 4px rgba(0,0,0,.2)}.browserid-divider{text-align:center;margin:2em 1em 0;border-bottom:1px dashed #ccc}.browserid-divider span{background-color:#FFF;font-style:italic;padding:0 15px;position:relative;top:.4em}#browserid{margin-bottom:2em;text-align:center}#browserid .button{margin:auto;display:inline-block}a.expando:-moz-focusring{border:0;outline:0}a.expando{color:#447BC4}.menu a.expando{position:relative;display:block;padding:10px 20px;float:right;color:#447BC4}.html-rtl .menu a.expando{float:left}.menu a.expando:after{border-top-color:#447BC4;top:15px}.menu a.expando.expand:after{-moz-transform:rotate(180deg);-webkit-transform:rotate(180deg)}.expando-managed{overflow:hidden;height:0;-moz-transition:.5s height ease;-webkit-transition:.5s height ease}.readmore{padding:10px 20px;color:#447BC4;text-align:right;display:none}body{font-family:Georgia,serif}a:link{color:#447bc4;text-decoration:none}.num_ratings,.review .old-version,.install-wrapper,table,table a:link{font-family:"Helvetica Neue",Arial,sans-serif}#full h1,#content h2,#eula h2{font-style:italic;margin:0 14px 14px;font-size:1.4em}#content #full{line-height:1.3}#content #full h1{margin:0}#content #full p{margin:1em 0 0}#content #full>p{margin:1em}#content h3{font-size:1.2em;padding-bottom:2px}#full p,.copy p{color:#666}p strong{font-weight:700}#content details,#content p,#content .copy,#content .menu{margin:0 14px}.copy{line-height:1.2em}#full h1,#content h2{padding-bottom:4px;border-bottom:1px solid #ccc;box-shadow:0 1px #fff}#content .error h2{border:0;box-shadow:none;padding:0}.htruncate{white-space:nowrap;overflow:hidden}.req,.errorlist,.error{color:#c00000}.form-mobile,#full form{padding:1em}.form-mobile.form-mobile label,#full form.form-mobile label,.form-mobile.form-mobile .errorlist,#full form.form-mobile .errorlist{font-family:"Helvetica Neue",Arial,sans-serif}.form-mobile label,#full form label{color:#666;display:block;padding-bottom:6px}.form-mobile label.check,#full form label.check{margin-bottom:1em}.form-mobile .errorlist,#full form .errorlist{font-weight:700;margin:0 0 1em}.form-mobile .errorlist+p input,#full form .errorlist+p input,.form-mobile .errorlist+p textarea,#full form .errorlist+p textarea{border-color:red;background-color:#FFEBEB}.form-mobile input[type=checkbox],#full form input[type=checkbox]{margin-bottom:.5em}.form-mobile input[type=text],#full form input[type=text],.form-mobile input[type=password],#full form input[type=password],.form-mobile select,#full form select,.form-mobile textarea,#full form textarea{margin-bottom:1em;font-size:1.3em}.form-mobile input[type=text]+.errorlist,#full form input[type=text]+.errorlist,.form-mobile input[type=password]+.errorlist,#full form input[type=password]+.errorlist,.form-mobile select+.errorlist,#full form select+.errorlist,.form-mobile textarea+.errorlist,#full form textarea+.errorlist{margin-top:-.5em}.form-mobile textarea,#full form textarea,.form-mobile input[type=text],#full form input[type=text],.form-mobile input[type=password],#full form input[type=password]{border:1px solid #ccc;padding:3px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%}.form-mobile .stars,#full form .stars{background-image:url(../../media/img/icons/stars-big.png%3F19d1207)}.form-mobile .stars label,#full form .stars label{height:40px}.form-mobile .stars-0,#full form .stars-0{background-position:-195px 50%}.form-mobile .stars-1,#full form .stars-1{background-position:-156px 50%}.form-mobile .stars-2,#full form .stars-2{background-position:-117px 50%}.form-mobile .stars-3,#full form .stars-3{background-position:-78px 50%}.form-mobile .stars-4,#full form .stars-4{background-position:-39px 50%}.form-mobile .stars-5,#full form .stars-5{background-position:0 50%}.form-mobile .ratingwidget,#full form .ratingwidget{display:block;float:none;width:195px;margin-bottom:1em;height:40px}.form-mobile .ratingwidget input,#full form .ratingwidget input{display:none}.form-mobile .ratingwidget label,#full form .ratingwidget label{text-indent:-5000px;display:block;float:left;width:39px}#content .notification-box{padding:1em;margin:1em;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}#content .notification-box h2{margin:0}#content .notification-box.error{background-color:#FFD5D5}.browserid-login.loading-submit:after{background-image:url(../../media/img/zamboni/loading-white.gif%3F005dbc7);content:"";display:block;height:16px;margin-left:10px;position:absolute;right:-32px;top:12px;width:16px}#home-header,.mini-header{margin:0 14px}.moz-menu{-moz-transition:.5s top ease;-webkit-transition:.5s top ease;transition:.5s top ease;position:relative;top:0;z-index:100}.moz-menu .tab{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;box-shadow:0 -3px rgba(0,0,0,.2) inset;-moz-box-shadow:0 -3px rgba(0,0,0,.2) inset;-webkit-box-shadow:0 -3px rgba(0,0,0,.2) inset}.moz-menu .tab a{background:url(../../media/img/zamboni/global/wordmark.png%3F71db942) no-repeat 8px 6px;display:block;height:30px;line-height:22px;text-align:right;color:#fff;font-style:italic;padding:8px 25px}.moz-menu .tab a:after{top:18px;border:6px solid transparent;border-top-color:#fff}.mini-header .moz-menu .tab{width:104px;float:right;overflow:hidden;position:relative}.mini-header .moz-menu .tab a{text-indent:-9999px;text-align:left}.html-rtl .mini-header .moz-menu .tab{float:left}.html-rtl .mini-header .moz-menu .tab a{text-indent:9999px}.moz-menu .menu-items{position:absolute;width:100%;left:-14px;right:-14px;bottom:46px}.moz-menu .menu-items li{border-bottom:1px solid #294976;border-top:1px solid #537ab4;background-color:#3a67af;height:50px;width:100%;padding:0 14px}.moz-menu .menu-items a{font:bold 17px/26px "Trebuchet MS",sans-serif;color:#fff;display:block;height:26px;padding:12px 0;text-transform:uppercase}.mini-header .moz-menu .menu-items{bottom:0}.moz-menu.expand{top:312px}.moz-menu.expand .tab a:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}header hgroup{margin:8px 0;position:relative;padding-left:80px}.html-rtl header hgroup{padding-left:0;padding-right:80px}.html-rtl .mini-header hgroup{padding-right:0}header nav ul{float:left;padding:14px 0}header nav ul li{float:left;line-height:14px}header nav ul a{color:#447bc4;display:block}header nav #auth-nav{float:right}.html-rtl header nav ul,.html-rtl header nav li{float:right}.html-rtl header nav #auth-nav{float:left}header #auth-nav li{border-left:1px solid #ccc;margin-left:7px;padding-left:7px}header #auth-nav li.user{font-weight:700}.html-ltr header #auth-nav li:first-child,.html-rtl header #auth-nav li:last-child{border-left:0;margin-left:0;padding-left:0}.mini-header .site-title{padding:4px 120px 0 0}.mini-header .site-title a{font-size:28px;line-height:50px}.html-rtl .mini-header .site-title{padding:4px 0 0 120px}#home-header hgroup{min-height:75px;margin-bottom:8px}#home-header h1{padding-top:4px}#home-header h2{margin:4px 0;color:#666}#home-header .site-title img{position:absolute;left:0;top:0}.mini-header hgroup{margin-top:0;padding:2px 0 0}.html-rtl #home-header .site-title img{left:auto;right:0}.site-title a{color:#000;font:36px/32px Georgia,serif;text-decoration:none;text-transform:uppercase}.site-title span{display:block}.mini-header .site-title img{float:left;height:50px;margin-right:6px}.html-rtl .mini-header .site-title img{float:right;margin:0 0 0 6px}#home-header #search{margin:0}#learnmore-msg{-webkit-border-radius:1em;-moz-border-radius:1em;border-radius:1em;box-shadow:0 0 3px #000;-moz-box-shadow:0 0 3px #000;-webkit-box-shadow:0 0 3px #000;-moz-transition:.3s opacity ease;-webkit-transition:.3s opacity ease;transition:.3s opacity ease;background:#444;color:#fff;font:14px/1.3 "Helvetica Neue",Arial,sans-serif;margin:12px 14px 0;max-width:260px;opacity:0;padding:14px;pointer-events:none;position:absolute;left:0;z-index:100}#learnmore-msg.show{opacity:1;pointer-events:auto}#learnmore-msg:after{content:"\00a0";display:block;position:absolute;z-index:100;top:-28px;left:94px;width:0;height:0;border:15px solid transparent;border-bottom-color:#444;pointer-events:none}#learnmore{color:#447bc4;padding:4px 0}.get-fx-message{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;border:1px solid #e3873b;background:#fcefb7 url(../../media/img/zamboni/icons/alert-32x32.png%3Fee16f6d) 11px center no-repeat;clear:both;display:none;font-size:105%;margin-top:12px;line-height:1.1em;padding:12px 12px 10px 56px}#search{position:relative;margin-bottom:14px;width:100%}#search input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;background:url(../../media/img/zamboni/mobile/search.svg%3F6f451df) no-repeat 10px center #fff;border:1px solid #ddd;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;display:block;font-size:18px;margin-right:8px;padding:10px 10px 10px 40px;width:94%;width:-moz-calc(100% - 68px);width:-webkit-calc(100% - 68px);width:-o-calc(100% - 68px);width:calc(100% - 68px)}#search button{box-shadow:0 -3px rgba(0,0,0,.1) inset;-moz-box-shadow:0 -3px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 -3px rgba(0,0,0,.1) inset;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;background-color:#83c53c;display:block;font-size:18px;padding:8px 0;position:absolute;top:0;right:0;width:56px}.html-rtl #search input[type=search]{background-position:99% 50%;margin:0 0 0 8px;padding:10px 40px 10px 10px}.html-rtl #search button{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1);right:auto;left:0}.noInlineSVG #search button{background:#83c53c url(../../media/img/zamboni/mobile/arrow.png%3F1ae5de1) center no-repeat}#content.search .item .install-wrapper{clear:both;margin:0 10px;padding:0}#content.search .item .badges{margin:0}#content.search .item .buttons,#content.search .item .privacy-policy{display:none}.no-results{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;border:1px solid #ddd;background-color:#f4f4f4;color:#999;font:bold 18px Georgia,serif;text-align:center;margin:14px 14px 1em;padding:14px}.listview,.infobox{margin:14px 14px 1em;border-radius:6px;-moz-border-radius:6px;-webkit-border-radius:6px;border:1px solid #ddd;background-color:#f4f4f4;display:block}.infobox{padding:10px}.listview>li{border-top:1px solid #ccc;font-size:1em;white-space:normal}.listview>li:first-child{border:0}.listview>li,a.listview{position:relative}.listview>li>a,.listview>li>.info>a,a.listview{color:#444;font-family:Georgia,serif;font-size:1.1em;display:block;overflow:hidden;text-decoration:none;padding:10px}.html-rtl .listview>li>a,.html-rtl .listview>li>.info>a,.html-rtl a.listview{padding-left:34px}.listview .item>a,.listview>li>.info>a,.listview div.item{padding:10px;font-size:1em}.listview li.item>a,.listview>li>.info>a{padding:10px 10px 0}.listview>li>a:before,.listview>li>.info>a:before,a.listview:before{content:" ";display:block;width:10px;height:100%;position:absolute;right:10px;top:0;background:url(../../media/img/zamboni/mobile/arrow.svg%3F8638b4c) no-repeat center 12px}.html-rtl .listview>li>a:before,.html-rtl .listview>li>.info>a:before,.html-rtl a.listview:before{right:auto;left:10px;-moz-transform:scalex(-1)}.icon{float:left;margin-right:8px}.html-rtl .icon{float:right;margin-left:8px;margin-right:0}li.item{line-height:1.3em;overflow:hidden;padding-left:42px}li.item .icon{float:none;margin:0;position:absolute;left:10px}li.item h3{font-size:1.1em}li.item .desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#666;display:block}li.item details{font-size:.9em;margin:0 0 7px!important;padding:0 10px}li.item .vital{color:#093;padding-left:.5em}li.item .vital:before{color:#aaa;content:"\B7";padding-right:.25em}li.item .vital:first-child{padding:0}li.item .vital:first-child:before{display:none}li.item .vital.premium{color:#d16b00}li.item .stars,li.item i,li.item .vital{display:block;float:left}li.item .info,li.item .action{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}li.item .info{float:left;width:80%}li.item .action{float:right;padding:14px 34px 14px 14px;text-align:right;width:20%}li.item .action,li.item .contributions{color:#999;font-size:13px;line-height:15px}li.item.refunded{opacity:.6}li.item .contributions{clear:both;margin-top:.5em}li.item .contributions .supportable:after{content:'\00B7';padding:0 .25em}.html-rtl li.item{padding:0 42px 0 0}.html-rtl li.item .icon{left:auto;right:10px}.html-rtl li.item .stars,.html-rtl li.item i,.html-rtl li.item .vital{float:right}.html-rtl li.item .vital{padding:0 .5em 0 0}.html-rtl li.item .vital:first-child{padding:0}.html-rtl li.item .price:before{padding:0 0 0 .25em}.html-rtl li.item .info{float:right}.html-rtl li.item .action{float:left;margin:0;padding:14px 14px 14px 34px;text-align:left}footer{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;box-shadow:0 2px rgba(0,0,0,.1) inset;-moz-box-shadow:0 2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 2px rgba(0,0,0,.1) inset;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAABCAYAAAASC7TOAAAAFElEQVQIHWO0DZ3xnwELYOXgYwAAOHwCRjqu6SgAAAAASUVORK5CYII=);color:#fff;font:1em "Helvetica Neue",Arial,sans-serif;padding:14px;position:relative;z-index:-1}footer:before{box-shadow:0 -2px rgba(0,0,0,.1) inset;-moz-box-shadow:0 -2px rgba(0,0,0,.1) inset;-webkit-box-shadow:0 -2px rgba(0,0,0,.1) inset;content:"";display:block;height:30px;position:absolute;top:-30px;left:0;width:100%}footer.sticky{position:absolute;bottom:0;z-index:1;width:100%}footer select{display:block;height:30px;margin-top:4px;padding-top:4px;width:100%}footer a.desktop-link{background:#5f92ce;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;color:#fff;display:block;font-family:"Helvetica Neue",Arial,sans-serif;font-size:150%;font-weight:700;line-height:2;margin:1em 0;text-align:center;text-transform:uppercase}#footer-links,#footer-links a{color:#5f92ce;font-size:14px;padding:4px;text-align:center}
+      </style>
+        <script></script>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, user-scalable=no, maximum-scale=1">
+    <title>Add-ons for Firefox</title>
+
+    <link rel="shortcut icon" type="image/x-icon"
+          href="../../../addons.cdn.mozilla.net/media/img/favicon.ico%3Fb=4ddb6c0">
+
+    
+        <link title="Firefox Add-ons"
+          rel="search" type="application/opensearchdescription+xml"
+          href="https://addons.mozilla.org/en-US/firefox/opensearch.xml" />
+
+    
+      </head>
+  <body class="html-ltr firefox lang-en-US "
+        data-app="firefox"
+        data-appname="Firefox"
+        data-appid="1"
+        data-min-beta-version="3.7"
+        data-anonymous="true"
+        data-readonly="false"
+        data-media-url="https://addons.cdn.mozilla.net/media/"
+                        >
+
+    <div id="page">
+        <header id="home-header">
+    <div class="moz-menu">
+  <ul class="menu-items">
+    <li><a href="http://www.mozilla.com/mobile/">Mozilla Firefox</a></li>
+    <li><a href="http://www.mozilla.com/firefox/features/">Features</a></li>
+    <li><a href="http://mozilla.com/firefox/">Desktop</a></li>
+    <li><a href="http://addons.mozilla.org/">Add-Ons</a></li>
+    <li><a href="http://support.mozilla.com/">Support</a></li>
+    <li><a href="http://mozilla.org/">Visit Mozilla</a></li>
+  </ul>
+  <div class="tab"><a href="index.html#">menu</a></div>
+</div>          <div class="get-fx-message">
+        You need Firefox to install add-ons. <a href="http://mozilla.com/mobile">Learn More&nbsp;&raquo;</a>
+      </div>
+        <hgroup>
+      <h1 class="site-title">
+                <a href="index.html"
+          title="Return to the Firefox Add-ons homepage">
+          <img alt="Firefox" src="../../../addons.cdn.mozilla.net/media/img/zamboni/app_icons/firefox.png%3Fb=4ddb6c0">
+          Firefox Add-ons
+        </a>
+      </h1>
+      <h2>Easy ways to personalize.</h2>
+      <a href="index.html#" id="learnmore">Learn More&raquo;</a>
+      <div id="learnmore-msg">
+        Add-ons are applications that let you personalize Firefox with extra functionality and style. Whether you mistype the name of a website or can't read a busy page, there's an add-on to improve your on-the-go browsing.      </div>
+    </hgroup>
+      <form id="search" action="https://addons.mozilla.org/en-US/firefox/search/">
+  <input name="q" type="search" value=""
+         placeholder="search for add-ons">
+        <input type="hidden" name="appver" id="id_appver" />
+    <input type="hidden" name="platform" id="id_platform" />
+    <button type="submit" value="">
+    <svg width="22" height="23" xmlns="http://www.w3.org/2000/svg" version="1.1"><polygon fill="#ffffff" points="22,12 11,23 8,20 14,14 0,14 0,10 14,10 8,4 11,1"/></svg>
+  </button>
+</form>  </header>
+
+      <section id="content" class="">
+          <nav class="tabs" data-manages="addon-lists">
+    <ul>
+      <li class="selected"><a href="index.html#listing-featured">Featured</a></li>
+      <li><a href="index.html#listing-popular">Popular</a></li>
+      <li><a href="index.html#listing-categories">Categories</a></li>
+    </ul>
+  </nav>
+  <div id="addon-lists" class="slider">
+    <div id="listing-featured" class="tab-pane selected">
+      <ul id="list-featured" class="listview">
+                <li class="item">
+    <div class="info">
+                                <a href="https://addons.mozilla.org/en-US/firefox/addon/autopager/?src=homepagebrowse">
+        <img class="icon" width="32" height="32" src="../../../addons.cdn.mozilla.net/img/uploads/addon_icons/4/4925-32.png%3Fmodified=1347927624">
+        <h3>AutoPager</h3>
+        <span class="desc">AutoPager automatically loads next pages when you reach the end of a page. It works on a ton of sites,Google,Yahoo.. It works well with most other add-ons adblock plus, WOT and most of the greasemonke...</span>
+      </a>
+      <details>
+        <div class="vitals">
+                                      <span class="stars stars-4" title="Rated 4 out of 5 stars">Rated 4 out of 5 stars</span>
+
+                                  
+                      <span class="vital adu">
+                                              <strong>225,651</strong> users
+                          </span>
+                                      </div>
+      </details>
+    </div>
+          </li>
+        <li class="item">
+    <div class="info">
+                                <a href="https://addons.mozilla.org/en-US/firefox/addon/simple-timer/?src=homepagebrowse">
+        <img class="icon" width="32" height="32" src="../../../addons.cdn.mozilla.net/img/uploads/addon_icons/9/9675-32.png%3Fmodified=1330563742">
+        <h3>Simple Timer</h3>
+        <span class="desc">A timer/clock residing in the statusbar/toolbar.</span>
+      </a>
+      <details>
+        <div class="vitals">
+                                      <span class="stars stars-4" title="Rated 4 out of 5 stars">Rated 4 out of 5 stars</span>
+
+                                  
+                      <span class="vital adu">
+                                              <strong>10,531</strong> users
+                          </span>
+                                      </div>
+      </details>
+    </div>
+          </li>
+
+        <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/?sort=featured">
+          View all Featured add-ons</a></li>
+      </ul>
+    </div><div id="listing-popular" class="tab-pane">
+      <ul id="list-popular" class="listview">
+                <li class="item">
+    <div class="info">
+                                <a href="https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/?src=homepagebrowse">
+        <img class="icon" width="32" height="32" src="../../../addons.cdn.mozilla.net/img/uploads/addon_icons/1/1865-32.png%3Fmodified=1346769870">
+        <h3>Adblock Plus</h3>
+        <span class="desc">Annoyed by adverts? Troubled by tracking? Bothered by banners? Install Adblock Plus now to regain control of the internet and change the way that you view the web. A short video overview is available ...</span>
+      </a>
+      <details>
+        <div class="vitals">
+                                      <span class="stars stars-5" title="Rated 5 out of 5 stars">Rated 5 out of 5 stars</span>
+
+                                  
+                      <span class="vital downloads">
+                                              <strong>935,408</strong> weekly downloads
+                          </span>
+                                      </div>
+      </details>
+    </div>
+          </li>
+        <li class="item">
+    <div class="info">
+                                <a href="https://addons.mozilla.org/en-US/firefox/addon/noscript/?src=homepagebrowse">
+        <img class="icon" width="32" height="32" src="../../../addons.cdn.mozilla.net/img/uploads/addon_icons/0/722-32.png%3Fmodified=1343588643">
+        <h3>NoScript</h3>
+        <span class="desc">The best security you can get in a web browser! Allow active content to run only from sites you trust, and protect yourself against XSS and Clickjacking attacks.</span>
+      </a>
+      <details>
+        <div class="vitals">
+                                      <span class="stars stars-5" title="Rated 5 out of 5 stars">Rated 5 out of 5 stars</span>
+
+                                  
+                      <span class="vital downloads">
+                                              <strong>117,491</strong> weekly downloads
+                          </span>
+                                      </div>
+      </details>
+    </div>
+          </li>
+        <li class="item">
+    <div class="info">
+                                <a href="https://addons.mozilla.org/en-US/firefox/addon/easy-youtube-video-downl-10137/?src=homepagebrowse">
+        <img class="icon" width="32" height="32" src="../../../addons.cdn.mozilla.net/img/uploads/addon_icons/10/10137-32.png%3Fmodified=1348505777">
+        <h3>Easy YouTube Video Downloader</h3>
+        <span class="desc">Fastest, easiest &amp; most reliable free YouTube downloader. Highest sound quality available with M4A, MP3, MP4, AAC, FLV and HD formats! Single click, non-intrusive, direct download button works directl...</span>
+      </a>
+      <details>
+        <div class="vitals">
+                                      <span class="stars stars-4" title="Rated 4 out of 5 stars">Rated 4 out of 5 stars</span>
+
+                                  
+                      <span class="vital downloads">
+                                              <strong>321,726</strong> weekly downloads
+                          </span>
+                                      </div>
+      </details>
+    </div>
+          </li>
+
+        <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/?sort=popular">
+          View all Popular add-ons</a></li>
+      </ul>
+    </div><div id="listing-categories" class="tab-pane">
+            <ul id="list-popular" class="listview">
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/alerts-updates/">
+          Alerts &amp; Updates</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/appearance/">
+          Appearance</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/bookmarks/">
+          Bookmarks</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/download-management/">
+          Download Management</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/feeds-news-blogging/">
+          Feeds, News &amp; Blogging</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/games-entertainment/">
+          Games &amp; Entertainment</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/language-support/">
+          Language Support</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/photos-music-videos/">
+          Photos, Music &amp; Videos</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/privacy-security/">
+          Privacy &amp; Security</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/shopping/">
+          Shopping</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/social-communication/">
+          Social &amp; Communication</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/tabs/">
+          Tabs</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/web-development/">
+          Web Development</a></li>
+                <li><a href="https://addons.mozilla.org/en-US/firefox/extensions/other/">
+          Other</a></li>
+              </ul>
+    </div>
+  </div>
+  <h2>More Add-ons</h2>
+  <ul id="more-addons" class="listview">
+    <li class="rating"><a href="https://addons.mozilla.org/en-US/firefox/extensions/?sort=rating">
+      Highest Rated</a></li>
+    <li class="created"><a href="https://addons.mozilla.org/en-US/firefox/extensions/?sort=created">
+      Newest</a></li>
+      </ul>
+      </section>
+    </div>
+    <footer id="footer">
+      <form class="languages go" id="lang_form" method="get" action="index.html">
+  <label for="language">Other languages</label>
+  <select id="language" name="lang" dir="ltr">
+    <option value="af" >
+        Afrikaans
+      </option><option value="ar" >
+        عربي
+      </option><option value="bg" >
+        Български
+      </option><option value="ca" >
+        català
+      </option><option value="cs" >
+        Čeština
+      </option><option value="da" >
+        Dansk
+      </option><option value="de" >
+        Deutsch
+      </option><option value="el" >
+        Ελληνικά
+      </option><option value="en-us" selected>
+        English (US)
+      </option><option value="es" >
+        Español
+      </option><option value="eu" >
+        Euskara
+      </option><option value="fa" >
+        فارسی
+      </option><option value="fi" >
+        suomi
+      </option><option value="fr" >
+        Français
+      </option><option value="ga-ie" >
+        Gaeilge (Éire)
+      </option><option value="he" >
+        עברית
+      </option><option value="hu" >
+        magyar
+      </option><option value="id" >
+        Bahasa Indonesia
+      </option><option value="it" >
+        Italiano
+      </option><option value="ja" >
+        日本語
+      </option><option value="ko" >
+        한국어
+      </option><option value="mn" >
+        Монгол
+      </option><option value="nl" >
+        Nederlands
+      </option><option value="pl" >
+        Polski
+      </option><option value="pt-br" >
+        Português (do Brasil)
+      </option><option value="pt-pt" >
+        Português (Europeu)
+      </option><option value="ro" >
+        română
+      </option><option value="ru" >
+        Русский
+      </option><option value="sk" >
+        slovenčina
+      </option><option value="sl" >
+        Slovenščina
+      </option><option value="sq" >
+        Shqip
+      </option><option value="sv-se" >
+        Svenska
+      </option><option value="uk" >
+        Українська
+      </option><option value="vi" >
+        Tiếng Việt
+      </option><option value="zh-cn" >
+        中文 (简体)
+      </option><option value="zh-tw" >
+        正體中文 (繁體)
+      </option>  </select>
+  <noscript><button type="submit">Go</button></noscript>
+</form>              <a class="desktop-link" href="index.html#">View full site</a>
+        <p id="footer-links">
+          <a href="http://mozilla.com/privacy-policy.html">Privacy Policy</a> &nbsp;|&nbsp;
+          <a href="http://mozilla.com/about/legal.html">Legal Notices</a>
+        </p>
+          </footer>
+                      <script src="../../../addons.cdn.mozilla.net/en-US/firefox/jsi18n.js%3Fb=4ddb6c0"></script>
+      <script src="../../../addons.cdn.mozilla.net/media/js/zamboni/mobile-min.js%3Fbuild=4ddb6c0"></script>
+                      <script defer src="../../../addons.cdn.mozilla.net/media/js/webtrends/webtrends-v0.1.js%3Fb=4ddb6c0"></script>
+    <noscript>
+      <img id="DCSIMG" width="1" height="1"
+        src="../../../statse.webtrendslive.com/dcso6de4r0000082npfcmh4rf_4b1e/njs.gif%3Fdcsuri=%252Fnojavascript&amp;WT.js=No&amp;WT.tv=8.6.2" />
+    </noscript>
+      </body>
+</html>
\ No newline at end of file
rename from mobile/android/base/tests/robocop_article.html
rename to mobile/android/base/tests/reader_mode_pages/basic_article.html
new file mode 100644
--- /dev/null
+++ b/mobile/android/base/tests/reader_mode_pages/developer.mozilla.org/en/XULRunner/Build_Instructions.html
@@ -0,0 +1,373 @@
+<!DOCTYPE html>
+<html lang="en-US" dir="ltr" id="developer-mozilla-org" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://ogp.me/ns#">
+<head>
+  <title>Building XULRunner | MDN</title>
+  
+  <meta charset="utf-8">
+  <meta name="robots" content="index, follow">
+  <link rel="home" href="https://developer.mozilla.org/en-US/">
+  <link rel="copyright" href="Build_Instructions.html#copyright">
+  <link rel="shortcut icon" href="../../media/img/favicon.ico">
+
+        <!--[if !IE 6]><!-->
+  <link rel="stylesheet" media="screen,projection,tv" href="../../media/css/mdn-min.css%3Fbuild=f424781.css" />
+      <link rel="stylesheet" media="screen,projection,tv" href="../../media/css/wiki-min.css%3Fbuild=f424781.css" />
+    <!--<![endif]-->
+  <!--[if IE]><link rel="stylesheet" type="text/css" media="all" href="//developer.mozilla.org/media/css/mdn-ie.css"><![endif]-->
+  <!--[if lte IE 7]><link rel="stylesheet" type="text/css" media="all" href="//developer.mozilla.org/media/css/mdn-ie7.css"><![endif]-->
+  <!--[if lte IE 6]><link rel="stylesheet" type="text/css" media="all" href="//developer.mozilla.org/media/css/mdn-ie6.css"><![endif]-->
+  <link rel="stylesheet" type="text/css" media="print" href="../../media/css/mdn-print.css">
+  <link rel="stylesheet" href="../../../www.mozilla.org/tabzilla/media/css/tabzilla.css">
+  
+    <link rel="stylesheet" media="print" href="../../media/css/wiki-print-min.css%3Fbuild=f424781.css" />
+          <link rel="stylesheet" type="text/css"
+            href="../../en-US/docs/Template:CustomCSS%3Fraw=1.css" />
+    
+  <!--[if IE]>
+  <meta http-equiv="imagetoolbar" content="no">
+  <meta http-equiv="X-UA-Compatible" content="IE=Edge">
+  <script src="//developer.mozilla.org/media/js/html5.js"></script>
+  <![endif]-->
+
+    <link rel="alternate" type="application/json" href="https://developer.mozilla.org/en-US/docs/XULRunner/Build_Instructions$json" />
+  <link rel="canonical" href="Build_Instructions.html" />
+
+  <meta property="og:title" content="Building XULRunner"/>
+  <meta property="og:type" content="website"/>
+  <meta property="og:image" content="https://developer.mozilla.org/media/img/mdn-logo-sm.png"/>    
+  <meta property="og:site_name" content="Mozilla Developer Network"/>
+
+    <meta property="og:description" content="XULRunner is built using basically the same process as Firefox or other applications. Please read and follow the general Build Documentation for instructions on how to get sources and set up build prerequisites."/>
+  <meta name="description" content="XULRunner is built using basically the same process as Firefox or other applications. Please read and follow the general Build Documentation for instructions on how to get sources and set up build prerequisites." />
+  </head>
+
+<body id="" class="html-ltr document" role="document">
+<!--[if lte IE 8]>
+<noscript><div class="global-notice">
+<p><strong>Warning:</strong> The Mozilla Developer Network website employs emerging web standards that may not be fully supported in some versions of MicroSoft Internet Explorer. You can improve your experience of this website by enabling JavaScript.</p>
+</div></noscript>
+<![endif]-->
+  <header id="masthead" class="minor">
+    <div class="wrap">
+      <ul id="nav-access">
+        <li><a href="Build_Instructions.html#language">Select language</a></li>
+        <li><a href="Build_Instructions.html#q">Skip to search</a></li>
+        <li><a href="Build_Instructions.html#content">Skip to main content</a></li>
+      </ul>
+    
+      <div id="branding">
+                <div id="logo"><a href="https://developer.mozilla.org/en-US/"><img src="../../media/img/mdn-logo-sm.png" alt="Mozilla Developer Network" title="Mozilla Developer Network" width="62" height="71"> Mozilla Developer Network</a></div>
+              </div>
+      
+      
+      <nav id="nav">
+        <ul id="nav-main" role="menubar">
+          <li id="nav-main-topics" class="menu" role="menuitem"><a href="Build_Instructions.html#nav-sub-topics" class="toggle" aria-haspopup="true" aria-labelledby="nav-main-topics" title="Explore other parts of MDN">Topics</a>
+            <ul id="nav-sub-topics" class="sub-menu" aria-hidden="true">
+              <li id="nav-sub-web"><a href="https://developer.mozilla.org/en-US/web">Web</a></li>
+              <li id="nav-sub-apps"><a href="https://developer.mozilla.org/en-US/apps">Apps</a></li>
+              <li id="nav-sub-mobile"><a href="https://developer.mozilla.org/en-US/mobile">Mobile</a></li>
+              <li id="nav-sub-addons"><a href="https://developer.mozilla.org/en-US/addons">Add-ons</a></li>
+              <li id="nav-sub-mozilla"><a href="https://developer.mozilla.org/en-US/mozilla">Mozilla</a></li>
+            </ul>
+          </li>
+          <li id="nav-main-docs" class="menu" role="menuitem">
+            <a href="https://developer.mozilla.org/en-US/docs" class="docs toggle" aria-haspopup="true" aria-labelledby="nav-main-docs">Docs</a>
+            <div id="nav-sub-docs" class="sub-menu" aria-hidden="true">
+              <ul>
+                <li>
+                  <ul>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/HTML">HTML</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/DOM">DOM</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/Using_HTML5_audio_and_video_in_Firefox">Video</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/Using_HTML5_audio_and_video_in_Firefox">Audio</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/SVG">SVG</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/WebGL">WebGL</a></li>
+                  </ul>
+                </li>
+                <li>
+                  <ul>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/HTML/HTML5">HTML5</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/WebSockets">WebSockets</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/HTML/Using_the_application_cache">Offline Cache</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/DOM/Storage">Local Storage</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/IndexedDB">IndexedDB</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications">File API</a></li>
+                  </ul>
+                </li>
+                <li>
+                  <ul>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/CSS">CSS</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/CSS/Using_CSS_gradients">Gradients</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/CSS/Using_CSS_transforms">Transforms</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/CSS/Using_CSS_transitions">Transitions</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/CSS/Using_CSS_animations">Animations</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/CSS/Media_queries">Media Queries</a></li>
+                  </ul>
+                </li>
+                <li>
+                  <ul>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/JavaScript">JavaScript</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/AJAX">AJAX</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/HTML/Canvas">Canvas</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/Using_geolocation">Geolocation</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/DragDrop/Drag_and_Drop">Drag &amp; Drop</a></li>
+                    <li><a href="https://developer.mozilla.org/en-US/docs/DOM/Using_web_workers">Web Workers</a></li>
+                  </ul>
+                </li>
+              </ul>
+              <p><a href="https://developer.mozilla.org/en-US/docs">More docs&hellip;</a></p>
+            </div>
+          </li>
+          <li id="nav-main-demos" role="menuitem"><a href="https://developer.mozilla.org/en-US/demos/" class="demos">Demos</a></li>
+          <li id="nav-main-learning" role="menuitem"><a href="https://developer.mozilla.org/en-US/learn" class="learning">Learning</a></li>
+          <li id="nav-main-community" class="menu" role="menuitem"><a href="Build_Instructions.html#nav-sub-community" class="community toggle" aria-haspopup="true" aria-labelledby="nav-main-community">Community</a>
+            <ul id="nav-sub-community" class="sub-menu">
+              <li><a href="https://developer.mozilla.org/en-US/events">Events</a></li>
+              <li><a href="https://developer.mozilla.org/en-US/discussions">Discussions</a></li>
+              <li><a href="https://developer.mozilla.org/en-US/promote">Promote</a></li>
+            </ul>
+          </li>
+        </ul>
+      </nav>
+          
+      <ul class="user-state signed-out">
+    <li class="user-signin menu">
+    <form class="browserid" action="https://developer.mozilla.org/en-US/users/browserid_verify" method="POST"><div style='display:none;'><input type='hidden' id='csrfmiddlewaretoken' name='csrfmiddlewaretoken' value='c92fde167c4768ad483a05412bede68c' /></div>
+        <input id="next" name="next" type="hidden" value="/en-US/docs/XULRunner/Build_Instructions"/>
+        <input required="required" type="hidden" name="assertion" id="id_assertion" />
+                        <a href="Build_Instructions.html#" target="_blank" class="browserid-signin toggle" aria-haspopup="true" title="Sign in with Persona">Sign in</a>
+                <div class="browserid-info sub-menu" aria-hidden="true">
+                <h3>What's this?</h3> <p>MDN has switched to <a href="https://persona.org/" target="_blank" rel="external">Persona</a>, a safe and simple way to sign in with just your e-mail address. <a href="http://identity.mozilla.com/post/12950196039/deploying-browserid-at-mozilla" rel="external">Learn more about why Mozilla is using Persona</a>.</p> <p><strong>Returning members:</strong> sign in with Persona and you'll be connected to your MDN profile (all your information is still here).</p> <p><strong>New members:</strong> sign in with Persona first, then you'll be able to set up your new MDN profile.</p>          <p><a href="Build_Instructions.html#" target="_blank" class="browserid-signin" title="Sign in with Persona">Sign in</a></p>
+        </div>
+              </form>
+    </li>
+  </ul>
+      
+      <form id="site-search" method="get" action="http://www.google.com/search"
+              data-url="/en-US/search">
+        <p>
+          <input type="text" role="search" placeholder="Search MDN" id="q" name="q" value="">
+          <noscript><button type="submit">Search</button></noscript>
+        </p>
+        <input type="hidden" name="sitesearch" value="developer.mozilla.org">
+        <div id="site-search-gg"></div>
+      </form>
+
+      <a href="http://www.mozilla.org/" id="tabzilla">mozilla</a>
+    </div>
+  </header>
+
+    
+
+<!-- top toolbar -->
+<section id="nav-toolbar"><div><div class="wrap">
+  <!-- right floated navigation -->
+  <nav id="tool-menus" role="navigation">
+    <ul id="tools">
+      <li class="menu">
+        <a href="Build_Instructions.html#page-tools" class="toggle">This page</a>
+        <ul id="page-tools" class="sub-menu">
+          <li class="page-print"> <a href="Build_Instructions.html#" onclick="return window.print();"  title="Print page">Print page</a></li>
+                      <li><a href="https://developer.mozilla.org/en-US/docs/new?parent=15078">New sub-page</a></li>
+                  </ul>
+      </li>
+            <li class="menu">
+        <a href="Build_Instructions.html#" class="toggle">Languages</a>
+        <ul id="translations">
+                      <li><a rel="internal" href="https://developer.mozilla.org/ja/docs/XULRunner/Build_Instructions" title="Building XULRunner">日本語</a></li>
+                    
+                      <li><a href="https://developer.mozilla.org/en-US/docs/XULRunner/Build_Instructions$locales">Add translation</a></li>
+                  </ul>
+      </li>
+          </ul>
+  </nav>
+  
+  <!-- left crumb navigation -->
+  <nav class="crumbs" role="navigation">
+    <ol>
+              <li class="crumb"><a href="https://developer.mozilla.org/en-US/docs/en">MDN</a></li>
+              <li class="crumb"><a href="https://developer.mozilla.org/en-US/docs/XULRunner">XULRunner</a></li>
+            <li class="crumb">Building XULRunner</li>
+    </ol>
+  </nav>
+  
+</div></div></section>
+
+
+
+<section id="content">
+  <div class="wrap">
+    <div id="content-main" class="full">
+      <article class="article" role="main" 
+          data-current-revision="129041"
+          data-refresh-message="Your changes were merged. However, something else has been edited, so this page will be refreshed to reflect the changes."
+          data-cancel-edit-message="Abort editing in progress? Your unsaved changes will be discarded.">
+      <header id="article-head">
+        <div class="title">
+            <h1 class="page-title">Building XULRunner</h1>
+                    </div>
+        <ul id="page-buttons">
+            <li class="page-history"><a href="https://developer.mozilla.org/en-US/docs/XULRunner/Build_Instructions$history">History</a></li>
+                                                                                  <li class="page-edit"><a href="https://developer.mozilla.org/en-US/docs/XULRunner/Build_Instructions$edit">Edit</a></li>
+                    </ul>
+
+        
+               </header>
+
+           
+                                
+            
+      <div id="wikiArticle" class="page-content boxed">
+                <div id="article-nav">
+          <div class="page-toc">
+            <h2>Table of Contents</h2>
+            <ol>
+              <code></code><li><ol><li><a href="Build_Instructions.html#CVS_tags_and_XULRunner_versions" rel="internal">CVS tags and XULRunner versions</a><li><a href="Build_Instructions.html#Fetching_Sources_from_Mercurial" rel="internal">Fetching Sources from Mercurial</a></ol></li>
+            </ol>
+          </div>
+          <ul class="page-anchors">
+            <li class="anchor-tags">
+                              <a href="Build_Instructions.html#page-tags">Tags</a>
+                          </li>
+            <li class="anchor-files">
+                              <span title="This document has no attachments">Files</span>
+                          </li>
+          </ul>
+        </div>
+                                <p> </p>
+<p><a href="https://developer.mozilla.org/en/XULRunner" title="en/XULRunner">XULRunner</a> is built using basically the same process as Firefox or other applications. Please read and follow the general <a href="https://developer.mozilla.org/En/Developer_Guide/Build_Instructions" title="En/Developer_Guide/Build_Instructions">Build Documentation</a> for instructions on how to get sources and set up build prerequisites.</p>
+<p>By default, XULRunner is built with <a href="https://developer.mozilla.org/en/JavaXPCOM" title="en/JavaXPCOM">JavaXPCOM</a> support; the build system must be able to find an appropriate JDK on the system; see the instructions on <a href="https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Building_JavaXPCOM" title="En/Developer_Guide/Build_Instructions/Building_JavaXPCOM">Building JavaXPCOM</a> for more details. If you do not want to build JavaXPCOM support, specify <code>--disable-javaxpcom</code> in your configuration.</p>
+<p>On Mac, XULRunner requires Mac OS X 10.3 or higher and XCode 1.5 or higher to build properly. The runtime requirement is Mac OS X 10.2.</p>
+<p>A basic minimal <a href="https://developer.mozilla.org/en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File" title="en/Configuring_Build_Options#Using_a_.mozconfig_Configuration_File">mozconfig</a> which will build a release configuration of XULRunner is:</p>
+<pre class="eval">mk_add_options MOZ_CO_PROJECT=xulrunner
+mk_add_options MOZ_OBJDIR=@topsrcdir@/obj-xulrunner
+
+ac_add_options --enable-application=xulrunner
+#Uncomment the following line if you don't want to build JavaXPCOM:
+#ac_add_options --disable-javaxpcom
+</pre>
+<h3 id="CVS_tags_and_XULRunner_versions">CVS tags and XULRunner versions</h3>
+<p>Older XULRunner releases where tagged in CVS with (for instance XULRUNNER_1_8_0_5_RELEASE ) up to version 1.8.0.5</p>
+<p>The CVS repository does not have specific tags for XULRunner anymore. Instead a XULRunner build is a just special build made from the Firefox/Mozilla tree, using the same tag as a Firefox build. There is a convention where a certain XULRunner version maps to a certain tag in the CVS.</p>
+<p>For instance XULRunner 1.8.1.3, the corresponding tag is CVS is : FIREFOX_2_0_0_3_RELEASE</p>
+<p>To find out how those Firefox tags and XULRunner version maps, check out the file mozilla/config/milestone.txt .</p>
+<p>You can also check the User Agent string in Firefox Help/About menu to get the mapping from a certain binary Firefox version to the corresponding XULRunner version. For instance, in Firefox 2.0.0.9 you will get :</p>
+<pre class="eval">Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9
+</pre>
+<p>Therefore the XULRunner version for this Firefox version is : 1.8.1.9</p>
+<h3 id="Fetching_Sources_from_Mercurial">Fetching Sources from Mercurial</h3>
+<p>As with all other Mozilla products, one would fetch recent sources from Mercurial. For example, to build XULRunner with the top of the tree:</p>
+<pre>hg clone http://hg.mozilla.org/mozilla-central/ src
+cd src
+echo ". \$topsrcdir/xulrunner/config/mozconfig" &gt; .mozconfig
+make -f client.mk build
+</pre>
+<p><span>Interwiki Language Links</span></p>
+<p></p>
+                  </div>
+    <section class="page-meta">
+      
+            <section id="page-tags">
+        <h2>Tags (4)</h2>
+        <div id="deki-page-tags">
+          <ul class="tags tagit ui-widget ui-widget-content">
+                        <li class="tagit-choice ui-widget-content ui-state-default">
+                <a class="text tagit-label" href="https://developer.mozilla.org/en-US/docs/tag/Developing%20Mozilla">Developing Mozilla</a>
+            </li>
+                        <li class="tagit-choice ui-widget-content ui-state-default">
+                <a class="text tagit-label" href="https://developer.mozilla.org/en-US/docs/tag/XUL">XUL</a>
+            </li>
+                        <li class="tagit-choice ui-widget-content ui-state-default">
+                <a class="text tagit-label" href="https://developer.mozilla.org/en-US/docs/tag/XULRunner">XULRunner</a>
+            </li>
+                        <li class="tagit-choice ui-widget-content ui-state-default">
+                <a class="text tagit-label" href="https://developer.mozilla.org/en-US/docs/tag/Build%20documentation">Build documentation</a>
+            </li>
+                      </ul>
+        </div>
+      </section>
+      
+      
+      <section id="doc-contributors">
+        Contributors to this page: <a href="https://developer.mozilla.org/en-US/profiles/Kray2">Kray2</a>, <a href="https://developer.mozilla.org/en-US/profiles/Taken">Taken</a>, <a href="https://developer.mozilla.org/en-US/profiles/Kozawa">Kozawa</a>, <a href="https://developer.mozilla.org/en-US/profiles/Benjamin%20Smedberg">Benjamin Smedberg</a>, <a href="https://developer.mozilla.org/en-US/profiles/Nickolay">Nickolay</a>, <a href="https://developer.mozilla.org/en-US/profiles/NickolayBot">NickolayBot</a>, <a href="https://developer.mozilla.org/en-US/profiles/Pombredanne">Pombredanne</a>
+                          <br />
+          Last updated by:  
+          <a href="https://developer.mozilla.org/en-US/profiles/Taken">Taken</a>, 
+          <time datetime="2009-10-08T15:16:43-07:00">Oct 8, 2009 3:16:43 PM</time>
+                        </section>
+    </section>
+  </article>
+  <form id="wiki-page-edit" class="editing" method="post" action="https://developer.mozilla.org/en-US/docs/XULRunner/Build_Instructions$edit"><div style='display:none;'><input type='hidden'  name='csrfmiddlewaretoken' value='c92fde167c4768ad483a05412bede68c' /></div>
+      <input type="hidden" name="form" id="form" value="rev" />
+      <input type="hidden" name="content" id="content" value="" />
+  </form>
+      </div>
+   </div>
+    </section>
+
+<section id="footbar">
+<div class="wrap">
+  <p>
+  What do you think of the new MDN? Please <a href="http://mdn.uservoice.com/forums/51389-mdn-website-feedback-http-developer-mozilla-org">share your feedback</a> with us. <a id="dev-mdc-link" href="https://lists.mozilla.org/listinfo/dev-mdc">Join our mailing list</a> to discuss ways to help create great documentation.  </p>
+</div>
+</section>
+<footer id="site-info" class="footer" role="contentinfo">
+<div class="wrap">
+    <div id="legal">
+      <img src="../../media/img/mdn-logo-tiny.png" alt="" width="42" height="48">
+      <p id="copyright">&copy; 2005 - 2012 Mozilla Developer Network and individual contributors</p>
+      <p>
+      Content is available under <a href="https://developer.mozilla.org/en-US/docs/Project:Copyrights">these licenses</a>      &bull; <a href="https://developer.mozilla.org/en-US/docs/Project:About">About MDN</a> &bull;
+      <a href="http://www.mozilla.org/en-US/privacy">Privacy Policy</a> &bull;
+      <a href="https://developer.mozilla.org/discussions">Help</a></p>
+    </div>
+    <ul class="user-state signed-out">
+    <li class="user-signin menu">
+    <form class="browserid" action="https://developer.mozilla.org/en-US/users/browserid_verify" method="POST"><div style='display:none;'><input type='hidden'  name='csrfmiddlewaretoken' value='c92fde167c4768ad483a05412bede68c' /></div>
+        <input id="next" name="next" type="hidden" value="/en-US/docs/XULRunner/Build_Instructions"/>
+        <input required="required" type="hidden" name="assertion" id="id_assertion" />
+                        <a href="Build_Instructions.html#" target="_blank" class="browserid-signin toggle" aria-haspopup="true" title="Sign in with Persona">Sign in</a>
+                <div class="browserid-info sub-menu" aria-hidden="true">
+                <h3>What's this?</h3> <p>MDN has switched to <a href="https://persona.org/" target="_blank" rel="external">Persona</a>, a safe and simple way to sign in with just your e-mail address. <a href="http://identity.mozilla.com/post/12950196039/deploying-browserid-at-mozilla" rel="external">Learn more about why Mozilla is using Persona</a>.</p> <p><strong>Returning members:</strong> sign in with Persona and you'll be connected to your MDN profile (all your information is still here).</p> <p><strong>New members:</strong> sign in with Persona first, then you'll be able to set up your new MDN profile.</p>          <p><a href="Build_Instructions.html#" target="_blank" class="browserid-signin" title="Sign in with Persona">Sign in</a></p>
+        </div>
+              </form>
+    </li>
+  </ul>
+          <form class="languages go" method="get" action="https://developer.mozilla.org/en-US/docs">
+      <label for="language">Other languages:</label>
+      <select id="language" class="wiki-l10n" name="next" dir="ltr">
+        <option value="/en-US/docs/XULRunner/Build_Instructions" selected>
+          English (US)
+        </option>
+                  <option value="/ja/docs/XULRunner/Build_Instructions">
+            日本語
+          </option>      </select>
+      <noscript><button type="submit">Go</button></noscript>
+    </form>
+  </div>
+</footer>
+
+<script src="../../en-US/jsi18n/build:f424781"></script>
+  <script src="../../../www.google.com/jsapi" type="text/javascript"></script>
+  <script src="../../../login.persona.org/include.js" type="text/javascript" async></script>
+  <script src="../../../www.mozilla.org/tabzilla/media/js/tabzilla.js" async></script>
+  <script src="../../media/js/mdn-min.js%3Fbuild=f424781"></script>
+      <script src="../../media/js/wiki-min.js%3Fbuild=f424781"></script>
+      
+<script type="text/javascript">
+//<![CDATA[
+var _tag=new WebTrends();
+_tag.dcsGetId();
+//]]>>
+</script>
+<script type="text/javascript">
+//<![CDATA[
+_tag.dcsCollect();
+//]]>>
+</script>
+<noscript>
+<div><img alt="DCSIMG" id="DCSIMG" width="1" height="1" src="../../../statse.webtrendslive.com/dcs8yrjuavz5bdaun34r2o8bi_8o8x/njs.gif%3Fdcsuri=%252Fnojavascript&amp;WT.js=No&amp;WT.tv=8.6.2"/></div>
+</noscript>
+</body>
+</html>
\ No newline at end of file
--- a/mobile/android/base/tests/testReadingListCache.js
+++ b/mobile/android/base/tests/testReadingListCache.js
@@ -1,66 +1,91 @@
 // -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 const { utils: Cu } = Components;
 
-Cu.import("resource://gre/modules/osfile.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/Task.jsm");
 
-// Values from robocop_article.html
-const ARTICLE = {
-  url: "http://mochi.test:8888/tests/robocop/robocop_article.html",
-  title: "Article title",
-  byline: "by Jane Doe",
-  excerpt: "This is the article description.",
-  length: 1931,
-  content: "Lorem ipsum..." // This test doesn't actually compare content strings
-};
+let Reader = Services.wm.getMostRecentWindow("navigator:browser").Reader;
+
+const URL_PREFIX = "http://mochi.test:8888/tests/robocop/reader_mode_pages/";
 
-const ARTICLE_URI = Services.io.newURI(ARTICLE.url, null, null);
+let TEST_PAGES = [
+  {
+    url: URL_PREFIX + "basic_article.html",
+    expected: {
+      title: "Article title",
+      byline: "by Jane Doe",
+      excerpt: "This is the article description.",
+      length: 1931
+    }
+  },
+  {
+    url: URL_PREFIX + "addons.mozilla.org/en-US/firefox/index.html",
+    expected: null
+  },
+  {
+    url: URL_PREFIX + "developer.mozilla.org/en/XULRunner/Build_Instructions.html",
+    expected: {
+      title: "Building XULRunner | MDN",
+      byline: null,
+      excerpt: "XULRunner is built using basically the same process as Firefox or other applications. Please read and follow the general Build Documentation for instructions on how to get sources and set up build prerequisites.",
+      length: 2300
+    }
+  },
+];
 
 add_task(function* test_article_not_found() {
-  let Reader = Services.wm.getMostRecentWindow("navigator:browser").Reader;
-
-  let article = yield Reader.getArticleFromCache(ARTICLE_URI);
+  let uri = Services.io.newURI(TEST_PAGES[0].url, null, null);
+  let article = yield Reader.getArticleFromCache(uri);
   do_check_eq(article, null);
 });
 
 add_task(function* test_store_article() {
-  let Reader = Services.wm.getMostRecentWindow("navigator:browser").Reader;
+  // Create an article object to store in the cache.
+  yield Reader.storeArticleInCache({
+    url: TEST_PAGES[0].url,
+    content: "Lorem ipsum",
+    title: TEST_PAGES[0].expected.title,
+    byline: TEST_PAGES[0].expected.byline,
+    excerpt: TEST_PAGES[0].expected.excerpt,
+    length: TEST_PAGES[0].expected.length
+  });
 
-  yield Reader.storeArticleInCache(ARTICLE);
-
-  let article = yield Reader.getArticleFromCache(ARTICLE_URI);
-  checkArticle(article);
+  let uri = Services.io.newURI(TEST_PAGES[0].url, null, null);
+  let article = yield Reader.getArticleFromCache(uri);
+  checkArticle(article, TEST_PAGES[0]);
 });
 
 add_task(function* test_remove_article() {
-  let Reader = Services.wm.getMostRecentWindow("navigator:browser").Reader;
-
-  yield Reader.removeArticleFromCache(ARTICLE_URI);
-
-  let article = yield Reader.getArticleFromCache(ARTICLE_URI);
+  let uri = Services.io.newURI(TEST_PAGES[0].url, null, null);
+  yield Reader.removeArticleFromCache(uri);
+  let article = yield Reader.getArticleFromCache(uri);
   do_check_eq(article, null);
 });
 
-add_task(function* test_parse_article() {
-  let Reader = Services.wm.getMostRecentWindow("navigator:browser").Reader;
-
-  let article = yield Reader._downloadAndParseDocument(ARTICLE.url);
-  checkArticle(article);
+add_task(function* test_parse_articles() {
+  for (let testcase of TEST_PAGES) {
+    let article = yield Reader._downloadAndParseDocument(testcase.url);
+    checkArticle(article, testcase);
+  }
 });
 
-function checkArticle(article) {
+function checkArticle(article, testcase) {
+  if (testcase.expected == null) {
+    do_check_eq(article, null);
+    return;
+  }
+
   do_check_neq(article, null);
-  do_check_neq(article.content, null);
-  do_check_eq(article.url, ARTICLE.url);
-  do_check_eq(article.title, ARTICLE.title);
-  do_check_eq(article.byline, ARTICLE.byline);
-  do_check_eq(article.excerpt, ARTICLE.excerpt);
-  do_check_eq(article.length, ARTICLE.length);
+  do_check_eq(!!article.content, true); // A bit of a hack to avoid spamming the test log.
+  do_check_eq(article.url, testcase.url);
+  do_check_eq(article.title, testcase.expected.title);
+  do_check_eq(article.byline, testcase.expected.byline);
+  do_check_eq(article.excerpt, testcase.expected.excerpt);
+  do_check_eq(article.length, testcase.expected.length);
 }
 
 run_next_test();
--- a/mobile/android/chrome/content/Readability.js
+++ b/mobile/android/chrome/content/Readability.js
@@ -194,17 +194,17 @@ Readability.prototype = {
    * @return void
    **/
   _prepDocument: function() {
     let doc = this._doc;
 
     // In some cases a body element can't be found (if the HTML is
     // totally hosed for example) so we create a new body node and
     // append it to the document.
-    if (doc.body === null) {
+    if (!doc.body) {
       let body = doc.createElement("body");
 
       try {
         doc.body = body;
       } catch(e) {
         doc.documentElement.appendChild(body);
         this.log(e);
       }
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -6863,10 +6863,21 @@
     "expires_in_version": "40",
     "kind": "boolean",
     "description": "Whether a user who accepted e10s from the prompt is still using e10s"
   },
   "E10S_BLOCKED_FROM_RUNNING": {
     "expires_in_version": "40",
     "kind": "boolean",
     "description": "Whether the e10s pref was set but it was blocked from running due to blacklisted conditions"
+  },
+  "ONBEFOREUNLOAD_PROMPT_ACTION" : {
+    "expires_in_version": "45",
+    "kind": "enumerated",
+    "n_values": 3,
+    "description": "What button a user clicked in an onbeforeunload prompt.  (Stay on Page = 0, Leave Page = 1, prompt aborted = 2)"
+  },
+  "ONBEFOREUNLOAD_PROMPT_COUNT" : {
+    "expires_in_version": "45",
+    "kind": "count",
+    "description": "How many onbeforeunload prompts has the user encountered in their session?"
   }
 }