зеркало из https://github.com/mozilla/gecko-dev.git
merge b2g-inbound to mozilla-central a=merge
This commit is contained in:
Коммит
8bdb5c4d60
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="3a2947df41a480de1457a6dcdbf46ad0af70d8e0">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="9f6b7471c881ee689183d681658cf2ba3dfc5610"/>
|
||||
|
@ -134,7 +134,7 @@
|
|||
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="d259117b4976decbe2f76eeed85218bf0109190f"/>
|
||||
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="0e56e450367cd802241b27164a2979188242b95f"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="9f28c4faea3b2f01db227b2467b08aeba96d9bec"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="a6cfdff6e9198a0f0aec5be024d26ecf2d36c614"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="d872fc1462d367eb67833de6942c297d6c4dc874"/>
|
||||
<project name="android-sdk" path="sdk" remote="b2g" revision="8b1365af38c9a653df97349ee53a3f5d64fd590a"/>
|
||||
<project name="darwinstreamingserver" path="system/darwinstreamingserver" remote="b2g" revision="cf85968c7f85e0ec36e72c87ceb4837a943b8af6"/>
|
||||
</manifest>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="3a2947df41a480de1457a6dcdbf46ad0af70d8e0">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="3a2947df41a480de1457a6dcdbf46ad0af70d8e0">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
@ -133,7 +133,7 @@
|
|||
<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="54c32c2ddef066fbdf611d29e4b7c47e0363599e"/>
|
||||
<project name="device-flame" path="device/t2m/flame" remote="b2g" revision="05aa7b98d3f891b334031dc710d48d0d6b82ec1d"/>
|
||||
<project name="codeaurora_kernel_msm" path="kernel" remote="b2g" revision="7731d63c809dbca4da408e1de0c1a044f0765e52"/>
|
||||
<project name="codeaurora_kernel_msm" path="kernel" remote="b2g" revision="3c4f041e3e3dc676f2111caf20a186ec0467dbdb"/>
|
||||
<project name="kernel_lk" path="bootable/bootloader/lk" remote="b2g" revision="fda40423ffa573dc6cafd3780515010cb2a086be"/>
|
||||
<project name="platform/external/bluetooth/bluedroid" path="external/bluetooth/bluedroid" revision="30b96dfca99cb384bf520a16b81f3aba56f09907"/>
|
||||
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="5b71e40213f650459e95d35b6f14af7e88d8ab62"/>
|
||||
|
@ -151,7 +151,7 @@
|
|||
<project name="platform/hardware/ril" path="hardware/ril" revision="12b1977cc704b35f2e9db2bb423fa405348bc2f3"/>
|
||||
<project name="platform/system/bluetooth" path="system/bluetooth" revision="985bf15264d865fe7b9c5b45f61c451cbaafa43d"/>
|
||||
<project name="platform/system/core" path="system/core" revision="350eac5403124dacb2a5fd9e28ac290a59fc3b8e"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="a6cfdff6e9198a0f0aec5be024d26ecf2d36c614"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="d872fc1462d367eb67833de6942c297d6c4dc874"/>
|
||||
<project name="platform/system/qcom" path="system/qcom" revision="63e3f6f176caad587d42bba4c16b66d953fb23c2"/>
|
||||
<project name="platform/vendor/qcom-opensource/wlan/prima" path="vendor/qcom/opensource/wlan/prima" revision="d8952a42771045fca73ec600e2b42a4c7129d723"/>
|
||||
<project name="platform/vendor/qcom/msm8610" path="device/qcom/msm8610" revision="7704e16da545f4207812e593743d6743e1afb9c5"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</project>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="9f6b7471c881ee689183d681658cf2ba3dfc5610"/>
|
||||
|
@ -145,7 +145,7 @@
|
|||
<project name="platform/hardware/ril" path="hardware/ril" revision="c4e2ac95907a5519a0e09f01a0d8e27fec101af0"/>
|
||||
<project name="platform/system/bluetooth" path="system/bluetooth" revision="e1eb226fa3ad3874ea7b63c56a9dc7012d7ff3c2"/>
|
||||
<project name="platform/system/core" path="system/core" revision="adc485d8755af6a61641d197de7cfef667722580"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="a6cfdff6e9198a0f0aec5be024d26ecf2d36c614"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="d872fc1462d367eb67833de6942c297d6c4dc874"/>
|
||||
<project name="platform/system/qcom" path="system/qcom" revision="1cdab258b15258b7f9657da70e6f06ebd5a2fc25"/>
|
||||
<project name="platform/vendor/qcom/msm8610" path="device/qcom/msm8610" revision="4ae5df252123591d5b941191790e7abed1bce5a4"/>
|
||||
<project name="platform/vendor/qcom-opensource/wlan/prima" path="vendor/qcom/opensource/wlan/prima" revision="ce18b47b4a4f93a581d672bbd5cb6d12fe796ca9"/>
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
"remote": "",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "162be54d45ece9196921eb2b342490ec2ab9e1a6",
|
||||
"revision": "ce8e42aa3688f56113d68bc82409a7fea055547b",
|
||||
"repo_path": "/integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
</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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="9f6b7471c881ee689183d681658cf2ba3dfc5610"/>
|
||||
|
@ -129,7 +129,7 @@
|
|||
<project name="device-mako" path="device/lge/mako" remote="b2g" revision="78d17f0c117f0c66dd55ee8d5c5dde8ccc93ecba"/>
|
||||
<project name="device/generic/armv7-a-neon" path="device/generic/armv7-a-neon" revision="3a9a17613cc685aa232432566ad6cc607eab4ec1"/>
|
||||
<project name="device/lge/mako-kernel" path="device/lge/mako-kernel" revision="d1729e53d71d711c8fde25eab8728ff2b9b4df0e"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="a6cfdff6e9198a0f0aec5be024d26ecf2d36c614"/>
|
||||
<project name="platform_system_nfcd" path="system/nfcd" remote="b2g" revision="d872fc1462d367eb67833de6942c297d6c4dc874"/>
|
||||
<project name="platform/external/libnfc-nci" path="external/libnfc-nci" revision="7d33aaf740bbf6c7c6e9c34a92b371eda311b66b"/>
|
||||
<project name="platform/external/wpa_supplicant_8" path="external/wpa_supplicant_8" revision="0e56e450367cd802241b27164a2979188242b95f"/>
|
||||
<project name="platform/hardware/broadcom/wlan" path="hardware/broadcom/wlan" revision="0e1929fa3aa38bf9d40e9e953d619fab8164c82e"/>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<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="457a54fc3200b80e4f5e1cd3acaa062309230732"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="3ec94f448bb5c1c9c264896685c6ef77ab718c87"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="73d68c9c91bc568ce7c888ac057b3f44bd1b2e79"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -636,17 +636,13 @@ BluetoothHfpManager::HandleVoiceConnectionChanged(uint32_t aClientId)
|
|||
|
||||
/**
|
||||
* Possible return values for mode are:
|
||||
* - null (unknown): set mNetworkSelectionMode to 0 (auto)
|
||||
* - automatic: set mNetworkSelectionMode to 0 (auto)
|
||||
* - manual: set mNetworkSelectionMode to 1 (manual)
|
||||
* - -1 (unknown): set mNetworkSelectionMode to 0 (auto)
|
||||
* - 0 (automatic): set mNetworkSelectionMode to 0 (auto)
|
||||
* - 1 (manual): set mNetworkSelectionMode to 1 (manual)
|
||||
*/
|
||||
nsString mode;
|
||||
connection->GetNetworkSelectionMode(mode);
|
||||
if (mode.EqualsLiteral("manual")) {
|
||||
mNetworkSelectionMode = 1;
|
||||
} else {
|
||||
mNetworkSelectionMode = 0;
|
||||
}
|
||||
int32_t mode;
|
||||
connection->GetNetworkSelectionMode(&mode);
|
||||
mNetworkSelectionMode = (mode == 1) ? 1 : 0;
|
||||
|
||||
nsCOMPtr<nsIMobileNetworkInfo> network;
|
||||
voiceInfo->GetNetwork(getter_AddRefs(network));
|
||||
|
|
|
@ -636,17 +636,13 @@ BluetoothHfpManager::HandleVoiceConnectionChanged(uint32_t aClientId)
|
|||
|
||||
/**
|
||||
* Possible return values for mode are:
|
||||
* - null (unknown): set mNetworkSelectionMode to 0 (auto)
|
||||
* - automatic: set mNetworkSelectionMode to 0 (auto)
|
||||
* - manual: set mNetworkSelectionMode to 1 (manual)
|
||||
* - -1 (unknown): set mNetworkSelectionMode to 0 (auto)
|
||||
* - 0 (automatic): set mNetworkSelectionMode to 0 (auto)
|
||||
* - 1 (manual): set mNetworkSelectionMode to 1 (manual)
|
||||
*/
|
||||
nsString mode;
|
||||
connection->GetNetworkSelectionMode(mode);
|
||||
if (mode.EqualsLiteral("manual")) {
|
||||
mNetworkSelectionMode = 1;
|
||||
} else {
|
||||
mNetworkSelectionMode = 0;
|
||||
}
|
||||
int32_t mode;
|
||||
connection->GetNetworkSelectionMode(&mode);
|
||||
mNetworkSelectionMode = (mode == 1) ? 1 : 0;
|
||||
|
||||
nsCOMPtr<nsIMobileNetworkInfo> network;
|
||||
voiceInfo->GetNetwork(getter_AddRefs(network));
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
/* 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 "mozilla/dom/MozMobileConnectionBinding.h"
|
||||
#include "nsIMobileConnectionService.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
#define ASSERT_NETWORK_SELECTION_MODE_EQUALITY(webidlState, xpidlState) \
|
||||
static_assert(static_cast<int32_t>(MobileNetworkSelectionMode::webidlState) == nsIMobileConnection::xpidlState, \
|
||||
"MobileNetworkSelectionMode::" #webidlState " should equal to nsIMobileConnection::" #xpidlState)
|
||||
|
||||
ASSERT_NETWORK_SELECTION_MODE_EQUALITY(Automatic, NETWORK_SELECTION_MODE_AUTOMATIC);
|
||||
ASSERT_NETWORK_SELECTION_MODE_EQUALITY(Manual, NETWORK_SELECTION_MODE_MANUAL);
|
||||
|
||||
#undef ASSERT_NETWORK_SELECTION_MODE_EQUALITY
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
|
@ -349,9 +349,12 @@ MobileConnection::GetNetworkSelectionMode() const
|
|||
return retVal;
|
||||
}
|
||||
|
||||
nsAutoString mode;
|
||||
mMobileConnection->GetNetworkSelectionMode(mode);
|
||||
CONVERT_STRING_TO_NULLABLE_ENUM(mode, MobileNetworkSelectionMode, retVal);
|
||||
int32_t mode = nsIMobileConnection::NETWORK_SELECTION_MODE_UNKNOWN;
|
||||
if (NS_SUCCEEDED(mMobileConnection->GetNetworkSelectionMode(&mode)) &&
|
||||
mode != nsIMobileConnection::NETWORK_SELECTION_MODE_UNKNOWN) {
|
||||
MOZ_ASSERT(mode < static_cast<int32_t>(MobileNetworkSelectionMode::EndGuard_));
|
||||
retVal.SetValue(static_cast<MobileNetworkSelectionMode>(mode));
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
|
|
@ -236,7 +236,7 @@ MobileConnectionProvider.prototype = {
|
|||
voice: null,
|
||||
data: null,
|
||||
iccId: null,
|
||||
networkSelectionMode: null,
|
||||
networkSelectionMode: Ci.nsIMobileConnection.NETWORK_SELECTION_MODE_UNKNOWN,
|
||||
radioState: null,
|
||||
lastKnownNetwork: null,
|
||||
lastKnownHomeNetwork: null,
|
||||
|
|
|
@ -234,7 +234,7 @@ already_AddRefed<nsIMobileConnectionService>
|
|||
NS_CreateMobileConnectionService();
|
||||
%}
|
||||
|
||||
[scriptable, uuid(1b76ccbf-dbc2-4b74-a62a-73ea91599afa)]
|
||||
[scriptable, uuid(bde83c1d-1335-43b6-8268-ec7e320167f0)]
|
||||
interface nsIMobileConnection : nsISupports
|
||||
{
|
||||
/*
|
||||
|
@ -295,6 +295,13 @@ interface nsIMobileConnection : nsISupports
|
|||
const long CLIR_INVOCATION = 1;
|
||||
const long CLIR_SUPPRESSION = 2;
|
||||
|
||||
/**
|
||||
* Network selection mode.
|
||||
*/
|
||||
const long NETWORK_SELECTION_MODE_UNKNOWN = -1; // not available
|
||||
const long NETWORK_SELECTION_MODE_AUTOMATIC = 0;
|
||||
const long NETWORK_SELECTION_MODE_MANUAL = 1;
|
||||
|
||||
readonly attribute unsigned long serviceId;
|
||||
|
||||
/**
|
||||
|
@ -332,10 +339,10 @@ interface nsIMobileConnection : nsISupports
|
|||
readonly attribute DOMString iccId;
|
||||
|
||||
/**
|
||||
* The selection mode of the voice and data networks. Possible values are
|
||||
* 'automatic', 'manual', null (unknown).
|
||||
* The selection mode of the voice and data networks. One of the
|
||||
* nsIMobileConnection.NETWORK_SELECTION_MODE_* values.
|
||||
*/
|
||||
readonly attribute DOMString networkSelectionMode;
|
||||
readonly attribute long networkSelectionMode;
|
||||
|
||||
/**
|
||||
* Current radio state. Possible values are 'enabling', 'enabled',
|
||||
|
|
|
@ -146,9 +146,9 @@ MobileConnectionChild::GetLastKnownHomeNetwork(nsAString& aNetwork)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
MobileConnectionChild::GetNetworkSelectionMode(nsAString& aMode)
|
||||
MobileConnectionChild::GetNetworkSelectionMode(int32_t* aMode)
|
||||
{
|
||||
aMode = mNetworkSelectionMode;
|
||||
*aMode = mNetworkSelectionMode;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -512,9 +512,9 @@ MobileConnectionChild::RecvNotifyLastHomeNetworkChanged(const nsString& aNetwork
|
|||
}
|
||||
|
||||
bool
|
||||
MobileConnectionChild::RecvNotifyNetworkSelectionModeChanged(const nsString& aMode)
|
||||
MobileConnectionChild::RecvNotifyNetworkSelectionModeChanged(const int32_t& aMode)
|
||||
{
|
||||
mNetworkSelectionMode.Assign(aMode);
|
||||
mNetworkSelectionMode = aMode;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ protected:
|
|||
RecvNotifyLastHomeNetworkChanged(const nsString& aNetwork) MOZ_OVERRIDE;
|
||||
|
||||
virtual bool
|
||||
RecvNotifyNetworkSelectionModeChanged(const nsString& aMode) MOZ_OVERRIDE;
|
||||
RecvNotifyNetworkSelectionModeChanged(const int32_t& aMode) MOZ_OVERRIDE;
|
||||
|
||||
private:
|
||||
uint32_t mServiceId;
|
||||
|
@ -116,7 +116,7 @@ private:
|
|||
nsString mRadioState;
|
||||
nsString mLastNetwork;
|
||||
nsString mLastHomeNetwork;
|
||||
nsString mNetworkSelectionMode;
|
||||
int32_t mNetworkSelectionMode;
|
||||
nsTArray<nsString> mSupportedNetworkTypes;
|
||||
};
|
||||
|
||||
|
|
|
@ -129,7 +129,7 @@ MobileConnectionParent::RecvInit(nsMobileConnectionInfo* aVoice,
|
|||
nsString* aLastKnownNetwork,
|
||||
nsString* aLastKnownHomeNetwork,
|
||||
nsString* aIccId,
|
||||
nsString* aNetworkSelectionMode,
|
||||
int32_t* aNetworkSelectionMode,
|
||||
nsString* aRadioState,
|
||||
nsTArray<nsString>* aSupportedNetworkTypes)
|
||||
{
|
||||
|
@ -140,7 +140,7 @@ MobileConnectionParent::RecvInit(nsMobileConnectionInfo* aVoice,
|
|||
NS_ENSURE_SUCCESS(mMobileConnection->GetLastKnownNetwork(*aLastKnownNetwork), false);
|
||||
NS_ENSURE_SUCCESS(mMobileConnection->GetLastKnownHomeNetwork(*aLastKnownHomeNetwork), false);
|
||||
NS_ENSURE_SUCCESS(mMobileConnection->GetIccId(*aIccId), false);
|
||||
NS_ENSURE_SUCCESS(mMobileConnection->GetNetworkSelectionMode(*aNetworkSelectionMode), false);
|
||||
NS_ENSURE_SUCCESS(mMobileConnection->GetNetworkSelectionMode(aNetworkSelectionMode), false);
|
||||
NS_ENSURE_SUCCESS(mMobileConnection->GetRadioState(*aRadioState), false);
|
||||
|
||||
char16_t** types = nullptr;
|
||||
|
@ -309,8 +309,8 @@ MobileConnectionParent::NotifyNetworkSelectionModeChanged()
|
|||
NS_ENSURE_TRUE(mLive, NS_ERROR_FAILURE);
|
||||
|
||||
nsresult rv;
|
||||
nsAutoString mode;
|
||||
rv = mMobileConnection->GetNetworkSelectionMode(mode);
|
||||
int32_t mode;
|
||||
rv = mMobileConnection->GetNetworkSelectionMode(&mode);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return SendNotifyNetworkSelectionModeChanged(mode) ? NS_OK : NS_ERROR_FAILURE;
|
||||
|
|
|
@ -51,7 +51,7 @@ protected:
|
|||
virtual bool
|
||||
RecvInit(nsMobileConnectionInfo* aVoice, nsMobileConnectionInfo* aData,
|
||||
nsString* aLastKnownNetwork, nsString* aLastKnownHomeNetwork,
|
||||
nsString* aIccId, nsString* aNetworkSelectionMode,
|
||||
nsString* aIccId, int32_t* aNetworkSelectionMode,
|
||||
nsString* aRadioState, nsTArray<nsString>* aSupportedNetworkTypes) MOZ_OVERRIDE;
|
||||
|
||||
private:
|
||||
|
|
|
@ -32,7 +32,7 @@ child:
|
|||
NotifyClirModeChanged(uint32_t aMode);
|
||||
NotifyLastNetworkChanged(nsString aNetwork);
|
||||
NotifyLastHomeNetworkChanged(nsString aNetwork);
|
||||
NotifyNetworkSelectionModeChanged(nsString aMode);
|
||||
NotifyNetworkSelectionModeChanged(int32_t aMode);
|
||||
|
||||
parent:
|
||||
/**
|
||||
|
@ -51,7 +51,7 @@ parent:
|
|||
sync Init()
|
||||
returns (nsMobileConnectionInfo aVoice, nsMobileConnectionInfo aData,
|
||||
nsString aLastKnownNetwork, nsString aLastKnownHomeNetwork,
|
||||
nsString aIccId, nsString aNetworkSelectionMode,
|
||||
nsString aIccId, int32_t aNetworkSelectionMode,
|
||||
nsString aRadioState, nsString[] aSupportedNetworkTypes);
|
||||
};
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ XPIDL_SOURCES += [
|
|||
]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
'Assertions.cpp',
|
||||
'DOMMMIError.cpp',
|
||||
'ipc/MobileConnectionChild.cpp',
|
||||
'ipc/MobileConnectionIPCService.cpp',
|
||||
|
|
|
@ -2600,9 +2600,10 @@ GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_SPCK_PUK] = CARD_PERSOSUBSTAT
|
|||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_RCCK_PUK] = CARD_PERSOSUBSTATE_RUIM_CORPORATE_PUK;
|
||||
GECKO_PERSO_LOCK_TO_CARD_PERSO_LOCK[GECKO_CARDLOCK_RSPCK_PUK] = CARD_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK;
|
||||
|
||||
this.GECKO_NETWORK_SELECTION_UNKNOWN = null;
|
||||
this.GECKO_NETWORK_SELECTION_AUTOMATIC = "automatic";
|
||||
this.GECKO_NETWORK_SELECTION_MANUAL = "manual";
|
||||
// See nsIMobileConnection::NETWORK_SELECTION_MODE_*
|
||||
this.GECKO_NETWORK_SELECTION_UNKNOWN = -1;
|
||||
this.GECKO_NETWORK_SELECTION_AUTOMATIC = 0;
|
||||
this.GECKO_NETWORK_SELECTION_MANUAL = 1;
|
||||
|
||||
this.GECKO_MOBILE_CONNECTION_STATE_UNKNOWN = null;
|
||||
this.GECKO_MOBILE_CONNECTION_STATE_NOTSEARCHING = "notSearching";
|
||||
|
|
|
@ -469,7 +469,7 @@ RilObject.prototype = {
|
|||
*/
|
||||
this.appType = null;
|
||||
|
||||
this.networkSelectionMode = null;
|
||||
this.networkSelectionMode = GECKO_NETWORK_SELECTION_UNKNOWN;
|
||||
|
||||
this.voiceRegistrationState = {};
|
||||
this.dataRegistrationState = {};
|
||||
|
|
|
@ -42,10 +42,37 @@
|
|||
#define PT_ARM_EXIDX 0x70000001
|
||||
#endif
|
||||
|
||||
// Bug 1082817: ICS B2G has a buggy linker that doesn't always ensure
|
||||
// that the EXIDX is sorted by address, as the spec requires. So in
|
||||
// that case we build and sort an array of pointers into the index,
|
||||
// and binary-search that; otherwise, we search the index in place
|
||||
// (avoiding the time and space overhead of the indirection).
|
||||
#if defined(ANDROID_VERSION) && ANDROID_VERSION < 16
|
||||
#define HAVE_UNSORTED_EXIDX
|
||||
#endif
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
struct EHEntry;
|
||||
struct PRel31 {
|
||||
uint32_t mBits;
|
||||
bool topBit() const { return mBits & 0x80000000; }
|
||||
uint32_t value() const { return mBits & 0x7fffffff; }
|
||||
int32_t offset() const { return (static_cast<int32_t>(mBits) << 1) >> 1; }
|
||||
const void *compute() const {
|
||||
return reinterpret_cast<const char *>(this) + offset();
|
||||
}
|
||||
private:
|
||||
PRel31(const PRel31 &copied) MOZ_DELETE;
|
||||
PRel31() MOZ_DELETE;
|
||||
};
|
||||
|
||||
struct EHEntry {
|
||||
PRel31 startPC;
|
||||
PRel31 exidx;
|
||||
private:
|
||||
EHEntry(const EHEntry &copied) MOZ_DELETE;
|
||||
EHEntry() MOZ_DELETE;
|
||||
};
|
||||
|
||||
class EHState {
|
||||
// Note that any core register can be used as a "frame pointer" to
|
||||
|
@ -64,6 +91,7 @@ enum {
|
|||
R_PC = 15
|
||||
};
|
||||
|
||||
#ifdef HAVE_UNSORTED_EXIDX
|
||||
class EHEntryHandle {
|
||||
const EHEntry *mValue;
|
||||
public:
|
||||
|
@ -71,19 +99,38 @@ public:
|
|||
const EHEntry *value() const { return mValue; }
|
||||
};
|
||||
|
||||
bool operator<(const EHEntryHandle &lhs, const EHEntryHandle &rhs) {
|
||||
return lhs.value()->startPC.compute() < rhs.value()->startPC.compute();
|
||||
}
|
||||
#endif
|
||||
|
||||
class EHTable {
|
||||
uint32_t mStartPC;
|
||||
uint32_t mEndPC;
|
||||
uint32_t mLoadOffset;
|
||||
#ifdef HAVE_UNSORTED_EXIDX
|
||||
// In principle we should be able to binary-search the index section in
|
||||
// place, but the ICS toolchain's linker is noncompliant and produces
|
||||
// indices that aren't entirely sorted (e.g., libc). So we have this:
|
||||
std::vector<EHEntryHandle> mEntries;
|
||||
typedef std::vector<EHEntryHandle>::const_iterator EntryIterator;
|
||||
EntryIterator entriesBegin() const { return mEntries.begin(); }
|
||||
EntryIterator entriesEnd() const { return mEntries.end(); }
|
||||
static const EHEntry* entryGet(EntryIterator aEntry) {
|
||||
return aEntry->value();
|
||||
}
|
||||
#else
|
||||
typedef const EHEntry *EntryIterator;
|
||||
EntryIterator mEntriesBegin, mEntriesEnd;
|
||||
EntryIterator entriesBegin() const { return mEntriesBegin; }
|
||||
EntryIterator entriesEnd() const { return mEntriesEnd; }
|
||||
static const EHEntry* entryGet(EntryIterator aEntry) { return aEntry; }
|
||||
#endif
|
||||
std::string mName;
|
||||
public:
|
||||
EHTable(const void *aELF, size_t aSize, const std::string &aName);
|
||||
const EHEntry *lookup(uint32_t aPC) const;
|
||||
bool isValid() const { return mEntries.size() > 0; }
|
||||
bool isValid() const { return entriesEnd() != entriesBegin(); }
|
||||
const std::string &name() const { return mName; }
|
||||
uint32_t startPC() const { return mStartPC; }
|
||||
uint32_t endPC() const { return mEndPC; }
|
||||
|
@ -139,28 +186,6 @@ size_t EHABIStackWalk(const mcontext_t &aContext, void *stackBase,
|
|||
}
|
||||
|
||||
|
||||
struct PRel31 {
|
||||
uint32_t mBits;
|
||||
bool topBit() const { return mBits & 0x80000000; }
|
||||
uint32_t value() const { return mBits & 0x7fffffff; }
|
||||
int32_t offset() const { return (static_cast<int32_t>(mBits) << 1) >> 1; }
|
||||
const void *compute() const {
|
||||
return reinterpret_cast<const char *>(this) + offset();
|
||||
}
|
||||
private:
|
||||
PRel31(const PRel31 &copied) MOZ_DELETE;
|
||||
PRel31() MOZ_DELETE;
|
||||
};
|
||||
|
||||
struct EHEntry {
|
||||
PRel31 startPC;
|
||||
PRel31 exidx;
|
||||
private:
|
||||
EHEntry(const EHEntry &copied) MOZ_DELETE;
|
||||
EHEntry() MOZ_DELETE;
|
||||
};
|
||||
|
||||
|
||||
class EHInterp {
|
||||
public:
|
||||
// Note that stackLimit is exclusive and stackBase is inclusive
|
||||
|
@ -477,29 +502,31 @@ const EHTable *EHAddrSpace::lookup(uint32_t aPC) const {
|
|||
}
|
||||
|
||||
|
||||
bool operator<(const EHEntryHandle &lhs, const EHEntryHandle &rhs) {
|
||||
return lhs.value()->startPC.compute() < rhs.value()->startPC.compute();
|
||||
}
|
||||
|
||||
const EHEntry *EHTable::lookup(uint32_t aPC) const {
|
||||
MOZ_ASSERT(aPC >= mStartPC);
|
||||
if (aPC >= mEndPC)
|
||||
return nullptr;
|
||||
|
||||
std::vector<EHEntryHandle>::const_iterator begin = mEntries.begin();
|
||||
std::vector<EHEntryHandle>::const_iterator end = mEntries.end();
|
||||
EntryIterator begin = entriesBegin();
|
||||
EntryIterator end = entriesEnd();
|
||||
MOZ_ASSERT(begin < end);
|
||||
if (aPC < reinterpret_cast<uint32_t>(begin->value()->startPC.compute()))
|
||||
if (aPC < reinterpret_cast<uint32_t>(entryGet(begin)->startPC.compute()))
|
||||
return nullptr;
|
||||
|
||||
while (end - begin > 1) {
|
||||
std::vector<EHEntryHandle>::const_iterator mid = begin + (end - begin) / 2;
|
||||
if (aPC < reinterpret_cast<uint32_t>(mid->value()->startPC.compute()))
|
||||
#ifdef EHABI_UNWIND_MORE_ASSERTS
|
||||
if (entryGet(end - 1)->startPC.compute()
|
||||
< entryGet(begin)->startPC.compute()) {
|
||||
MOZ_CRASH("unsorted exidx");
|
||||
}
|
||||
#endif
|
||||
EntryIterator mid = begin + (end - begin) / 2;
|
||||
if (aPC < reinterpret_cast<uint32_t>(entryGet(mid)->startPC.compute()))
|
||||
end = mid;
|
||||
else
|
||||
begin = mid;
|
||||
}
|
||||
return begin->value();
|
||||
return entryGet(begin);
|
||||
}
|
||||
|
||||
|
||||
|
@ -511,10 +538,14 @@ static const unsigned char hostEndian = ELFDATA2MSB;
|
|||
#error "No endian?"
|
||||
#endif
|
||||
|
||||
// Async signal unsafe. (Note use of std::vector::reserve.)
|
||||
// Async signal unsafe: std::vector::reserve, std::string copy ctor.
|
||||
EHTable::EHTable(const void *aELF, size_t aSize, const std::string &aName)
|
||||
: mStartPC(~0), // largest uint32_t
|
||||
mEndPC(0),
|
||||
#ifndef HAVE_UNSORTED_EXIDX
|
||||
mEntriesBegin(nullptr),
|
||||
mEntriesEnd(nullptr),
|
||||
#endif
|
||||
mName(aName)
|
||||
{
|
||||
const uint32_t base = reinterpret_cast<uint32_t>(aELF);
|
||||
|
@ -568,10 +599,15 @@ EHTable::EHTable(const void *aELF, size_t aSize, const std::string &aName)
|
|||
const EHEntry *endTable =
|
||||
reinterpret_cast<const EHEntry *>(mLoadOffset + exidxHdr->p_vaddr
|
||||
+ exidxHdr->p_memsz);
|
||||
#ifdef HAVE_UNSORTED_EXIDX
|
||||
mEntries.reserve(endTable - startTable);
|
||||
for (const EHEntry *i = startTable; i < endTable; ++i)
|
||||
mEntries.push_back(i);
|
||||
std::sort(mEntries.begin(), mEntries.end());
|
||||
#else
|
||||
mEntriesBegin = startTable;
|
||||
mEntriesEnd = endTable;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче