Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007 Apple Computer, Inc. | 2 * Copyright (C) 2007 Apple Computer, Inc. |
| 3 * Copyright (c) 2007, 2008, 2009, Google Inc. All rights reserved. | 3 * Copyright (c) 2007, 2008, 2009, Google Inc. All rights reserved. |
| 4 * Copyright (C) 2010 Company 100, Inc. | 4 * Copyright (C) 2010 Company 100, Inc. |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions are | 7 * modification, are permitted provided that the following conditions are |
| 8 * met: | 8 * met: |
| 9 * | 9 * |
| 10 * * Redistributions of source code must retain the above copyright | 10 * * Redistributions of source code must retain the above copyright |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 78 RefPtr<SkTypeface> typeface = adoptRef(FontCache::fontCache()->fontM anager()->legacyCreateTypeface(name.c_str(), static_cast<SkTypeface::Style>(styl e))); | 78 RefPtr<SkTypeface> typeface = adoptRef(FontCache::fontCache()->fontM anager()->legacyCreateTypeface(name.c_str(), static_cast<SkTypeface::Style>(styl e))); |
| 79 syntheticBold = false; | 79 syntheticBold = false; |
| 80 syntheticItalic = false; | 80 syntheticItalic = false; |
| 81 return FontPlatformData(typeface.release(), "", size, syntheticBold, syntheticItalic, orientation); | 81 return FontPlatformData(typeface.release(), "", size, syntheticBold, syntheticItalic, orientation); |
| 82 } | 82 } |
| 83 } | 83 } |
| 84 #endif | 84 #endif |
| 85 return FontPlatformData(m_typeface.get(), "", size, bold && !m_typeface->isB old(), italic && !m_typeface->isItalic(), orientation); | 85 return FontPlatformData(m_typeface.get(), "", size, bold && !m_typeface->isB old(), italic && !m_typeface->isItalic(), orientation); |
| 86 } | 86 } |
| 87 | 87 |
| 88 PassOwnPtr<FontCustomPlatformData> FontCustomPlatformData::create(SharedBuffer* buffer) | 88 PassOwnPtr<FontCustomPlatformData> FontCustomPlatformData::create(SharedBuffer* buffer, String& otsParseMessage) |
| 89 { | 89 { |
| 90 ASSERT_ARG(buffer, buffer); | 90 ASSERT_ARG(buffer, buffer); |
| 91 | 91 |
| 92 OpenTypeSanitizer sanitizer(buffer); | 92 OpenTypeSanitizer sanitizer(buffer); |
| 93 RefPtr<SharedBuffer> transcodeBuffer = sanitizer.sanitize(); | 93 RefPtr<SharedBuffer> transcodeBuffer = sanitizer.sanitize(); |
| 94 if (!transcodeBuffer) | 94 |
| 95 if (!transcodeBuffer) { | |
|
jungshik at Google
2015/05/15 19:17:20
I took a look at sanitize() to find that there are
h.joshi
2015/05/18 05:58:28
Method "setParsingError" was not called at right p
| |
| 96 otsParseMessage = sanitizer.getErrorString(); | |
| 95 return nullptr; // validation failed. | 97 return nullptr; // validation failed. |
| 98 } | |
| 96 buffer = transcodeBuffer.get(); | 99 buffer = transcodeBuffer.get(); |
| 97 | 100 |
| 98 SkMemoryStream* stream = new SkMemoryStream(buffer->getAsSkData().get()); | 101 SkMemoryStream* stream = new SkMemoryStream(buffer->getAsSkData().get()); |
| 99 #if OS(WIN) | 102 #if OS(WIN) |
| 100 RefPtr<SkTypeface> typeface = adoptRef(FontCache::fontCache()->fontManager() ->createFromStream(stream)); | 103 RefPtr<SkTypeface> typeface = adoptRef(FontCache::fontCache()->fontManager() ->createFromStream(stream)); |
| 101 #else | 104 #else |
| 102 RefPtr<SkTypeface> typeface = adoptRef(SkTypeface::CreateFromStream(stream)) ; | 105 RefPtr<SkTypeface> typeface = adoptRef(SkTypeface::CreateFromStream(stream)) ; |
| 103 #endif | 106 #endif |
| 104 if (!typeface) | 107 if (!typeface) |
| 105 return nullptr; | 108 return nullptr; |
| 106 | 109 |
| 107 return adoptPtr(new FontCustomPlatformData(typeface.release())); | 110 return adoptPtr(new FontCustomPlatformData(typeface.release())); |
| 108 } | 111 } |
| 109 | 112 |
| 110 bool FontCustomPlatformData::supportsFormat(const String& format) | 113 bool FontCustomPlatformData::supportsFormat(const String& format) |
| 111 { | 114 { |
| 112 return equalIgnoringCase(format, "truetype") || equalIgnoringCase(format, "o pentype") || OpenTypeSanitizer::supportsFormat(format); | 115 return equalIgnoringCase(format, "truetype") || equalIgnoringCase(format, "o pentype") || OpenTypeSanitizer::supportsFormat(format); |
| 113 } | 116 } |
| 114 | 117 |
| 115 } // namespace blink | 118 } // namespace blink |
| OLD | NEW |