Merge b2g-inbound to m-c
authorWes Kocher <wkocher@mozilla.com>
Thu, 01 May 2014 18:27:09 -0700
changeset 181263 e2e1b19fcffccba73d438fd89bea963a2d78bb57
parent 181243 b673caba0c8ed7dac816da4560f0b1a06f77aa5f (current diff)
parent 181262 870caf1f8e28f29c094a10ade8143c7aab676428 (diff)
child 181298 875dfb1e2b88fcefeaf0657a2e932f452f99f2e2
child 181318 fd001acc632149c33b23d9e418cc3b07fca5da5a
child 181325 a41caa97af9e41dafbe4a48d4f6a36082d5b13ab
push id26698
push userkwierso@gmail.com
push dateFri, 02 May 2014 01:27:20 +0000
treeherdermozilla-central@e2e1b19fcffc [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone32.0a1
first release with
nightly linux32
e2e1b19fcffc / 32.0a1 / 20140502030202 / files
nightly linux64
e2e1b19fcffc / 32.0a1 / 20140502030202 / files
nightly mac
e2e1b19fcffc / 32.0a1 / 20140502030202 / files
nightly win32
e2e1b19fcffc / 32.0a1 / 20140502030202 / files
nightly win64
e2e1b19fcffc / 32.0a1 / 20140502030202 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge b2g-inbound to m-c
--- 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="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="ca283b9db2b151d465cfd2e19346cf58fe89e413"/>
   <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="d5800c36b2d5822fc3fe1899b9280401de466e1e"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <!-- 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="e6383e6e785cc3ea237e902beb1092f9aa88e29d">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <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,24 +10,24 @@
   <!--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="65fba428f8d76336b33ddd9e15900357953600ba">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
   <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="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <!-- 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="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="ca283b9db2b151d465cfd2e19346cf58fe89e413"/>
   <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="d5800c36b2d5822fc3fe1899b9280401de466e1e"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <!-- 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/sources.xml
+++ b/b2g/config/flame/sources.xml
@@ -13,20 +13,20 @@
   <remote fetch="https://git.mozilla.org/releases" name="mozillaorg"/>
   <!-- B2G specific things. -->
   <project name="platform_build" path="build" remote="b2g" revision="e6383e6e785cc3ea237e902beb1092f9aa88e29d">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <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": "89e8095a1515d9ff7671400baa0a6a50161394ba", 
+    "revision": "689e41080c6c21f0d2b51363304776c70967c9c5", 
     "repo_path": "/integration/gaia-central"
 }
--- a/b2g/config/hamachi/sources.xml
+++ b/b2g/config/hamachi/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="b2g/ics_strawberry" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <!-- 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="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
   <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/inari/sources.xml
+++ b/b2g/config/inari/sources.xml
@@ -14,22 +14,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="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <!-- 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"/>
   <project name="platform_external_apriori" path="external/apriori" remote="b2g" revision="11816ad0406744f963537b23d68ed9c2afb412bd"/>
--- a/b2g/config/leo/sources.xml
+++ b/b2g/config/leo/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="b2g/ics_strawberry" sync-j="4"/>
   <!-- Gonk specific things and forks -->
   <project name="platform_build" path="build" remote="b2g" revision="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <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"/>
   <project name="platform/bootable/recovery" path="bootable/recovery" revision="575fdbf046e966a5915b1f1e800e5d6ad0ea14c0"/>
   <project name="platform/development" path="development" revision="b1025ec93beeb480caaf3049d171283c3846461d"/>
   <project name="device/common" path="device/common" revision="0dcc1e03659db33b77392529466f9eb685cdd3c7"/>
   <project name="device/sample" path="device/sample" revision="68b1cb978a20806176123b959cb05d4fa8adaea4"/>
--- a/b2g/config/mako/sources.xml
+++ b/b2g/config/mako/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="e6383e6e785cc3ea237e902beb1092f9aa88e29d">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <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="2a165bebfa19b11b697837409f9550dd2917c46c">
     <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="f98b024ffd52b55ea3fa18ece0ed8742d970d4ef"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="386b5478eb9c3970972966123517e993e8a1092a"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="f313e6d3aaaefe8c82eaed15912a09b120fb7260"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1f6a1fe07f81c5bc5e1d079c9b60f7f78ca2bf4f"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="ce95d372e6d285725b96490afdaaf489ad8f9ca9"/>
-  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="8d6c36d74ba9aefbc8c3618fc93dd4907a0dbf5e"/>
+  <project name="apitrace" path="external/apitrace" remote="apitrace" revision="a054c7385854b0e71b8d3071a465b9bc21581ee0"/>
   <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/b2g/installer/Makefile.in
+++ b/b2g/installer/Makefile.in
@@ -81,13 +81,13 @@ GARBAGE += $(MOZ_PKG_MANIFEST)
 endif
 
 ifdef FXOS_SIMULATOR
 .PHONY: simulator
 simulator: make-package
 	@echo 'Building simulator addon...'
 	$(PYTHON) $(topsrcdir)/b2g/simulator/build_xpi.py $(MOZ_PKG_PLATFORM)
 
-default:: simulator
+libs:: simulator
 
 # Ensure copying Simulator xpi to ftp
 UPLOAD_EXTRA_FILES += fxos-simulator-*-*.xpi
 endif
--- a/dom/mobileconnection/tests/marionette/head.js
+++ b/dom/mobileconnection/tests/marionette/head.js
@@ -518,20 +518,17 @@ function getEmulatorGsmLocation() {
     .then(function(aResults) {
       // lac: <lac>
       // ci: <cid>
       // OK
       is(aResults[0].substring(0,3), "lac", "lac output");
       is(aResults[1].substring(0,2), "ci", "ci output");
 
       let lac = parseInt(aResults[0].substring(5));
-      lac = (lac < 0 ? 65535 : lac);
       let cid = parseInt(aResults[1].substring(4));
-      cid = (cid < 0 ? 268435455 : cid);
-
       return { lac: lac, cid: cid };
     });
 }
 
 /**
  * Set GSM location emulation.
  *
  * Fulfill params: (none)
@@ -543,16 +540,43 @@ function getEmulatorGsmLocation() {
  * @return A deferred promise.
  */
 function setEmulatorGsmLocation(aLac, aCid) {
   let cmd = "gsm location " + aLac + " " + aCid;
   return runEmulatorCmdSafe(cmd);
 }
 
 /**
+ * Set GSM location and wait for voice and/or data state change.
+ *
+ * Fulfill params: (none)
+ *
+ * @param aLac
+ * @param aCid
+ * @param aWaitVoice [optional]
+ *        A boolean value.  Default true.
+ * @param aWaitData [optional]
+ *        A boolean value.  Default false.
+ *
+ * @return A deferred promise.
+ */
+function setEmulatorGsmLocationAndWait(aLac, aCid,
+                                       aWaitVoice = true, aWaitData = false) {
+  let promises = [];
+  if (aWaitVoice) {
+    promises.push(waitForManagerEvent("voicechange"));
+  }
+  if (aWaitData) {
+    promises.push(waitForManagerEvent("datachange"));
+  }
+  promises.push(setEmulatorGsmLocation(aLac, aCid));
+  return Promise.all(promises);
+}
+
+/**
  * Get emulator operators info.
  *
  * Fulfill params:
  *   An array of { longName: <string>, shortName: <string>, mccMnc: <string> }.
  * Reject params:
  *   result -- an array of emulator response lines.
  *
  * @return A deferred promise.
@@ -617,16 +641,53 @@ function setEmulatorOperatorNames(aOpera
       }
 
       let re = new RegExp(exp);
       ok(aResults[index].match(new RegExp(exp)),
          "Long/short name and/or mcc/mnc should be changed.");
     });
 }
 
+/**
+ * Set emulator operators info and wait for voice and/or data state change.
+ *
+ * Fulfill params: (none)
+ *
+ * @param aOperator
+ *        "home" or "roaming".
+ * @param aLongName
+ *        A string.
+ * @param aShortName
+ *        A string.
+ * @param aMcc [optional]
+ *        A string.
+ * @param aMnc [optional]
+ *        A string.
+ * @param aWaitVoice [optional]
+ *        A boolean value.  Default true.
+ * @param aWaitData [optional]
+ *        A boolean value.  Default false.
+ *
+ * @return A deferred promise.
+ */
+function setEmulatorOperatorNamesAndWait(aOperator, aLongName, aShortName,
+                                         aMcc, aMnc,
+                                         aWaitVoice = true, aWaitData = false) {
+  let promises = [];
+  if (aWaitVoice) {
+    promises.push(waitForManagerEvent("voicechange"));
+  }
+  if (aWaitData) {
+    promises.push(waitForManagerEvent("datachange"));
+  }
+  promises.push(setEmulatorOperatorNames(aOperator, aLongName, aShortName,
+                                         aMcc, aMnc));
+  return Promise.all(promises);
+}
+
 let _networkManager;
 
 /**
  * Get internal NetworkManager service.
  */
 function getNetworkManager() {
   if (!_networkManager) {
     _networkManager = Cc["@mozilla.org/network/manager;1"]
--- a/dom/mobileconnection/tests/marionette/manifest.ini
+++ b/dom/mobileconnection/tests/marionette/manifest.ini
@@ -1,26 +1,23 @@
 [DEFAULT]
 b2g = true
 browser = false
 qemu = true
 
 [test_mobile_networks.js]
 [test_mobile_voice_state.js]
-disabled = Bug 999458
 [test_mobile_voice_location.js]
 [test_mobile_operator_names.js]
 [test_mobile_operator_names_plmnlist.js]
-disabled = Bug 999458
 [test_mobile_operator_names_roaming.js]
 [test_mobile_preferred_network_type.js]
 [test_mobile_data_connection.js]
 [test_mobile_data_location.js]
 [test_mobile_data_state.js]
-disabled = Bug 999458
 [test_mobile_mmi.js]
 [test_mobile_mmi_change_pin.js]
 [test_mobile_roaming_preference.js]
 [test_call_barring_get_option.js]
 [test_call_barring_set_error.js]
 [test_call_barring_change_password.js]
 [test_mobile_set_radio.js]
 [test_mobile_last_known_network.js]
--- a/dom/mobileconnection/tests/marionette/test_mobile_data_location.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_data_location.js
@@ -3,38 +3,33 @@
 
 MARIONETTE_TIMEOUT = 60000;
 MARIONETTE_HEAD_JS = "head.js";
 
 function verifyDataCellLocationInfo(aLac, aCid) {
   let cell = mobileConnection.data.cell;
   ok(cell, "location available");
 
-  // Initial LAC/CID. Android emulator initializes both value to
-  // 0xffff/0xffffffff.
   is(cell.gsmLocationAreaCode, aLac, "data.cell.gsmLocationAreaCode");
   is(cell.gsmCellId, aCid, "data.cell.gsmCellId");
   is(cell.cdmaBaseStationId, -1, "data.cell.cdmaBaseStationId");
   is(cell.cdmaBaseStationLatitude, -2147483648,
      "data.cell.cdmaBaseStationLatitude");
   is(cell.cdmaBaseStationLongitude, -2147483648,
      "data.cell.cdmaBaseStationLongitude");
   is(cell.cdmaSystemId, -1, "data.cell.cdmaSystemId");
   is(cell.cdmaNetworkId, -1, "data.cell.cdmaNetworkId");
 }
 
 /* Test Data Cell Location Info Change */
 function testDataCellLocationUpdate(aLac, aCid) {
   // Set emulator's lac/cid and wait for 'ondatachange' event.
   log("Test cell location with lac=" + aLac + " and cid=" + aCid);
 
-  let promises = [];
-  promises.push(waitForManagerEvent("datachange"));
-  promises.push(setEmulatorGsmLocation(aLac, aCid));
-  return Promise.all(promises)
+  return setEmulatorGsmLocationAndWait(aLac, aCid, false, true)
     .then(() => verifyDataCellLocationInfo(aLac, aCid));
 }
 
 startTestCommon(function() {
   return getEmulatorGsmLocation()
     .then(function(aResult) {
       log("Test initial data location info");
       verifyDataCellLocationInfo(aResult.lac, aResult.cid);
--- a/dom/mobileconnection/tests/marionette/test_mobile_data_state.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_data_state.js
@@ -8,18 +8,18 @@ const INITIAL_STATES = {
   state: "registered",
   connected: false,
   emergencyCallsOnly: false,
   roaming: false,
   signalStrength: -99,
   relSignalStrength: 44,
 
   cell: {
-    gsmLocationAreaCode: 65535,
-    gsmCellId: 268435455,
+    gsmLocationAreaCode: 0,
+    gsmCellId: 0,
     cdmaBaseStationId: -1,
     cdmaBaseStationLatitude: -2147483648,
     cdmaBaseStationLongitude: -2147483648,
     cdmaSystemId: -1,
     cdmaNetworkId: -1,
   }
 };
 
@@ -68,33 +68,33 @@ const TEST_DATA = [{
     expected: {
       state: "registered",
       connected: false,
       emergencyCallsOnly: false,
       roaming: false,
       signalStrength: -99,
       relSignalStrength: 44,
       cell: {
-        gsmLocationAreaCode: 65535,
-        gsmCellId: 268435455
+        gsmLocationAreaCode: 0,
+        gsmCellId: 0
       }
     }
   }, {
     // Reset state to default value.
     state: "home",
     expected: {
       state: "registered",
       connected: false,
       emergencyCallsOnly: false,
       roaming: false,
       signalStrength: -99,
       relSignalStrength: 44,
       cell: {
-        gsmLocationAreaCode: 65535,
-        gsmCellId: 268435455
+        gsmLocationAreaCode: 0,
+        gsmCellId: 0
       }
     }
   }
 ];
 
 function compareTo(aPrefix, aFrom, aTo) {
   for (let field in aTo) {
     let fullName = aPrefix + field;
--- a/dom/mobileconnection/tests/marionette/test_mobile_operator_names.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_operator_names.js
@@ -11,20 +11,18 @@ function check(aLongName, aShortName) {
   is(network.shortName, aShortName, "network.shortName");
   is(network.mcc, "310", "network.mcc");
   is(network.mnc, "260", "network.mnc");
 }
 
 function test(aLongName, aShortName) {
   log("Testing '" + aLongName + "', '" + aShortName + "':");
 
-  let promises = [];
-  promises.push(waitForManagerEvent("voicechange"));
-  promises.push(setEmulatorOperatorNames("home", aLongName, aShortName));
-  return Promise.all(promises)
+  return setEmulatorOperatorNamesAndWait("home", aLongName, aShortName,
+                                         null, null, true, false)
     .then(() => check(aLongName, aShortName));
 }
 
 startTestCommon(function() {
   return getEmulatorOperatorNames()
     .then(function(aOperators) {
       return Promise.resolve()
 
--- a/dom/mobileconnection/tests/marionette/test_mobile_operator_names_plmnlist.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_operator_names_plmnlist.js
@@ -1,40 +1,113 @@
 /* Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/publicdomain/zero/1.0/ */
 
 MARIONETTE_TIMEOUT = 60000;
 MARIONETTE_HEAD_JS = "head.js";
 
-function check(aLongName, aShortName, aMcc, aMnc) {
+const TEST_CELL_ID = 268435399; // The largest prime number that is smaller than
+                                // 0xFFFFFFF (DEC 268435455). The next one is
+                                // 268435459. This doesn't mean anything. ;)
+                                // See http://primes.utm.edu/lists/small/millions/
+
+function check(aLongName, aShortName, aMcc, aMnc, aLac, aCid) {
   let network = mobileConnection.voice.network;
+  log("  Got longName '" + network.longName + "', shortName '" +
+      network.shortName + "'");
 
   is(network.longName, aLongName, "network.longName");
   is(network.shortName, aShortName, "network.shortName");
   is(network.mcc, aMcc, "network.mcc");
   is(network.mnc, aMnc, "network.mnc");
+
+  let cell = mobileConnection.voice.cell;
+
+  is(cell.gsmLocationAreaCode, aLac, "cell.gsmLocationAreaCode");
+  is(cell.gsmCellId, aCid, "cell.gsmCellId");
 }
 
-function test(aLongName, aShortName, aMcc, aMnc, aExpectedLongName,
-              aExpectedShortName) {
-  log("Testing mcc = " + aMcc + ", mnc = " + aMnc + ":");
+function test(aLongName, aShortName, aMcc, aMnc, aLac, aCid,
+              aExpectedLongName, aExpectedShortName) {
+  log("Testing mcc = " + aMcc + ", mnc = " + aMnc + ", lac = " + aLac + ":");
 
-  let promises = [];
-  promises.push(waitForManagerEvent("voicechange"));
-  promises.push(setEmulatorOperatorNames("home", aLongName, aShortName, aMcc, aMnc));
-  return Promise.all(promises)
-    .then(() => check(aExpectedLongName, aExpectedShortName, aMcc, aMnc));
+  return setEmulatorGsmLocationAndWait(aLac, aCid)
+    .then(() => setEmulatorOperatorNamesAndWait("home", aLongName, aShortName,
+                                                aMcc, aMnc, true, false))
+    // aExpectedLongName, aExpectedShortName could be empty string.
+    .then(() => check(aExpectedLongName == null ? aLongName : aExpectedLongName,
+                      aExpectedShortName == null ? aShortName : aExpectedShortName,
+                      aMcc, aMnc, aLac, aCid));
 }
 
 startTestCommon(function() {
+  /**
+   * In emulator we have pre-defined 4 PNN sets:
+   *
+   *   PNN 1: Full name: "Test1", Short name: "Test1"
+   *   PNN 2: Full name: "Test2", Short name: (none)
+   *   PNN 2: Full name: "Test3", Short name: (none)
+   *   PNN 2: Full name: "Test4", Short name: (none)
+   *
+   * Also 4 OPL sets:
+   *
+   *   MCC = 001, MNC =  01, START=0000, END=FFFE, PNN = 01,
+   *   MCC = 001, MNC =  02, START=0001, END=0010, PNN = 02,
+   *   MCC = 001, MNC =  03, START=0011, END=0011, PNN = 03,
+   *   MCC = 001, MNC = 001, START=0012, END=0012, PNN = 04,
+   *
+   * See https://github.com/mozilla-b2g/platform_external_qemu/blob/master/telephony/sim_card.c#L725
+   */
   return getEmulatorOperatorNames()
     .then(function(aOperators) {
       let {longName: longName, shortName: shortName} = aOperators[0];
       let {mcc: mcc, mnc: mnc} = mobileConnection.voice.network;
+      let {gsmLocationAreaCode: lac, gsmCellId: cid} = mobileConnection.voice.cell;
+
+      // Use a cell ID that differs from current cid to ensure voicechange event
+      // will be triggered.
+      isnot(TEST_CELL_ID, cid, "A different test cell id than used currently.");
+
+      // In following tests, we use different longName/shortName to ensure
+      // network name is always re-calculated in RIL worker.
       return Promise.resolve()
 
-        .then(() => test(longName, shortName, "123", "456", longName, shortName))
-        .then(() => test(longName, shortName, "310", "070", "AT&T", ""))
+        // If MCC/MNC doesn't match any, report given home network name.
+        .then(() => test("Foo1", "Bar1", "123", "456", 0x0000, TEST_CELL_ID))
+        .then(() => test("Foo2", "Bar2", "123", "456", 0x0001, TEST_CELL_ID))
+        .then(() => test("Foo3", "Bar3", "123", "456", 0x0002, TEST_CELL_ID))
+        .then(() => test("Foo4", "Bar4", "123", "456", 0x0010, TEST_CELL_ID))
+        .then(() => test("Foo5", "Bar5", "123", "456", 0x0011, TEST_CELL_ID))
+        .then(() => test("Foo6", "Bar6", "123", "456", 0xFFFE, TEST_CELL_ID))
+
+        // Full ranged network.  Report network name from PNN.
+        .then(() => test("Foo1", "Bar1", "001", "01", 0x0000, TEST_CELL_ID,
+                         "Test1", "Test1"))
+        .then(() => test("Foo2", "Bar2", "001", "01", 0x0001, TEST_CELL_ID,
+                         "Test1", "Test1"))
+        .then(() => test("Foo3", "Bar3", "001", "01", 0xFFFE, TEST_CELL_ID,
+                         "Test1", "Test1"))
+
+        // Ranged network.  Report network name from PNN if lac is inside the
+        // inclusive range 0x01..0x10.
+        .then(() => test("Foo1", "Bar1", "001", "02", 0x0000, TEST_CELL_ID))
+        .then(() => test("Foo2", "Bar2", "001", "02", 0x0001, TEST_CELL_ID,
+                         "Test2", ""))
+        .then(() => test("Foo3", "Bar3", "001", "02", 0x0002, TEST_CELL_ID,
+                         "Test2", ""))
+        .then(() => test("Foo4", "Bar4", "001", "02", 0x0010, TEST_CELL_ID,
+                         "Test2", ""))
+        .then(() => test("Foo5", "Bar5", "001", "02", 0xFFFE, TEST_CELL_ID))
+
+        // Single entry network.  Report network name from PNN if lac matches.
+        .then(() => test("Foo1", "Bar1", "001", "03", 0x0000, TEST_CELL_ID))
+        .then(() => test("Foo2", "Bar2", "001", "03", 0x0011, TEST_CELL_ID,
+                         "Test3", ""))
+        .then(() => test("Foo3", "Bar3", "001", "03", 0xFFFE, TEST_CELL_ID))
+
+        // Test if we match MNC "01" and "001" correctly.
+        .then(() => test("Foo1", "Bar1", "001", "001", 0x0012, TEST_CELL_ID,
+                         "Test4", ""))
 
         // Reset back to initial values.
-        .then(() => test(longName, shortName, mcc, mnc, longName, shortName));
+        .then(() => test(longName, shortName, mcc, mnc, lac, cid));
     });
 });
--- a/dom/mobileconnection/tests/marionette/test_mobile_operator_names_roaming.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_operator_names_roaming.js
@@ -8,38 +8,32 @@ function check(aLongName, aShortName, aR
   let voice = mobileConnection.voice;
   let network = voice.network;
 
   is(network.longName, aLongName, "network.longName");
   is(network.shortName, aShortName, "network.shortName");
   is(voice.roaming, aRoaming, "voice.roaming");
 }
 
-function setEmulatorOperatorNamesAndWait(aWhich, aLongName, aShortName) {
-  let promises = [];
-  promises.push(waitForManagerEvent("voicechange"));
-  promises.push(setEmulatorOperatorNames(aWhich, aLongName, aShortName));
-  return Promise.all(promises);
-}
-
 // See bug 797972 - B2G RIL: False roaming situation
 //
 // Steps to test:
 // 1. set roaming operator names
 // 2. set emulator roaming
 // 3. wait for onvoicechange event and test passing conditions
 // 4. set emulator roaming back to false
 // 5. wait for onvoicechange event again and callback
 function test(aLongName, aShortName, aRoaming) {
   log("Testing roaming check '" + aLongName + "', '" + aShortName + "':");
 
   return Promise.resolve()
 
     // We should not have voicechange here, but, yes, we do.
-    .then(() => setEmulatorOperatorNamesAndWait("roaming", aLongName, aShortName))
+    .then(() => setEmulatorOperatorNamesAndWait("roaming", aLongName, aShortName,
+                                                null, null, true, false))
 
     .then(() => setEmulatorVoiceDataStateAndWait("voice", "roaming"))
     .then(() => check(aLongName, aShortName, aRoaming))
     .then(() => setEmulatorVoiceDataStateAndWait("voice", "home"));
 }
 
 startTestCommon(function() {
   return getEmulatorOperatorNames()
--- a/dom/mobileconnection/tests/marionette/test_mobile_voice_location.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_voice_location.js
@@ -3,38 +3,33 @@
 
 MARIONETTE_TIMEOUT = 60000;
 MARIONETTE_HEAD_JS = "head.js";
 
 function verifyVoiceCellLocationInfo(aLac, aCid) {
   let cell = mobileConnection.voice.cell;
   ok(cell, "location available");
 
-  // Initial LAC/CID. Android emulator initializes both value to
-  // 0xffff/0xffffffff.
   is(cell.gsmLocationAreaCode, aLac, "check voice.cell.gsmLocationAreaCode");
   is(cell.gsmCellId, aCid, "check voice.cell.gsmCellId");
   is(cell.cdmaBaseStationId, -1, "check voice.cell.cdmaBaseStationId");
   is(cell.cdmaBaseStationLatitude, -2147483648,
      "check voice.cell.cdmaBaseStationLatitude");
   is(cell.cdmaBaseStationLongitude, -2147483648,
      "check voice.cell.cdmaBaseStationLongitude");
   is(cell.cdmaSystemId, -1, "check voice.cell.cdmaSystemId");
   is(cell.cdmaNetworkId, -1, "check voice.cell.cdmaNetworkId");
 }
 
 /* Test Voice Cell Location Info Change */
 function testVoiceCellLocationUpdate(aLac, aCid) {
   // Set emulator's lac/cid and wait for 'onvoicechange' event.
   log("Test cell location with lac=" + aLac + " and cid=" + aCid);
 
-  let promises = [];
-  promises.push(waitForManagerEvent("voicechange"));
-  promises.push(setEmulatorGsmLocation(aLac, aCid));
-  return Promise.all(promises)
+  return setEmulatorGsmLocationAndWait(aLac, aCid, true, false)
     .then(() => verifyVoiceCellLocationInfo(aLac, aCid));
 }
 
 startTestCommon(function() {
   return getEmulatorGsmLocation()
     .then(function(aResult) {
       log("Test initial voice location info");
       verifyVoiceCellLocationInfo(aResult.lac, aResult.cid);
--- a/dom/mobileconnection/tests/marionette/test_mobile_voice_state.js
+++ b/dom/mobileconnection/tests/marionette/test_mobile_voice_state.js
@@ -8,18 +8,18 @@ const INITIAL_STATES = {
   state: "registered",
   connected: true,
   emergencyCallsOnly: false,
   roaming: false,
   signalStrength: -99,
   relSignalStrength: 44,
 
   cell: {
-    gsmLocationAreaCode: 65535,
-    gsmCellId: 268435455,
+    gsmLocationAreaCode: 0,
+    gsmCellId: 0,
     cdmaBaseStationId: -1,
     cdmaBaseStationLatitude: -2147483648,
     cdmaBaseStationLongitude: -2147483648,
     cdmaSystemId: -1,
     cdmaNetworkId: -1,
   }
 };
 
@@ -65,33 +65,33 @@ const TEST_DATA = [{
     expected: {
       state: "registered",
       connected: true,
       emergencyCallsOnly: false,
       roaming: true,
       signalStrength: -99,
       relSignalStrength: 44,
       cell: {
-        gsmLocationAreaCode: 65535,
-        gsmCellId: 268435455
+        gsmLocationAreaCode: 0,
+        gsmCellId: 0
       }
     }
   }, {
     // Reset state to default value.
     state: "home",
     expected: {
       state: "registered",
       connected: true,
       emergencyCallsOnly: false,
       roaming: false,
       signalStrength: -99,
       relSignalStrength: 44,
       cell: {
-        gsmLocationAreaCode: 65535,
-        gsmCellId: 268435455
+        gsmLocationAreaCode: 0,
+        gsmCellId: 0
       }
     }
   }
 ];
 
 function compareTo(aPrefix, aFrom, aTo) {
   for (let field in aTo) {
     let fullName = aPrefix + field;
--- a/dom/system/gonk/ril_worker.js
+++ b/dom/system/gonk/ril_worker.js
@@ -13617,17 +13617,17 @@ ICCUtilsHelperObject.prototype = {
    * @param lac   The location area code of the network.
    */
   getNetworkNameFromICC: function(mcc, mnc, lac) {
     let RIL = this.context.RIL;
     let iccInfoPriv = RIL.iccInfoPrivate;
     let iccInfo = RIL.iccInfo;
     let pnnEntry;
 
-    if (!mcc || !mnc || !lac) {
+    if (!mcc || !mnc || lac == null || lac < 0) {
       return null;
     }
 
     // We won't get network name if there is no PNN file.
     if (!iccInfoPriv.PNN) {
       return null;
     }