diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKit/win/WebPreferences.h --- /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 +#include +#include + +// {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 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 m_privatePrefs; + bool m_autoSaves; + WebCore::BString m_identifier; + static CFDictionaryRef s_defaultSettings; + static WebPreferences* s_standardPreferences; +}; + +#endif