Commit Graph

4095 Commits

Author SHA1 Message Date
Jonathan Kew
13d3d0ac7e Bug 1358275 - Preliminary cleanup: refactor nsTextFragment::UpdateBidiFlag(), moving its logic into nsBidiUtils function HasRTLChars() and making that function more precise in the process. r=dholbert 2017-04-26 23:25:48 +01:00
Zibi Braniecki
8a3a8e60ed Bug 1348042 - Refactor LocaleService to operate in server-client mode. r=Ehsan,qdot
LocaleService serves two main functions. It is a central place for all code in the
engine to learn about locales, but it also does the language negotiation and selection.

The former is relevant in all processes, but the latter should only be performed
by the "main" process. In case of current Desktop Firefox, the parent process
is the one performing all the language negotiation, and content processes should
operate in the "client" mode.
In Fennec, there's a Java app on top of Gecko which should work as a "server"
and then all processes, including parent process of Gecko is merely a "client" for that.

This refactor finalizes this duality making it easily configurable to define in
which mode a given LocaleService operates.

The server-client model allows all clients to stay in sync with the server,
but operate transparently for all callers just returning the right values.

In order to initialize LocaleService in the client mode in child process with the
right locales I'm adding the list of app locales to the XPCOMInitData,
and then fire LocaleService::SetAppLocales in the child process initialization.

In order to keep the list up to date, I'm adding intl:app-locales-changed to
the list of observed topics, and when triggered, I send the updated list
to the child process, which updates LocaleService::SetAppLocales with the new
list.

MozReview-Commit-ID: K9X6berF3IO
2017-03-26 07:09:45 +02:00
Wes Kocher
60ba222aed Merge m-c to autoland, a=merge
MozReview-Commit-ID: DPzfAm14Tdx
2017-04-20 15:52:28 -07:00
Dan Banner
b84dfd1f28 bug 1351657 - Stop shipping langGroups.properties as it is unused. r=florian
MozReview-Commit-ID: L601YNiOVBc
2017-04-20 13:34:52 +01:00
Chris Peterson
5fa0b17a81 Bug 1356843 - Fix -Wcomma warning in intl/uconv/util/nsUCSupport.cpp. r=dholbert
clang's -Wcomma warning warns about suspicious use of the comma operator such as between two statements.

intl/uconv/util/nsUCSupport.cpp:552:34 [-Wcomma] possible misuse of comma operator here

MozReview-Commit-ID: Emk05qDJHbm
2017-04-08 01:05:19 -07:00
Zibi Braniecki
a174bc712a Bug 1005640 - Flush StringBundle cache when app-locales change. r=valentin
StringBundle caches bundles, so when language chain changes we should
flush the cache to enable new strings to be loaded.
This also affects localized prefs like intl.accept_languages.

Then in HttpHandler we have to mark the value as dirty so that next
time it's called it actually recalculates using flushed string bundle
with the new locale.

MozReview-Commit-ID: DKWEDUli4yH
2017-04-18 01:03:05 -07:00
Zibi Braniecki
8c433fc56a Bug 1346616 - Migrate callsites that are retrieving requested locale from pref, to use LocaleService::GetRequestedLocales. r=jfkthame,Pike
I'm adding a helper function mozILocaleService::GetRequestedLocale to simplify
most of the callsites that are looking for the first of the requested locales.

In most cases, I'm just matching the behavior of the code with reusing
LocaleService API instead of direct manipulation on the prefs.
That includes how I handle error case scenarios.

In case of sdk/l10n/locale.js I am reusing LocaleService heuristics over
the custom one from the file since the ones in LocaleService are just
more correct and unified accross the whole platform.

In case of FallbackEncoding I have to turn it into a nsIObserver to listen
to intl:requested-locales-changed.

MozReview-Commit-ID: 7rOr2CovLK
2017-03-11 18:43:11 -08:00
Sebastian Hengst
017c2ee2bf Backed out changeset 60d72c2dd49d (bug 1346616) for eslint failure in DirectoryLinksProvider.jsm. r=backout on a CLOSED TREE 2017-04-18 00:48:16 +02:00
Zibi Braniecki
64bae2dccf Bug 1346616 - Migrate callsites that are retrieving requested locale from pref, to use LocaleService::GetRequestedLocales. r=jfkthame,Pike
I'm adding a helper function mozILocaleService::GetRequestedLocale to simplify
most of the callsites that are looking for the first of the requested locales.

In most cases, I'm just matching the behavior of the code with reusing
LocaleService API instead of direct manipulation on the prefs.
That includes how I handle error case scenarios.

In case of sdk/l10n/locale.js I am reusing LocaleService heuristics over
the custom one from the file since the ones in LocaleService are just
more correct and unified accross the whole platform.

In case of FallbackEncoding I have to turn it into a nsIObserver to listen
to intl:requested-locales-changed.

MozReview-Commit-ID: 7rOr2CovLK
2017-03-11 18:43:11 -08:00
Zibi Braniecki
64d35c4f7b Bug 1356718 - Query gtk settings schemas to avoid crashing when schema is missing. r=jfkthame
MozReview-Commit-ID: 2rqO4XpLbfO
2017-04-16 00:13:07 -07:00
Florian Queze
d3c36892fa Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Sebastian Hengst
42670ceca0 Backed out changeset 322fde2d53bf (bug 1356569) so bug 1355161 can be backed out. r=backout 2017-04-14 23:39:22 +02:00
Florian Queze
9b4f73599f Bug 1356569 - Remove addObserver's last parameter when it is false, r=jaws. 2017-04-14 21:51:38 +02:00
Jorg K
560430d96e Bug 1355465 - Enhance TestDateTimeFormat.cpp with non-en-US locale. r=emk 2017-04-11 11:07:00 -04:00
Wes Kocher
e18b7d684a Merge inbound to central, a=merge 2017-04-13 17:24:01 -07:00
Jorg K
ccf77903d4 Bug 1351427 - Use OSPreferences for C++ date/time formats. r=emk 2017-04-13 17:17:40 +02:00
Zibi Braniecki
bbb039713a Bug 1354055 - Don't cache wrong result in OSPreferences::ReadSystemLocales on Android. r=jfkthame,rnewman
MozReview-Commit-ID: Li7wUQnC9Gz
2017-04-06 13:00:02 +02:00
Zibi Braniecki
480670f96e Bug 1355308 - Use "User Locale" for ReadDateTimePattern LanguageMatch on Windows. r=jfkthame
MozReview-Commit-ID: G8BA0NYF27P
2017-04-10 19:36:12 -07:00
Wes Kocher
b98d647879 Backed out 3 changesets (bug 1353000) for devtools failures a=backout CLOSED TREE
Backed out changeset 7ef3333cedf5 (bug 1353000)
Backed out changeset bd127ce305c7 (bug 1353000)
Backed out changeset 10e777bb90dc (bug 1353000)
2017-04-12 10:59:12 -07:00
Jonathan Kew
cfbe0988d7 Bug 1353000 - Preparatory patch, explicitly make the Script enum a 16-bit type, so we can add a field to gfxShapedWord without making it bigger. r=jrmuizel 2017-04-12 14:55:10 +01:00
Sebastian Hengst
aea8309e7e Backed out changeset 72858bb2ed9d (bug 1351427) for leaks detected by Linux x64 asan. r=backout 2017-04-11 21:11:09 +02:00
Jorg K
fe82bf3e07 Bug 1351427 - Use OSPreferences for C++ date/time formats. r=emk 2017-04-10 11:49:00 -04:00
Manish Goregaokar
d53238d68c Bug 1351200 - Part 3: stylo: Bypass cache when fetching font size prefs from Stylo; r=emilio
MozReview-Commit-ID: 7WBduQ6lBTC
2017-04-10 09:18:00 +08:00
Phil Ringnalda
e8955fb157 Backed out 3 changesets (bug 1351200) for Windows and static-analysis build bustage
CLOSED TREE

Backed out changeset 1cce9249b4a2 (bug 1351200)
Backed out changeset 792fb55377f5 (bug 1351200)
Backed out changeset 767bee78574c (bug 1351200)
2017-04-09 08:24:54 -07:00
Manish Goregaokar
46eb25dbc8 Bug 1351200 - Part 3: stylo: Bypass cache when fetching font size prefs from Stylo; r=emilio
MozReview-Commit-ID: 7WBduQ6lBTC
2017-04-04 11:11:27 -07:00
Phil Ringnalda
c8293988c5 Merge m-c to m-i 2017-04-07 08:02:21 -07:00
Phil Ringnalda
341cbb7aca Backed out changeset 5d3bc5f2c41f (bug 1354055) for mass Android reftest failures 2017-04-07 07:59:37 -07:00
Zibi Braniecki
12d23db100 Bug 1354055 - Don't cache wrong result in OSPreferences::ReadSystemLocales on Android. r=rnewman
MozReview-Commit-ID: Li7wUQnC9Gz
2017-04-06 13:00:02 +02:00
Carsten "Tomcat" Book
0175d8a0b6 Merge mozilla-central to mozilla-inbound 2017-04-07 15:33:03 +02:00
André Bargull
2576d34849 Bug 1353649 - Update tzdata in ICU data files to 2017b. r=Waldo 2017-04-05 10:49:53 +02:00
André Bargull
a48ac2979d Bug 1324240 - Also set LANGUAGE environment variable to ensure svn uses English instead of the OS locale. r=Waldo 2017-04-05 10:41:42 +02:00
Makoto Kato
d67a51c593 Bug 1351543 - Remove nsIPlatformCharset::GetDefaultCharsetForLocale. r=jfkthame
After landing bug bug 943283, no one uses nsIPlatformCharset::GetDefaultCharsetForLocale.  Also, nsIPlatformCharset isn't scriptable interface, so it is unnecessary now.

MozReview-Commit-ID: Giy68AS9yK2
2017-03-31 10:40:19 +09:00
Zibi Braniecki
d33f3112ff Bug 1351873 - Bind OSPreferences::GetSystemLocale to use intl.locale.os pref. r=rnewman
This patch fixes a regression that we hit on Fennec when we handed over control
over language negotiation to LocaleService in bug 1347306.

The problem is that we currently do not have good Android bindings for
OSPreferences::GetSystemLocale and in result we could not negotiate
languages between user-selected OS locales and available locales.

The temporary solution implemented here binds android OS preferences to
`intl.locale.os` pref which is set on Locale:OS event in browser.js.
In LocaleService we add a listener on the pref to renegotiate languages
when OS locale changes.

MozReview-Commit-ID: KTqjYSzLNNO
2017-03-31 01:30:54 +02:00
Zibi Braniecki
01205d9549 Bug 1339650 - Introduce mozIntl.DateTimeFormat. r=jfkthame
MozReview-Commit-ID: 1jnit4IlDN6
2017-03-02 16:39:17 -08:00
Zibi Braniecki
f4aa49939d Bug 1347272 - Move ChromeRegistry::IsLocaleRTL to LocaleService::IsAppLocaleRTL. r=jfkthame
MozReview-Commit-ID: BDhgIKNSOEL
2017-03-14 12:35:06 -07:00
Iris Hsiao
bc568366eb Backed out changeset c7174ac72d14 (bug 1347272) for build bustage 2017-03-28 18:16:33 +08:00
Zibi Braniecki
f1060ac666 Bug 1347272 - Move ChromeRegistry::IsLocaleRTL to LocaleService::IsAppLocaleRTL. r=jfkthame
MozReview-Commit-ID: BDhgIKNSOEL
2017-03-14 12:35:06 -07:00
Zibi Braniecki
165d58b836 Bug 1347306 - Hand over language negotiation from ChromeRegistry to LocaleService. r=jfkthame
MozReview-Commit-ID: RIPZUHN4LW
2017-03-14 15:28:47 -07:00
Makoto Kato
afe75ed561 Bug 943287 - Part 3. nsICollation fallback version for Android. r=hsivonen
Beta and release channel of Android still turn off ICU.  So we should add UTF-8 version of nsICollation for fallback.
Some people want to keep --enale-intl-api=no for faster build on developer environment, so even if non-Android, it will be required.


MozReview-Commit-ID: 3RcjqoVip1W
2017-03-23 13:43:38 +09:00
Makoto Kato
fa9cc1474e Bug 943287 - Part 2. Use ICU version of nsICollation on all platform. r=hsivonen
nsICollation for macOS version uses ICU, so we should use it on all platform since nightly and aurora can use ICU on all platform.

MozReview-Commit-ID: 4nTzDCjOQXJ
2017-03-23 13:42:49 +09:00
Makoto Kato
f60b8c0c63 Bug 943287 - Part 1. Rename nsCollation.cpp to nsCollationFactory.cpp. r=hsivonen
nsCollation.cpp implements nsCollationFactory and nsCollation utils classes.
To remove nsIPlatfromCharset dependency, I would like to remove nsCollaction utils class.  So at first, I would like to rename it to nsCollactionFactory.cpp. (then, nsICollation implementation will be nsCollation.cpp)

MozReview-Commit-ID: FaG3vfzi9cl
2017-03-23 13:42:00 +09:00
Makoto Kato
c35c39d2d9 Bug 1349855 - Remove unused nsILocale. r=emk
After landing bug 1301640, 1st parameter of nsIScriptableDateFormat.FormatDateTime() is ignored now.  So it is unnecessary to create nsILocaleService from locale parameter.

MozReview-Commit-ID: GlqC0D9shdy
2017-03-24 11:02:03 +09:00
Zibi Braniecki
e1617486a8 Bug 1347314 - Migrate calls to ChromeRegistry::GetSelectedLocale to use LocaleService::GetAppLocale. r=jfkthame,Pike
In cases, where the caller is looking for the locale to be used for JS Intl API,
we can now replace it with `undefined` which causes JS Intl API to use the default
locale which since bug 1346674 is resolved to the app locale.

This allows us to remove a lot of calls for the app locale.

The remaining ones are split between `AsBCP47` and `AsLangTag`.
Here, the `AsLangTag` is used, as described in the API docs, for cases where
the language string is used for localization purposes, such as language negotaition
matching to our language resources etc.
`AsBCP47` is used when the returned value is handed over to ICU API.

MozReview-Commit-ID: DzmFEUvMq3N
2017-03-14 16:09:54 -07:00
Sebastian Hengst
1f6ea2382a Backed out changeset cc308a73ad05 (bug 1347314) for eslint failure in test_device.html. r=backout 2017-03-22 18:20:26 +01:00
Zibi Braniecki
7ba650ae74 Bug 1347002 - Add LocaleService::GetAvailableLocales. r=jfkthame
MozReview-Commit-ID: 99I5WgdzXlb
2017-03-13 17:33:24 -07:00
Zibi Braniecki
a56e4c7360 Bug 1347314 - Migrate calls to ChromeRegistry::GetSelectedLocale to use LocaleService::GetAppLocale. r=jfkthame,Pike
In cases, where the caller is looking for the locale to be used for JS Intl API,
we can now replace it with `undefined` which causes JS Intl API to use the default
locale which since bug 1346674 is resolved to the app locale.

This allows us to remove a lot of calls for the app locale.

The remaining ones are split between `AsBCP47` and `AsLangTag`.
Here, the `AsLangTag` is used, as described in the API docs, for cases where
the language string is used for localization purposes, such as language negotaition
matching to our language resources etc.
`AsBCP47` is used when the returned value is handed over to ICU API.

MozReview-Commit-ID: DzmFEUvMq3N
2017-03-14 16:09:54 -07:00
Zibi Braniecki
2490c6ee12 Bug 1348259 - Switch nsLanguageAtomService to use OSPreferences::GetSystemLocale. r=m_kato
MozReview-Commit-ID: DvKbtrpfNJe
2017-03-21 16:20:07 -07:00
Zibi Braniecki
7295e1e6ef Bug 1348797 - Add null-check to validTagChars test in LocaleService::NegotiateLanguages. r=jfkthame 2017-03-20 15:14:58 -04:00
Zibi Braniecki
1cbe7b2f43 Bug 1346611 - Introduce LocaleService::GetDefaultLocale. r=jfkthame
MozReview-Commit-ID: 8aMkbrh0SqI
2017-03-14 13:04:59 -07:00
Makoto Kato
19ef86198a Bug 1347431 - Skip some xpcshell tests that is failure on Android without ENABLE_INTL_API. r=snorp
Sicne some tests doesn't work with --with-intl-api=no, we should skip it on Android

MozReview-Commit-ID: IjlH3aQdiqb
2017-03-16 12:54:25 +09:00