Merge b2g-inbound to m-c a=merge
authorWes Kocher <wkocher@mozilla.com>
Fri, 08 May 2015 10:35:16 -0700
changeset 274376 cef2b76b082d36c329e94dfded65ead78ce026f2
parent 274333 5e8adf0e7f2cc879413aebff0c26523f0ff4f2ae (current diff)
parent 274375 8b2df3106ac9418a91a1a394e8f95418c995e4f8 (diff)
child 274377 e29d46c8d9b31ae46bc5966c57d847d714d449db
child 274414 863caf540d9a1762e8aafbc4193ab60b40eb960f
child 274465 377fdc86fde128c50898f6076193d459cc96ff94
child 274509 390f77eb9db61cea571dad4bab4469c3cb66a084
push id863
push userraliiev@mozilla.com
push dateMon, 03 Aug 2015 13:22:43 +0000
treeherdermozilla-release@f6321b14228d [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone40.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge b2g-inbound to m-c a=merge
b2g/app/b2g.icns
b2g/app/b2g.ico
b2g/app/default.png
toolkit/mozapps/update/nsUpdateService.js
--- a/b2g/app/Makefile.in
+++ b/b2g/app/Makefile.in
@@ -15,17 +15,17 @@ UA_UPDATE_FILES = $(UA_UPDATE_FILE)
 UA_UPDATE_DEST  = $(FINAL_TARGET)
 INSTALL_TARGETS += UA_UPDATE
 
 # Make sure the standalone glue doesn't try to get libxpcom.so from b2g/app.
 NSDISTMODE = copy
 
 include $(topsrcdir)/config/rules.mk
 
-APP_ICON = b2g
+APP_ICON = app
 
 ifeq ($(OS_ARCH),WINNT)
 REDIT_PATH = $(LIBXUL_DIST)/bin
 endif
 
 APP_BINARY = $(MOZ_APP_NAME)$(BIN_SUFFIX)
 
 ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
@@ -59,31 +59,31 @@ tools repackage:: $(libs-preqs)
 	rsync -a --include-from='$(srcdir)/macbuild/Contents/MacOS-files.in' --exclude '*' $(DIST)/bin/ $(DIST)/$(APP_NAME).app/Contents/MacOS
 ifdef LIBXUL_SDK
 	cp $(LIBXUL_DIST)/bin/xulrunner$(BIN_SUFFIX) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(APP_BINARY)
 	rsync -a --exclude nsinstall --copy-unsafe-links $(LIBXUL_DIST)/XUL.framework $(DIST)/$(APP_NAME).app/Contents/Frameworks
 else
 	$(RM) $(DIST)/$(APP_NAME).app/Contents/MacOS/$(PROGRAM)
 	rsync -aL $(PROGRAM) $(DIST)/$(APP_NAME).app/Contents/MacOS
 endif
-	cp -RL $(srcdir)/b2g.icns $(DIST)/$(APP_NAME).app/Contents/Resources/$(MOZ_APP_NAME).icns
+	cp -RL $(DIST)/branding/app.icns $(DIST)/$(APP_NAME).app/Contents/Resources/$(MOZ_APP_NAME).icns
 	printf APPLMOZB > $(DIST)/$(APP_NAME).app/Contents/PkgInfo
 
 else # MOZ_WIDGET_TOOLKIT != cocoa
 
 libs::
 ifdef LIBXUL_SDK
 	cp $(LIBXUL_DIST)/bin/xulrunner-stub$(BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY)
 	$(NSINSTALL) -D $(DIST)/bin/xulrunner
 	(cd $(LIBXUL_SDK)/bin && tar $(TAR_CREATE_FLAGS) - .) | (cd $(DIST)/bin/xulrunner && tar -xf -)
 endif
 	$(NSINSTALL) -D $(DIST)/bin/chrome/icons/default
 
 # Copy the app icon for b2g-desktop
 ifeq ($(OS_ARCH),WINNT)
-	cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/$(APP_ICON).ico
-	$(REDIT_PATH)/redit$(HOST_BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) $(srcdir)/$(APP_ICON).ico
-	cp $(srcdir)/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/default.ico
+	cp $(DIST)/branding/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/$(APP_ICON).ico
+	$(REDIT_PATH)/redit$(HOST_BIN_SUFFIX) $(DIST)/bin/$(APP_BINARY) $(DIST)/branding/$(APP_ICON).ico
+	cp $(DIST)/branding/$(APP_ICON).ico $(DIST)/bin/chrome/icons/default/default.ico
 else ifneq (gonk,$(MOZ_WIDGET_TOOLKIT))
-	cp $(srcdir)/default.png $(DIST)/bin/chrome/icons/default/default.png
+	cp $(DIST)/branding/default.png $(DIST)/bin/chrome/icons/default/default.png
 endif
 
 endif
deleted file mode 100644
index eba850aaee10662fa3bc796ac97ec59e4c3b5df8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 5d4a61dc92ba5b08b2ff0587fb2877e7007c940e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index c4307fc8418436bb6b2fd3a6afc702c2db28aa77..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100644
--- /dev/null
+++ b/b2g/branding/official/Makefile.in
@@ -0,0 +1,27 @@
+# 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/.
+
+include $(topsrcdir)/config/config.mk
+
+ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
+BRANDING_FILES := \
+	app.ico \
+	$(NULL)
+endif
+
+ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
+BRANDING_FILES := \
+	app.icns \
+	$(NULL)
+endif
+
+ifdef MOZ_WIDGET_GTK
+BRANDING_FILES := \
+	default.png \
+	$(NULL)
+endif
+
+BRANDING_DEST := $(DIST)/branding
+BRANDING_TARGET := export
+INSTALL_TARGETS += BRANDING
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..eba850aaee10662fa3bc796ac97ec59e4c3b5df8
GIT binary patch
literal 11953
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5d4a61dc92ba5b08b2ff0587fb2877e7007c940e
GIT binary patch
literal 4286
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
E1?Jf~jsO4v
--- a/b2g/branding/official/configure.sh
+++ b/b2g/branding/official/configure.sh
@@ -1,7 +1,6 @@
 # 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/.
 
 MOZ_APP_DISPLAYNAME=B2G
-ANDROID_PACKAGE_NAME=org.mozilla.b2g
 MOZ_UPDATER=
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c4307fc8418436bb6b2fd3a6afc702c2db28aa77
GIT binary patch
literal 4762
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
new file mode 100644
--- /dev/null
+++ b/b2g/branding/unofficial/Makefile.in
@@ -0,0 +1,27 @@
+# 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/.
+
+include $(topsrcdir)/config/config.mk
+
+ifeq ($(MOZ_WIDGET_TOOLKIT),windows)
+BRANDING_FILES := \
+	app.ico \
+	$(NULL)
+endif
+
+ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)
+BRANDING_FILES := \
+	app.icns \
+	$(NULL)
+endif
+
+ifdef MOZ_WIDGET_GTK
+BRANDING_FILES := \
+	default.png \
+	$(NULL)
+endif
+
+BRANDING_DEST := $(DIST)/branding
+BRANDING_TARGET := export
+INSTALL_TARGETS += BRANDING
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..eba850aaee10662fa3bc796ac97ec59e4c3b5df8
GIT binary patch
literal 11953
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5d4a61dc92ba5b08b2ff0587fb2877e7007c940e
GIT binary patch
literal 4286
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
E1?Jf~jsO4v
--- a/b2g/branding/unofficial/configure.sh
+++ b/b2g/branding/unofficial/configure.sh
@@ -1,7 +1,6 @@
 # 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/.
 
-ANDROID_PACKAGE_NAME=org.mozilla.b2g_`echo $USER | sed 's/-/_/g'`
 MOZ_APP_DISPLAYNAME=B2G
 MOZ_UPDATER=
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c4307fc8418436bb6b2fd3a6afc702c2db28aa77
GIT binary patch
literal 4762
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
--- a/b2g/config/dolphin/sources.xml
+++ b/b2g/config/dolphin/sources.xml
@@ -10,17 +10,17 @@
   <!--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="2eda36a4795012a5d1275b77ebb20ac377c8cd26">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <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="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
@@ -123,22 +123,22 @@
   <project name="platform/system/security" path="system/security" revision="ee8068b9e7bfb2770635062fc9c2035be2142bd8"/>
   <project name="platform/system/vold" path="system/vold" revision="bb33b1ce8ad9cd3fc4311801b4d56db1d5c8175b"/>
   <!--original fetch url was http://sprdsource.spreadtrum.com:8085/b2g/android-->
   <remote fetch="https://git.mozilla.org/external/sprd-aosp" name="sprd-aosp"/>
   <default remote="sprd-aosp" revision="sprdb2g_gonk4.4" sync-j="4"/>
   <!-- Stock Android things -->
   <project name="platform/external/icu4c" path="external/icu4c" revision="2bb01561780583cc37bc667f0ea79f48a122d8a2"/>
   <!-- dolphin specific things -->
-  <project name="device/sprd" path="device/sprd" revision="a26ba0ab998133ad590102be1e5950818b86ce82"/>
+  <project name="device/sprd" path="device/sprd" revision="e73ddda9fede64134d949050e3fc53bd4121cb30"/>
   <project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="39a5b5bcadad745df3e6882316fce426f98b1669"/>
   <project name="platform/frameworks/av" path="frameworks/av" revision="8bb69db127112fc66da75f8ca7a1158614b919f6"/>
   <project name="platform/hardware/akm" path="hardware/akm" revision="6d3be412647b0eab0adff8a2768736cf4eb68039"/>
   <project groups="invensense" name="platform/hardware/invensense" path="hardware/invensense" revision="e6d9ab28b4f4e7684f6c07874ee819c9ea0002a2"/>
   <project name="platform/hardware/ril" path="hardware/ril" revision="865ce3b4a2ba0b3a31421ca671f4d6c5595f8690"/>
-  <project name="kernel/common" path="kernel" revision="8696b132455224412a6725022acf672be80a0641"/>
+  <project name="kernel/common" path="kernel" revision="0f36762ab0c1d8ce10c6a5eda948b05d5d6cc379"/>
   <project name="platform/system/core" path="system/core" revision="7992618bd4ee33ce96897675a5c0a9b619122f13"/>
   <project name="u-boot" path="u-boot" revision="f1502910977ac88f43da7bf9277c3523ad4b0b2f"/>
   <project name="vendor/sprd/gps" path="vendor/sprd/gps" revision="7d6e1269be7186b2073fa568958b357826692c4b"/>
   <project name="vendor/sprd/open-source" path="vendor/sprd/open-source" revision="e503b1d14d7fdee532b8f391407299da193c1b2d"/>
   <project name="vendor/sprd/partner" path="vendor/sprd/partner" revision="8649c7145972251af11b0639997edfecabfc7c2e"/>
   <project name="vendor/sprd/proprietories" path="vendor/sprd/proprietories" revision="d2466593022f7078aaaf69026adf3367c2adb7bb"/>
 </manifest>
--- a/b2g/config/emulator-ics/sources.xml
+++ b/b2g/config/emulator-ics/sources.xml
@@ -14,17 +14,17 @@
   <!--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="173b3104bfcbd23fc9dccd4b0035fc49aae3d444">
     <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="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="9a9797062c6001d6346504161c51187a2968466b"/>
   <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="8c2d32bccc7061e9ca0165135457c3fd53e7107e"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="apitrace" path="external/apitrace" remote="apitrace" revision="34ea6163f9f0e0122fb0bb03607eccdca31ced7a"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
--- a/b2g/config/emulator-jb/sources.xml
+++ b/b2g/config/emulator-jb/sources.xml
@@ -12,17 +12,17 @@
   <!--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="4efd19d199ae52656604f794c5a77518400220fd">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="apitrace" path="external/apitrace" remote="apitrace" revision="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
   <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"/>
--- a/b2g/config/emulator-kk/sources.xml
+++ b/b2g/config/emulator-kk/sources.xml
@@ -10,17 +10,17 @@
   <!--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="2eda36a4795012a5d1275b77ebb20ac377c8cd26">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <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="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
--- a/b2g/config/emulator-l/sources.xml
+++ b/b2g/config/emulator-l/sources.xml
@@ -10,17 +10,17 @@
   <!--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="61e82f99bb8bc78d52b5717e9a2481ec7267fa33">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <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="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
--- a/b2g/config/emulator/sources.xml
+++ b/b2g/config/emulator/sources.xml
@@ -14,17 +14,17 @@
   <!--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="173b3104bfcbd23fc9dccd4b0035fc49aae3d444">
     <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="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia.git" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="9a9797062c6001d6346504161c51187a2968466b"/>
   <project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="8c2d32bccc7061e9ca0165135457c3fd53e7107e"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="apitrace" path="external/apitrace" remote="apitrace" revision="34ea6163f9f0e0122fb0bb03607eccdca31ced7a"/>
   <!-- Stock Android things -->
   <project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
--- a/b2g/config/flame-kk/sources.xml
+++ b/b2g/config/flame-kk/sources.xml
@@ -10,17 +10,17 @@
   <!--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="2eda36a4795012a5d1275b77ebb20ac377c8cd26">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <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="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
@@ -120,17 +120,17 @@
   <project name="platform/hardware/libhardware_legacy" path="hardware/libhardware_legacy" revision="76c4bf4bc430a1b8317f2f21ef735867733e50cc"/>
   <project name="platform/system/media" path="system/media" revision="c1332c21c608f4932a6d7e83450411cde53315ef"/>
   <!--original fetch url was git://github.com/t2m-foxfone/-->
   <remote fetch="https://git.mozilla.org/external/t2m-foxfone" name="t2m"/>
   <default remote="caf" revision="LNX.LA.3.5.2.1.1" sync-j="4"/>
   <!-- Flame specific things -->
   <project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="1bb28abbc215f45220620af5cd60a8ac1be93722"/>
   <project name="device/qcom/common" path="device/qcom/common" revision="2501e5940ba69ece7654ff85611c76ae5bda299c"/>
-  <project name="device-flame" path="device/t2m/flame" remote="b2g" revision="a9f3f8fb8b0844724de32426b7bcc4e6dc4fa2ed"/>
+  <project name="device-flame" path="device/t2m/flame" remote="b2g" revision="040bb1e9ac8a5b6dd756fdd696aa37a8868b5c67"/>
   <project name="codeaurora_kernel_msm" path="kernel" remote="b2g" revision="0865bc4134b67220df4058625fba29305d6b10c3"/>
   <project name="kernel_lk" path="bootable/bootloader/lk" remote="b2g" revision="fda40423ffa573dc6cafd3780515010cb2a086be"/>
   <project name="platform_bootable_recovery" path="bootable/recovery" remote="b2g" revision="d5e53ed6f22fa06052351dc03510af9473af01ea"/>
   <project name="platform/external/bluetooth/bluedroid" path="external/bluetooth/bluedroid" revision="d61fc97258c8b0c362430dd2eb195dcc4d266f14"/>
   <project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="5b71e40213f650459e95d35b6f14af7e88d8ab62"/>
   <project name="platform_external_libnfc-nci" path="external/libnfc-nci" remote="t2m" revision="4186bdecb4dae911b39a8202252cc2310d91b0be"/>
   <project name="platform_external_libnfc-pn547" path="external/libnfc-pn547" remote="b2g" revision="5bb999b84b8adc14f6bea004d523ba258dea8188"/>
   <project name="platform/frameworks/av" path="frameworks/av" revision="65f5144987afff35a932262c0c5fad6ecce0c04a"/>
--- a/b2g/config/flame/sources.xml
+++ b/b2g/config/flame/sources.xml
@@ -12,17 +12,17 @@
   <!--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="4efd19d199ae52656604f794c5a77518400220fd">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="apitrace" path="external/apitrace" remote="apitrace" revision="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
   <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"/>
--- a/b2g/config/gaia.json
+++ b/b2g/config/gaia.json
@@ -1,9 +1,9 @@
 {
     "git": {
-        "git_revision": "bc5bfa18f795919b56b952bbf3637c235d0e13dc", 
+        "git_revision": "3692ad2cf3a047cc66f58f655a56b6ec559ef253", 
         "remote": "https://git.mozilla.org/releases/gaia.git", 
         "branch": ""
     }, 
-    "revision": "12e33f70aeccca27a275b3fa172876a07b891fe8", 
+    "revision": "5cf33f632627cefff6e9809144064600fed4c088", 
     "repo_path": "integration/gaia-central"
 }
--- a/b2g/config/nexus-4/sources.xml
+++ b/b2g/config/nexus-4/sources.xml
@@ -12,17 +12,17 @@
   <!--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="4efd19d199ae52656604f794c5a77518400220fd">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="apitrace" path="external/apitrace" remote="apitrace" revision="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
   <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"/>
--- a/b2g/config/nexus-5-l/sources.xml
+++ b/b2g/config/nexus-5-l/sources.xml
@@ -10,17 +10,17 @@
   <!--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="61e82f99bb8bc78d52b5717e9a2481ec7267fa33">
     <copyfile dest="Makefile" src="core/root.mk"/>
   </project>
-  <project name="gaia" path="gaia" remote="mozillaorg" revision="bc5bfa18f795919b56b952bbf3637c235d0e13dc"/>
+  <project name="gaia" path="gaia" remote="mozillaorg" revision="3692ad2cf3a047cc66f58f655a56b6ec559ef253"/>
   <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
   <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="d3868ff4bb3a4b81382795e2784258c210fe6cb8"/>
   <project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
   <project name="moztt" path="external/moztt" remote="b2g" revision="adb24954bf8068f21705b570450475d183336b2d"/>
   <project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
   <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="0627790166dccd8dd370fa7d9f434ed9fc027fb4"/>
--- a/dom/bluetooth/bluez/BluetoothSocket.cpp
+++ b/dom/bluetooth/bluez/BluetoothSocket.cpp
@@ -59,21 +59,20 @@ public:
    */
   void Connect();
 
   void Send(UnixSocketIOBuffer* aBuffer);
 
   // I/O callback methods
   //
 
-  void OnAccepted(int aFd, const sockaddr_any* aAddr,
-                  socklen_t aAddrLen) override;
   void OnConnected() override;
   void OnError(const char* aFunction, int aErrno) override;
   void OnListening() override;
+  void OnSocketCanAcceptWithoutBlocking() override;
   void OnSocketCanReceiveWithoutBlocking() override;
   void OnSocketCanSendWithoutBlocking() override;
 
   // Methods for |DataSocket|
   //
 
   nsresult QueryReceiveBuffer(UnixSocketIOBuffer** aBuffer);
   void ConsumeBuffer();
@@ -216,36 +215,40 @@ BluetoothSocket::BluetoothSocketIO::Canc
 }
 
 void
 BluetoothSocket::BluetoothSocketIO::Listen()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(mConnector);
 
-  // This will set things we don't particularly care about, but it will hand
-  // back the correct structure size which is what we do care about.
-  if (!mConnector->CreateAddr(true, mAddrSize, mAddr, nullptr)) {
-    NS_WARNING("Cannot create socket address!");
-    FireSocketError();
-    return;
-  }
-
   if (!IsOpen()) {
     int fd = mConnector->Create();
     if (fd < 0) {
       NS_WARNING("Cannot create socket fd!");
       FireSocketError();
       return;
     }
     if (!SetSocketFlags(fd)) {
       NS_WARNING("Cannot set socket flags!");
       FireSocketError();
       return;
     }
+    if (!mConnector->SetUpListenSocket(fd)) {
+      NS_WARNING("Could not set up listen socket!");
+      FireSocketError();
+      return;
+    }
+    // This will set things we don't particularly care about, but it will hand
+    // back the correct structure size which is what we do care about.
+    if (!mConnector->CreateAddr(true, mAddrSize, mAddr, nullptr)) {
+      NS_WARNING("Cannot create socket address!");
+      FireSocketError();
+      return;
+    }
     SetFd(fd);
 
     // calls OnListening on success, or OnError otherwise
     nsresult rv = UnixSocketWatcher::Listen(
       reinterpret_cast<struct sockaddr*>(&mAddr), mAddrSize);
     NS_WARN_IF(NS_FAILED(rv));
   }
 }
@@ -263,123 +266,111 @@ BluetoothSocket::BluetoothSocketIO::Conn
       FireSocketError();
       return;
     }
     if (!SetSocketFlags(fd)) {
       NS_WARNING("Cannot set socket flags!");
       FireSocketError();
       return;
     }
+    if (!mConnector->SetUp(fd)) {
+      NS_WARNING("Could not set up socket!");
+      FireSocketError();
+      return;
+    }
+    if (!mConnector->CreateAddr(false, mAddrSize, mAddr, mAddress.get())) {
+      NS_WARNING("Cannot create socket address!");
+      FireSocketError();
+      return;
+    }
     SetFd(fd);
   }
 
-  if (!mConnector->CreateAddr(false, mAddrSize, mAddr, mAddress.get())) {
-    NS_WARNING("Cannot create socket address!");
-    FireSocketError();
-    return;
-  }
-
   // calls OnConnected() on success, or OnError() otherwise
   nsresult rv = UnixSocketWatcher::Connect(
     reinterpret_cast<struct sockaddr*>(&mAddr), mAddrSize);
   NS_WARN_IF(NS_FAILED(rv));
 }
 
 void
 BluetoothSocket::BluetoothSocketIO::Send(UnixSocketIOBuffer* aBuffer)
 {
   EnqueueData(aBuffer);
   AddWatchers(WRITE_WATCHER, false);
 }
 
 void
-BluetoothSocket::BluetoothSocketIO::OnAccepted(
-  int aFd, const sockaddr_any* aAddr, socklen_t aAddrLen)
-{
-  MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
-  MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
-  MOZ_ASSERT(aAddr);
-  MOZ_ASSERT(aAddrLen > 0 && (size_t)aAddrLen <= sizeof(mAddr));
-
-  memcpy (&mAddr, aAddr, aAddrLen);
-  mAddrSize = aAddrLen;
-
-  if (!mConnector->SetUp(aFd)) {
-    NS_WARNING("Could not set up socket!");
-    return;
-  }
-
-  RemoveWatchers(READ_WATCHER|WRITE_WATCHER);
-  Close();
-  if (!SetSocketFlags(aFd)) {
-    return;
-  }
-  SetSocket(aFd, SOCKET_IS_CONNECTED);
-
-  NS_DispatchToMainThread(
-    new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
-
-  AddWatchers(READ_WATCHER, true);
-  if (HasPendingData()) {
-    AddWatchers(WRITE_WATCHER, false);
-  }
-}
-
-void
 BluetoothSocket::BluetoothSocketIO::OnConnected()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_CONNECTED);
 
-  if (!SetSocketFlags(GetFd())) {
-    NS_WARNING("Cannot set socket flags!");
-    FireSocketError();
-    return;
-  }
-
-  if (!mConnector->SetUp(GetFd())) {
-    NS_WARNING("Could not set up socket!");
-    FireSocketError();
-    return;
-  }
-
   NS_DispatchToMainThread(
     new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
 
   AddWatchers(READ_WATCHER, true);
   if (HasPendingData()) {
     AddWatchers(WRITE_WATCHER, false);
   }
 }
 
 void
 BluetoothSocket::BluetoothSocketIO::OnListening()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
 
-  if (!mConnector->SetUpListenSocket(GetFd())) {
-    NS_WARNING("Could not set up listen socket!");
-    FireSocketError();
-    return;
-  }
-
   AddWatchers(READ_WATCHER, true);
 }
 
 void
 BluetoothSocket::BluetoothSocketIO::OnError(const char* aFunction, int aErrno)
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
 
   UnixFdWatcher::OnError(aFunction, aErrno);
   FireSocketError();
 }
 
 void
+BluetoothSocket::BluetoothSocketIO::OnSocketCanAcceptWithoutBlocking()
+{
+  MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
+  MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
+
+  RemoveWatchers(READ_WATCHER|WRITE_WATCHER);
+
+  socklen_t mAddrSize = sizeof(mAddr);
+  int fd = TEMP_FAILURE_RETRY(accept(GetFd(),
+    reinterpret_cast<struct sockaddr*>(&mAddr), &mAddrSize));
+  if (fd < 0) {
+    OnError("accept", errno);
+    return;
+  }
+  if (!SetSocketFlags(fd)) {
+    return;
+  }
+  if (!mConnector->SetUp(fd)) {
+    NS_WARNING("Could not set up socket!");
+    return;
+  }
+
+  Close();
+  SetSocket(fd, SOCKET_IS_CONNECTED);
+
+  NS_DispatchToMainThread(
+    new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
+
+  AddWatchers(READ_WATCHER, true);
+  if (HasPendingData()) {
+    AddWatchers(WRITE_WATCHER, false);
+  }
+}
+
+void
 BluetoothSocket::BluetoothSocketIO::OnSocketCanReceiveWithoutBlocking()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_CONNECTED); // see bug 990984
 
   ssize_t res = ReceiveData(GetFd());
   if (res < 0) {
     /* I/O error */
--- a/ipc/unixfd/UnixSocketWatcher.cpp
+++ b/ipc/unixfd/UnixSocketWatcher.cpp
@@ -24,24 +24,24 @@ void UnixSocketWatcher::Close()
 
 nsresult
 UnixSocketWatcher::Connect(const struct sockaddr* aAddr, socklen_t aAddrLen)
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(IsOpen());
   MOZ_ASSERT(aAddr || !aAddrLen);
 
-  if (connect(GetFd(), aAddr, aAddrLen) < 0) {
+  if (TEMP_FAILURE_RETRY(connect(GetFd(), aAddr, aAddrLen) < 0)) {
     if (errno == EINPROGRESS) {
       mConnectionStatus = SOCKET_IS_CONNECTING;
       // Set up a write watch to receive the connect signal
       AddWatchers(WRITE_WATCHER, false);
-    } else {
-      OnError("connect", errno);
+      return NS_OK;
     }
+    OnError("connect", errno);
     return NS_ERROR_FAILURE;
   }
 
   mConnectionStatus = SOCKET_IS_CONNECTED;
   OnConnected();
 
   return NS_OK;
 }
@@ -96,25 +96,17 @@ void
 UnixSocketWatcher::OnFileCanReadWithoutBlocking(int aFd)
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(aFd == GetFd());
 
   if (mConnectionStatus == SOCKET_IS_CONNECTED) {
     OnSocketCanReceiveWithoutBlocking();
   } else if (mConnectionStatus == SOCKET_IS_LISTENING) {
-    sockaddr_any addr;
-    socklen_t addrLen = sizeof(addr);
-    int fd = TEMP_FAILURE_RETRY(accept(GetFd(),
-      reinterpret_cast<struct sockaddr*>(&addr), &addrLen));
-    if (fd < 0) {
-      OnError("accept", errno);
-    } else {
-      OnAccepted(fd, &addr, addrLen);
-    }
+    OnSocketCanAcceptWithoutBlocking();
   } else {
     NS_NOTREACHED("invalid connection state for reading");
   }
 }
 
 void
 UnixSocketWatcher::OnFileCanWriteWithoutBlocking(int aFd)
 {
--- a/ipc/unixfd/UnixSocketWatcher.h
+++ b/ipc/unixfd/UnixSocketWatcher.h
@@ -55,26 +55,25 @@ public:
   }
 
   // Connect to a peer
   nsresult Connect(const struct sockaddr* aAddr, socklen_t aAddrLen);
 
   // Listen on socket for incoming connection requests
   nsresult Listen(const struct sockaddr* aAddr, socklen_t aAddrLen);
 
-  // Callback method for accepted connections
-  virtual void OnAccepted(int aFd, const sockaddr_any* aAddr,
-                          socklen_t aAddrLen) {};
-
   // Callback method for successful connection requests
   virtual void OnConnected() {};
 
   // Callback method for successful listen requests
   virtual void OnListening() {};
 
+  // Callback method for accepting from a listening socket
+  virtual void OnSocketCanAcceptWithoutBlocking() {};
+
   // Callback method for receiving from socket
   virtual void OnSocketCanReceiveWithoutBlocking() {};
 
   // Callback method for sending on socket
   virtual void OnSocketCanSendWithoutBlocking() {};
 
 protected:
   UnixSocketWatcher(MessageLoop* aIOLoop);
--- a/ipc/unixsocket/ListenSocket.cpp
+++ b/ipc/unixsocket/ListenSocket.cpp
@@ -40,21 +40,20 @@ public:
   /**
    * Run bind/listen to prepare for further runs of accept()
    */
   void Listen(ConnectionOrientedSocketIO* aCOSocketIO);
 
   // I/O callback methods
   //
 
-  void OnAccepted(int aFd, const sockaddr_any* aAddr,
-                  socklen_t aAddrLen) override;
   void OnConnected() override;
   void OnError(const char* aFunction, int aErrno) override;
   void OnListening() override;
+  void OnSocketCanAcceptWithoutBlocking() override;
 
   // Methods for |SocketIOBase|
   //
 
   SocketBase* GetSocketBase() override;
 
   bool IsShutdownOnMainThread() const override;
   bool IsShutdownOnIOThread() const override;
@@ -150,70 +149,54 @@ ListenSocketIO::Listen(ConnectionOriente
       FireSocketError();
       return;
     }
     if (!SetSocketFlags(fd)) {
       NS_WARNING("Cannot set socket flags!");
       FireSocketError();
       return;
     }
+    if (!mConnector->SetUpListenSocket(GetFd())) {
+      NS_WARNING("Could not set up listen socket!");
+      FireSocketError();
+      return;
+    }
+    // This will set things we don't particularly care about, but
+    // it will hand back the correct structure size which is what
+    // we do care about.
+    if (!mConnector->CreateAddr(true, mAddrSize, mAddr, nullptr)) {
+      NS_WARNING("Cannot create socket address!");
+      FireSocketError();
+      return;
+    }
     SetFd(fd);
   }
 
   mCOSocketIO = aCOSocketIO;
 
-  // This will set things we don't particularly care about, but
-  // it will hand back the correct structure size which is what
-  // we do care about.
-  if (!mConnector->CreateAddr(true, mAddrSize, mAddr, nullptr)) {
-    NS_WARNING("Cannot create socket address!");
-    FireSocketError();
-    return;
-  }
-
   // calls OnListening on success, or OnError otherwise
   nsresult rv = UnixSocketWatcher::Listen(
     reinterpret_cast<struct sockaddr*>(&mAddr), mAddrSize);
   NS_WARN_IF(NS_FAILED(rv));
 }
 
 void
-ListenSocketIO::OnAccepted(int aFd,
-                           const sockaddr_any* aAddr,
-                           socklen_t aAddrLen)
-{
-  MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
-  MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
-  MOZ_ASSERT(mCOSocketIO);
-
-  RemoveWatchers(READ_WATCHER|WRITE_WATCHER);
-
-  mCOSocketIO->Accept(aFd, aAddr, aAddrLen);
-}
-
-void
 ListenSocketIO::OnConnected()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
 
   NS_NOTREACHED("Invalid call to |ListenSocketIO::OnConnected|");
 }
 
 void
 ListenSocketIO::OnListening()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
 
-  if (!mConnector->SetUpListenSocket(GetFd())) {
-    NS_WARNING("Could not set up listen socket!");
-    FireSocketError();
-    return;
-  }
-
   AddWatchers(READ_WATCHER, true);
 
   /* We signal a successful 'connection' to a local address for listening. */
   NS_DispatchToMainThread(
     new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
 }
 
 void
@@ -268,16 +251,39 @@ ListenSocketIO::SetSocketFlags(int aFd)
   flags |= O_NONBLOCK;
   if (-1 == TEMP_FAILURE_RETRY(fcntl(aFd, F_SETFL, flags))) {
     return false;
   }
 
   return true;
 }
 
+void
+ListenSocketIO::OnSocketCanAcceptWithoutBlocking()
+{
+  MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
+  MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
+  MOZ_ASSERT(mCOSocketIO);
+
+  struct sockaddr_storage addr;
+  socklen_t addrLen = sizeof(addr);
+  int fd = TEMP_FAILURE_RETRY(accept(GetFd(),
+    reinterpret_cast<struct sockaddr*>(&addr), &addrLen));
+  if (fd < 0) {
+    OnError("accept", errno);
+    return;
+  }
+
+  RemoveWatchers(READ_WATCHER|WRITE_WATCHER);
+
+  mCOSocketIO->Accept(fd,
+                      reinterpret_cast<union sockaddr_any*>(&addr),
+                      addrLen);
+}
+
 // |SocketIOBase|
 
 SocketBase*
 ListenSocketIO::GetSocketBase()
 {
   return mListenSocket.get();
 }
 
--- a/ipc/unixsocket/StreamSocket.cpp
+++ b/ipc/unixsocket/StreamSocket.cpp
@@ -59,18 +59,16 @@ public:
    */
   void Connect();
 
   void Send(UnixSocketIOBuffer* aBuffer);
 
   // I/O callback methods
   //
 
-  void OnAccepted(int aFd, const sockaddr_any* aAddr,
-                  socklen_t aAddrLen) override;
   void OnConnected() override;
   void OnError(const char* aFunction, int aErrno) override;
   void OnListening() override;
   void OnSocketCanReceiveWithoutBlocking() override;
   void OnSocketCanSendWithoutBlocking() override;
 
   // Methods for |ConnectionOrientedSocketIO|
   //
@@ -248,90 +246,48 @@ StreamSocketIO::Connect()
       FireSocketError();
       return;
     }
     if (!SetSocketFlags(fd)) {
       NS_WARNING("Cannot set socket flags!");
       FireSocketError();
       return;
     }
+    if (!mConnector->SetUp(GetFd())) {
+      NS_WARNING("Could not set up socket!");
+      FireSocketError();
+      return;
+    }
+    if (!mConnector->CreateAddr(false, mAddrSize, mAddr, mAddress.get())) {
+      NS_WARNING("Cannot create socket address!");
+      FireSocketError();
+      return;
+    }
     SetFd(fd);
   }
 
-  if (!mConnector->CreateAddr(false, mAddrSize, mAddr, mAddress.get())) {
-    NS_WARNING("Cannot create socket address!");
-    FireSocketError();
-    return;
-  }
-
   // calls OnConnected() on success, or OnError() otherwise
   nsresult rv = UnixSocketWatcher::Connect(
     reinterpret_cast<struct sockaddr*>(&mAddr), mAddrSize);
   NS_WARN_IF(NS_FAILED(rv));
 }
 
 void
 StreamSocketIO::Send(UnixSocketIOBuffer* aData)
 {
   EnqueueData(aData);
   AddWatchers(WRITE_WATCHER, false);
 }
 
 void
-StreamSocketIO::OnAccepted(int aFd,
-                           const sockaddr_any* aAddr,
-                           socklen_t aAddrLen)
-{
-  MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
-  MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_LISTENING);
-  MOZ_ASSERT(aAddr);
-  MOZ_ASSERT(aAddrLen <= static_cast<socklen_t>(sizeof(mAddr)));
-
-  memcpy (&mAddr, aAddr, aAddrLen);
-  mAddrSize = aAddrLen;
-
-  if (!mConnector->SetUp(aFd)) {
-    NS_WARNING("Could not set up socket!");
-    return;
-  }
-
-  RemoveWatchers(READ_WATCHER|WRITE_WATCHER);
-  Close();
-  if (!SetSocketFlags(aFd)) {
-    return;
-  }
-  SetSocket(aFd, SOCKET_IS_CONNECTED);
-
-  NS_DispatchToMainThread(
-    new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
-
-  AddWatchers(READ_WATCHER, true);
-  if (HasPendingData()) {
-    AddWatchers(WRITE_WATCHER, false);
-  }
-}
-
-void
 StreamSocketIO::OnConnected()
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_CONNECTED);
 
-  if (!SetSocketFlags(GetFd())) {
-    NS_WARNING("Cannot set socket flags!");
-    FireSocketError();
-    return;
-  }
-
-  if (!mConnector->SetUp(GetFd())) {
-    NS_WARNING("Could not set up socket!");
-    FireSocketError();
-    return;
-  }
-
   NS_DispatchToMainThread(
     new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
 
   AddWatchers(READ_WATCHER, true);
   if (HasPendingData()) {
     AddWatchers(WRITE_WATCHER, false);
   }
 }
@@ -439,40 +395,39 @@ nsresult
 StreamSocketIO::Accept(int aFd,
                        const union sockaddr_any* aAddr, socklen_t aAddrLen)
 {
   MOZ_ASSERT(MessageLoopForIO::current() == GetIOLoop());
   MOZ_ASSERT(GetConnectionStatus() == SOCKET_IS_CONNECTING);
 
   // File-descriptor setup
 
+  if (!SetSocketFlags(aFd)) {
+    return NS_ERROR_FAILURE;
+  }
   if (!mConnector->SetUp(aFd)) {
     NS_WARNING("Could not set up socket!");
     return NS_ERROR_FAILURE;
   }
 
-  if (!SetSocketFlags(aFd)) {
-    return NS_ERROR_FAILURE;
-  }
   SetSocket(aFd, SOCKET_IS_CONNECTED);
 
-  AddWatchers(READ_WATCHER, true);
-  if (HasPendingData()) {
-    AddWatchers(WRITE_WATCHER, false);
-  }
-
   // Address setup
-
   memcpy(&mAddr, aAddr, aAddrLen);
   mAddrSize = aAddrLen;
 
   // Signal success
   NS_DispatchToMainThread(
     new SocketIOEventRunnable(this, SocketIOEventRunnable::CONNECT_SUCCESS));
 
+  AddWatchers(READ_WATCHER, true);
+  if (HasPendingData()) {
+    AddWatchers(WRITE_WATCHER, false);
+  }
+
   return NS_OK;
 }
 
 // |DataSocketIO|
 
 nsresult
 StreamSocketIO::QueryReceiveBuffer(UnixSocketIOBuffer** aBuffer)
 {
--- a/testing/taskcluster/mach_commands.py
+++ b/testing/taskcluster/mach_commands.py
@@ -30,17 +30,17 @@ ROOT = os.path.dirname(os.path.realpath(
 GECKO = os.path.realpath(os.path.join(ROOT, '..', '..'))
 DOCKER_ROOT = os.path.join(ROOT, '..', 'docker')
 MOZHARNESS_CONFIG = os.path.join(GECKO, 'testing', 'mozharness', 'mozharness.json')
 
 # XXX: If/when we have the taskcluster queue use construct url instead
 ARTIFACT_URL = 'https://queue.taskcluster.net/v1/task/{}/artifacts/{}'
 REGISTRY = open(os.path.join(DOCKER_ROOT, 'REGISTRY')).read().strip()
 
-DEFINE_TASK = 'queue:define-task:aws-provisioner/{}'
+DEFINE_TASK = 'queue:define-task:aws-provisioner-v1/{}'
 
 TREEHERDER_ROUTE_PREFIX = 'tc-treeherder-stage'
 TREEHERDER_ROUTES = {
     'staging': 'tc-treeherder-stage',
     'production': 'tc-treeherder'
 }
 
 DEFAULT_TRY = 'try: -b do -p all -u all'
--- a/testing/taskcluster/scripts/phone-builder/build-lightsaber-nightly.sh
+++ b/testing/taskcluster/scripts/phone-builder/build-lightsaber-nightly.sh
@@ -21,17 +21,17 @@ mar_file=b2g-${TARGET%%-*}-gecko-update.
 if [ $VARIANT == "user" ]; then
   PLATFORM=$TARGET
 else
   PLATFORM=$TARGET-$VARIANT
 fi
 
 ./mozharness/scripts/b2g_lightsaber.py \
   --config b2g/taskcluster-lightsaber-nightly.py \
-  --config balrog/staging.py \
+  --config balrog/docker-worker.py \
   "$debug_flag" \
   --disable-mock \
   --variant=$VARIANT \
   --work-dir=$WORKSPACE/B2G \
   --gaia-languages-file locales/languages_all.json \
   --log-level=debug \
   --target=$TARGET \
   --b2g-config-dir=$TARGET \
--- a/testing/taskcluster/scripts/phone-builder/build-phone-nightly.sh
+++ b/testing/taskcluster/scripts/phone-builder/build-phone-nightly.sh
@@ -9,17 +9,17 @@ fi
 if [ ! -d $HOME/.ssh ]; then
     mkdir $HOME/.ssh
 fi
 
 aws s3 cp s3://b2g-nightly-credentials/balrog_credentials .
 
 ./mozharness/scripts/b2g_build.py \
   --config b2g/taskcluster-phone-nightly.py \
-  --config balrog/staging.py \
+  --config balrog/docker-worker.py \
   "$debug_flag" \
   --disable-mock \
   --variant=$VARIANT \
   --work-dir=$WORKSPACE/B2G \
   --gaia-languages-file locales/languages_all.json \
   --log-level=debug \
   --target=$TARGET \
   --b2g-config-dir=$TARGET \
--- a/testing/taskcluster/tasks/builds/b2g_aries_lightsaber_nightly_base.yml
+++ b/testing/taskcluster/tasks/builds/b2g_aries_lightsaber_nightly_base.yml
@@ -1,14 +1,18 @@
 $inherits:
   from: 'tasks/builds/b2g_phone_base.yml'
 task:
-  workerType: flame-kk
+  workerType: balrog
+  scopes:
+    - 'docker-worker:feature:balrogVPNProxy'
 
   payload:
+    features:
+      balrogVPNProxy: true
     env:
       TARGET: 'aries'
       DEBUG: 0
     command:
       - >
         checkout-gecko workspace &&
         cd ./workspace/gecko/testing/taskcluster/scripts/phone-builder &&
         buildbot_step 'Build' ./build-lightsaber-nightly.sh $HOME/workspace
--- a/testing/taskcluster/tasks/builds/b2g_flame_kk_nightly.yml
+++ b/testing/taskcluster/tasks/builds/b2g_flame_kk_nightly.yml
@@ -1,21 +1,24 @@
 $inherits:
   from: 'tasks/builds/b2g_phone_base.yml'
   variables:
     build_name: 'flame-kk-nightly'
     build_type: 'opt'
 task:
-  workerType: flame-kk
+  workerType: balrog
   scopes:
     - 'docker-worker:cache:build-flame-kk-nightly'
+    - 'docker-worker:feature:balrogVPNProxy'
   metadata:
     name: '[TC] B2G Flame KK Nightly'
 
   payload:
+    features:
+      balrogVPNProxy: true
     cache:
       build-flame-kk-nightly: /home/worker/object-folder
     env:
       TARGET: 'flame-kk'
       DEBUG: 0
     command:
       - >
         checkout-gecko workspace &&
--- a/toolkit/mozapps/update/nsUpdateService.js
+++ b/toolkit/mozapps/update/nsUpdateService.js
@@ -3489,20 +3489,25 @@ Checker.prototype = {
     url = url.replace(/%DISTRIBUTION_VERSION%/g,
                       getDistributionPrefValue(PREF_APP_DISTRIBUTION_VERSION));
     url = url.replace(/%CUSTOM%/g, getPref("getCharPref", PREF_APP_UPDATE_CUSTOM, ""));
     url = url.replace(/\+/g, "%2B");
 
     if (AppConstants.platform == "gonk") {
       let sysLibs = {};
       Cu.import("resource://gre/modules/systemlibs.js", sysLibs);
+      let productDevice = sysLibs.libcutils.property_get("ro.product.device");
+      let buildType = sysLibs.libcutils.property_get("ro.build.type");
       url = url.replace(/%PRODUCT_MODEL%/g,
                         sysLibs.libcutils.property_get("ro.product.model"));
-      url = url.replace(/%PRODUCT_DEVICE%/g,
-                        sysLibs.libcutils.property_get("ro.product.device"));
+      if (buildType == "user") {
+        url = url.replace(/%PRODUCT_DEVICE%/g, productDevice);
+      } else {
+        url = url.replace(/%PRODUCT_DEVICE%/g, productDevice + "-" + buildType);
+      }
       url = url.replace(/%B2G_VERSION%/g,
                         getPref("getCharPref", PREF_APP_B2G_VERSION, null));
     }
 
     if (force) {
       url += (url.indexOf("?") != -1 ? "&" : "?") + "force=1";
     }