#ifndef ChromiumBridge_h
#define ChromiumBridge_h
#include "LinkHash.h"
#include "PassRefPtr.h"
#include "PasteboardPrivate.h"
class NativeImageSkia;
typedef struct NPObject NPObject;
typedef struct _NPP NPP_t;
typedef NPP_t* NPP;
#if PLATFORM(WIN_OS)
typedef struct HFONT__* HFONT;
#endif
namespace WebCore {
class Color;
class Cursor;
class Document;
class Frame;
class GraphicsContext;
class Image;
class IntRect;
class KURL;
class String;
class Widget;
struct PluginInfo;
class ChromiumBridge {
public:
static bool clipboardIsFormatAvailable(PasteboardPrivate::ClipboardFormat);
static String clipboardReadPlainText();
static void clipboardReadHTML(String*, KURL*);
static void clipboardWriteSelection(const String&, const KURL&, const String&, bool);
static void clipboardWriteURL(const KURL&, const String&);
static void clipboardWriteImage(const NativeImageSkia*, const KURL&, const String&);
static void setCookies(const KURL& url, const KURL& firstPartyForCookies, const String& value);
static String cookies(const KURL& url, const KURL& firstPartyForCookies);
static void prefetchDNS(const String& hostname);
static bool getFileSize(const String& path, long long& result);
#if PLATFORM(WIN_OS)
static bool ensureFontLoaded(HFONT font);
#endif
#if PLATFORM(LINUX)
static String getFontFamilyForCharacters(const UChar*, size_t numCharacters);
#endif
static void notifyFormStateChanged(const Document*);
static void notifyJSOutOfMemory(Frame*);
static bool allowScriptDespiteSettings(const KURL& documentURL);
static String computedDefaultLanguage();
static bool layoutTestMode();
static bool isSupportedImageMIMEType(const String& mimeType);
static bool isSupportedJavaScriptMIMEType(const String& mimeType);
static bool isSupportedNonImageMIMEType(const String& mimeType);
static String mimeTypeForExtension(const String& fileExtension);
static String mimeTypeFromFile(const String& filePath);
static String preferredExtensionForMIMEType(const String& mimeType);
static bool plugins(bool refresh, Vector<PluginInfo*>*);
static NPObject* pluginScriptableObject(Widget*);
static bool popupsAllowed(NPP);
static String uiResourceProtocol();
static PassRefPtr<Image> loadPlatformImageResource(const char* name);
static int screenDepth(Widget*);
static int screenDepthPerComponent(Widget*);
static bool screenIsMonochrome(Widget*);
static IntRect screenRect(Widget*);
static IntRect screenAvailableRect(Widget*);
static void setSharedTimerFiredFunction(void (*func)());
static void setSharedTimerFireTime(double fireTime);
static void stopSharedTimer();
static void decrementStatsCounter(const char* name);
static void incrementStatsCounter(const char* name);
static void suddenTerminationChanged(bool enabled);
static double currentTime();
#if PLATFORM(WIN_OS)
static void paintButton(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintMenuList(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintScrollbarArrow(
GraphicsContext*, int state, int classicState, const IntRect&);
static void paintScrollbarThumb(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
static void paintScrollbarTrack(
GraphicsContext*, int part, int state, int classicState, const IntRect&, const IntRect& alignRect);
static void paintTextField(
GraphicsContext*, int part, int state, int classicState, const IntRect&, const Color&, bool fillContentArea, bool drawEdges);
static void paintTrackbar(
GraphicsContext*, int part, int state, int classicState, const IntRect&);
#endif
static void traceEventBegin(const char* name, void* id, const char* extra);
static void traceEventEnd(const char* name, void* id, const char* extra);
static LinkHash visitedLinkHash(const UChar* url, unsigned length);
static LinkHash visitedLinkHash(const KURL& base, const AtomicString& attributeURL);
static bool isLinkVisited(LinkHash);
static void widgetSetCursor(Widget*, const Cursor&);
static void widgetSetFocus(Widget*);
};
}
#endif