Backout changeset 97aca07b7f32 due to test failures, a=backout
authorSimon Montagu <smontagu@smontagu.org>
Sun, 07 Nov 2010 14:26:52 +0200
changeset 57061 241ff8dab5bc5618d6800834668006610bee9d4e
parent 57060 5f427b7d7b60ae51dc7887ffec69d47061e18b17
child 57062 28b1e8b3f538e79d5b7da735045d1b11b72b8743
push id16772
push usersmontagu@mozilla.com
push dateSun, 07 Nov 2010 12:28:22 +0000
treeherdermozilla-central@241ff8dab5bc [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbackout
milestone2.0b8pre
backs out97aca07b7f320e62f9dcbcbfb93dbaf1acdfd620
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
Backout changeset 97aca07b7f32 due to test failures, a=backout
gfx/thebes/gfxFontUtils.cpp
intl/uconv/idl/nsICharsetConverterManager.idl
intl/uconv/idl/nsIScriptableUConv.idl
intl/uconv/src/charsetData.properties
intl/uconv/src/nsCharsetConverterManager.cpp
intl/uconv/src/nsScriptableUConv.cpp
intl/uconv/src/nsScriptableUConv.h
intl/uconv/tests/unit/CharsetConversionTests.js
intl/uconv/tests/unit/test_bug601429.js
intl/uconv/tests/unit/test_decode_x_mac_arabic.js
intl/uconv/tests/unit/test_decode_x_mac_arabic_internal.js
intl/uconv/tests/unit/test_decode_x_mac_farsi.js
intl/uconv/tests/unit/test_decode_x_mac_farsi_internal.js
intl/uconv/tests/unit/test_decode_x_mac_hebrew.js
intl/uconv/tests/unit/test_decode_x_mac_hebrew_internal.js
intl/uconv/tests/unit/test_encode_x_mac_arabic.js
intl/uconv/tests/unit/test_encode_x_mac_arabic_internal.js
intl/uconv/tests/unit/test_encode_x_mac_farsi.js
intl/uconv/tests/unit/test_encode_x_mac_farsi_internal.js
intl/uconv/tests/unit/test_encode_x_mac_hebrew.js
intl/uconv/tests/unit/test_encode_x_mac_hebrew_internal.js
toolkit/locales/en-US/chrome/global/intl.properties
--- a/gfx/thebes/gfxFontUtils.cpp
+++ b/gfx/thebes/gfxFontUtils.cpp
@@ -1649,17 +1649,17 @@ gfxFontUtils::DecodeFontName(const PRUin
     nsCOMPtr<nsICharsetConverterManager> ccm =
         do_GetService(NS_CHARSETCONVERTERMANAGER_CONTRACTID, &rv);
     NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get charset converter manager");
     if (NS_FAILED(rv)) {
         return PR_FALSE;
     }
 
     nsCOMPtr<nsIUnicodeDecoder> decoder;
-    rv = ccm->GetUnicodeDecoderRawInternal(csName, getter_AddRefs(decoder));
+    rv = ccm->GetUnicodeDecoderRaw(csName, getter_AddRefs(decoder));
     if (NS_FAILED(rv)) {
         NS_WARNING("failed to get the decoder for a font name string");
         return PR_FALSE;
     }
 
     PRInt32 destLength;
     rv = decoder->GetMaxLength(reinterpret_cast<const char*>(aNameData), aByteLen, &destLength);
     if (NS_FAILED(rv)) {
--- a/intl/uconv/idl/nsICharsetConverterManager.idl
+++ b/intl/uconv/idl/nsICharsetConverterManager.idl
@@ -61,30 +61,25 @@ interface nsIUTF8StringEnumerator;
  *
  * Here Charsets are identified by ASCII strings. Charset alias
  * resolution is provided by default in most methods. "Raw"
  * versions that do not need this resolution are also provided.
  *
  * @created         21/Feb/2000
  * @author  Catalin Rotaru [CATA]
  */
-[scriptable, uuid(6aba73aa-be22-46a9-bf81-c117557f65b5)]
+[scriptable, uuid(f5323a76-c8f7-4c65-8d0c-1250e969c7d5)]
 interface nsICharsetConverterManager : nsISupports
 {
     /**
      * Get the Unicode decoder for the given charset.
      * The "Raw" version skips charset alias resolution
-     * The "Internal" version will return a decoder for any charset; the others
-     *  will return NS_ERROR_UCONV_NOCONV if the requested charsets is
-     *  vulnerable to XSS attacks and should not be used with untrusted input
      */
     nsIUnicodeDecoder getUnicodeDecoder(in string charset);
     nsIUnicodeDecoder getUnicodeDecoderRaw(in string charset);
-    nsIUnicodeDecoder getUnicodeDecoderInternal(in string charset);
-    nsIUnicodeDecoder getUnicodeDecoderRawInternal(in string charset);
 
     /**
      * Get the Unicode encoder for the given charset.
      * The "Raw" version skips charset alias resolution
      */
     nsIUnicodeEncoder getUnicodeEncoder(in string charset);
     nsIUnicodeEncoder getUnicodeEncoderRaw(in string charset);
 
@@ -113,21 +108,20 @@ interface nsICharsetConverterManager : n
      */
     AString getCharsetTitle(in string charset);
 
     /**
      * Get some data about the given charset. This includes whether the 
      * character encoding may be used for certain purposes, if it is 
      * multi-byte, and the language code for it. See charsetData.properties
      * for the source of this data. Some known property names:
-     *    notForBrowser  - not to be used in the browser.
+     *    notForBrowser  - not to be used in the bowser.
      *    notForOutgoing - not to be used for exporting files.
      *    LangGroup      - language code for charset, e.g. 'he' and 'zh-CN'.
      *    isMultibyte    - is this a multi-byte charset?
-     *    isXSSVulnerable - not to be used in untrusted web content
      * 
      * @param charset name of the character encoding, e.g. 'iso-8859-15'.
      * @param prop property desired for the character encoding.
      * @return the value of the property, for the character encoding.
      */
     AString getCharsetData(in string charset, 
                            in wstring prop);
 
--- a/intl/uconv/idl/nsIScriptableUConv.idl
+++ b/intl/uconv/idl/nsIScriptableUConv.idl
@@ -46,17 +46,17 @@ interface nsIInputStream;
 %}
 
 /**
  * This interface is a unicode encoder for use by scripts
  *
  * @created         8/Jun/2000
  * @author          Makoto Kato [m_kato@ga2.so-net.ne.jp]
  */
-[scriptable, uuid(f36ee324-5c1c-437f-ba10-2b4db7a18031)]
+[scriptable, uuid(1ea19c6c-c59f-4fd7-9fc7-151e946baca0)]
 interface nsIScriptableUnicodeConverter : nsISupports
 {
   /**
    * Converts the data from Unicode to one Charset.
    * Returns the converted string. After converting, Finish should be called
    * and its return value appended to this return value.
    */
   ACString ConvertFromUnicode(in AString aSrc);
@@ -96,18 +96,9 @@ interface nsIScriptableUnicodeConverter 
 
   /**
    * Current character set.
    *
    * @throw NS_ERROR_UCONV_NOCONV
    *        The requested charset is not supported.
    */
   attribute string charset;
-
-  /**
-   * Internal use
-   *
-   * When this attribute is set, all charsets may be accessed.
-   * When it is not set (the default), charsets with the isXSSVulnerable flag
-   *  may not be accessed
-   */
-  attribute boolean isInternal;
 };
--- a/intl/uconv/src/charsetData.properties
+++ b/intl/uconv/src/charsetData.properties
@@ -42,43 +42,32 @@
 
 ## Format of this file:
 ##
 ## charset_name.notForBrowser = anything  -  specifies that this charset is 
 ## not to be used in the browser
 ## charset_name.notForOutgoing = anything  -  specifies that this charset is 
 ## not to be used for exporting files ('SaveAsCharset' in composer)
 ##
-## charset_name.isXSSVulnerable = anything - specifies that this charset is
-## known to be vulnerable to XSS attacks and should not be exposed to web
-## content
-##
 ## charset_name.LangGroup = 
 ##
 ## charset_name.isMultibyte = multi byte charsets
 
 t.61-8bit.notForBrowser             = true
 x-imap4-modified-utf7.notForBrowser = true
 windows-936.notForBrowser           = true
 us-ascii.notForBrowser                  = true
 iso-8859-6-e.notForBrowser              = true
 iso-8859-6-i.notForBrowser              = true
 ibm864i.notForBrowser                   = true
 ibm869.notForBrowser                    = true
 ibm1125.notForBrowser                   = true
 ibm1131.notForBrowser                   = true
 iso-8859-8-e.notForBrowser              = true
 utf-7.notForBrowser                     = true
-x-mac-arabic.notForBrowser              = true
-x-mac-farsi.notForBrowser               = true
-x-mac-hebrew.notForBrowser              = true
-
-x-mac-arabic.isXSSVulnerable            = true
-x-mac-farsi.isXSSVulnerable             = true
-x-mac-hebrew.isXSSVulnerable            = true
 
 t.61-8bit.notForOutgoing             = true
 utf-7.notForOutgoing                 = true
 x-imap4-modified-utf7.notForOutgoing = true
 windows-936.notForOutgoing           = true
 us-ascii.notForOutgoing                  = true
 iso-8859-6-e.notForOutgoing              = true
 iso-8859-6-i.notForOutgoing              = true
--- a/intl/uconv/src/nsCharsetConverterManager.cpp
+++ b/intl/uconv/src/nsCharsetConverterManager.cpp
@@ -184,60 +184,32 @@ nsCharsetConverterManager::GetUnicodeEnc
   {
     *aResult = encoder.get();
     NS_ADDREF(*aResult);
   }
   return rv;
 }
 
 NS_IMETHODIMP
-nsCharsetConverterManager::GetUnicodeDecoderRaw(const char * aSrc,
-                                                nsIUnicodeDecoder ** aResult)
-{
-  nsresult rv;
-
-  nsAutoString str;
-  rv = GetCharsetData(aSrc, NS_LITERAL_STRING(".isXSSVulnerable").get(), str);
-  if (NS_SUCCEEDED(rv))
-    return NS_ERROR_UCONV_NOCONV;
-
-  return GetUnicodeDecoderRawInternal(aSrc, aResult);
-}
-
-NS_IMETHODIMP
 nsCharsetConverterManager::GetUnicodeDecoder(const char * aSrc, 
                                              nsIUnicodeDecoder ** aResult)
 {
   // resolve the charset first
   nsCAutoString charset;
   
   // fully qualify to possibly avoid vtable call
   nsCharsetConverterManager::GetCharsetAlias(aSrc, charset);
 
   return nsCharsetConverterManager::GetUnicodeDecoderRaw(charset.get(),
                                                          aResult);
 }
 
 NS_IMETHODIMP
-nsCharsetConverterManager::GetUnicodeDecoderInternal(const char * aSrc, 
-                                                     nsIUnicodeDecoder ** aResult)
-{
-  // resolve the charset first
-  nsCAutoString charset;
-  
-  // fully qualify to possibly avoid vtable call
-  nsCharsetConverterManager::GetCharsetAlias(aSrc, charset);
-
-  return nsCharsetConverterManager::GetUnicodeDecoderRawInternal(charset.get(),
-                                                                 aResult);
-}
-
-NS_IMETHODIMP
-nsCharsetConverterManager::GetUnicodeDecoderRawInternal(const char * aSrc, 
-                                                        nsIUnicodeDecoder ** aResult)
+nsCharsetConverterManager::GetUnicodeDecoderRaw(const char * aSrc, 
+                                                nsIUnicodeDecoder ** aResult)
 {
   *aResult= nsnull;
   nsCOMPtr<nsIUnicodeDecoder> decoder;
 
 #ifdef MOZ_USE_NATIVE_UCONV
   if (mNativeUC) {
     nsCOMPtr<nsISupports> supports;
     mNativeUC->GetNativeConverter(aSrc,
--- a/intl/uconv/src/nsScriptableUConv.cpp
+++ b/intl/uconv/src/nsScriptableUConv.cpp
@@ -51,17 +51,16 @@
 #include "nsIPlatformCharset.h"
 
 static PRInt32          gInstanceCount = 0;
 
 /* Implementation file */
 NS_IMPL_ISUPPORTS1(nsScriptableUnicodeConverter, nsIScriptableUnicodeConverter)
 
 nsScriptableUnicodeConverter::nsScriptableUnicodeConverter()
-: mIsInternal(PR_FALSE)
 {
   PR_AtomicIncrement(&gInstanceCount);
 }
 
 nsScriptableUnicodeConverter::~nsScriptableUnicodeConverter()
 {
   PR_AtomicDecrement(&gInstanceCount);
 }
@@ -267,49 +266,31 @@ nsScriptableUnicodeConverter::GetCharset
 
 NS_IMETHODIMP
 nsScriptableUnicodeConverter::SetCharset(const char * aCharset)
 {
   mCharset.Assign(aCharset);
   return InitConverter();
 }
 
-NS_IMETHODIMP
-nsScriptableUnicodeConverter::GetIsInternal(PRBool *aIsInternal)
-{
-  *aIsInternal = mIsInternal;
-  return NS_OK;
-}
-
-NS_IMETHODIMP
-nsScriptableUnicodeConverter::SetIsInternal(const PRBool aIsInternal)
-{
-  mIsInternal = aIsInternal;
-  return NS_OK;
-}
-
 nsresult
 nsScriptableUnicodeConverter::InitConverter()
 {
   nsresult rv = NS_OK;
   mEncoder = NULL ;
 
   nsCOMPtr<nsICharsetConverterManager> ccm = do_GetService(NS_CHARSETCONVERTERMANAGER_CONTRACTID, &rv);
 
   if (NS_SUCCEEDED( rv) && (nsnull != ccm)) {
     // get charset atom due to getting unicode converter
     
     // get an unicode converter
     rv = ccm->GetUnicodeEncoder(mCharset.get(), getter_AddRefs(mEncoder));
     if(NS_SUCCEEDED(rv)) {
       rv = mEncoder->SetOutputErrorBehavior(nsIUnicodeEncoder::kOnError_Replace, nsnull, (PRUnichar)'?');
       if(NS_SUCCEEDED(rv)) {
-        rv = mIsInternal ?
-          ccm->GetUnicodeDecoderInternal(mCharset.get(),
-                                         getter_AddRefs(mDecoder)) :
-          ccm->GetUnicodeDecoder(mCharset.get(),
-                                 getter_AddRefs(mDecoder));
+        rv = ccm->GetUnicodeDecoder(mCharset.get(), getter_AddRefs(mDecoder));
       }
     }
   }
 
   return rv ;
 }
--- a/intl/uconv/src/nsScriptableUConv.h
+++ b/intl/uconv/src/nsScriptableUConv.h
@@ -52,17 +52,16 @@ public:
 
   nsScriptableUnicodeConverter();
   virtual ~nsScriptableUnicodeConverter();
 
 protected:
   nsCString mCharset;
   nsCOMPtr<nsIUnicodeEncoder> mEncoder;
   nsCOMPtr<nsIUnicodeDecoder> mDecoder;
-  PRPackedBool mIsInternal;
 
   nsresult FinishWithLength(char **_retval, PRInt32* aLength);
   nsresult ConvertFromUnicodeWithLength(const nsAString& aSrc,
                                         PRInt32* aOutLen,
                                         char **_retval);
 
 
   nsresult InitConverter();
--- a/intl/uconv/tests/unit/CharsetConversionTests.js
+++ b/intl/uconv/tests/unit/CharsetConversionTests.js
@@ -8,38 +8,30 @@ function CreateScriptableConverter()
     CC("@mozilla.org/intl/scriptableunicodeconverter",
        "nsIScriptableUnicodeConverter");
 
   return new ScriptableUnicodeConverter();
 }
 
 function checkDecode(converter, charset, inText, expectedText)
 {
-  try {
-    converter.charset = charset;
-  } catch(e) {
-    converter.charset = "iso-8859-1";
-  }
+  converter.charset = charset;
 
   dump("testing decoding from " + charset + " to Unicode.\n");
   try {
     var outText = converter.ConvertToUnicode(inText) + converter.Finish();
   } catch(e) {
     outText = "\ufffd";
   }
   do_check_eq(outText, expectedText);
 }
 
 function checkEncode(converter, charset, inText, expectedText)
 {
-  try {
-    converter.charset = charset;
-  } catch(e) {
-    converter.charset = "iso-8859-1";
-  }
+  converter.charset = charset;
 
   dump("testing encoding from Unicode to " + charset + "\n");
   var outText = converter.ConvertFromUnicode(inText) + converter.Finish();
   do_check_eq(outText, expectedText);
 }
 
 function testDecodeAliases()
 {
@@ -51,26 +43,8 @@ function testDecodeAliases()
 
 function testEncodeAliases()
 {
   var converter = CreateScriptableConverter();
   for (var i = 0; i < aliases.length; ++i) {
     checkEncode(converter, aliases[i], inString, expectedString);
   }
 }
-
-function testDecodeAliasesInternal()
-{
-  var converter = CreateScriptableConverter();
-  converter.isInternal = true;
-  for (var i = 0; i < aliases.length; ++i) {
-    checkDecode(converter, aliases[i], inString, expectedString);
-  }
-}
-
-function testEncodeAliasesInternal()
-{
-  var converter = CreateScriptableConverter();
-  converter.isInternal = true;
-  for (var i = 0; i < aliases.length; ++i) {
-    checkEncode(converter, aliases[i], inString, expectedString);
-  }
-}
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_bug601429.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// Tests whether characters above 0x7F decode to ASCII characters liable to 
-// expose XSS vulnerabilities
-load('CharsetConversionTests.js');
-
-function run_test() {
-  var failures = false;
-  var ccManager = Cc["@mozilla.org/charset-converter-manager;1"]
-        .getService(Ci.nsICharsetConverterManager);
-  var decodingConverter = CreateScriptableConverter();
-
-  var charsetList = ccManager.getDecoderList();
-  var counter = 0;
-  while (charsetList.hasMore()) {
-    ++counter;
-    var charset = charsetList.getNext();
-    dump("testing " + counter + " " + charset + "\n");
-      
-    try {
-      decodingConverter.charset = charset;
-    } catch(e) {
-      dump("Warning: couldn't set decoder charset to " + charset + "\n");
-      continue;
-    }
-    for (var i = 0x80; i < 0x100; ++i) {
-      var inString = String.fromCharCode(i);
-      var outString;
-      try {
-	outString = decodingConverter.ConvertToUnicode(inString) +
-	                decodingConverter.Finish();
-      } catch(e) {
-	outString = String.fromCharCode(0xFFFD);
-      }
-      for (var n = 0; n < outString.length; ++n) {
-	var outChar = outString.charAt(n);
-	if (outChar == '<' || outChar == '>' || outChar == '/') {
-	  dump(charset + " has a problem: " + escape(inString) +
-	       " decodes to '" + outString + "'\n");
-	  failures = true;
-	}
-      }
-    }
-  }
-  if (failures) {
-    do_throw("test failed\n");
-  }
-}
--- a/intl/uconv/tests/unit/test_decode_x_mac_arabic.js
+++ b/intl/uconv/tests/unit/test_decode_x_mac_arabic.js
@@ -1,15 +1,13 @@
 // Tests conversion from x-mac-arabic to Unicode
-// Support for this charset was removed in bug 601429, so it should fall back
-// to default.
 	
 load('CharsetConversionTests.js');
 	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
     
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff";
+const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
 
 const aliases = [ "x-mac-arabic" ];
 
 function run_test() {
   testDecodeAliases();
 }
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_decode_x_mac_arabic_internal.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests conversion from x-mac-arabic to Unicode
-	
-load('CharsetConversionTests.js');
-	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
-    
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
-
-const aliases = [ "x-mac-arabic" ];
-
-function run_test() {
-  testDecodeAliasesInternal();
-}
--- a/intl/uconv/tests/unit/test_decode_x_mac_farsi.js
+++ b/intl/uconv/tests/unit/test_decode_x_mac_farsi.js
@@ -1,15 +1,13 @@
 // Tests conversion from x-mac-farsi to Unicode
-// Support for this charset was removed in bug 601429, so it should fall back
-// to default.
 	
 load('CharsetConversionTests.js');
 	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
     
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff";
+const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
 
 const aliases = [ "x-mac-farsi" ];
 
 function run_test() {
   testDecodeAliases();
 }
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_decode_x_mac_farsi_internal.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests conversion from x-mac-farsi to Unicode
-	
-load('CharsetConversionTests.js');
-	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
-    
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
-
-const aliases = [ "x-mac-farsi" ];
-
-function run_test() {
-  testDecodeAliasesInternal();
-}
--- a/intl/uconv/tests/unit/test_decode_x_mac_hebrew.js
+++ b/intl/uconv/tests/unit/test_decode_x_mac_hebrew.js
@@ -1,15 +1,13 @@
 // Tests conversion from x-mac-hebrew to Unicode
-// Support for this charset was removed in bug 601429, so it should fall back
-// to default.
 	
 load('CharsetConversionTests.js');
 	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
     
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff";
+const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\ufb1f\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u00e3\u00e5\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u00ec\u00ee\u00ef\u00f1\u00f3\u00f2\u00f4\u00f6\u00f5\u00fa\u00f9\u00fb\u00fc !\"#$%\u20aa'()*+,-./0123456789:;<=>?\ufffd\u201e\uf89b\uf89c\uf89d\uf89e\u05bc\ufb4b\ufb35\u2026\u00a0\u05b8\u05b7\u05b5\u05b6\u05b4\u2013\u2014\u201c\u201d\u2018\u2019\ufb2a\ufb2b\u05bf\u05b0\u05b2\u05b1\u05bb\u05b9\ufffd\u05b3\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea}]{[|";
 
 const aliases = [ "x-mac-hebrew" ];
 
 function run_test() {
   testDecodeAliases();
 }
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_decode_x_mac_hebrew_internal.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests conversion from x-mac-hebrew to Unicode
-	
-load('CharsetConversionTests.js');
-	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
-    
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\ufb1f\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u00e3\u00e5\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u00ec\u00ee\u00ef\u00f1\u00f3\u00f2\u00f4\u00f6\u00f5\u00fa\u00f9\u00fb\u00fc !\"#$%\u20aa'()*+,-./0123456789:;<=>?\ufffd\u201e\uf89b\uf89c\uf89d\uf89e\u05bc\ufb4b\ufb35\u2026\u00a0\u05b8\u05b7\u05b5\u05b6\u05b4\u2013\u2014\u201c\u201d\u2018\u2019\ufb2a\ufb2b\u05bf\u05b0\u05b2\u05b1\u05bb\u05b9\ufffd\u05b3\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea}]{[|";
-
-const aliases = [ "x-mac-hebrew" ];
-
-function run_test() {
-  testDecodeAliasesInternal();
-}
--- a/intl/uconv/tests/unit/test_encode_x_mac_arabic.js
+++ b/intl/uconv/tests/unit/test_encode_x_mac_arabic.js
@@ -1,15 +1,13 @@
 // Tests conversion from Unicode to x-mac-arabic
-// Support for this charset was removed in bug 601429, so it should fall back
-// to default.
-	
+
 load('CharsetConversionTests.js');
 	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff";
+const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
     
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$&'()*+-./:<=>[\\]^_{|}";
 
 const aliases = [ "x-mac-arabic" ];
 
 function run_test() {
   testEncodeAliases();
 }
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_encode_x_mac_arabic_internal.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests conversion from Unicode to x-mac-arabic
-
-load('CharsetConversionTests.js');
-	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
-    
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$&'()*+-./:<=>[\\]^_{|}";
-
-const aliases = [ "x-mac-arabic" ];
-
-function run_test() {
-  testEncodeAliasesInternal();
-}
--- a/intl/uconv/tests/unit/test_encode_x_mac_farsi.js
+++ b/intl/uconv/tests/unit/test_encode_x_mac_farsi.js
@@ -1,15 +1,13 @@
 // Tests conversion from Unicode to x-mac-farsi
-// Support for this charset was removed in bug 601429, so it should fall back
-// to default.
-	
+
 load('CharsetConversionTests.js');
 	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff";
+const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
     
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$&'()*+-./:<=>[\\]^_{|}";
 
 const aliases = [ "x-mac-farsi" ];
 
 function run_test() {
   testEncodeAliases();
 }
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_encode_x_mac_farsi_internal.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests conversion from Unicode to x-mac-farsi
-
-load('CharsetConversionTests.js');
-	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\u00a0\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u06ba\u00ab\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u2026\u00ee\u00ef\u00f1\u00f3\u00bb\u00f4\u00f6\u00f7\u00fa\u00f9\u00fb\u00fc !\"#$\u066a&'()*+\u060c-./\u06f0\u06f1\u06f2\u06f3\u06f4\u06f5\u06f6\u06f7\u06f8\u06f9:\u061b<=>\u061f\u274a\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062a\u062b\u062c\u062d\u062e\u062f\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063a[\\]^_\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064a\u064b\u064c\u064d\u064e\u064f\u0650\u0651\u0652\u067e\u0679\u0686\u06d5\u06a4\u06af\u0688\u0691{|}\u0698\u06d2";
-    
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$&'()*+-./:<=>[\\]^_{|}";
-
-const aliases = [ "x-mac-farsi" ];
-
-function run_test() {
-  testEncodeAliasesInternal();
-}
--- a/intl/uconv/tests/unit/test_encode_x_mac_hebrew.js
+++ b/intl/uconv/tests/unit/test_encode_x_mac_hebrew.js
@@ -1,15 +1,13 @@
 // Tests conversion from Unicode to x-mac-hebrew
-// Support for this charset was removed in bug 601429, so it should fall back
-// to default.
 	
 load('CharsetConversionTests.js');
 	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00a0\u00a1\u00a2\u00a3\u00a4\u00a5\u00a6\u00a7\u00a8\u00a9\u00aa\u00ab\u00ac\u00ad\u00ae\u00af\u00b0\u00b1\u00b2\u00b3\u00b4\u00b5\u00b6\u00b7\u00b8\u00b9\u00ba\u00bb\u00bc\u00bd\u00be\u00bf\u00c0\u00c1\u00c2\u00c3\u00c4\u00c5\u00c6\u00c7\u00c8\u00c9\u00ca\u00cb\u00cc\u00cd\u00ce\u00cf\u00d0\u00d1\u00d2\u00d3\u00d4\u00d5\u00d6\u00d7\u00d8\u00d9\u00da\u00db\u00dc\u00dd\u00de\u00df\u00e0\u00e1\u00e2\u00e3\u00e4\u00e5\u00e6\u00e7\u00e8\u00e9\u00ea\u00eb\u00ec\u00ed\u00ee\u00ef\u00f0\u00f1\u00f2\u00f3\u00f4\u00f5\u00f6\u00f7\u00f8\u00f9\u00fa\u00fb\u00fc\u00fd\u00fe\u00ff";
+const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\ufb1f\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u00e3\u00e5\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u00ec\u00ee\u00ef\u00f1\u00f3\u00f2\u00f4\u00f6\u00f5\u00fa\u00f9\u00fb\u00fc\u20aa\u201e\uf89b\uf89c\uf89d\uf89e\u05bc\ufb4b\ufb35\u2026\u00a0\u05b8\u05b7\u05b5\u05b6\u05b4\u2013\u2014\u201c\u201d\u2018\u2019\ufb2a\ufb2b\u05bf\u05b0\u05b2\u05b1\u05bb\u05b9\u05b3\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea";
     
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
+const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
 
 const aliases = [ "x-mac-hebrew" ];
 
 function run_test() {
   testEncodeAliases();
 }
deleted file mode 100644
--- a/intl/uconv/tests/unit/test_encode_x_mac_hebrew_internal.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests conversion from Unicode to x-mac-hebrew
-	
-load('CharsetConversionTests.js');
-	
-const inString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u00c4\ufb1f\u00c7\u00c9\u00d1\u00d6\u00dc\u00e1\u00e0\u00e2\u00e4\u00e3\u00e5\u00e7\u00e9\u00e8\u00ea\u00eb\u00ed\u00ec\u00ee\u00ef\u00f1\u00f3\u00f2\u00f4\u00f6\u00f5\u00fa\u00f9\u00fb\u00fc\u20aa\u201e\uf89b\uf89c\uf89d\uf89e\u05bc\ufb4b\ufb35\u2026\u00a0\u05b8\u05b7\u05b5\u05b6\u05b4\u2013\u2014\u201c\u201d\u2018\u2019\ufb2a\ufb2b\u05bf\u05b0\u05b2\u05b1\u05bb\u05b9\u05b3\u05d0\u05d1\u05d2\u05d3\u05d4\u05d5\u05d6\u05d7\u05d8\u05d9\u05da\u05db\u05dc\u05dd\u05de\u05df\u05e0\u05e1\u05e2\u05e3\u05e4\u05e5\u05e6\u05e7\u05e8\u05e9\u05ea";
-    
-const expectedString = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
-
-const aliases = [ "x-mac-hebrew" ];
-
-function run_test() {
-  testEncodeAliasesInternal();
-}
--- a/toolkit/locales/en-US/chrome/global/intl.properties
+++ b/toolkit/locales/en-US/chrome/global/intl.properties
@@ -22,16 +22,16 @@ font.language.group=x-western
 # leaving "en-us, en" for fallback. It's recommended to use the same form, e.g.
 # "ja-jp, ja, en-us, en"
 intl.accept_languages=en-us, en
 intl.charsetmenu.browser.static=ISO-8859-1, UTF-8
 intl.charsetmenu.browser.more1=ISO-8859-1, ISO-8859-15, IBM850, x-mac-roman, windows-1252, ISO-8859-14, ISO-8859-7, x-mac-greek, windows-1253, x-mac-icelandic, ISO-8859-10, ISO-8859-3
 intl.charsetmenu.browser.more2=ISO-8859-4, ISO-8859-13, windows-1257, IBM852, ISO-8859-2, x-mac-ce, windows-1250, x-mac-croatian, IBM855, ISO-8859-5, ISO-IR-111, KOI8-R, x-mac-cyrillic, windows-1251, IBM866, KOI8-U, x-mac-ukrainian, ISO-8859-16, x-mac-romanian
 intl.charsetmenu.browser.more3=GB2312, x-gbk, gb18030, HZ-GB-2312, ISO-2022-CN, Big5, Big5-HKSCS, x-euc-tw, EUC-JP, ISO-2022-JP, Shift_JIS, EUC-KR, x-windows-949, x-johab, ISO-2022-KR
 intl.charsetmenu.browser.more4=armscii-8, GEOSTD8, TIS-620, ISO-8859-11, windows-874, IBM857, ISO-8859-9, x-mac-turkish, windows-1254, x-viet-tcvn5712, VISCII, x-viet-vps, windows-1258, x-mac-devanagari, x-mac-gujarati, x-mac-gurmukhi
-intl.charsetmenu.browser.more5=ISO-8859-6, windows-1256, IBM864, ISO-8859-8-I, windows-1255, ISO-8859-8, IBM862
+intl.charsetmenu.browser.more5=ISO-8859-6, windows-1256, IBM864, x-mac-arabic, x-mac-farsi, ISO-8859-8-I, windows-1255, ISO-8859-8, IBM862, x-mac-hebrew
 intl.charset.default=ISO-8859-1
 intl.charset.detector=
 intl.charsetmenu.mailedit=ISO-8859-1, ISO-8859-15, ISO-8859-6, armscii-8, geostd8, ISO-8859-13, ISO-8859-14, ISO-8859-2, GB2312, GB18030, Big5, KOI8-R, windows-1251, KOI8-U, ISO-8859-7, ISO-8859-8-I, windows-1255, ISO-2022-JP, EUC-KR, ISO-8859-10, ISO-8859-3, TIS-620, ISO-8859-9, UTF-8, VISCII
 # valid intl.menuitems.appendedacceskeys are: true or false, <empty string> (missing or empty preference equals false)
 intl.menuitems.alwaysappendaccesskeys=
 # valid intl.menuitems.insertseparatorbeforeaccesskeys are: true or false, <empty string> (missing or empty preference equals false)
 intl.menuitems.insertseparatorbeforeaccesskeys=true