1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef PPAPI_PROXY_BROWSER_FONT_SINGLETON_RESOURCE_H_
6#define PPAPI_PROXY_BROWSER_FONT_SINGLETON_RESOURCE_H_
7
8#include "ppapi/proxy/connection.h"
9#include "ppapi/proxy/plugin_resource.h"
10#include "ppapi/thunk/ppb_browser_font_singleton_api.h"
11
12namespace ppapi {
13namespace proxy {
14
15// This handles the singleton calls (that don't take a PP_Resource parameter)
16// on the browser font interface
17class BrowserFontSingletonResource
18    : public PluginResource,
19      public thunk::PPB_BrowserFont_Singleton_API {
20 public:
21  BrowserFontSingletonResource(Connection connection, PP_Instance instance);
22  virtual ~BrowserFontSingletonResource();
23
24  // Resource override.
25  virtual thunk::PPB_BrowserFont_Singleton_API*
26      AsPPB_BrowserFont_Singleton_API() OVERRIDE;
27
28  // thunk::PPB_BrowserFontSingleton_API implementation.
29  virtual PP_Var GetFontFamilies(PP_Instance instance) OVERRIDE;
30
31 private:
32  // Lazily-filled-in list of font families.
33  std::string families_;
34
35  DISALLOW_COPY_AND_ASSIGN(BrowserFontSingletonResource);
36};
37
38}  // namespace proxy
39}  // namespace ppapi
40
41#endif  // PPAPI_PROXY_BROWSER_FONT_SINGLETON_RESOURCE_H_
42
43