Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1273)

Unified Diff: Source/core/svg/SVGParserUtilities.cpp

Issue 656913006: Remove SVG fonts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Update tests for landing Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/svg/SVGParserUtilities.cpp
diff --git a/Source/core/svg/SVGParserUtilities.cpp b/Source/core/svg/SVGParserUtilities.cpp
index 21a4aea865988b6a8029e0ca131933ce46789f35..a810bc91d8c8762499a65d86006772c2f8f95d6e 100644
--- a/Source/core/svg/SVGParserUtilities.cpp
+++ b/Source/core/svg/SVGParserUtilities.cpp
@@ -251,200 +251,6 @@ bool parseNumberOrPercentage(const String& string, float& number)
return genericParseNumberOrPercentage(ptr, end, number);
}
-#if ENABLE(SVG_FONTS)
-template<typename CharType>
-static bool parseGlyphName(const CharType*& ptr, const CharType* end, HashSet<String>& values)
-{
- skipOptionalSVGSpaces(ptr, end);
-
- while (ptr < end) {
- // Leading and trailing white space, and white space before and after separators, will be ignored.
- const CharType* inputStart = ptr;
- while (ptr < end && *ptr != ',')
- ++ptr;
-
- if (ptr == inputStart)
- break;
-
- // walk backwards from the ; to ignore any whitespace
- const CharType* inputEnd = ptr - 1;
- while (inputStart < inputEnd && isHTMLSpace<CharType>(*inputEnd))
- --inputEnd;
-
- values.add(String(inputStart, inputEnd - inputStart + 1));
- skipOptionalSVGSpacesOrDelimiter(ptr, end, ',');
- }
-
- return true;
-}
-
-bool parseGlyphName(const String& input, HashSet<String>& values)
-{
- // FIXME: Parsing error detection is missing.
- values.clear();
- if (input.isEmpty())
- return true;
- if (input.is8Bit()) {
- const LChar* ptr = input.characters8();
- const LChar* end = ptr + input.length();
- return parseGlyphName(ptr, end, values);
- }
- const UChar* ptr = input.characters16();
- const UChar* end = ptr + input.length();
- return parseGlyphName(ptr, end, values);
-}
-
-template<typename CharType>
-static bool parseUnicodeRange(const CharType* characters, unsigned length, UnicodeRange& range)
-{
- if (length < 2 || characters[0] != 'U' || characters[1] != '+')
- return false;
-
- // Parse the starting hex number (or its prefix).
- unsigned startRange = 0;
- unsigned startLength = 0;
-
- const CharType* ptr = characters + 2;
- const CharType* end = characters + length;
- while (ptr < end) {
- if (!isASCIIHexDigit(*ptr))
- break;
- ++startLength;
- if (startLength > 6)
- return false;
- startRange = (startRange << 4) | toASCIIHexValue(*ptr);
- ++ptr;
- }
-
- // Handle the case of ranges separated by "-" sign.
- if (2 + startLength < length && *ptr == '-') {
- if (!startLength)
- return false;
-
- // Parse the ending hex number (or its prefix).
- unsigned endRange = 0;
- unsigned endLength = 0;
- ++ptr;
- while (ptr < end) {
- if (!isASCIIHexDigit(*ptr))
- break;
- ++endLength;
- if (endLength > 6)
- return false;
- endRange = (endRange << 4) | toASCIIHexValue(*ptr);
- ++ptr;
- }
-
- if (!endLength)
- return false;
-
- range.first = startRange;
- range.second = endRange;
- return true;
- }
-
- // Handle the case of a number with some optional trailing question marks.
- unsigned endRange = startRange;
- while (ptr < end) {
- if (*ptr != '?')
- break;
- ++startLength;
- if (startLength > 6)
- return false;
- startRange <<= 4;
- endRange = (endRange << 4) | 0xF;
- ++ptr;
- }
-
- if (!startLength)
- return false;
-
- range.first = startRange;
- range.second = endRange;
- return true;
-}
-
-template<typename CharType>
-static bool genericParseKerningUnicodeString(const CharType*& ptr, const CharType* end, UnicodeRanges& rangeList, HashSet<String>& stringList)
-{
- while (ptr < end) {
- const CharType* inputStart = ptr;
- while (ptr < end && *ptr != ',')
- ++ptr;
-
- if (ptr == inputStart)
- break;
-
- // Try to parse unicode range first
- UnicodeRange range;
- if (parseUnicodeRange(inputStart, ptr - inputStart, range))
- rangeList.append(range);
- else
- stringList.add(String(inputStart, ptr - inputStart));
- ++ptr;
- }
-
- return true;
-}
-
-bool parseKerningUnicodeString(const String& input, UnicodeRanges& rangeList, HashSet<String>& stringList)
-{
- // FIXME: Parsing error detection is missing.
- if (input.isEmpty())
- return true;
- if (input.is8Bit()) {
- const LChar* ptr = input.characters8();
- const LChar* end = ptr + input.length();
- return genericParseKerningUnicodeString(ptr, end, rangeList, stringList);
- }
- const UChar* ptr = input.characters16();
- const UChar* end = ptr + input.length();
- return genericParseKerningUnicodeString(ptr, end, rangeList, stringList);
-}
-
-template<typename CharType>
-static Vector<String> genericParseDelimitedString(const CharType*& ptr, const CharType* end, const char seperator)
-{
- Vector<String> values;
-
- skipOptionalSVGSpaces(ptr, end);
-
- while (ptr < end) {
- // Leading and trailing white space, and white space before and after semicolon separators, will be ignored.
- const CharType* inputStart = ptr;
- while (ptr < end && *ptr != seperator) // careful not to ignore whitespace inside inputs
- ptr++;
-
- if (ptr == inputStart)
- break;
-
- // walk backwards from the ; to ignore any whitespace
- const CharType* inputEnd = ptr - 1;
- while (inputStart < inputEnd && isHTMLSpace<CharType>(*inputEnd))
- inputEnd--;
-
- values.append(String(inputStart, inputEnd - inputStart + 1));
- skipOptionalSVGSpacesOrDelimiter(ptr, end, seperator);
- }
-
- return values;
-}
-
-Vector<String> parseDelimitedString(const String& input, const char seperator)
-{
- if (input.isEmpty())
- return Vector<String>();
- if (input.is8Bit()) {
- const LChar* ptr = input.characters8();
- const LChar* end = ptr + input.length();
- return genericParseDelimitedString(ptr, end, seperator);
- }
- const UChar* ptr = input.characters16();
- const UChar* end = ptr + input.length();
- return genericParseDelimitedString(ptr, end, seperator);
-}
-#endif
-
template <typename CharType>
bool parseFloatPoint(const CharType*& current, const CharType* end, FloatPoint& point)
{

Powered by Google App Engine
This is Rietveld 408576698