--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebKit/win/WebPreferences.h Fri Sep 17 09:02:29 2010 +0300
@@ -0,0 +1,482 @@
+/*
+ * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#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:
+ // IUnknown
+ virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
+ virtual ULONG STDMETHODCALLTYPE AddRef(void);
+ virtual ULONG STDMETHODCALLTYPE Release(void);
+
+ // IWebPreferences
+ virtual HRESULT STDMETHODCALLTYPE standardPreferences(
+ /* [retval][out] */ IWebPreferences** standardPreferences);
+
+ virtual HRESULT STDMETHODCALLTYPE initWithIdentifier(
+ /* [in] */ BSTR anIdentifier,
+ /* [retval][out] */ IWebPreferences** preferences);
+
+ virtual HRESULT STDMETHODCALLTYPE identifier(
+ /* [retval][out] */ BSTR* ident);
+
+ virtual HRESULT STDMETHODCALLTYPE standardFontFamily(
+ /* [retval][out] */ BSTR* family);
+
+ virtual HRESULT STDMETHODCALLTYPE setStandardFontFamily(
+ /* [in] */ BSTR family);
+
+ virtual HRESULT STDMETHODCALLTYPE fixedFontFamily(
+ /* [retval][out] */ BSTR* family);
+
+ virtual HRESULT STDMETHODCALLTYPE setFixedFontFamily(
+ /* [in] */ BSTR family);
+
+ virtual HRESULT STDMETHODCALLTYPE serifFontFamily(
+ /* [retval][out] */ BSTR* fontFamily);
+
+ virtual HRESULT STDMETHODCALLTYPE setSerifFontFamily(
+ /* [in] */ BSTR family);
+
+ virtual HRESULT STDMETHODCALLTYPE sansSerifFontFamily(
+ /* [retval][out] */ BSTR* family);
+
+ virtual HRESULT STDMETHODCALLTYPE setSansSerifFontFamily(
+ /* [in] */ BSTR family);
+
+ virtual HRESULT STDMETHODCALLTYPE cursiveFontFamily(
+ /* [retval][out] */ BSTR* family);
+
+ virtual HRESULT STDMETHODCALLTYPE setCursiveFontFamily(
+ /* [in] */ BSTR family);
+
+ virtual HRESULT STDMETHODCALLTYPE fantasyFontFamily(
+ /* [retval][out] */ BSTR* family);
+
+ virtual HRESULT STDMETHODCALLTYPE setFantasyFontFamily(
+ /* [in] */ BSTR family);
+
+ virtual HRESULT STDMETHODCALLTYPE defaultFontSize(
+ /* [retval][out] */ int* fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE setDefaultFontSize(
+ /* [in] */ int fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE defaultFixedFontSize(
+ /* [retval][out] */ int* fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE setDefaultFixedFontSize(
+ /* [in] */ int fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE minimumFontSize(
+ /* [retval][out] */ int* fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE setMinimumFontSize(
+ /* [in] */ int fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE minimumLogicalFontSize(
+ /* [retval][out] */ int* fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE setMinimumLogicalFontSize(
+ /* [in] */ int fontSize);
+
+ virtual HRESULT STDMETHODCALLTYPE defaultTextEncodingName(
+ /* [retval][out] */ BSTR* name);
+
+ virtual HRESULT STDMETHODCALLTYPE setDefaultTextEncodingName(
+ /* [in] */ BSTR name);
+
+ virtual HRESULT STDMETHODCALLTYPE userStyleSheetEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE userStyleSheetLocation(
+ /* [retval][out] */ BSTR* location);
+
+ virtual HRESULT STDMETHODCALLTYPE setUserStyleSheetLocation(
+ /* [in] */ BSTR location);
+
+ virtual HRESULT STDMETHODCALLTYPE isJavaEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setJavaEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE isJavaScriptEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setJavaScriptEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE javaScriptCanOpenWindowsAutomatically(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanOpenWindowsAutomatically(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE arePlugInsEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setPlugInsEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE allowsAnimatedImages(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setAllowsAnimatedImages(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE allowAnimatedImageLooping(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setAllowAnimatedImageLooping(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setLoadsImagesAutomatically(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE loadsImagesAutomatically(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setAutosaves(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE autosaves(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setShouldPrintBackgrounds(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE shouldPrintBackgrounds(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setPrivateBrowsingEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE privateBrowsingEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setTabsToLinks(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE tabsToLinks(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE textAreasAreResizable(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setTextAreasAreResizable(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE usesPageCache(
+ /* [retval][out] */ BOOL *usesPageCache);
+
+ virtual HRESULT STDMETHODCALLTYPE setUsesPageCache(
+ /* [in] */ BOOL usesPageCache);
+
+ virtual HRESULT STDMETHODCALLTYPE unused1();
+ virtual HRESULT STDMETHODCALLTYPE unused2();
+
+ virtual HRESULT STDMETHODCALLTYPE iconDatabaseLocation(
+ /* [retval][out] */ BSTR* location);
+
+ virtual HRESULT STDMETHODCALLTYPE setIconDatabaseLocation(
+ /* [in] */ BSTR location);
+
+ virtual HRESULT STDMETHODCALLTYPE iconDatabaseEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setIconDatabaseEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE fontSmoothing(
+ /* [retval][out] */ FontSmoothingType* smoothingType);
+
+ virtual HRESULT STDMETHODCALLTYPE setFontSmoothing(
+ /* [in] */ FontSmoothingType smoothingType);
+
+ virtual HRESULT STDMETHODCALLTYPE editableLinkBehavior(
+ /* [retval][out] */ WebKitEditableLinkBehavior* behavior);
+
+ virtual HRESULT STDMETHODCALLTYPE setEditableLinkBehavior(
+ /* [in] */ WebKitEditableLinkBehavior behavior);
+
+ virtual HRESULT STDMETHODCALLTYPE editingBehavior(
+ /* [retval][out] */ WebKitEditingBehavior* behavior);
+
+ virtual HRESULT STDMETHODCALLTYPE setEditingBehavior(
+ /* [in] */ WebKitEditingBehavior behavior);
+
+ virtual HRESULT STDMETHODCALLTYPE cookieStorageAcceptPolicy(
+ /* [retval][out] */ WebKitCookieStorageAcceptPolicy *acceptPolicy);
+
+ virtual HRESULT STDMETHODCALLTYPE setCookieStorageAcceptPolicy(
+ /* [in] */ WebKitCookieStorageAcceptPolicy acceptPolicy);
+
+ virtual HRESULT STDMETHODCALLTYPE continuousSpellCheckingEnabled(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE grammarCheckingEnabled(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE allowContinuousSpellChecking(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setAllowContinuousSpellChecking(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE isDOMPasteAllowed(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setDOMPasteAllowed(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE cacheModel(
+ /* [retval][out] */ WebCacheModel* cacheModel);
+
+ virtual HRESULT STDMETHODCALLTYPE setCacheModel(
+ /* [in] */ WebCacheModel cacheModel);
+
+ virtual HRESULT STDMETHODCALLTYPE setShouldPaintCustomScrollbars(
+ /* [in] */ BOOL shouldPaint);
+
+ virtual HRESULT STDMETHODCALLTYPE shouldPaintCustomScrollbars(
+ /* [retval][out] */ BOOL *shouldPaint);
+
+ // IWebPreferencesPrivate
+ virtual HRESULT STDMETHODCALLTYPE setDeveloperExtrasEnabled(
+ /* [in] */ BOOL);
+
+ virtual HRESULT STDMETHODCALLTYPE developerExtrasEnabled(
+ /* [retval][out] */ BOOL*);
+
+ virtual HRESULT STDMETHODCALLTYPE setAutomaticallyDetectsCacheModel(
+ /* [in] */ BOOL automaticallyDetectsCacheModel);
+
+ virtual HRESULT STDMETHODCALLTYPE automaticallyDetectsCacheModel(
+ /* [out, retval] */ BOOL* automaticallyDetectsCacheModel);
+
+ virtual HRESULT STDMETHODCALLTYPE setAuthorAndUserStylesEnabled(BOOL);
+ virtual HRESULT STDMETHODCALLTYPE authorAndUserStylesEnabled(BOOL*);
+
+ virtual HRESULT STDMETHODCALLTYPE inApplicationChromeMode(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setApplicationChromeMode(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setOfflineWebApplicationCacheEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE offlineWebApplicationCacheEnabled(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setDatabasesEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE databasesEnabled(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setLocalStorageEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE localStorageEnabled(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE localStorageDatabasePath(
+ /* [out, retval] */ BSTR* location);
+
+ virtual HRESULT STDMETHODCALLTYPE setLocalStorageDatabasePath(
+ /* [in] */ BSTR location);
+
+ virtual HRESULT STDMETHODCALLTYPE experimentalNotificationsEnabled(
+ /* [retval][out] */ BOOL *enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setExperimentalNotificationsEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setShouldPaintNativeControls(
+ /* [in] */ BOOL shouldPaint);
+
+ virtual HRESULT STDMETHODCALLTYPE shouldPaintNativeControls(
+ /* [retval][out] */ BOOL *shouldPaint);
+
+ virtual HRESULT STDMETHODCALLTYPE setZoomsTextOnly(
+ /* [retval][out] */ BOOL zoomsTextOnly);
+
+ virtual HRESULT STDMETHODCALLTYPE zoomsTextOnly(
+ /* [retval][out] */ BOOL *zoomsTextOnly);
+
+ virtual HRESULT STDMETHODCALLTYPE fontSmoothingContrast(
+ /* [retval][out] */ float* contrast);
+
+ virtual HRESULT STDMETHODCALLTYPE setFontSmoothingContrast(
+ /* [in] */ float contrast);
+
+ virtual HRESULT STDMETHODCALLTYPE isWebSecurityEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setWebSecurityEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE allowUniversalAccessFromFileURLs(
+ /* [retval][out] */ BOOL* allowAccess);
+
+ virtual HRESULT STDMETHODCALLTYPE setAllowUniversalAccessFromFileURLs(
+ /* [in] */ BOOL allowAccess);
+
+ virtual HRESULT STDMETHODCALLTYPE allowFileAccessFromFileURLs(
+ /* [retval][out] */ BOOL* allowAccess);
+
+ virtual HRESULT STDMETHODCALLTYPE setAllowFileAccessFromFileURLs(
+ /* [in] */ BOOL allowAccess);
+
+ virtual HRESULT STDMETHODCALLTYPE javaScriptCanAccessClipboard(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setJavaScriptCanAccessClipboard(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE isXSSAuditorEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setXSSAuditorEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setShouldUseHighResolutionTimers(
+ /* [in] */ BOOL useHighResolutionTimers);
+
+ virtual HRESULT STDMETHODCALLTYPE shouldUseHighResolutionTimers(
+ /* [retval][out] */ BOOL* useHighResolutionTimers);
+
+ virtual HRESULT STDMETHODCALLTYPE setPluginAllowedRunTime(
+ /* [in] */ UINT allowedRunTime);
+
+ virtual HRESULT STDMETHODCALLTYPE pluginAllowedRunTime(
+ /* [retval][out] */ UINT* allowedRunTime);
+
+ virtual HRESULT STDMETHODCALLTYPE isFrameFlatteningEnabled(
+ /* [retval][out] */ BOOL* enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setFrameFlatteningEnabled(
+ /* [in] */ BOOL enabled);
+
+ virtual HRESULT STDMETHODCALLTYPE setPreferenceForTest(
+ /* [in] */ BSTR key,
+ /* [in] */ 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*);
+
+ // WebPreferences
+
+ // This method accesses a different preference key than developerExtrasEnabled.
+ // See <rdar://5343767> for the justification.
+ bool developerExtrasDisabledByOverride();
+
+ static BSTR webPreferencesChangedNotification();
+ static BSTR webPreferencesRemovedNotification();
+
+ static void setInstance(WebPreferences* instance, BSTR identifier);
+ static void removeReferenceForIdentifier(BSTR identifier);
+ static WebPreferences* sharedStandardPreferences();
+
+ // From WebHistory.h
+ 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