Reviewed by Darin Adler.
* WebCore.exp.in: Exported wkGetVerticalGlyphsForCharacters.
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
(WebCore::GlyphPage::fill): Use wkGetVerticalGlyphsForCharacters. If it returns false, proceed
with the existing, slower method of getting vertical glyphs.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Source/WebKit/mac: <rdar://problem/
9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
Reviewed by Darin Adler.
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Initialize wkGetVerticalGlyphsForCharacters.
Source/WebKit2: <rdar://problem/
9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
Reviewed by Darin Adler.
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Initialize wkGetVerticalGlyphsForCharacters.
WebKitLibraries: WebKitSystemInterface support for
<rdar://problem/
9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
Reviewed by Darin Adler.
* WebKitSystemInterface.h: Added WKGetVerticalGlyphsForCharacters().
* libWebKitSystemInterfaceLeopard.a:
* libWebKitSystemInterfaceLion.a:
* libWebKitSystemInterfaceSnowLeopard.a:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@91935
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-07-28 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
+
+ Reviewed by Darin Adler.
+
+ * WebCore.exp.in: Exported wkGetVerticalGlyphsForCharacters.
+ * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
+ (WebCore::GlyphPage::fill): Use wkGetVerticalGlyphsForCharacters. If it returns false, proceed
+ with the existing, slower method of getting vertical glyphs.
+ * platform/mac/WebCoreSystemInterface.h:
+ * platform/mac/WebCoreSystemInterface.mm:
+
2011-07-28 Brady Eidson <beidson@apple.com>
<rdar://problem/9714337> and https://bugs.webkit.org/show_bug.cgi?id=65306
_wkGetNSURLResponseMustRevalidate
_wkGetPreferredExtensionForMIMEType
_wkGetUserToBaseCTM
+_wkGetVerticalGlyphsForCharacters
_wkGetWheelEventDeltas
_wkHTTPCookiesForURL
_wkHitTestMediaUIPart
{
bool haveGlyphs = false;
+ Vector<CGGlyph, 512> glyphs(bufferLength);
if (!shouldUseCoreText(buffer, bufferLength, fontData)) {
- Vector<CGGlyph, 512> glyphs(bufferLength);
wkGetGlyphsForCharacters(fontData->platformData().cgFont(), buffer, glyphs.data(), bufferLength);
for (unsigned i = 0; i < length; ++i) {
if (!glyphs[i])
haveGlyphs = true;
}
}
+ } else if (wkGetVerticalGlyphsForCharacters(fontData->platformData().ctFont(), buffer, glyphs.data(), bufferLength)) {
+ for (unsigned i = 0; i < length; ++i) {
+ if (!glyphs[i])
+ setGlyphDataForIndex(offset + i, 0, 0);
+ else {
+ setGlyphDataForIndex(offset + i, glyphs[i], fontData);
+ haveGlyphs = true;
+ }
+ }
} else {
// We ask CoreText for possible vertical variant glyphs
RetainPtr<CFStringRef> string(AdoptCF, CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, buffer, bufferLength, kCFAllocatorNull));
typedef struct __CFHTTPMessage *CFHTTPMessageRef;
typedef struct _CFURLResponse *CFURLResponseRef;
typedef const struct _CFURLRequest *CFURLRequestRef;
+typedef const struct __CTFont * CTFontRef;
typedef const struct __CTLine * CTLineRef;
typedef const struct __CTTypesetter * CTTypesetterRef;
typedef const struct __AXUIElement *AXUIElementRef;
extern CFHTTPMessageRef (*wkCopyCONNECTProxyResponse)(CFReadStreamRef, CFURLRef responseURL);
extern void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t);
+extern bool (*wkGetVerticalGlyphsForCharacters)(CTFontRef, const UniChar[], CGGlyph[], size_t);
extern BOOL (*wkUseSharedMediaUI)();
#endif
void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t);
+bool (*wkGetVerticalGlyphsForCharacters)(CTFontRef, const UniChar[], CGGlyph[], size_t);
#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
void* wkGetHyphenationLocationBeforeIndex;
+2011-07-28 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
+
+ Reviewed by Darin Adler.
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Initialize wkGetVerticalGlyphsForCharacters.
+
2011-07-28 Brady Eidson <beidson@apple.com>
<rdar://problem/9714337> and https://bugs.webkit.org/show_bug.cgi?id=65306
INIT(QTClearMediaDownloadCache);
INIT(GetGlyphsForCharacters);
+ INIT(GetVerticalGlyphsForCharacters);
#if defined(BUILDING_ON_LEOPARD) || defined(BUILDING_ON_SNOW_LEOPARD)
INIT(GetHyphenationLocationBeforeIndex);
+2011-07-28 Dan Bernstein <mitz@apple.com>
+
+ <rdar://problem/9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
+
+ Reviewed by Darin Adler.
+
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Initialize wkGetVerticalGlyphsForCharacters.
+
2011-07-28 Brady Eidson <beidson@apple.com>
<rdar://problem/9714337> and https://bugs.webkit.org/show_bug.cgi?id=65306
INIT(GetFontInLanguageForRange);
INIT(GetGlyphTransformedAdvances);
INIT(GetGlyphsForCharacters);
+ INIT(GetVerticalGlyphsForCharacters);
INIT(GetHTTPPipeliningPriority);
INIT(GetMIMETypeForExtension);
INIT(GetNSURLResponseLastModifiedDate);
+2011-07-28 Dan Bernstein <mitz@apple.com>
+
+ WebKitSystemInterface support for
+ <rdar://problem/9589433> Displaying Japanese dictionary contents in vertical orientation takes a couple of seconds
+
+ Reviewed by Darin Adler.
+
+ * WebKitSystemInterface.h: Added WKGetVerticalGlyphsForCharacters().
+ * libWebKitSystemInterfaceLeopard.a:
+ * libWebKitSystemInterfaceLion.a:
+ * libWebKitSystemInterfaceSnowLeopard.a:
+
2011-07-22 Jessie Berlin <jberlin@apple.com>
[WebKit2] Changing the cookie accept policy in Private Browsing doesn’t work.
CGAffineTransform WKGetUserToBaseCTM(CGContextRef);
void WKGetGlyphsForCharacters(CGFontRef, const UniChar[], CGGlyph[], size_t);
+bool WKGetVerticalGlyphsForCharacters(CTFontRef, const UniChar[], CGGlyph[], size_t);
CTLineRef WKCreateCTLineWithUniCharProvider(const UniChar* (*provide)(CFIndex stringIndex, CFIndex* charCount, CFDictionaryRef* attributes, void*), void (*dispose)(const UniChar* chars, void*), void*);
#if !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)