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() ...@@ -45,7 +45,6 @@ static const TextEncoding& UTF7Encoding()
TextEncoding::TextEncoding(const char* name) TextEncoding::TextEncoding(const char* name)
: m_name(atomicCanonicalTextEncodingName(name)) : m_name(atomicCanonicalTextEncodingName(name))
, m_backslashAsCurrencySymbol(backslashAsCurrencySymbol())
{ {
// Aliases are valid, but not "replacement" itself. // Aliases are valid, but not "replacement" itself.
if (m_name && isReplacementEncoding(name)) if (m_name && isReplacementEncoding(name))
...@@ -54,7 +53,6 @@ TextEncoding::TextEncoding(const char* name) ...@@ -54,7 +53,6 @@ TextEncoding::TextEncoding(const char* name)
TextEncoding::TextEncoding(const String& name) TextEncoding::TextEncoding(const String& name)
: m_name(atomicCanonicalTextEncodingName(name)) : m_name(atomicCanonicalTextEncodingName(name))
, m_backslashAsCurrencySymbol(backslashAsCurrencySymbol())
{ {
// Aliases are valid, but not "replacement" itself. // Aliases are valid, but not "replacement" itself.
if (m_name && isReplacementEncoding(name)) if (m_name && isReplacementEncoding(name))
...@@ -134,11 +132,6 @@ bool TextEncoding::usesVisualOrdering() const ...@@ -134,11 +132,6 @@ bool TextEncoding::usesVisualOrdering() const
return m_name == a; return m_name == a;
} }
UChar TextEncoding::backslashAsCurrencySymbol() const
{
return shouldShowBackslashAsCurrencySymbolIn(m_name) ? 0x00A5 : '\\';
}
bool TextEncoding::isNonByteBasedEncoding() const bool TextEncoding::isNonByteBasedEncoding() const
{ {
if (noExtendedTextEncodingNameUsed()) { if (noExtendedTextEncodingNameUsed()) {
......
...@@ -58,14 +58,11 @@ public: ...@@ -58,14 +58,11 @@ public:
// Applies Unicode NFC normalization, then encodes the normalized string. // Applies Unicode NFC normalization, then encodes the normalized string.
CString normalizeAndEncode(const String&, UnencodableHandling) const; CString normalizeAndEncode(const String&, UnencodableHandling) const;
UChar backslashAsCurrencySymbol() const;
private: private:
bool isNonByteBasedEncoding() const; bool isNonByteBasedEncoding() const;
bool isUTF7Encoding() const; bool isUTF7Encoding() const;
const char* m_name; const char* m_name;
UChar m_backslashAsCurrencySymbol;
}; };
inline bool operator==(const TextEncoding& a, const TextEncoding& b) { return a.name() == b.name(); } inline bool operator==(const TextEncoding& a, const TextEncoding& b) { return a.name() == b.name(); }
......
...@@ -116,8 +116,6 @@ static Mutex& encodingRegistryMutex() ...@@ -116,8 +116,6 @@ static Mutex& encodingRegistryMutex()
static TextEncodingNameMap* textEncodingNameMap; static TextEncodingNameMap* textEncodingNameMap;
static TextCodecMap* textCodecMap; static TextCodecMap* textCodecMap;
static bool didExtendTextCodecMaps; static bool didExtendTextCodecMaps;
static HashSet<const char*>* japaneseEncodings;
static HashSet<const char*>* nonBackslashEncodings;
static const char textEncodingNameBlacklist[][6] = { "UTF-7" }; static const char textEncodingNameBlacklist[][6] = { "UTF-7" };
...@@ -221,54 +219,6 @@ static void buildBaseTextCodecMaps() ...@@ -221,54 +219,6 @@ static void buildBaseTextCodecMaps()
TextCodecUserDefined::registerCodecs(addToTextCodecMap); 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) bool isReplacementEncoding(const char* alias)
{ {
return alias && !strcasecmp(alias, "replacement"); return alias && !strcasecmp(alias, "replacement");
...@@ -279,11 +229,6 @@ bool isReplacementEncoding(const String& alias) ...@@ -279,11 +229,6 @@ bool isReplacementEncoding(const String& alias)
return alias == "replacement"; return alias == "replacement";
} }
bool shouldShowBackslashAsCurrencySymbolIn(const char* canonicalEncodingName)
{
return canonicalEncodingName && nonBackslashEncodings && nonBackslashEncodings->contains(canonicalEncodingName);
}
static void extendTextCodecMaps() static void extendTextCodecMaps()
{ {
TextCodecReplacement::registerEncodingNames(addToTextEncodingNameMap); TextCodecReplacement::registerEncodingNames(addToTextEncodingNameMap);
...@@ -293,7 +238,6 @@ static void extendTextCodecMaps() ...@@ -293,7 +238,6 @@ static void extendTextCodecMaps()
TextCodecICU::registerCodecs(addToTextCodecMap); TextCodecICU::registerCodecs(addToTextCodecMap);
pruneBlacklistedCodecs(); pruneBlacklistedCodecs();
buildQuirksSets();
} }
PassOwnPtr<TextCodec> newTextCodec(const TextEncoding& encoding) PassOwnPtr<TextCodec> newTextCodec(const TextEncoding& encoding)
......
...@@ -46,8 +46,6 @@ template <typename CharacterType> ...@@ -46,8 +46,6 @@ template <typename CharacterType>
const char* atomicCanonicalTextEncodingName(const CharacterType*, size_t); const char* atomicCanonicalTextEncodingName(const CharacterType*, size_t);
const char* atomicCanonicalTextEncodingName(const String&); const char* atomicCanonicalTextEncodingName(const String&);
bool noExtendedTextEncodingNameUsed(); bool noExtendedTextEncodingNameUsed();
bool isJapaneseEncoding(const char* canonicalEncodingName);
bool shouldShowBackslashAsCurrencySymbolIn(const char* canonicalEncodingName);
bool isReplacementEncoding(const char* alias); bool isReplacementEncoding(const char* alias);
bool isReplacementEncoding(const String& alias); bool isReplacementEncoding(const String& alias);
...@@ -60,8 +58,6 @@ void dumpTextEncodingNameMap(); ...@@ -60,8 +58,6 @@ void dumpTextEncodingNameMap();
using WTF::newTextCodec; using WTF::newTextCodec;
using WTF::atomicCanonicalTextEncodingName; using WTF::atomicCanonicalTextEncodingName;
using WTF::noExtendedTextEncodingNameUsed; using WTF::noExtendedTextEncodingNameUsed;
using WTF::isJapaneseEncoding;
using WTF::shouldShowBackslashAsCurrencySymbolIn;
#ifndef NDEBUG #ifndef NDEBUG
using WTF::dumpTextEncodingNameMap; using WTF::dumpTextEncodingNameMap;
#endif #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