зеркало из https://github.com/mozilla/gecko-dev.git
7ff88a7209
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 --HG-- extra : rebase_source : ca5e502d064023fddfd63fe6fe5eccefce8dee52 |
||
---|---|---|
.. | ||
android | ||
gtk | ||
mac | ||
tests | ||
unix | ||
windows | ||
DateTimeFormat.cpp | ||
DateTimeFormat.h | ||
DateTimeFormatAndroid.cpp | ||
LocaleService.cpp | ||
LocaleService.h | ||
OSPreferences.cpp | ||
OSPreferences.h | ||
PluralForm.jsm | ||
langGroups.properties | ||
language.properties | ||
moz.build | ||
mozILocaleService.idl | ||
mozIOSPreferences.idl | ||
nsCollation.cpp | ||
nsCollation.h | ||
nsCollationAndroid.cpp | ||
nsCollationCID.h | ||
nsCollationFactory.cpp | ||
nsCollationFactory.h | ||
nsICollation.idl | ||
nsILanguageAtomService.h | ||
nsILocale.idl | ||
nsILocaleService.idl | ||
nsIPlatformCharset.h | ||
nsIScriptableDateFormat.idl | ||
nsLanguageAtomService.cpp | ||
nsLanguageAtomService.h | ||
nsLocale.cpp | ||
nsLocale.h | ||
nsLocaleConstructors.h | ||
nsLocaleService.cpp | ||
nsPlatformCharset.h | ||
nsPosixLocale.h | ||
nsScriptableDateFormat.cpp | ||
nsUConvPropertySearch.cpp | ||
nsUConvPropertySearch.h | ||
nsWin32Locale.h | ||
props2arrays.py |