| Index: chrome/renderer/webplugin_delegate_pepper.cc
|
| ===================================================================
|
| --- chrome/renderer/webplugin_delegate_pepper.cc (revision 49461)
|
| +++ chrome/renderer/webplugin_delegate_pepper.cc (working copy)
|
| @@ -9,6 +9,10 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| +#if defined(OS_LINUX)
|
| +#include <unistd.h>
|
| +#endif
|
| +
|
| #include "base/file_util.h"
|
| #include "base/keyboard_codes.h"
|
| #if defined(OS_MACOSX)
|
| @@ -27,6 +31,9 @@
|
| #include "chrome/common/render_messages.h"
|
| #include "chrome/renderer/pepper_widget.h"
|
| #include "chrome/renderer/render_thread.h"
|
| +#if defined(OS_LINUX)
|
| +#include "chrome/renderer/renderer_sandbox_support_linux.h"
|
| +#endif
|
| #include "chrome/renderer/webplugin_delegate_proxy.h"
|
| #include "gfx/blit.h"
|
| #if defined(OS_WIN)
|
| @@ -426,6 +433,58 @@
|
| return true;
|
| }
|
|
|
| +NPError NPMatchFontWithFallback(NPP instance,
|
| + const NPFontDescription* description,
|
| + NPFontID* id) {
|
| +#if defined(OS_LINUX)
|
| + int fd = renderer_sandbox_support::MatchFontWithFallback(
|
| + description->face, description->weight >= 700, description->italic,
|
| + description->charset);
|
| + if (fd == -1)
|
| + return NPERR_GENERIC_ERROR;
|
| + *id = fd;
|
| + return NPERR_NO_ERROR;
|
| +#else
|
| + NOTIMPLEMENTED();
|
| + return NPERR_GENERIC_ERROR;
|
| +#endif
|
| +}
|
| +
|
| +NPError GetFontTable(NPP instance,
|
| + NPFontID id,
|
| + uint32_t table,
|
| + void* output,
|
| + size_t* output_length) {
|
| +#if defined(OS_LINUX)
|
| + bool rv = renderer_sandbox_support::GetFontTable(
|
| + id, table, static_cast<uint8_t*>(output), output_length);
|
| + return rv ? NPERR_NO_ERROR : NPERR_GENERIC_ERROR;
|
| +#else
|
| + NOTIMPLEMENTED();
|
| + return NPERR_GENERIC_ERROR;
|
| +#endif
|
| +}
|
| +
|
| +NPError NPDestroyFont(NPP instance, NPFontID id) {
|
| +#if defined(OS_LINUX)
|
| + close(id);
|
| + return NPERR_NO_ERROR;
|
| +#else
|
| + NOTIMPLEMENTED();
|
| + return NPERR_GENERIC_ERROR;
|
| +#endif
|
| +}
|
| +
|
| +NPFontExtensions g_font_extensions = {
|
| + NPMatchFontWithFallback,
|
| + GetFontTable,
|
| + NPDestroyFont
|
| +};
|
| +
|
| +NPFontExtensions* WebPluginDelegatePepper::GetFontExtensions() {
|
| + return &g_font_extensions;
|
| +}
|
| +
|
| void WebPluginDelegatePepper::Zoom(int factor) {
|
| NPPExtensions* extensions = NULL;
|
| instance()->NPP_GetValue(NPPVPepperExtensions, &extensions);
|
|
|