10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright (c) 2012 The Chromium Authors. All rights reserved.
20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be
30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file.
40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#ifndef CHROME_RENDERER_PEPPER_PEPPER_FLASH_FONT_FILE_HOST_H_
60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define CHROME_RENDERER_PEPPER_PEPPER_FLASH_FONT_FILE_HOST_H_
70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/basictypes.h"
90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/compiler_specific.h"
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "ppapi/c/private/pp_private_font_charset.h"
110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "ppapi/host/resource_host.h"
12
13#if defined(OS_LINUX) || defined(OS_OPENBSD)
14#include "base/files/scoped_file.h"
15#endif
16
17namespace content {
18class RendererPpapiHost;
19}
20
21namespace ppapi {
22namespace proxy {
23struct SerializedFontDescription;
24}
25}
26
27class PepperFlashFontFileHost : public ppapi::host::ResourceHost {
28 public:
29  PepperFlashFontFileHost(
30      content::RendererPpapiHost* host,
31      PP_Instance instance,
32      PP_Resource resource,
33      const ppapi::proxy::SerializedFontDescription& description,
34      PP_PrivateFontCharset charset);
35  virtual ~PepperFlashFontFileHost();
36
37  virtual int32_t OnResourceMessageReceived(
38      const IPC::Message& msg,
39      ppapi::host::HostMessageContext* context) OVERRIDE;
40
41 private:
42  int32_t OnGetFontTable(ppapi::host::HostMessageContext* context,
43                         uint32_t table);
44
45  // Non-owning pointer.
46  content::RendererPpapiHost* renderer_ppapi_host_;
47
48#if defined(OS_LINUX) || defined(OS_OPENBSD)
49  base::ScopedFD fd_;
50#endif
51
52  DISALLOW_COPY_AND_ASSIGN(PepperFlashFontFileHost);
53};
54
55#endif  // CHROME_RENDERER_PEPPER_PEPPER_FLASH_FONT_FILE_HOST_H_
56