Bug 1215247 - Turn on ICU and Intl API for Android. r?sebastian
Intl API (ECMA-402) already supports most web browsers such as Edge (including Windows 10 Mobile), Chrome (including Android), and upcoming Safari 10(https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html).
Also IDN2008 support, and number control by <input type="number"> require ICU. And, although gfx has own unicode table, we want to remove this if ICU is supported on all platform.
Also, new L20N framework (aka L20N) wants to use Intl API to localize UI.
So I would like to use ICU as default on Fennec Android.
Negative issue is file size. ICU has big table, file size of libxul.so will be following. This support requires additional 4.4MB.
before this ... 26287379 bytes
after this ... 30692696 bytes
Although android OS already has ICU, ICU version is different per OS version. And our ICU requirement is 50.1+ (Android 4.0 uses ICU 48) and exported fucntion name of ICU has ICU version suffix. So we cannot use it.
MozReview-Commit-ID: 5R5iNMzWNjS
--- a/dom/tests/mochitest/general/test_interfaces.html
+++ b/dom/tests/mochitest/general/test_interfaces.html
@@ -59,17 +59,17 @@ var ecmaGlobals =
// NB: We haven't bothered to resolve constants like Infinity and NaN on
// Xrayed windows (which are seen from the XBL scope). We could support
// this if needed with some refactoring.
{name: "Infinity", xbl: false},
"Int16Array",
"Int32Array",
"Int8Array",
"InternalError",
- {name: "Intl", android: false},
+ "Intl",
"Iterator",
"JSON",
"Map",
"Math",
{name: "NaN", xbl: false},
"Number",
"Object",
"Promise",
--- a/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js
+++ b/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js
@@ -34,17 +34,17 @@ var ecmaGlobals =
"Float32Array",
"Float64Array",
"Function",
"Infinity",
"Int16Array",
"Int32Array",
"Int8Array",
"InternalError",
- {name: "Intl", android: false},
+ "Intl",
"Iterator",
"JSON",
"Map",
"Math",
"NaN",
"Number",
"Object",
"Promise",
--- a/dom/workers/test/test_worker_interfaces.js
+++ b/dom/workers/test/test_worker_interfaces.js
@@ -34,17 +34,17 @@ var ecmaGlobals =
"Float32Array",
"Float64Array",
"Function",
"Infinity",
"Int16Array",
"Int32Array",
"Int8Array",
"InternalError",
- {name: "Intl", android: false},
+ "Intl",
"Iterator",
"JSON",
"Map",
"Math",
"NaN",
"Number",
"Object",
"Promise",
--- a/js/xpconnect/tests/unit/xpcshell.ini
+++ b/js/xpconnect/tests/unit/xpcshell.ini
@@ -79,18 +79,16 @@ head = head_ongc.js
[test_onGarbageCollection-03.js]
head = head_ongc.js
[test_onGarbageCollection-04.js]
head = head_ongc.js
[test_onGarbageCollection-05.js]
head = head_ongc.js
[test_reflect_parse.js]
[test_localeCompare.js]
-# Bug 676965: test fails consistently on Android
-fail-if = os == "android"
[test_recursive_import.js]
[test_xpcomutils.js]
[test_unload.js]
[test_attributes.js]
# Bug 676965: test fails consistently on Android
fail-if = os == "android"
[test_params.js]
# Bug 676965: test fails consistently on Android
--- a/old-configure.in
+++ b/old-configure.in
@@ -6606,24 +6606,17 @@ else
fi
AC_SUBST(PREPROCESS_OPTION)
dnl ========================================================
dnl ICU Support
dnl ========================================================
-# Internationalization is not built or exposed on Fennec.
-# See Bug 1215256
-
-if test "$MOZ_BUILD_APP" = "mobile/android"; then
- _INTL_API=no
-else
- _INTL_API=yes
-fi
+_INTL_API=yes
if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
USE_ICU=1
fi
MOZ_CONFIG_ICU()
dnl ========================================================