diff options
author | xzhang <xzhang@adobe.com> | 2015-11-02 14:42:54 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-02 22:43:47 +0000 |
commit | eca2b40dd6ffacdf9e1772e5d18c3623d71b2946 (patch) | |
tree | 153b204500127d4ee051fd3d076b9c5e6b818fc0 /ppapi/c | |
parent | 537726002122ef050257948da5bd8e1b977ff8aa (diff) | |
download | chromium_src-eca2b40dd6ffacdf9e1772e5d18c3623d71b2946.zip chromium_src-eca2b40dd6ffacdf9e1772e5d18c3623d71b2946.tar.gz chromium_src-eca2b40dd6ffacdf9e1772e5d18c3623d71b2946.tar.bz2 |
Enable pp::flash::FontFile support on Windows
Part 1:
Added Windows implementation using Skia for PepperFlashFontFileHost.
This patch adds a simple Windows implementation of PepperFlashFontFileHost
using Skia to access the font data. By implementing this PepperFlash can
remove some use cases of GDI to support Win32k lockdown.
AUTHOR=forshaw@google.com
Part 2:
To support win32k lockdown, Pepper flash needs to switch Win GDI font calls
to pp::flash::FontFile PPAPI. This API was only supported on Linux, and it
is supported on Windows starting from M48.
Considering backward compatibility, we still need to fallback to GDI calls
for Chrome versions where Win32k lockdown is not available yet. We add a new
version of PB_Flash_FontFile interface: PPB_FLASH_FONTFILE_INTERFACE_0_2
This new version does not change any API, its availability shows that
pp::flash:FontFile is supported for Windows, and Pepper flash can use
it to decide whether it should call pp::flash:FontFile API or fall back
to Win GDI calls.
AUTHOR=xzhang@adobe.com
BUG=523278
R=bbudge@chromium.org, raymes@chromium.org, forshaw@google.com
Review URL: https://codereview.chromium.org/1416643002
Cr-Commit-Position: refs/heads/master@{#357457}
Diffstat (limited to 'ppapi/c')
-rw-r--r-- | ppapi/c/private/ppb_flash_font_file.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/ppapi/c/private/ppb_flash_font_file.h b/ppapi/c/private/ppb_flash_font_file.h index f50818e..a1cc786 100644 --- a/ppapi/c/private/ppb_flash_font_file.h +++ b/ppapi/c/private/ppb_flash_font_file.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From private/ppb_flash_font_file.idl modified Thu Dec 13 10:56:15 2012. */ +/* From private/ppb_flash_font_file.idl modified Fri Oct 23 10:34:57 2015. */ #ifndef PPAPI_C_PRIVATE_PPB_FLASH_FONT_FILE_H_ #define PPAPI_C_PRIVATE_PPB_FLASH_FONT_FILE_H_ @@ -18,7 +18,8 @@ #include "ppapi/c/trusted/ppb_browser_font_trusted.h" #define PPB_FLASH_FONTFILE_INTERFACE_0_1 "PPB_Flash_FontFile;0.1" -#define PPB_FLASH_FONTFILE_INTERFACE PPB_FLASH_FONTFILE_INTERFACE_0_1 +#define PPB_FLASH_FONTFILE_INTERFACE_0_2 "PPB_Flash_FontFile;0.2" +#define PPB_FLASH_FONTFILE_INTERFACE PPB_FLASH_FONTFILE_INTERFACE_0_2 /** * @file @@ -30,7 +31,7 @@ * @addtogroup Interfaces * @{ */ -struct PPB_Flash_FontFile_0_1 { +struct PPB_Flash_FontFile_0_2 { /* Returns a resource identifying a font file corresponding to the given font * request after applying the browser-specific fallback. */ @@ -52,9 +53,25 @@ struct PPB_Flash_FontFile_0_1 { uint32_t table, void* output, uint32_t* output_length); + /** + * Returns whether <code>PPB_Flash_FontFile</code> is supported on Windows. + */ + PP_Bool (*IsSupportedForWindows)(void); }; -typedef struct PPB_Flash_FontFile_0_1 PPB_Flash_FontFile; +typedef struct PPB_Flash_FontFile_0_2 PPB_Flash_FontFile; + +struct PPB_Flash_FontFile_0_1 { + PP_Resource (*Create)( + PP_Instance instance, + const struct PP_BrowserFont_Trusted_Description* description, + PP_PrivateFontCharset charset); + PP_Bool (*IsFlashFontFile)(PP_Resource resource); + PP_Bool (*GetFontTable)(PP_Resource font_file, + uint32_t table, + void* output, + uint32_t* output_length); +}; /** * @} */ |