Bug 1292486 - Get rid of nsIUnicodeNormalizer interface. r=jfkthame
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Fri, 20 Oct 2017 17:35:34 +0900
changeset 443976 dcf5bf004564e60942528edb3d1017d04cea479a
parent 443975 8b64b1c8347b77450b44135ab1fe713caf79a4d6
child 443977 adcb5a4c7591c970b7ac75071f4c5ce1ecbabcd4
push id1618
push userCallek@gmail.com
push dateThu, 11 Jan 2018 17:45:48 +0000
treeherdermozilla-release@882ca853e05a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjfkthame
bugs1292486
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1292486 - Get rid of nsIUnicodeNormalizer interface. r=jfkthame m-c and c-c don't use nsIUnicodeNormalizer interface now. MozReview-Commit-ID: DGK7wBrcrob
browser/installer/package-manifest.in
intl/build/nsI18nModule.cpp
intl/unicharutil/moz.build
intl/unicharutil/nsIUnicodeNormalizer.idl
intl/unicharutil/nsUnicodeNormalizer.cpp
intl/unicharutil/nsUnicodeNormalizer.h
intl/unicharutil/tests/NormalizationData.h
intl/unicharutil/tests/NormalizationTest.cpp
intl/unicharutil/tests/genNormalizationData.pl
intl/unicharutil/tests/moz.build
intl/unicharutil/tests/unit/xpcshell.ini
mobile/android/installer/package-manifest.in
--- a/browser/installer/package-manifest.in
+++ b/browser/installer/package-manifest.in
@@ -310,17 +310,16 @@
 @RESPATH@/components/toolkit_xulstore.xpt
 @RESPATH@/components/toolkitprofile.xpt
 #ifdef MOZ_ENABLE_XREMOTE
 @RESPATH@/components/toolkitremote.xpt
 #endif
 @RESPATH@/components/txtsvc.xpt
 @RESPATH@/components/txmgr.xpt
 @RESPATH@/components/uconv.xpt
-@RESPATH@/components/unicharutil.xpt
 @RESPATH@/components/update.xpt
 @RESPATH@/components/uriloader.xpt
 @RESPATH@/components/urlformatter.xpt
 @RESPATH@/components/webBrowser_core.xpt
 @RESPATH@/components/webbrowserpersist.xpt
 @RESPATH@/components/webextensions.xpt
 @RESPATH@/components/widget.xpt
 #ifdef XP_MACOSX
--- a/intl/build/nsI18nModule.cpp
+++ b/intl/build/nsI18nModule.cpp
@@ -5,67 +5,59 @@
 
 #include "mozilla/ModuleUtils.h"
 
 // lwbrk
 #include "nsLWBrkCIID.h"
 #include "nsJISx4051LineBreaker.h"
 #include "nsSampleWordBreaker.h"
 
-// unicharutil
-#include "nsUnicodeNormalizer.h"
-
 // string bundles (intl)
 #include "nsStringBundleService.h"
 #include "nsStringBundleTextOverride.h"
 
 // locale
 #include "nsLocaleConstructors.h"
 
 // uconv
 
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsJISx4051LineBreaker)
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsSampleWordBreaker)
 
 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStringBundleService, Init)
 NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsStringBundleTextOverride, Init)
 
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeNormalizer)
-
 NS_DEFINE_NAMED_CID(MOZ_LOCALESERVICE_CID);
 NS_DEFINE_NAMED_CID(MOZ_OSPREFERENCES_CID);
 NS_DEFINE_NAMED_CID(NS_LBRK_CID);
 NS_DEFINE_NAMED_CID(NS_WBRK_CID);
-NS_DEFINE_NAMED_CID(NS_UNICODE_NORMALIZER_CID);
 NS_DEFINE_NAMED_CID(NS_STRINGBUNDLESERVICE_CID);
 NS_DEFINE_NAMED_CID(NS_STRINGBUNDLETEXTOVERRIDE_CID);
 NS_DEFINE_NAMED_CID(NS_COLLATIONFACTORY_CID);
 NS_DEFINE_NAMED_CID(NS_PLATFORMCHARSET_CID);
 NS_DEFINE_NAMED_CID(NS_COLLATION_CID);
 
 static const mozilla::Module::CIDEntry kIntlCIDs[] = {
     { &kMOZ_LOCALESERVICE_CID, false, nullptr, mozilla::intl::LocaleServiceConstructor },
     { &kMOZ_OSPREFERENCES_CID, false, nullptr, mozilla::intl::OSPreferencesConstructor },
     { &kNS_LBRK_CID, false, nullptr, nsJISx4051LineBreakerConstructor },
     { &kNS_WBRK_CID, false, nullptr, nsSampleWordBreakerConstructor },
-    { &kNS_UNICODE_NORMALIZER_CID, false, nullptr, nsUnicodeNormalizerConstructor },
     { &kNS_STRINGBUNDLESERVICE_CID, false, nullptr, nsStringBundleServiceConstructor },
     { &kNS_STRINGBUNDLETEXTOVERRIDE_CID, false, nullptr, nsStringBundleTextOverrideConstructor },
     { &kNS_COLLATIONFACTORY_CID, false, nullptr, nsCollationFactoryConstructor },
     { &kNS_PLATFORMCHARSET_CID, false, nullptr, nsPlatformCharsetConstructor },
     { &kNS_COLLATION_CID, false, nullptr, nsCollationConstructor },
     { nullptr }
 };
 
 static const mozilla::Module::ContractIDEntry kIntlContracts[] = {
     { MOZ_LOCALESERVICE_CONTRACTID, &kMOZ_LOCALESERVICE_CID },
     { MOZ_OSPREFERENCES_CONTRACTID, &kMOZ_OSPREFERENCES_CID },
     { NS_LBRK_CONTRACTID, &kNS_LBRK_CID },
     { NS_WBRK_CONTRACTID, &kNS_WBRK_CID },
-    { NS_UNICODE_NORMALIZER_CONTRACTID, &kNS_UNICODE_NORMALIZER_CID },
     { NS_STRINGBUNDLE_CONTRACTID, &kNS_STRINGBUNDLESERVICE_CID },
     { NS_STRINGBUNDLETEXTOVERRIDE_CONTRACTID, &kNS_STRINGBUNDLETEXTOVERRIDE_CID },
     { NS_COLLATIONFACTORY_CONTRACTID, &kNS_COLLATIONFACTORY_CID },
     { NS_PLATFORMCHARSET_CONTRACTID, &kNS_PLATFORMCHARSET_CID },
     { NS_COLLATION_CONTRACTID, &kNS_COLLATION_CID },
     { nullptr }
 };
 
--- a/intl/unicharutil/moz.build
+++ b/intl/unicharutil/moz.build
@@ -1,28 +1,13 @@
 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
 # vim: set filetype=python:
 # 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/.
 
 DIRS += ['util']
-TEST_DIRS += ['tests']
-
-XPIDL_SOURCES += [
-    'nsIUnicodeNormalizer.idl',
-]
-
-XPIDL_MODULE = 'unicharutil'
 
 EXPORTS += [
     'nsUGenCategory.h',
-    'nsUnicodeNormalizer.h',
-]
-
-UNIFIED_SOURCES += [
-    'nsUnicodeNormalizer.cpp',
 ]
 
 FINAL_LIBRARY = 'xul'
-
-if CONFIG['GNU_CXX']:
-    CXXFLAGS += ['-Wno-error=shadow']
deleted file mode 100644
--- a/intl/unicharutil/nsIUnicodeNormalizer.idl
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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 "nsISupports.idl"
-
-%{C++
-#define NS_UNICODE_NORMALIZER_CID { 0xa665e49a, 0xf3e6, 0x4fed, { 0x9f, 0x31, 0xf7, 0xc5, 0x68, 0xa2, 0x98, 0x99 } }
-#define NS_UNICODE_NORMALIZER_CONTRACTID "@mozilla.org/intl/unicodenormalizer;1"
-%}
-
-[scriptable, uuid(B43A461F-1BCF-4329-820B-66E48C979E14)]
-interface nsIUnicodeNormalizer : nsISupports
-{
- /**
- * Normalize Unicode (NFD, NFC, NFKD, NFKC).
- *
- * NFD: Canonical Decomposition
- * NFC: Canonical Decomposition, followed by Canonical Composition
- * NFKD: Compatibility Decomposition
- * NFKC: Compatibility Decomposition, followed by Canonical Composition
- * Reference: Unicode Standard, TR15, Unicode Normalization Forms
- *
- * @param aSrc         [IN]  nsAString which contains an input UTF-16 string.
- * @param aDest        [OUT] A pointer to an output buffer provided by a callee.
- * @return             NS_OK for success, 
- */
-  void NormalizeUnicodeNFD(in AString aSrc, out AString aDest);
-  void NormalizeUnicodeNFC(in AString aSrc, out AString aDest);
-  void NormalizeUnicodeNFKD(in AString aSrc, out AString aDest);
-  void NormalizeUnicodeNFKC(in AString aSrc, out AString aDest);
-};
deleted file mode 100644
--- a/intl/unicharutil/nsUnicodeNormalizer.cpp
+++ /dev/null
@@ -1,91 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-
-/* 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 "nsUnicodeNormalizer.h"
-#include "ICUUtils.h"
-#include "unicode/unorm2.h"
-#include "unicode/utext.h"
-
-NS_IMPL_ISUPPORTS(nsUnicodeNormalizer, nsIUnicodeNormalizer)
-
-static nsresult
-DoNormalization(const UNormalizer2* aNorm, const nsAString& aSrc,
-                nsAString& aDest)
-{
-  UErrorCode errorCode = U_ZERO_ERROR;
-  const int32_t length = aSrc.Length();
-  const UChar* src = reinterpret_cast<const UChar*>(aSrc.BeginReading());
-  // Initial guess for a capacity that is likely to be enough for most cases.
-  int32_t capacity = length + (length >> 8) + 8;
-  while (true) {
-    aDest.SetLength(capacity);
-    UChar* dest = reinterpret_cast<UChar*>(aDest.BeginWriting());
-    int32_t len = unorm2_normalize(aNorm, src, aSrc.Length(), dest, capacity,
-                                   &errorCode);
-    if (U_SUCCESS(errorCode)) {
-      aDest.SetLength(len);
-      break;
-    }
-    if (errorCode != U_BUFFER_OVERFLOW_ERROR) {
-      // Some other error that we don't handle
-      break;
-    }
-    // Buffer wasn't big enough; adjust to the reported size and try again.
-    capacity = len;
-    errorCode = U_ZERO_ERROR;
-  }
-  return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFD(const nsAString& aSrc,
-                                         nsAString& aDest)
-{
-  // The unorm2_getNF*Instance functions return static singletons that should
-  // not be deleted, so we just get them once on first use.
-  static UErrorCode errorCode = U_ZERO_ERROR;
-  static const UNormalizer2* norm = unorm2_getNFDInstance(&errorCode);
-  if (U_SUCCESS(errorCode)) {
-    return DoNormalization(norm, aSrc, aDest);
-  }
-  return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFC(const nsAString& aSrc,
-                                         nsAString& aDest)
-{
-  static UErrorCode errorCode = U_ZERO_ERROR;
-  static const UNormalizer2* norm = unorm2_getNFCInstance(&errorCode);
-  if (U_SUCCESS(errorCode)) {
-    return DoNormalization(norm, aSrc, aDest);
-  }
-  return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFKD(const nsAString& aSrc,
-                                          nsAString& aDest)
-{
-  static UErrorCode errorCode = U_ZERO_ERROR;
-  static const UNormalizer2* norm = unorm2_getNFKDInstance(&errorCode);
-  if (U_SUCCESS(errorCode)) {
-    return DoNormalization(norm, aSrc, aDest);
-  }
-  return ICUUtils::UErrorToNsResult(errorCode);
-}
-
-nsresult
-nsUnicodeNormalizer::NormalizeUnicodeNFKC(const nsAString& aSrc,
-                                          nsAString& aDest)
-{
-  static UErrorCode errorCode = U_ZERO_ERROR;
-  static const UNormalizer2* norm = unorm2_getNFKCInstance(&errorCode);
-  if (U_SUCCESS(errorCode)) {
-    return DoNormalization(norm, aSrc, aDest);
-  }
-  return ICUUtils::UErrorToNsResult(errorCode);
-}
deleted file mode 100644
--- a/intl/unicharutil/nsUnicodeNormalizer.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* 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/. */
-
-#ifndef nsUnicodeNormalizer_h__
-#define nsUnicodeNormalizer_h__
-
-#include "nscore.h"
-#include "nsISupports.h"
-
-#include "nsIUnicodeNormalizer.h"
-
-nsresult NS_NewUnicodeNormalizer(nsISupports** oResult);
-
-
-class nsUnicodeNormalizer : public nsIUnicodeNormalizer {
-public:
-   nsUnicodeNormalizer() { }
-
-   NS_DECL_ISUPPORTS
-
-   NS_IMETHOD NormalizeUnicodeNFD( const nsAString& aSrc, nsAString& aDest) override;
-   NS_IMETHOD NormalizeUnicodeNFC( const nsAString& aSrc, nsAString& aDest) override;
-   NS_IMETHOD NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest) override;
-   NS_IMETHOD NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest) override;
-
-private:
-   virtual ~nsUnicodeNormalizer() { }
-};
-
-#endif //nsUnicodeNormalizer_h__
-
deleted file mode 100644
--- a/intl/unicharutil/tests/NormalizationData.h
+++ /dev/null
@@ -1,12 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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/. */
-
-/* dummy test data will be overwritten by generator */
-static char versionText[] = "\0";
-static testcaseLine Part0TestData[1];
-static testcaseLine Part1TestData[1];
-static testcaseLine Part2TestData[1];
-static testcaseLine Part3TestData[1];
-
deleted file mode 100644
--- a/intl/unicharutil/tests/NormalizationTest.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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 <stdio.h>
-#include "gtest/gtest.h"
-#include "nsXPCOM.h"
-#include "nsIUnicodeNormalizer.h"
-#include "nsString.h"
-#include "nsCharTraits.h"
-#include "nsServiceManagerUtils.h"
-#include "mozilla/Sprintf.h"
-
-struct testcaseLine {
-  wchar_t* c1;
-  wchar_t* c2;
-  wchar_t* c3;
-  wchar_t* c4;
-  wchar_t* c5;
-  char* description;
-};
-
-#ifdef DEBUG_smontagu
-#define DEBUG_NAMED_TESTCASE(t, s) \
-  printf(t ": "); \
-  for (uint32_t i = 0; i < s.Length(); ++i) \
-    printf("%x ", s.CharAt(i)); \
-  printf("\n")
-#else
-#define DEBUG_NAMED_TESTCASE(t, s)
-#endif
-
-#define DEBUG_TESTCASE(x) DEBUG_NAMED_TESTCASE(#x, x)
-
-#define NORMALIZE_AND_COMPARE(base, comparison, form, description) \
-   normalized.Truncate();\
-   normalizer->NormalizeUnicode##form(comparison, normalized);\
-   DEBUG_NAMED_TESTCASE(#form "(" #comparison ")", normalized);\
-   if (!base.Equals(normalized)) {\
-     rv = false;\
-     showError(description, #base " != " #form "(" #comparison ")\n");\
-   }
-
-NS_DEFINE_CID(kUnicodeNormalizerCID, NS_UNICODE_NORMALIZER_CID);
-
-nsIUnicodeNormalizer *normalizer;
-
-#include "NormalizationData.h"
-
-void showError(const char* description, const char* errorText)
-{
-  printf("%s failed: %s", description, errorText);
-}
-
-bool TestInvariants(testcaseLine* testLine)
-{
-  nsAutoString c1, c2, c3, c4, c5, normalized;
-  c1 = nsDependentString((char16_t*)testLine->c1);
-  c2 = nsDependentString((char16_t*)testLine->c2);
-  c3 = nsDependentString((char16_t*)testLine->c3);
-  c4 = nsDependentString((char16_t*)testLine->c4);
-  c5 = nsDependentString((char16_t*)testLine->c5);
-  bool rv = true;
-
-  /*
-    1. The following invariants must be true for all conformant implementations
-
-    NFC
-      c2 ==  NFC(c1) ==  NFC(c2) ==  NFC(c3)
-  */
-  DEBUG_TESTCASE(c2);
-  NORMALIZE_AND_COMPARE(c2, c1, NFC, testLine->description);
-  NORMALIZE_AND_COMPARE(c2, c2, NFC, testLine->description);
-  NORMALIZE_AND_COMPARE(c2, c3, NFC, testLine->description);
-
-  /*
-      c4 ==  NFC(c4) ==  NFC(c5)
-  */
-  DEBUG_TESTCASE(c4);
-  NORMALIZE_AND_COMPARE(c4, c4, NFC, testLine->description);
-  NORMALIZE_AND_COMPARE(c4, c5, NFC, testLine->description);
-
-  /*
-    NFD
-      c3 ==  NFD(c1) ==  NFD(c2) ==  NFD(c3)
-  */
-  DEBUG_TESTCASE(c3);
-  NORMALIZE_AND_COMPARE(c3, c1, NFD, testLine->description);
-  NORMALIZE_AND_COMPARE(c3, c2, NFD, testLine->description);
-  NORMALIZE_AND_COMPARE(c3, c3, NFD, testLine->description);
-  /*
-      c5 ==  NFD(c4) ==  NFD(c5)
-  */
-  DEBUG_TESTCASE(c5);
-  NORMALIZE_AND_COMPARE(c5, c4, NFD, testLine->description);
-  NORMALIZE_AND_COMPARE(c5, c5, NFD, testLine->description);
-
-  /*
-    NFKC
-      c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5)
-  */
-  DEBUG_TESTCASE(c4);
-  NORMALIZE_AND_COMPARE(c4, c1, NFKC, testLine->description);
-  NORMALIZE_AND_COMPARE(c4, c2, NFKC, testLine->description);
-  NORMALIZE_AND_COMPARE(c4, c3, NFKC, testLine->description);
-  NORMALIZE_AND_COMPARE(c4, c4, NFKC, testLine->description);
-  NORMALIZE_AND_COMPARE(c4, c5, NFKC, testLine->description);
-
-  /*
-    NFKD
-      c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5)
-  */
-  DEBUG_TESTCASE(c5);
-  NORMALIZE_AND_COMPARE(c5, c1, NFKD, testLine->description);
-  NORMALIZE_AND_COMPARE(c5, c2, NFKD, testLine->description);
-  NORMALIZE_AND_COMPARE(c5, c3, NFKD, testLine->description);
-  NORMALIZE_AND_COMPARE(c5, c4, NFKD, testLine->description);
-  NORMALIZE_AND_COMPARE(c5, c5, NFKD, testLine->description);
-
-  return rv;
-}
-
-uint32_t UTF32CodepointFromTestcase(testcaseLine* testLine)
-{
-  if (!IS_SURROGATE(testLine->c1[0]))
-    return testLine->c1[0];
-
-  NS_ASSERTION(NS_IS_HIGH_SURROGATE(testLine->c1[0]) &&
-               NS_IS_LOW_SURROGATE(testLine->c1[1]),
-               "Test data neither in BMP nor legal surrogate pair");
-  return SURROGATE_TO_UCS4(testLine->c1[0], testLine->c1[1]);
-}
-
-bool TestUnspecifiedCodepoint(uint32_t codepoint)
-{
-  bool rv = true;
-  char16_t unicharArray[3];
-  nsAutoString X, normalized;
-
-  if (IS_IN_BMP(codepoint)) {
-    unicharArray[0] = codepoint;
-    unicharArray[1] = 0;
-    X = nsDependentString(unicharArray);
-  }
-  else {
-    unicharArray[0] = H_SURROGATE(codepoint);
-    unicharArray[1] = L_SURROGATE(codepoint);
-    unicharArray[2] = 0;
-    X = nsDependentString(unicharArray);
-  }
-
-  /*
- 2. For every code point X assigned in this version of Unicode that is not specifically
-    listed in Part 1, the following invariants must be true for all conformant
-    implementations:
-
-      X == NFC(X) == NFD(X) == NFKC(X) == NFKD(X)
-  */
-  static const size_t len = 9;
-  char description[len];
-
-  DEBUG_TESTCASE(X);
-  snprintf(description, len, "U+%04X", codepoint);
-  NORMALIZE_AND_COMPARE(X, X, NFC, description);
-  NORMALIZE_AND_COMPARE(X, X, NFD, description);
-  NORMALIZE_AND_COMPARE(X, X, NFKC, description);
-  NORMALIZE_AND_COMPARE(X, X, NFKD, description);
-  return rv;
-}
-
-void TestPart0()
-{
-  printf("Test Part0: Specific cases\n");
-
-  uint32_t i = 0;
-  uint32_t numFailed = 0;
-  uint32_t numPassed = 0;
-
-  while (Part0TestData[i].c1[0] != 0) {
-    if (TestInvariants(&Part0TestData[i++]))
-      ++numPassed;
-    else
-      ++numFailed;
-  }
-  printf(" %d cases passed, %d failed\n\n", numPassed, numFailed);
-  EXPECT_EQ(0u, numFailed);
-}
-
-void TestPart1()
-{
-  printf("Test Part1: Character by character test\n");
-
-  uint32_t i = 0;
-  uint32_t numFailed = 0;
-  uint32_t numPassed = 0;
-  uint32_t codepoint;
-  uint32_t testDataCodepoint = UTF32CodepointFromTestcase(&Part1TestData[i]);
-
-  for (codepoint = 1; codepoint < 0x110000; ++codepoint) {
-    if (testDataCodepoint == codepoint) {
-      if (TestInvariants(&Part1TestData[i]))
-        ++numPassed;
-      else
-        ++numFailed;
-      testDataCodepoint = UTF32CodepointFromTestcase(&Part1TestData[++i]);
-    } else {
-      if (TestUnspecifiedCodepoint(codepoint))
-        ++numPassed;
-      else
-        ++numFailed;
-    }
-  }
-  printf(" %d cases passed, %d failed\n\n", numPassed, numFailed);
-  EXPECT_EQ(0u, numFailed);
-}
-
-void TestPart2()
-{
-  printf("Test Part2: Canonical Order Test\n");
-
-  uint32_t i = 0;
-  uint32_t numFailed = 0;
-  uint32_t numPassed = 0;
-
-  while (Part2TestData[i].c1[0] != 0) {
-    if (TestInvariants(&Part2TestData[i++]))
-      ++numPassed;
-    else
-      ++numFailed;
-  }
-  printf(" %d cases passed, %d failed\n\n", numPassed, numFailed);
-  EXPECT_EQ(0u, numFailed);
-}
-
-void TestPart3()
-{
-  printf("Test Part3: PRI #29 Test\n");
-
-  uint32_t i = 0;
-  uint32_t numFailed = 0;
-  uint32_t numPassed = 0;
-
-  while (Part3TestData[i].c1[0] != 0) {
-    if (TestInvariants(&Part3TestData[i++]))
-      ++numPassed;
-    else
-      ++numFailed;
-  }
-  printf(" %d cases passed, %d failed\n\n", numPassed, numFailed);
-  EXPECT_EQ(0u, numFailed);
-}
-
-TEST(NormalizationTest, Main) {
-  if (sizeof(wchar_t) != 2) {
-    printf("This test can only be run where sizeof(wchar_t) == 2\n");
-    return;
-  }
-  if (strlen(versionText) == 0) {
-    printf("No testcases: to run the tests generate the header file using\n");
-    printf(" perl genNormalizationData.pl\n");
-    printf("in intl/unichar/tools and rebuild\n");
-    return;
-  }
-
-  printf("NormalizationTest: test nsIUnicodeNormalizer. UCD version: %s\n",
-         versionText);
-
-  normalizer = nullptr;
-  nsresult res;
-  res = CallGetService(kUnicodeNormalizerCID, &normalizer);
-
-  ASSERT_FALSE(NS_FAILED(res)) << "GetService failed";
-  ASSERT_NE(nullptr, normalizer);
-
-  TestPart0();
-  TestPart1();
-  TestPart2();
-  TestPart3();
-
-  NS_RELEASE(normalizer);
-}
deleted file mode 100644
--- a/intl/unicharutil/tests/genNormalizationData.pl
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/usr/bin/perl 
-#
-# 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/.
-
-open ( TEXTFILE , "< NormalizationTest.txt")
-    || die "Cannot find NormalizationTest.txt. The latest version should be available from\n http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt\n";
-
-open ( OUT , "> NormalizationData.h")
-#open ( OUT , "> test.txt")
-    || die "Cannot create output file NormalizationData.h\n";
-
-$mpl = <<END_OF_MPL;
-/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* 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/. */
-/* 
-    DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
-    mozilla/intl/unicharutil/tools/genNormalizationData.pl
- */
-END_OF_MPL
-
-print OUT $mpl;
-
-# XXX This code assumes that wchar_t is 16-bit unsigned, which is currently
-#      true on Windows, Linux and Mac (with |g++ -fshort-wchar|).
-#      To make it work where that assumption doesn't hold, one could generate
-#      one huge array containing all the strings as 16-bit units (including
-#      the 0 terminator) and initialize the array of testcaseLine with pointers
-#      into the huge array.
-
-while(<TEXTFILE>) {
-    chop;
-    if (/^# NormalizationTest-(.+)\.txt/) {
-	print OUT "static char versionText[] = \"$1\";\n";
-    } elsif (/^\@Part(.)/) {
-	if ($1 != "0") {
-	    print OUT "  {\n";
-	    print OUT "    L\"\",\n";
-	    print OUT "    L\"\",\n";
-	    print OUT "    L\"\",\n";
-	    print OUT "    L\"\",\n";
-	    print OUT "    L\"\",\n";
-	    print OUT "    \"\",\n";
-	    print OUT "  },\n";
-	    print OUT "};\n";
-	}
-	print OUT "\n";
-	print OUT "static testcaseLine Part$1TestData[] = \n";
-	print OUT "{\n";
-    } else {
-	unless (/^\#/) {
-	    @cases = split(/;/ , $_);
-	    print OUT "  {\n";
-	    for ($case = 0; $case < 5; ++$case) {
-		$c = $cases[$case];
-		print OUT "    L\"";
-		@codepoints = split(/ / , $c);
-		foreach (@codepoints) {
-		    $cp = hex($_);
-		    if ($cp < 0x10000) {
-                      # BMP codepoint
-			printf OUT "\\x%04X", $cp;
-		    } else {
-                      # non-BMP codepoint, convert to surrogate pair
-			printf OUT "\\x%04X\\x%04X",
-			           ($cp >> 10) + 0xD7C0,
-			           ($cp & 0x03FF) | 0xDC00;
-		    }
-		}
-		print OUT "\",\n";
-	    }
-	    $description = $cases[10];
-	    $description =~ s/^ \) //;
-	    print OUT "    \"$description\"\n";
-	    print OUT "  },\n";
-	}
-    }
-}
- 
-print OUT "  {\n";
-print OUT "    L\"\",\n";
-print OUT "    L\"\",\n";
-print OUT "    L\"\",\n";
-print OUT "    L\"\",\n";
-print OUT "    L\"\",\n";
-print OUT "    \"\",\n";
-print OUT "  },\n";
-print OUT "};\n";
-close (OUT);
-close (TEXTFILE);
deleted file mode 100755
--- a/intl/unicharutil/tests/moz.build
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
-# vim: set filetype=python:
-# 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/.
-
-SOURCES += [
-    'NormalizationTest.cpp',
-]
-
-FINAL_LIBRARY = 'xul-gtest'
deleted file mode 100755
--- a/intl/unicharutil/tests/unit/xpcshell.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[DEFAULT]
-head = 
--- a/mobile/android/installer/package-manifest.in
+++ b/mobile/android/installer/package-manifest.in
@@ -230,17 +230,16 @@
 @BINPATH@/components/toolkit_xulstore.xpt
 @BINPATH@/components/toolkitprofile.xpt
 #ifdef MOZ_ENABLE_XREMOTE
 @BINPATH@/components/toolkitremote.xpt
 #endif
 @BINPATH@/components/txtsvc.xpt
 @BINPATH@/components/txmgr.xpt
 @BINPATH@/components/uconv.xpt
-@BINPATH@/components/unicharutil.xpt
 @BINPATH@/components/update.xpt
 @BINPATH@/components/uriloader.xpt
 @BINPATH@/components/urlformatter.xpt
 @BINPATH@/components/webBrowser_core.xpt
 @BINPATH@/components/webbrowserpersist.xpt
 @BINPATH@/components/webextensions.xpt
 @BINPATH@/components/widget.xpt
 @BINPATH@/components/widget_android.xpt