Commit 93dd8013 authored by marja@chromium.org's avatar marja@chromium.org

Remove unused text encoding quirks.

1) Remove more Backslash-as-JPY hacks (some encodings interpret backslash as yen
sign).

The code was added in https://bugs.webkit.org/show_bug.cgi?id=49714 (r73566).

The test used to be
editing/selection/find-yensign-and-backslash-with-japanese-fonts-expected.html

The feature was removed by https://codereview.chromium.org/27030014 (r159589),
but the removal was incomplete. This CL removes the leftover code and test
expectation files (the corresponding tests were removed by r159589).

2) Remove isJapaneseEncoding from TextEncodingRegistry.cpp; it was dead
code. There used to be bool TextEncoding::isJapanese() (see r16245) which was
used by WebCore/loader/Decoder.cpp... but TextEncoding::isJapanese no longer
exists, and isJapaneseEncoding appears not to be used any more.

BUG=
R=abarth@chromium.org, jshin@chromium.org

Review URL: https://codereview.chromium.org/335803002

git-svn-id: svn://svn.chromium.org/blink/trunk@176407 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 63ca57e9
\-in-body
Results
We can find a backslash in EUC-JP page by finding a yen sign: PASS
We can find a backslash in EUC-JP text control by finding a yen sign: PASS
We can find a backslash in Shift_JIS page by finding a yen sign: PASS
We can find a backslash in Shift_JIS text control by finding a yen sign: PASS
We can find a backslash in ISO-2022-JP page by finding a yen sign: PASS
We can find a backslash in ISO-2022-JP text control by finding a yen sign: PASS
We can NOT find a backslash in UTF8 page by finding a yen sign: PASS
We can NOT find a backslash in UTF8 text control by finding a yen sign: PASS
No specified font + yen sign: PASS
No specified font + backslash: PASS
MS PGothic + yen sign: PASS
MS PGothic + backslash: PASS
MS Gothic + yen sign: PASS
MS Gothic + backslash: PASS
MS PMincho + yen sign: PASS
MS PMincho + backslash: PASS
MS Mincho + yen sign: PASS
MS Mincho + backslash: PASS
Meiryo + yen sign: PASS
Meiryo + backslash: PASS
MS Pゴシック + yen sign: PASS
MS Pゴシック + backslash: PASS
MS ゴシック + yen sign: PASS
MS ゴシック + backslash: PASS
MS P明朝 + yen sign: PASS
MS P明朝 + backslash: PASS
MS 明朝 + yen sign: PASS
MS 明朝 + backslash: PASS
メイリオ + yen sign: PASS
メイリオ + backslash: PASS
Times + yen sign: PASS
Times + backslash: PASS
foobar + yen sign: PASS
foobar + backslash: PASS
......@@ -45,7 +45,6 @@ static const TextEncoding& UTF7Encoding()
TextEncoding::TextEncoding(const char* name)
: m_name(atomicCanonicalTextEncodingName(name))
, m_backslashAsCurrencySymbol(backslashAsCurrencySymbol())
{
// Aliases are valid, but not "replacement" itself.
if (m_name && isReplacementEncoding(name))
......@@ -54,7 +53,6 @@ TextEncoding::TextEncoding(const char* name)
TextEncoding::TextEncoding(const String& name)
: m_name(atomicCanonicalTextEncodingName(name))
, m_backslashAsCurrencySymbol(backslashAsCurrencySymbol())
{
// Aliases are valid, but not "replacement" itself.
if (m_name && isReplacementEncoding(name))
......@@ -134,11 +132,6 @@ bool TextEncoding::usesVisualOrdering() const
return m_name == a;
}
UChar TextEncoding::backslashAsCurrencySymbol() const
{
return shouldShowBackslashAsCurrencySymbolIn(m_name) ? 0x00A5 : '\\';
}
bool TextEncoding::isNonByteBasedEncoding() const
{
if (noExtendedTextEncodingNameUsed()) {
......
......@@ -58,14 +58,11 @@ public:
// Applies Unicode NFC normalization, then encodes the normalized string.
CString normalizeAndEncode(const String&, UnencodableHandling) const;
UChar backslashAsCurrencySymbol() const;
private:
bool isNonByteBasedEncoding() const;
bool isUTF7Encoding() const;
const char* m_name;
UChar m_backslashAsCurrencySymbol;
};
inline bool operator==(const TextEncoding& a, const TextEncoding& b) { return a.name() == b.name(); }
......
......@@ -116,8 +116,6 @@ static Mutex& encodingRegistryMutex()
static TextEncodingNameMap* textEncodingNameMap;
static TextCodecMap* textCodecMap;
static bool didExtendTextCodecMaps;
static HashSet<const char*>* japaneseEncodings;
static HashSet<const char*>* nonBackslashEncodings;
static const char textEncodingNameBlacklist[][6] = { "UTF-7" };
......@@ -221,54 +219,6 @@ static void buildBaseTextCodecMaps()
TextCodecUserDefined::registerCodecs(addToTextCodecMap);
}
static void addEncodingName(HashSet<const char*>* set, const char* name)
{
// We must not use atomicCanonicalTextEncodingName() because this function is called in it.
const char* atomicName = textEncodingNameMap->get(name);
if (atomicName)
set->add(atomicName);
}
static void buildQuirksSets()
{
// FIXME: Having isJapaneseEncoding() and shouldShowBackslashAsCurrencySymbolIn()
// and initializing the sets for them in TextEncodingRegistry.cpp look strange.
ASSERT(!japaneseEncodings);
ASSERT(!nonBackslashEncodings);
japaneseEncodings = new HashSet<const char*>;
addEncodingName(japaneseEncodings, "EUC-JP");
addEncodingName(japaneseEncodings, "ISO-2022-JP");
addEncodingName(japaneseEncodings, "ISO-2022-JP-1");
addEncodingName(japaneseEncodings, "ISO-2022-JP-2");
addEncodingName(japaneseEncodings, "ISO-2022-JP-3");
addEncodingName(japaneseEncodings, "JIS_C6226-1978");
addEncodingName(japaneseEncodings, "JIS_X0201");
addEncodingName(japaneseEncodings, "JIS_X0208-1983");
addEncodingName(japaneseEncodings, "JIS_X0208-1990");
addEncodingName(japaneseEncodings, "JIS_X0212-1990");
addEncodingName(japaneseEncodings, "Shift_JIS");
addEncodingName(japaneseEncodings, "Shift_JIS_X0213-2000");
addEncodingName(japaneseEncodings, "cp932");
addEncodingName(japaneseEncodings, "x-mac-japanese");
nonBackslashEncodings = new HashSet<const char*>;
// The text encodings below treat backslash as a currency symbol for IE compatibility.
// See http://blogs.msdn.com/michkap/archive/2005/09/17/469941.aspx for more information.
addEncodingName(nonBackslashEncodings, "x-mac-japanese");
addEncodingName(nonBackslashEncodings, "ISO-2022-JP");
addEncodingName(nonBackslashEncodings, "EUC-JP");
// Shift_JIS_X0213-2000 is not the same encoding as Shift_JIS on Mac. We need to register both of them.
addEncodingName(nonBackslashEncodings, "Shift_JIS");
addEncodingName(nonBackslashEncodings, "Shift_JIS_X0213-2000");
}
bool isJapaneseEncoding(const char* canonicalEncodingName)
{
return canonicalEncodingName && japaneseEncodings && japaneseEncodings->contains(canonicalEncodingName);
}
bool isReplacementEncoding(const char* alias)
{
return alias && !strcasecmp(alias, "replacement");
......@@ -279,11 +229,6 @@ bool isReplacementEncoding(const String& alias)
return alias == "replacement";
}
bool shouldShowBackslashAsCurrencySymbolIn(const char* canonicalEncodingName)
{
return canonicalEncodingName && nonBackslashEncodings && nonBackslashEncodings->contains(canonicalEncodingName);
}
static void extendTextCodecMaps()
{
TextCodecReplacement::registerEncodingNames(addToTextEncodingNameMap);
......@@ -293,7 +238,6 @@ static void extendTextCodecMaps()
TextCodecICU::registerCodecs(addToTextCodecMap);
pruneBlacklistedCodecs();
buildQuirksSets();
}
PassOwnPtr<TextCodec> newTextCodec(const TextEncoding& encoding)
......
......@@ -46,8 +46,6 @@ template <typename CharacterType>
const char* atomicCanonicalTextEncodingName(const CharacterType*, size_t);
const char* atomicCanonicalTextEncodingName(const String&);
bool noExtendedTextEncodingNameUsed();
bool isJapaneseEncoding(const char* canonicalEncodingName);
bool shouldShowBackslashAsCurrencySymbolIn(const char* canonicalEncodingName);
bool isReplacementEncoding(const char* alias);
bool isReplacementEncoding(const String& alias);
......@@ -60,8 +58,6 @@ void dumpTextEncodingNameMap();
using WTF::newTextCodec;
using WTF::atomicCanonicalTextEncodingName;
using WTF::noExtendedTextEncodingNameUsed;
using WTF::isJapaneseEncoding;
using WTF::shouldShowBackslashAsCurrencySymbolIn;
#ifndef NDEBUG
using WTF::dumpTextEncodingNameMap;
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment