#ifndef WebPreferences_H
#define WebPreferences_H
#include "WebKit.h"
#include <CoreFoundation/CoreFoundation.h>
#include <WebCore/BString.h>
#include <wtf/RetainPtr.h>
class WebPreferences : public IWebPreferences, public IWebPreferencesPrivate {
public:
static WebPreferences* createInstance();
protected:
WebPreferences();
~WebPreferences();
public:
virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
virtual ULONG STDMETHODCALLTYPE AddRef(void);
virtual ULONG STDMETHODCALLTYPE Release(void);
virtual HRESULT STDMETHODCALLTYPE standardPreferences(
IWebPreferences** standardPreferences);
virtual HRESULT STDMETHODCALLTYPE initWithIdentifier(
BSTR anIdentifier,
IWebPreferences** preferences);
virtual HRESULT STDMETHODCALLTYPE identifier(
BSTR* ident);
virtual HRESULT STDMETHODCALLTYPE standardFontFamily(
BSTR* family);
virtual HRESULT STDMETHODCALLTYPE setStandardFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE fixedFontFamily(
BSTR* family);
virtual HRESULT STDMETHODCALLTYPE setFixedFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE serifFontFamily(
BSTR* fontFamily);
virtual HRESULT STDMETHODCALLTYPE setSerifFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE sansSerifFontFamily(
BSTR* family);
virtual HRESULT STDMETHODCALLTYPE setSansSerifFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE cursiveFontFamily(
BSTR* family);
virtual HRESULT STDMETHODCALLTYPE setCursiveFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE fantasyFontFamily(
BSTR* family);
virtual HRESULT STDMETHODCALLTYPE setFantasyFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE pictographFontFamily(
BSTR* family);
virtual HRESULT STDMETHODCALLTYPE setPictographFontFamily(
BSTR family);
virtual HRESULT STDMETHODCALLTYPE defaultFontSize(
int* fontSize);
virtual HRESULT STDMETHODCALLTYPE setDefaultFontSize(
int fontSize);
virtual HRESULT STDMETHODCALLTYPE defaultFixedFontSize(
int* fontSize);
virtual HRESULT STDMETHODCALLTYPE setDefaultFixedFontSize(
int fontSize);
virtual HRESULT STDMETHODCALLTYPE minimumFontSize(
int* fontSize);
virtual HRESULT STDMETHODCALLTYPE setMinimumFontSize(
int fontSize);
virtual HRESULT STDMETHODCALLTYPE minimumLogicalFontSize(
int* fontSize);
virtual HRESULT STDMETHODCALLTYPE setMinimumLogicalFontSize(
int fontSize);
virtual HRESULT STDMETHODCALLTYPE defaultTextEncodingName(
BSTR* name);
virtual HRESULT STDMETHODCALLTYPE setDefaultTextEncodingName(
BSTR name);
virtual HRESULT STDMETHODCALLTYPE userStyleSheetEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE userStyleSheetLocation(
BSTR* location);
virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetLocation(
BSTR location);
virtual HRESULT STDMETHODCALLTYPE isJavaEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setJavaEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE isJavaScriptEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setJavaScriptEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE javaScriptCanOpenWindowsAutomatically(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanOpenWindowsAutomatically(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE arePlugInsEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setPlugInsEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE allowsAnimatedImages(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setAllowsAnimatedImages(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE allowAnimatedImageLooping(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setAllowAnimatedImageLooping(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE setLoadsImagesAutomatically(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE loadsImagesAutomatically(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setAutosaves(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE autosaves(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setShouldPrintBackgrounds(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE shouldPrintBackgrounds(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setPrivateBrowsingEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE privateBrowsingEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setTabsToLinks(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE tabsToLinks(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE textAreasAreResizable(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setTextAreasAreResizable(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE usesPageCache(
BOOL *usesPageCache);
virtual HRESULT STDMETHODCALLTYPE setUsesPageCache(
BOOL usesPageCache);
virtual HRESULT STDMETHODCALLTYPE unused1();
virtual HRESULT STDMETHODCALLTYPE unused2();
virtual HRESULT STDMETHODCALLTYPE iconDatabaseLocation(
BSTR* location);
virtual HRESULT STDMETHODCALLTYPE setIconDatabaseLocation(
BSTR location);
virtual HRESULT STDMETHODCALLTYPE iconDatabaseEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setIconDatabaseEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE fontSmoothing(
FontSmoothingType* smoothingType);
virtual HRESULT STDMETHODCALLTYPE setFontSmoothing(
FontSmoothingType smoothingType);
virtual HRESULT STDMETHODCALLTYPE editableLinkBehavior(
WebKitEditableLinkBehavior* behavior);
virtual HRESULT STDMETHODCALLTYPE setEditableLinkBehavior(
WebKitEditableLinkBehavior behavior);
virtual HRESULT STDMETHODCALLTYPE editingBehavior(
WebKitEditingBehavior* behavior);
virtual HRESULT STDMETHODCALLTYPE setEditingBehavior(
WebKitEditingBehavior behavior);
virtual HRESULT STDMETHODCALLTYPE cookieStorageAcceptPolicy(
WebKitCookieStorageAcceptPolicy *acceptPolicy);
virtual HRESULT STDMETHODCALLTYPE setCookieStorageAcceptPolicy(
WebKitCookieStorageAcceptPolicy acceptPolicy);
virtual HRESULT STDMETHODCALLTYPE continuousSpellCheckingEnabled(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE grammarCheckingEnabled(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE allowContinuousSpellChecking(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setAllowContinuousSpellChecking(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE isDOMPasteAllowed(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setDOMPasteAllowed(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE cacheModel(
WebCacheModel* cacheModel);
virtual HRESULT STDMETHODCALLTYPE setCacheModel(
WebCacheModel cacheModel);
virtual HRESULT STDMETHODCALLTYPE setShouldPaintCustomScrollbars(
BOOL shouldPaint);
virtual HRESULT STDMETHODCALLTYPE shouldPaintCustomScrollbars(
BOOL *shouldPaint);
virtual HRESULT STDMETHODCALLTYPE setAVFoundationEnabled(
BOOL);
virtual HRESULT STDMETHODCALLTYPE avFoundationEnabled(
BOOL*);
virtual HRESULT STDMETHODCALLTYPE setDeveloperExtrasEnabled(
BOOL);
virtual HRESULT STDMETHODCALLTYPE developerExtrasEnabled(
BOOL*);
virtual HRESULT STDMETHODCALLTYPE setAutomaticallyDetectsCacheModel(
BOOL automaticallyDetectsCacheModel);
virtual HRESULT STDMETHODCALLTYPE automaticallyDetectsCacheModel(
BOOL* automaticallyDetectsCacheModel);
virtual HRESULT STDMETHODCALLTYPE setAuthorAndUserStylesEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE authorAndUserStylesEnabled(BOOL*);
virtual HRESULT STDMETHODCALLTYPE inApplicationChromeMode(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setApplicationChromeMode(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE setOfflineWebApplicationCacheEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE offlineWebApplicationCacheEnabled(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setDatabasesEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE databasesEnabled(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setLocalStorageEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE localStorageEnabled(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE localStorageDatabasePath(
BSTR* location);
virtual HRESULT STDMETHODCALLTYPE setLocalStorageDatabasePath(
BSTR location);
virtual HRESULT STDMETHODCALLTYPE experimentalNotificationsEnabled(
BOOL *enabled);
virtual HRESULT STDMETHODCALLTYPE setExperimentalNotificationsEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE setShouldPaintNativeControls(
BOOL shouldPaint);
virtual HRESULT STDMETHODCALLTYPE shouldPaintNativeControls(
BOOL *shouldPaint);
virtual HRESULT STDMETHODCALLTYPE setZoomsTextOnly(
BOOL zoomsTextOnly);
virtual HRESULT STDMETHODCALLTYPE zoomsTextOnly(
BOOL *zoomsTextOnly);
virtual HRESULT STDMETHODCALLTYPE fontSmoothingContrast(
float* contrast);
virtual HRESULT STDMETHODCALLTYPE setFontSmoothingContrast(
float contrast);
virtual HRESULT STDMETHODCALLTYPE isWebSecurityEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setWebSecurityEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE allowUniversalAccessFromFileURLs(
BOOL* allowAccess);
virtual HRESULT STDMETHODCALLTYPE setAllowUniversalAccessFromFileURLs(
BOOL allowAccess);
virtual HRESULT STDMETHODCALLTYPE allowFileAccessFromFileURLs(
BOOL* allowAccess);
virtual HRESULT STDMETHODCALLTYPE setAllowFileAccessFromFileURLs(
BOOL allowAccess);
virtual HRESULT STDMETHODCALLTYPE javaScriptCanAccessClipboard(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanAccessClipboard(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE isXSSAuditorEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setXSSAuditorEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE setShouldUseHighResolutionTimers(
BOOL useHighResolutionTimers);
virtual HRESULT STDMETHODCALLTYPE shouldUseHighResolutionTimers(
BOOL* useHighResolutionTimers);
virtual HRESULT STDMETHODCALLTYPE setPluginAllowedRunTime(
UINT allowedRunTime);
virtual HRESULT STDMETHODCALLTYPE pluginAllowedRunTime(
UINT* allowedRunTime);
virtual HRESULT STDMETHODCALLTYPE isFrameFlatteningEnabled(
BOOL* enabled);
virtual HRESULT STDMETHODCALLTYPE setFrameFlatteningEnabled(
BOOL enabled);
virtual HRESULT STDMETHODCALLTYPE setPreferenceForTest(
BSTR key,
BSTR value);
virtual HRESULT STDMETHODCALLTYPE setAcceleratedCompositingEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE acceleratedCompositingEnabled(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setCustomDragCursorsEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE customDragCursorsEnabled(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setShowDebugBorders(BOOL);
virtual HRESULT STDMETHODCALLTYPE showDebugBorders(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setShowRepaintCounter(BOOL);
virtual HRESULT STDMETHODCALLTYPE showRepaintCounter(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setDNSPrefetchingEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE isDNSPrefetchingEnabled(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setMemoryInfoEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE memoryInfoEnabled(BOOL*);
virtual HRESULT STDMETHODCALLTYPE hyperlinkAuditingEnabled(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setHyperlinkAuditingEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE loadsSiteIconsIgnoringImageLoadingPreference(BOOL*);
virtual HRESULT STDMETHODCALLTYPE setLoadsSiteIconsIgnoringImageLoadingPreference(BOOL);
virtual HRESULT STDMETHODCALLTYPE setFullScreenEnabled(BOOL);
virtual HRESULT STDMETHODCALLTYPE isFullScreenEnabled(BOOL*);
bool developerExtrasDisabledByOverride();
static BSTR webPreferencesChangedNotification();
static BSTR webPreferencesRemovedNotification();
static void setInstance(WebPreferences* instance, BSTR identifier);
static void removeReferenceForIdentifier(BSTR identifier);
static WebPreferences* sharedStandardPreferences();
HRESULT historyItemLimit(int* limit);
HRESULT setHistoryItemLimit(int limit);
HRESULT historyAgeInDaysLimit(int* limit);
HRESULT setHistoryAgeInDaysLimit(int limit);
void willAddToWebView();
void didRemoveFromWebView();
HRESULT postPreferencesChangesNotification();
protected:
void setValueForKey(CFStringRef key, CFPropertyListRef value);
RetainPtr<CFPropertyListRef> valueForKey(CFStringRef key);
BSTR stringValueForKey(CFStringRef key);
int integerValueForKey(CFStringRef key);
BOOL boolValueForKey(CFStringRef key);
float floatValueForKey(CFStringRef key);
LONGLONG longlongValueForKey(CFStringRef key);
void setStringValue(CFStringRef key, LPCTSTR value);
void setIntegerValue(CFStringRef key, int value);
void setBoolValue(CFStringRef key, BOOL value);
void setFloatValue(CFStringRef key, float value);
void setLongLongValue(CFStringRef key, LONGLONG value);
static WebPreferences* getInstanceForIdentifier(BSTR identifier);
static void initializeDefaultSettings();
void save();
void load();
void migrateWebKitPreferencesToCFPreferences();
void copyWebKitPreferencesToCFPreferences(CFDictionaryRef);
protected:
ULONG m_refCount;
RetainPtr<CFMutableDictionaryRef> m_privatePrefs;
WebCore::BString m_identifier;
bool m_autoSaves;
bool m_automaticallyDetectsCacheModel;
unsigned m_numWebViews;
};
#endif