--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/win/WebPreferences.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,331 @@
+/*
+ * Copyright (C) 2006, 2007 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 "IWebPreferences.h"
+#include "IWebPreferencesPrivate.h"
+#include <CoreFoundation/CoreFoundation.h>
+#include <WebCore/BString.h>
+#include <wtf/RetainPtr.h>
+
+// {A20B5645-692D-4147-BF80-E8CD84BE82A1}
+DEFINE_GUID(IID_WebPreferences, 0xa20b5645, 0x692d, 0x4147, 0xbf, 0x80, 0xe8, 0xcd, 0x84, 0xbe, 0x82, 0xa1);
+
+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 pageCacheSize(
+ /* [retval][out] */ unsigned int *limit);
+
+ virtual HRESULT STDMETHODCALLTYPE objectCacheSize(
+ /* [retval][out] */ unsigned int *limit);
+
+ 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 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);
+
+ // IWebPreferencesPrivate
+ virtual HRESULT STDMETHODCALLTYPE setDeveloperExtrasEnabled(
+ /* [in] */ BOOL);
+
+ virtual HRESULT STDMETHODCALLTYPE developerExtrasEnabled(
+ /* [retval][out] */ BOOL*);
+
+
+ // WebPreferences
+
+ // This method accesses a different preference key than developerExtrasEnabled.
+ // See <rdar://5343767> for the justification.
+ bool developerExtrasDisabledByOverride();
+
+ static BSTR webPreferencesChangedNotification();
+ 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);
+
+protected:
+ HRESULT postPreferencesChangesNotification();
+ const void* valueForKey(CFStringRef key);
+ BSTR stringValueForKey(CFStringRef key);
+ int integerValueForKey(CFStringRef key);
+ BOOL boolValueForKey(CFStringRef key);
+ float floatValueForKey(CFStringRef key);
+ void setStringValue(CFStringRef key, LPCTSTR value);
+ void setIntegerValue(CFStringRef key, int value);
+ void setBoolValue(CFStringRef key, BOOL value);
+ static WebPreferences* getInstanceForIdentifier(BSTR identifier);
+ static void initializeDefaultSettings();
+ void save();
+ void load();
+ void migrateDefaultSettingsFromSafari3Beta();
+ void removeValuesMatchingDefaultSettings();
+ static HRESULT preferencesPath(LPTSTR path, size_t cchPath);
+ static HRESULT safeCreateFileWithData(LPCTSTR path, void* data, size_t length);
+
+protected:
+ ULONG m_refCount;
+ RetainPtr<CFMutableDictionaryRef> m_privatePrefs;
+ bool m_autoSaves;
+ WebCore::BString m_identifier;
+ static CFDictionaryRef s_defaultSettings;
+ static WebPreferences* s_standardPreferences;
+};
+
+#endif