Index: Source/platform/fonts/opentype/OpenTypeSanitizer.h |
diff --git a/Source/platform/fonts/opentype/OpenTypeSanitizer.h b/Source/platform/fonts/opentype/OpenTypeSanitizer.h |
index 460dd0262ee3a89e3ce70e8ffb96b7c2b3698e91..8799d51e37d4af96bcd91144b7f17d449b951aff 100644 |
--- a/Source/platform/fonts/opentype/OpenTypeSanitizer.h |
+++ b/Source/platform/fonts/opentype/OpenTypeSanitizer.h |
@@ -33,6 +33,7 @@ |
#include "opentype-sanitiser.h" |
#include "wtf/Forward.h" |
+#include "wtf/text/WTFString.h" |
namespace blink { |
@@ -42,20 +43,60 @@ class OpenTypeSanitizer { |
public: |
explicit OpenTypeSanitizer(SharedBuffer* buffer) |
: m_buffer(buffer) |
+ , m_otsErrorString("") |
{ |
} |
PassRefPtr<SharedBuffer> sanitize(); |
static bool supportsFormat(const String&); |
+ String getErrorString() const { return static_cast<String>(m_otsErrorString); } |
+ |
+ void setErrorString(const String& errorString) { m_otsErrorString = errorString; } |
+ |
+ bool isParsingError() const { return m_parsingError; } |
+ void setParsingError(bool parsingError) { m_parsingError = parsingError; } |
private: |
SharedBuffer* const m_buffer; |
+ String m_otsErrorString; |
+ bool m_parsingError; |
}; |
class BlinkOTSContext: public ots::OTSContext { |
public: |
- // TODO: Implement "Message" to support user friendly messages |
+ BlinkOTSContext() |
+ : m_errorString("") |
+ { |
+ } |
+ |
+ virtual void Message(int level, const char *format, ...) |
jungshik at Google
2015/05/12 20:22:48
Just wondering if there's a reason to have this in
h.joshi
2015/05/14 04:52:15
Moved methods to CPP file, normally all methods we
|
+ { |
+ va_list args; |
+ va_start(args, format); |
+ |
+#if COMPILER(MSVC) |
+ int result = _vscprintf(format, args); |
+#else |
+ char ch; |
+ int result = vsnprintf(&ch, 1, format, args); |
+#endif |
+ va_end(args); |
+ |
+ if (result <= 0) { |
+ m_errorString = String("OTS Error"); |
+ } else { |
+ Vector<char, 256> buffer; |
+ unsigned len = result; |
+ buffer.grow(len + 1); |
+ |
+ va_start(args, format); |
+ vsnprintf(buffer.data(), buffer.size(), format, args); |
+ va_end(args); |
+ m_errorString = StringImpl::create(reinterpret_cast<const LChar*>(buffer.data()), len); |
+ } |
+ } |
+ |
virtual ots::TableAction GetTableAction(uint32_t tag) |
{ |
#define TABLE_TAG(c1, c2, c3, c4) ((uint32_t)((((uint8_t)(c1)) << 24) | (((uint8_t)(c2)) << 16) | (((uint8_t)(c3)) << 8) | ((uint8_t)(c4)))) |
@@ -78,6 +119,10 @@ public: |
} |
#undef TABLE_TAG |
} |
+ |
+ String getErrorString() const { return static_cast<String>(m_errorString); } |
+private: |
+ String m_errorString; |
}; |
} // namespace blink |