summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
authorMike Reed <reed@google.com>2009-07-31 10:57:55 -0400
committerMike Reed <reed@google.com>2009-07-31 12:10:08 -0400
commit3cec237b4a0df2776318c343c9ccc9bbbcfd11f8 (patch)
treefcafc107228200cf111536267eb155ff983b6891 /WebKit
parent7ed73b9c2878d611c2c6954665d21aa6f162d5cc (diff)
downloadexternal_webkit-3cec237b4a0df2776318c343c9ccc9bbbcfd11f8.zip
external_webkit-3cec237b4a0df2776318c343c9ccc9bbbcfd11f8.tar.gz
external_webkit-3cec237b4a0df2776318c343c9ccc9bbbcfd11f8.tar.bz2
expose getFontPath to plugins
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/android/plugins/ANPTypefaceInterface.cpp8
-rw-r--r--WebKit/android/plugins/android_npapi.h29
2 files changed, 37 insertions, 0 deletions
diff --git a/WebKit/android/plugins/ANPTypefaceInterface.cpp b/WebKit/android/plugins/ANPTypefaceInterface.cpp
index d560d3e..e33e580 100644
--- a/WebKit/android/plugins/ANPTypefaceInterface.cpp
+++ b/WebKit/android/plugins/ANPTypefaceInterface.cpp
@@ -58,6 +58,13 @@ static ANPTypefaceStyle anp_getStyle(const ANPTypeface* tf) {
return static_cast<ANPTypefaceStyle>(s);
}
+static int32_t anp_getFontPath(const ANPTypeface* tf, char fileName[],
+ int32_t length, int32_t* index) {
+ size_t size = SkFontHost::GetFileName(SkTypeface::UniqueID(tf), fileName,
+ length, index);
+ return static_cast<int32_t>(size);
+}
+
static const char* gFontDir;
#define FONT_DIR_SUFFIX "/fonts/"
@@ -92,6 +99,7 @@ void ANPTypefaceInterfaceV0_Init(ANPInterface* v) {
ASSIGN(i, ref);
ASSIGN(i, unref);
ASSIGN(i, getStyle);
+ ASSIGN(i, getFontPath);
ASSIGN(i, getFontDirectoryPath);
}
diff --git a/WebKit/android/plugins/android_npapi.h b/WebKit/android/plugins/android_npapi.h
index e50f031..80fd2c4 100644
--- a/WebKit/android/plugins/android_npapi.h
+++ b/WebKit/android/plugins/android_npapi.h
@@ -463,6 +463,35 @@ struct ANPTypefaceInterfaceV0 : ANPInterface {
*/
ANPTypefaceStyle (*getStyle)(const ANPTypeface*);
+ /** Some fonts are stored in files. If that is true for the fontID, then
+ this returns the byte length of the full file path. If path is not null,
+ then the full path is copied into path (allocated by the caller), up to
+ length bytes. If index is not null, then it is set to the truetype
+ collection index for this font, or 0 if the font is not in a collection.
+
+ Note: getFontPath does not assume that path is a null-terminated string,
+ so when it succeeds, it only copies the bytes of the file name and
+ nothing else (i.e. it copies exactly the number of bytes returned by the
+ function. If the caller wants to treat path[] as a C string, it must be
+ sure that it is allocated at least 1 byte larger than the returned size,
+ and it must copy in the terminating 0.
+
+ If the fontID does not correspond to a file, then the function returns
+ 0, and the path and index parameters are ignored.
+
+ @param fontID The font whose file name is being queried
+ @param path Either NULL, or storage for receiving up to length bytes
+ of the font's file name. Allocated by the caller.
+ @param length The maximum space allocated in path (by the caller).
+ Ignored if path is NULL.
+ @param index Either NULL, or receives the TTC index for this font.
+ If the font is not a TTC, then will be set to 0.
+ @return The byte length of th font's file name, or 0 if the font is not
+ baked by a file.
+ */
+ int32_t (*getFontPath)(const ANPTypeface*, char path[], int32_t length,
+ int32_t* index);
+
/** Return the path name for the font directory, or NULL if not supported
*/
const char* (*getFontDirectoryPath)();