Loading dom/indexedDB/IndexedDatabaseManager.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ #include "mozilla/dom/ErrorEventBinding.h" #include "mozilla/dom/WorkerScope.h" #include "mozilla/dom/WorkerPrivate.h" #include "mozilla/intl/LocaleCanonicalizer.h" #include "mozilla/ipc/BackgroundChild.h" #include "mozilla/ipc/PBackgroundChild.h" #include "nsContentUtils.h" Loading @@ -40,6 +39,7 @@ #include "ProfilerHelpers.h" #include "ScriptErrorHelper.h" #include "nsCharSeparatedTokenizer.h" #include "unicode/locid.h" // Bindings for ResolveConstructors #include "mozilla/dom/IDBCursorBinding.h" Loading Loading @@ -324,11 +324,11 @@ nsresult IndexedDatabaseManager::Init() { // Split values on commas. for (const auto& lang : nsCCharSeparatedTokenizer(acceptLang, ',').ToRange()) { mozilla::intl::LocaleCanonicalizer::Vector asciiString{}; auto result = mozilla::intl::LocaleCanonicalizer::CanonicalizeICULevel1( PromiseFlatCString(lang).get(), asciiString); if (result.isOk()) { mLocale.AssignASCII(asciiString); icu::Locale locale = icu::Locale::createCanonical(PromiseFlatCString(lang).get()); if (!locale.isBogus()) { // icu::Locale::getBaseName is always ASCII as per BCP 47 mLocale.AssignASCII(locale.getBaseName()); break; } } Loading intl/components/gtest/TestLocaleCanonicalizer.cppdeleted 100644 → 0 +0 −60 Original line number Diff line number Diff line /* 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 "gtest/gtest.h" #include "mozilla/intl/LocaleCanonicalizer.h" #include "mozilla/Span.h" namespace mozilla::intl { static void CheckLocaleResult(LocaleCanonicalizer::Vector& ascii, const char* before, const char* after) { auto result = LocaleCanonicalizer::CanonicalizeICULevel1(before, ascii); ASSERT_TRUE(result.isOk()); ASSERT_EQ(Span(const_cast<const char*>(ascii.begin()), ascii.length()), MakeStringSpan(after)); } /** * Asserts the behavior of canonicalization as defined in: * http://userguide.icu-project.org/locale#TOC-Canonicalization */ TEST(IntlLocaleCanonicalizer, CanonicalizeICULevel1) { LocaleCanonicalizer::Vector ascii{}; // Canonicalizes en-US CheckLocaleResult(ascii, "en-US", "en_US"); // Canonicalizes POSIX CheckLocaleResult(ascii, "en-US-posix", "en_US_POSIX"); // und gets changed to an empty string CheckLocaleResult(ascii, "und", ""); // retains incorrect locales CheckLocaleResult(ascii, "asdf", "asdf"); // makes text uppercase CheckLocaleResult(ascii, "es-es", "es_ES"); // Converts 3 letter country codes to 2 letter. CheckLocaleResult(ascii, "en-USA", "en_US"); // Does not perform level 2 canonicalization where the result would be // fr_FR@currency=EUR CheckLocaleResult(ascii, "fr-fr@EURO", "fr_FR_EURO"); // Removes the .utf8 ends CheckLocaleResult(ascii, "ar-MA.utf8", "ar_MA"); // Allows valid ascii inputs CheckLocaleResult( ascii, "abcdefghijlkmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ-_.0123456789", "abcdefghijlkmnopqrstuvwxyzabcdefghijlkmnopqrstuvwxyz__"); CheckLocaleResult(ascii, "exotic ascii:", "exotic ascii:"); // Does not accept non-ascii inputs. ASSERT_EQ(LocaleCanonicalizer::CanonicalizeICULevel1("👍", ascii).unwrapErr(), ICUError::InternalError); ASSERT_EQ( LocaleCanonicalizer::CanonicalizeICULevel1("ᏣᎳᎩ", ascii).unwrapErr(), ICUError::InternalError); } } // namespace mozilla::intl intl/components/gtest/moz.build +0 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,6 @@ UNIFIED_SOURCES += [ "TestCalendar.cpp", "TestCollator.cpp", "TestDateTimeFormat.cpp", "TestLocaleCanonicalizer.cpp", "TestNumberFormat.cpp", "TestPluralRules.cpp", "TestRelativeTimeFormat.cpp", Loading intl/components/moz.build +0 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ EXPORTS.mozilla.intl = [ "src/DateTimePatternGenerator.h", "src/ICU4CGlue.h", "src/ICUError.h", "src/LocaleCanonicalizer.h", "src/NumberFormat.h", "src/NumberFormatFields.h", "src/NumberRangeFormat.h", Loading @@ -24,7 +23,6 @@ UNIFIED_SOURCES += [ "src/DateTimeFormat.cpp", "src/DateTimePatternGenerator.cpp", "src/ICU4CGlue.cpp", "src/LocaleCanonicalizer.cpp", "src/NumberFormat.cpp", "src/NumberFormatFields.cpp", "src/NumberFormatFieldsUtil.cpp", Loading intl/components/src/ICU4CGlue.h +2 −2 Original line number Diff line number Diff line Loading @@ -108,8 +108,8 @@ static ICUResult FillBufferWithICUCall(Buffer& buffer, * A variant of FillBufferWithICUCall that accepts a mozilla::Vector rather than * a Buffer. */ template <typename ICUStringFunction, size_t InlineSize, typename CharType> static ICUResult FillVectorWithICUCall(Vector<CharType, InlineSize>& vector, template <typename ICUStringFunction, size_t InlineSize> static ICUResult FillVectorWithICUCall(Vector<char16_t, InlineSize>& vector, const ICUStringFunction& strFn) { UErrorCode status = U_ZERO_ERROR; int32_t length = strFn(vector.begin(), vector.capacity(), &status); Loading Loading
dom/indexedDB/IndexedDatabaseManager.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ #include "mozilla/dom/ErrorEventBinding.h" #include "mozilla/dom/WorkerScope.h" #include "mozilla/dom/WorkerPrivate.h" #include "mozilla/intl/LocaleCanonicalizer.h" #include "mozilla/ipc/BackgroundChild.h" #include "mozilla/ipc/PBackgroundChild.h" #include "nsContentUtils.h" Loading @@ -40,6 +39,7 @@ #include "ProfilerHelpers.h" #include "ScriptErrorHelper.h" #include "nsCharSeparatedTokenizer.h" #include "unicode/locid.h" // Bindings for ResolveConstructors #include "mozilla/dom/IDBCursorBinding.h" Loading Loading @@ -324,11 +324,11 @@ nsresult IndexedDatabaseManager::Init() { // Split values on commas. for (const auto& lang : nsCCharSeparatedTokenizer(acceptLang, ',').ToRange()) { mozilla::intl::LocaleCanonicalizer::Vector asciiString{}; auto result = mozilla::intl::LocaleCanonicalizer::CanonicalizeICULevel1( PromiseFlatCString(lang).get(), asciiString); if (result.isOk()) { mLocale.AssignASCII(asciiString); icu::Locale locale = icu::Locale::createCanonical(PromiseFlatCString(lang).get()); if (!locale.isBogus()) { // icu::Locale::getBaseName is always ASCII as per BCP 47 mLocale.AssignASCII(locale.getBaseName()); break; } } Loading
intl/components/gtest/TestLocaleCanonicalizer.cppdeleted 100644 → 0 +0 −60 Original line number Diff line number Diff line /* 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 "gtest/gtest.h" #include "mozilla/intl/LocaleCanonicalizer.h" #include "mozilla/Span.h" namespace mozilla::intl { static void CheckLocaleResult(LocaleCanonicalizer::Vector& ascii, const char* before, const char* after) { auto result = LocaleCanonicalizer::CanonicalizeICULevel1(before, ascii); ASSERT_TRUE(result.isOk()); ASSERT_EQ(Span(const_cast<const char*>(ascii.begin()), ascii.length()), MakeStringSpan(after)); } /** * Asserts the behavior of canonicalization as defined in: * http://userguide.icu-project.org/locale#TOC-Canonicalization */ TEST(IntlLocaleCanonicalizer, CanonicalizeICULevel1) { LocaleCanonicalizer::Vector ascii{}; // Canonicalizes en-US CheckLocaleResult(ascii, "en-US", "en_US"); // Canonicalizes POSIX CheckLocaleResult(ascii, "en-US-posix", "en_US_POSIX"); // und gets changed to an empty string CheckLocaleResult(ascii, "und", ""); // retains incorrect locales CheckLocaleResult(ascii, "asdf", "asdf"); // makes text uppercase CheckLocaleResult(ascii, "es-es", "es_ES"); // Converts 3 letter country codes to 2 letter. CheckLocaleResult(ascii, "en-USA", "en_US"); // Does not perform level 2 canonicalization where the result would be // fr_FR@currency=EUR CheckLocaleResult(ascii, "fr-fr@EURO", "fr_FR_EURO"); // Removes the .utf8 ends CheckLocaleResult(ascii, "ar-MA.utf8", "ar_MA"); // Allows valid ascii inputs CheckLocaleResult( ascii, "abcdefghijlkmnopqrstuvwxyzABCDEFGHIJLKMNOPQRSTUVWXYZ-_.0123456789", "abcdefghijlkmnopqrstuvwxyzabcdefghijlkmnopqrstuvwxyz__"); CheckLocaleResult(ascii, "exotic ascii:", "exotic ascii:"); // Does not accept non-ascii inputs. ASSERT_EQ(LocaleCanonicalizer::CanonicalizeICULevel1("👍", ascii).unwrapErr(), ICUError::InternalError); ASSERT_EQ( LocaleCanonicalizer::CanonicalizeICULevel1("ᏣᎳᎩ", ascii).unwrapErr(), ICUError::InternalError); } } // namespace mozilla::intl
intl/components/gtest/moz.build +0 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,6 @@ UNIFIED_SOURCES += [ "TestCalendar.cpp", "TestCollator.cpp", "TestDateTimeFormat.cpp", "TestLocaleCanonicalizer.cpp", "TestNumberFormat.cpp", "TestPluralRules.cpp", "TestRelativeTimeFormat.cpp", Loading
intl/components/moz.build +0 −2 Original line number Diff line number Diff line Loading @@ -10,7 +10,6 @@ EXPORTS.mozilla.intl = [ "src/DateTimePatternGenerator.h", "src/ICU4CGlue.h", "src/ICUError.h", "src/LocaleCanonicalizer.h", "src/NumberFormat.h", "src/NumberFormatFields.h", "src/NumberRangeFormat.h", Loading @@ -24,7 +23,6 @@ UNIFIED_SOURCES += [ "src/DateTimeFormat.cpp", "src/DateTimePatternGenerator.cpp", "src/ICU4CGlue.cpp", "src/LocaleCanonicalizer.cpp", "src/NumberFormat.cpp", "src/NumberFormatFields.cpp", "src/NumberFormatFieldsUtil.cpp", Loading
intl/components/src/ICU4CGlue.h +2 −2 Original line number Diff line number Diff line Loading @@ -108,8 +108,8 @@ static ICUResult FillBufferWithICUCall(Buffer& buffer, * A variant of FillBufferWithICUCall that accepts a mozilla::Vector rather than * a Buffer. */ template <typename ICUStringFunction, size_t InlineSize, typename CharType> static ICUResult FillVectorWithICUCall(Vector<CharType, InlineSize>& vector, template <typename ICUStringFunction, size_t InlineSize> static ICUResult FillVectorWithICUCall(Vector<char16_t, InlineSize>& vector, const ICUStringFunction& strFn) { UErrorCode status = U_ZERO_ERROR; int32_t length = strFn(vector.begin(), vector.capacity(), &status); Loading