зеркало из https://github.com/mozilla/gecko-dev.git
Merge m-c to inbound a=merge
This commit is contained in:
Коммит
36598de845
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="fe92ddd450e03b38edb2d465de7897971d68ac68">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<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="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
|
||||
|
@ -120,7 +120,7 @@
|
|||
<project name="platform/system/media" path="system/media" revision="7ff72c2ea2496fa50b5e8a915e56e901c3ccd240"/>
|
||||
<project name="platform/system/netd" path="system/netd" revision="3ae56364946d4a5bf5a5f83f12f9a45a30398e33"/>
|
||||
<project name="platform/system/security" path="system/security" revision="ee8068b9e7bfb2770635062fc9c2035be2142bd8"/>
|
||||
<project name="platform/system/vold" path="system/vold" revision="118dec582647895a863dbbce8ec26bc7af457bbe"/>
|
||||
<project name="platform/system/vold" path="system/vold" revision="2e43efe1b30d0b98574d293059556aebd2f46454"/>
|
||||
<!--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"/>
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
<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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>
|
||||
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="c058843242068d0df7c107e09da31b53d2e08fa6"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<!-- Stock Android things -->
|
||||
<project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
|
||||
<project name="platform/bionic" path="bionic" revision="c72b8f6359de7ed17c11ddc9dfdde3f615d188a9"/>
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
</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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
|
||||
<!-- Stock Android things -->
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="fe92ddd450e03b38edb2d465de7897971d68ac68">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<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="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<!-- 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"/>
|
||||
|
|
|
@ -19,13 +19,13 @@
|
|||
<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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="cd88d860656c31c7da7bb310d6a160d0011b0961"/>
|
||||
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="c058843242068d0df7c107e09da31b53d2e08fa6"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<!-- Stock Android things -->
|
||||
<project name="platform/abi/cpp" path="abi/cpp" revision="dd924f92906085b831bf1cbbc7484d3c043d613c"/>
|
||||
<project name="platform/bionic" path="bionic" revision="c72b8f6359de7ed17c11ddc9dfdde3f615d188a9"/>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<project name="platform_build" path="build" remote="b2g" revision="fe92ddd450e03b38edb2d465de7897971d68ac68">
|
||||
<copyfile dest="Makefile" src="core/root.mk"/>
|
||||
</project>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<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="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<!-- Stock Android things -->
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6" revision="95bb5b66b3ec5769c3de8d3f25d681787418e7d2"/>
|
||||
<project groups="linux" name="platform/prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" path="prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6" revision="ebdad82e61c16772f6cd47e9f11936bf6ebe9aa0"/>
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
</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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
|
||||
<!-- Stock Android things -->
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
"remote": "",
|
||||
"branch": ""
|
||||
},
|
||||
"revision": "4a65d170154483d723a976506190db72ca5d6e6d",
|
||||
"revision": "e7a7c126f48f4ea3bded1f2e9ee5e4f79ae1be9e",
|
||||
"repo_path": "/integration/gaia-central"
|
||||
}
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
<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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<!-- Stock Android things -->
|
||||
<project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
|
||||
<project name="platform/bionic" path="bionic" revision="d2eb6c7b6e1bc7643c17df2d9d9bcb1704d0b9ab"/>
|
||||
|
|
|
@ -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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
</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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<project name="valgrind" path="external/valgrind" remote="b2g" revision="daa61633c32b9606f58799a3186395fd2bbb8d8c"/>
|
||||
<project name="vex" path="external/VEX" remote="b2g" revision="47f031c320888fe9f3e656602588565b52d43010"/>
|
||||
<!-- Stock Android things -->
|
||||
|
|
|
@ -17,12 +17,12 @@
|
|||
<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="0de5fcdc11a15abdf8d64f28bed2abb30041ea4d"/>
|
||||
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c7de02ef1e0ad97d86e5bbef2d19828a236aea27"/>
|
||||
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="6969df171e5295f855f12d12db0382048e6892e7"/>
|
||||
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
|
||||
<project name="librecovery" path="librecovery" remote="b2g" revision="891e5069c0ad330d8191bf8c7b879c814258c89f"/>
|
||||
<project name="moztt" path="external/moztt" remote="b2g" revision="562d357b72279a9e35d4af5aeecc8e1ffa2f44f1"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="2d42429985b77df4bb001dbdd2802518aa86b713"/>
|
||||
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="facdb3593e63dcbb740709303a5b2527113c50a0"/>
|
||||
<project name="gonk-patches" path="patches" remote="b2g" revision="223a2421006e8f5da33f516f6891c87cae86b0f6"/>
|
||||
<!-- Stock Android things -->
|
||||
<project name="platform/abi/cpp" path="abi/cpp" revision="6426040f1be4a844082c9769171ce7f5341a5528"/>
|
||||
|
|
|
@ -67,6 +67,8 @@ window.busy-determined #action-busy-undetermined {
|
|||
|
||||
#project-panel-button {
|
||||
-moz-box-pack: start;
|
||||
width: 150px;
|
||||
max-width: 150px;
|
||||
}
|
||||
|
||||
#project-panel-button > .panel-button-image {
|
||||
|
@ -86,6 +88,7 @@ window.busy-determined #action-busy-undetermined {
|
|||
}
|
||||
|
||||
#project-panel-button > .panel-button-label {
|
||||
width: 150px;
|
||||
max-width: 150px;
|
||||
}
|
||||
|
||||
|
|
|
@ -79,6 +79,32 @@ public class BrowserLocaleManager implements LocaleManager {
|
|||
return AppConstants.MOZ_LOCALE_SWITCHER;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sometimes we want just the language for a locale, not the entire
|
||||
* language tag. But Java's .getLanguage method is wrong.
|
||||
*
|
||||
* This method is equivalent to the first part of {@link #getLanguageTag(Locale)}.
|
||||
*
|
||||
* @return a language string, such as "he" for the Hebrew locales.
|
||||
*/
|
||||
public static String getLanguage(final Locale locale) {
|
||||
final String language = locale.getLanguage(); // Can, but should never be, an empty string.
|
||||
// Modernize certain language codes.
|
||||
if (language.equals("iw")) {
|
||||
return "he";
|
||||
}
|
||||
|
||||
if (language.equals("in")) {
|
||||
return "id";
|
||||
}
|
||||
|
||||
if (language.equals("ji")) {
|
||||
return "yi";
|
||||
}
|
||||
|
||||
return language;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gecko uses locale codes like "es-ES", whereas a Java {@link Locale}
|
||||
* stringifies as "es_ES".
|
||||
|
@ -91,17 +117,8 @@ public class BrowserLocaleManager implements LocaleManager {
|
|||
// If this were Java 7:
|
||||
// return locale.toLanguageTag();
|
||||
|
||||
String language = locale.getLanguage(); // Can, but should never be, an empty string.
|
||||
// Modernize certain language codes.
|
||||
if (language.equals("iw")) {
|
||||
language = "he";
|
||||
} else if (language.equals("in")) {
|
||||
language = "id";
|
||||
} else if (language.equals("ji")) {
|
||||
language = "yi";
|
||||
}
|
||||
|
||||
String country = locale.getCountry(); // Can be an empty string.
|
||||
final String language = getLanguage(locale);
|
||||
final String country = locale.getCountry(); // Can be an empty string.
|
||||
if (country.equals("")) {
|
||||
return language;
|
||||
}
|
||||
|
|
|
@ -758,6 +758,36 @@ ActivePluginsMeasurement.prototype = Object.freeze({
|
|||
},
|
||||
});
|
||||
|
||||
function ActiveGMPluginsMeasurement() {
|
||||
Metrics.Measurement.call(this);
|
||||
|
||||
this._serializers = {};
|
||||
this._serializers[this.SERIALIZE_JSON] = {
|
||||
singular: this._serializeJSONSingular.bind(this),
|
||||
};
|
||||
}
|
||||
|
||||
ActiveGMPluginsMeasurement.prototype = Object.freeze({
|
||||
__proto__: Metrics.Measurement.prototype,
|
||||
|
||||
name: "gm-plugins",
|
||||
version: 1,
|
||||
|
||||
fields: {
|
||||
"gm-plugins": LAST_TEXT_FIELD,
|
||||
},
|
||||
|
||||
_serializeJSONSingular: function (data) {
|
||||
if (!data.has("gm-plugins")) {
|
||||
this._log.warn("Don't have GM plugins info. Weird.");
|
||||
return null;
|
||||
}
|
||||
|
||||
let result = JSON.parse(data.get("gm-plugins")[1]);
|
||||
result._v = this.version;
|
||||
return result;
|
||||
},
|
||||
});
|
||||
|
||||
function AddonCountsMeasurement() {
|
||||
Metrics.Measurement.call(this);
|
||||
|
@ -834,6 +864,7 @@ AddonsProvider.prototype = Object.freeze({
|
|||
measurementTypes: [
|
||||
ActiveAddonsMeasurement,
|
||||
ActivePluginsMeasurement,
|
||||
ActiveGMPluginsMeasurement,
|
||||
AddonCountsMeasurement1,
|
||||
AddonCountsMeasurement,
|
||||
],
|
||||
|
@ -869,10 +900,12 @@ AddonsProvider.prototype = Object.freeze({
|
|||
let data;
|
||||
let addonsField;
|
||||
let pluginsField;
|
||||
let gmPluginsField;
|
||||
try {
|
||||
data = this._createDataStructure(allAddons);
|
||||
addonsField = JSON.stringify(data.addons);
|
||||
pluginsField = JSON.stringify(data.plugins);
|
||||
gmPluginsField = JSON.stringify(data.gmPlugins);
|
||||
} catch (ex) {
|
||||
this._log.warn("Exception when populating add-ons data structure: " +
|
||||
CommonUtils.exceptionStr(ex));
|
||||
|
@ -883,6 +916,7 @@ AddonsProvider.prototype = Object.freeze({
|
|||
let now = new Date();
|
||||
let addons = this.getMeasurement("addons", 2);
|
||||
let plugins = this.getMeasurement("plugins", 1);
|
||||
let gmPlugins = this.getMeasurement("gm-plugins", 1);
|
||||
let counts = this.getMeasurement(AddonCountsMeasurement.prototype.name,
|
||||
AddonCountsMeasurement.prototype.version);
|
||||
|
||||
|
@ -901,7 +935,15 @@ AddonsProvider.prototype = Object.freeze({
|
|||
return addons.setLastText("addons", addonsField).then(
|
||||
function onSuccess() {
|
||||
return plugins.setLastText("plugins", pluginsField).then(
|
||||
function onSuccess() { deferred.resolve(); },
|
||||
function onSuccess() {
|
||||
return gmPlugins.setLastText("gm-plugins", gmPluginsField).then(
|
||||
function onSuccess() {
|
||||
deferred.resolve();
|
||||
},
|
||||
function onError(error) {
|
||||
deferred.reject(error);
|
||||
});
|
||||
},
|
||||
function onError(error) { deferred.reject(error); }
|
||||
);
|
||||
},
|
||||
|
@ -938,6 +980,7 @@ AddonsProvider.prototype = Object.freeze({
|
|||
let data = {
|
||||
addons: {},
|
||||
plugins: {},
|
||||
gmPlugins: {},
|
||||
counts: {}
|
||||
};
|
||||
|
||||
|
@ -945,8 +988,16 @@ AddonsProvider.prototype = Object.freeze({
|
|||
let type = addon.type;
|
||||
|
||||
// We count plugins separately below.
|
||||
if (addon.type == "plugin")
|
||||
if (addon.type == "plugin") {
|
||||
if (addon.gmPlugin) {
|
||||
data.gmPlugins[addon.id] = {
|
||||
version: addon.version,
|
||||
userDisabled: addon.userDisabled,
|
||||
applyBackgroundUpdates: addon.applyBackgroundUpdates,
|
||||
};
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
data.counts[type] = (data.counts[type] || 0) + 1;
|
||||
|
||||
|
|
|
@ -116,6 +116,21 @@ add_task(function test_collect() {
|
|||
updateDate: now,
|
||||
description: "addon3 description"
|
||||
},
|
||||
{
|
||||
// Should be excluded from the report completely
|
||||
id: "pluginfake",
|
||||
type: "plugin",
|
||||
userDisabled: false,
|
||||
appDisabled: false,
|
||||
},
|
||||
{
|
||||
// Should be in gm-plugins
|
||||
id: "gmp-testgmp",
|
||||
type: "plugin",
|
||||
userDisabled: false,
|
||||
version: "7.2",
|
||||
gmPlugin: true,
|
||||
},
|
||||
];
|
||||
|
||||
monkeypatchAddons(provider, testAddons);
|
||||
|
@ -186,6 +201,8 @@ add_task(function test_collect() {
|
|||
do_check_true(!("addon1" in value));
|
||||
do_check_true(!("addon2" in value));
|
||||
do_check_true("addon3" in value);
|
||||
do_check_true(!("pluginfake" in value));
|
||||
do_check_true(!("gmp-testgmp" in value));
|
||||
|
||||
let serializer = addons.serializer(addons.SERIALIZE_JSON);
|
||||
let serialized = serializer.singular(data.singular);
|
||||
|
@ -237,6 +254,30 @@ add_task(function test_collect() {
|
|||
}
|
||||
do_check_eq(serialized._v, 1);
|
||||
|
||||
// Test GMP plugins measurement.
|
||||
|
||||
let gmPlugins = provider.getMeasurement("gm-plugins", 1);
|
||||
data = yield gmPlugins.getValues();
|
||||
|
||||
do_check_eq(data.days.size, 0);
|
||||
do_check_eq(data.singular.size, 1);
|
||||
do_check_true(data.singular.has("gm-plugins"));
|
||||
|
||||
json = data.singular.get("gm-plugins")[1];
|
||||
value = JSON.parse(json);
|
||||
do_print("value: " + json);
|
||||
do_check_eq(typeof(value), "object");
|
||||
do_check_eq(Object.keys(value).length, 1);
|
||||
|
||||
do_check_eq(value["gmp-testgmp"].version, "7.2");
|
||||
do_check_eq(value["gmp-testgmp"].userDisabled, false);
|
||||
|
||||
serializer = gmPlugins.serializer(plugins.SERIALIZE_JSON);
|
||||
serialized = serializer.singular(data.singular);
|
||||
do_check_eq(typeof(serialized), "object");
|
||||
do_check_eq(serialized["gmp-testgmp"].version, "7.2");
|
||||
do_check_eq(serialized._v, 1);
|
||||
|
||||
// Test counts measurement.
|
||||
|
||||
let counts = provider.getMeasurement("counts", 2);
|
||||
|
|
|
@ -23,12 +23,12 @@ Cu.import("resource://gre/modules/devtools/dbg-server.jsm");
|
|||
* # ConnectionManager
|
||||
*
|
||||
* Methods:
|
||||
* ⬩ Connection createConnection(host, port)
|
||||
* ⬩ void destroyConnection(connection)
|
||||
* ⬩ Number getFreeTCPPort()
|
||||
* . Connection createConnection(host, port)
|
||||
* . void destroyConnection(connection)
|
||||
* . Number getFreeTCPPort()
|
||||
*
|
||||
* Properties:
|
||||
* ⬩ Array connections
|
||||
* . Array connections
|
||||
*
|
||||
* # Connection
|
||||
*
|
||||
|
@ -38,33 +38,34 @@ Cu.import("resource://gre/modules/devtools/dbg-server.jsm");
|
|||
* will re-create a debugger client.
|
||||
*
|
||||
* Methods:
|
||||
* ⬩ connect() Connect to host:port. Expect a "connecting" event. If
|
||||
* host is not specified, a local pipe is used
|
||||
* ⬩ disconnect() Disconnect if connected. Expect a "disconnecting" event
|
||||
* . connect() Connect to host:port. Expect a "connecting" event.
|
||||
* If no host is not specified, a local pipe is used
|
||||
* . connect(transport) Connect via transport. Expect a "connecting" event.
|
||||
* . disconnect() Disconnect if connected. Expect a "disconnecting" event
|
||||
*
|
||||
* Properties:
|
||||
* ⬩ host IP address or hostname
|
||||
* ⬩ port Port
|
||||
* ⬩ logs Current logs. "newlog" event notifies new available logs
|
||||
* ⬩ store Reference to a local data store (see below)
|
||||
* ⬩ keepConnecting Should the connection keep trying connecting
|
||||
* ⬩ status Connection status:
|
||||
* Connection.Status.CONNECTED
|
||||
* Connection.Status.DISCONNECTED
|
||||
* Connection.Status.CONNECTING
|
||||
* Connection.Status.DISCONNECTING
|
||||
* Connection.Status.DESTROYED
|
||||
* . host IP address or hostname
|
||||
* . port Port
|
||||
* . logs Current logs. "newlog" event notifies new available logs
|
||||
* . store Reference to a local data store (see below)
|
||||
* . keepConnecting Should the connection keep trying connecting
|
||||
* . status Connection status:
|
||||
* Connection.Status.CONNECTED
|
||||
* Connection.Status.DISCONNECTED
|
||||
* Connection.Status.CONNECTING
|
||||
* Connection.Status.DISCONNECTING
|
||||
* Connection.Status.DESTROYED
|
||||
*
|
||||
* Events (as in event-emitter.js):
|
||||
* ⬩ Connection.Events.CONNECTING Trying to connect to host:port
|
||||
* ⬩ Connection.Events.CONNECTED Connection is successful
|
||||
* ⬩ Connection.Events.DISCONNECTING Trying to disconnect from server
|
||||
* ⬩ Connection.Events.DISCONNECTED Disconnected (at client request, or because of a timeout or connection error)
|
||||
* ⬩ Connection.Events.STATUS_CHANGED The connection status (connection.status) has changed
|
||||
* ⬩ Connection.Events.TIMEOUT Connection timeout
|
||||
* ⬩ Connection.Events.HOST_CHANGED Host has changed
|
||||
* ⬩ Connection.Events.PORT_CHANGED Port has changed
|
||||
* ⬩ Connection.Events.NEW_LOG A new log line is available
|
||||
* . Connection.Events.CONNECTING Trying to connect to host:port
|
||||
* . Connection.Events.CONNECTED Connection is successful
|
||||
* . Connection.Events.DISCONNECTING Trying to disconnect from server
|
||||
* . Connection.Events.DISCONNECTED Disconnected (at client request, or because of a timeout or connection error)
|
||||
* . Connection.Events.STATUS_CHANGED The connection status (connection.status) has changed
|
||||
* . Connection.Events.TIMEOUT Connection timeout
|
||||
* . Connection.Events.HOST_CHANGED Host has changed
|
||||
* . Connection.Events.PORT_CHANGED Port has changed
|
||||
* . Connection.Events.NEW_LOG A new log line is available
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -187,16 +188,21 @@ Connection.prototype = {
|
|||
}
|
||||
},
|
||||
|
||||
connect: function() {
|
||||
connect: function(transport) {
|
||||
if (this.status == Connection.Status.DESTROYED) {
|
||||
return;
|
||||
}
|
||||
if (!this._client) {
|
||||
this.log("connecting to " + this.host + ":" + this.port);
|
||||
this._transport = transport;
|
||||
if (this._transport) {
|
||||
this.log("connecting (custom transport)");
|
||||
} else {
|
||||
this.log("connecting to " + this.host + ":" + this.port);
|
||||
}
|
||||
this._setStatus(Connection.Status.CONNECTING);
|
||||
|
||||
let delay = Services.prefs.getIntPref("devtools.debugger.remote-timeout");
|
||||
this._timeoutID = setTimeout(this._onTimeout, delay);
|
||||
|
||||
this._clientConnect();
|
||||
} else {
|
||||
let msg = "Can't connect. Client is not fully disconnected";
|
||||
|
@ -217,23 +223,24 @@ Connection.prototype = {
|
|||
},
|
||||
|
||||
_clientConnect: function () {
|
||||
let transport;
|
||||
if (!this.host) {
|
||||
transport = DebuggerServer.connectPipe();
|
||||
} else {
|
||||
try {
|
||||
transport = debuggerSocketConnect(this.host, this.port);
|
||||
} catch (e) {
|
||||
// In some cases, especially on Mac, the openOutputStream call in
|
||||
// debuggerSocketConnect may throw NS_ERROR_NOT_INITIALIZED.
|
||||
// It occurs when we connect agressively to the simulator,
|
||||
// and keep trying to open a socket to the server being started in
|
||||
// the simulator.
|
||||
this._onDisconnected();
|
||||
return;
|
||||
if (!this._transport) {
|
||||
if (!this.host) {
|
||||
this._transport = DebuggerServer.connectPipe();
|
||||
} else {
|
||||
try {
|
||||
this._transport = debuggerSocketConnect(this.host, this.port);
|
||||
} catch (e) {
|
||||
// In some cases, especially on Mac, the openOutputStream call in
|
||||
// debuggerSocketConnect may throw NS_ERROR_NOT_INITIALIZED.
|
||||
// It occurs when we connect agressively to the simulator,
|
||||
// and keep trying to open a socket to the server being started in
|
||||
// the simulator.
|
||||
this._onDisconnected();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._client = new DebuggerClient(transport);
|
||||
this._client = new DebuggerClient(this._transport);
|
||||
this._client.addOneTimeListener("closed", this._onDisconnected);
|
||||
this._client.connect(this._onConnected);
|
||||
},
|
||||
|
|
|
@ -87,6 +87,7 @@ let OpenH264Wrapper = {
|
|||
|
||||
get id() { return OPENH264_PLUGIN_ID; },
|
||||
get type() { return "plugin"; },
|
||||
get isGMPlugin() { return true; },
|
||||
get name() { return pluginsBundle.GetStringFromName("openH264_name"); },
|
||||
get creator() { return null; },
|
||||
get homepageURL() { return OPENH264_HOMEPAGE_URL; },
|
||||
|
|
Загрузка…
Ссылка в новой задаче