#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& policyURL, const String& value);
static String cookies(const KURL& url, const KURL& policyURL);
static void prefetchDNS(const String& hostname);
#if PLATFORM(WIN_OS)
static bool ensureFontLoaded(HFONT font);
#endif
static void notifyFormStateChanged(const Document*);
static void notifyJSOutOfMemory(Frame*);
static String computedDefaultLanguage();
static bool layoutTestMode();
static bool isSupportedImageMIMEType(const char* mimeType);
static bool isSupportedJavascriptMIMEType(const char* mimeType);
static bool isSupportedNonImageMIMEType(const char* mimeType);
static bool matchesMIMEType(const String& pattern, const String& type);
static String mimeTypeForExtension(const String& ext);
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 initV8CounterFunction();
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);
#endif
static void traceEventBegin(const char* name, void* id, const char* extra);
static void traceEventEnd(const char* name, void* id, const char* extra);
static KURL inspectorURL();
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