// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PPAPI_PROXY_PLUGIN_PROXY_DELEGATE_H_
#define PPAPI_PROXY_PLUGIN_PROXY_DELEGATE_H_
#include <string>
namespace IPC {
class Sender;
}
namespace ppapi {
namespace proxy {
class PPAPI_PROXY_EXPORT PluginProxyDelegate {
public:
virtual ~PluginProxyDelegate() {}
// Returns the channel for sending to the browser.
// Note: The returned sender must be thread-safe. It might be used while the
// proxy lock is not acquired. Please see the implementation of
// PluginGlobals::BrowserSender.
virtual IPC::Sender* GetBrowserSender() = 0;
// Returns the language code of the current UI language.
virtual std::string GetUILanguage() = 0;
// Performs Windows-specific font caching in the browser for the given
// LOGFONTW. Does nothing on non-Windows platforms.
// Note: This method must be thread-safe.
virtual void PreCacheFont(const void* logfontw) = 0;
// Sets the active url which is reported by breakpad.
virtual void SetActiveURL(const std::string& url) = 0;
// Validates the font description, and uses it to create a
// BrowserFontResource_Trusted resource.
virtual PP_Resource CreateBrowserFont(
Connection connection,
PP_Instance instance,
const PP_BrowserFont_Trusted_Description& desc,
const Preferences& prefs) = 0;
};
} // namespace proxy
} // namespace ppapi
#endif // PPAPI_PROXY_PLUGIN_PROXY_DELEGATE_H_