165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch/*
265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010, 2011 Apple Inc. All rights reserved.
365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *
465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Redistribution and use in source and binary forms, with or without
565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * modification, are permitted provided that the following conditions
665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * are met:
765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 1. Redistributions of source code must retain the above copyright
865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer.
965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright
1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    notice, this list of conditions and the following disclaimer in the
1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *    documentation and/or other materials provided with the distribution.
1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch *
1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THE POSSIBILITY OF SUCH DAMAGE.
2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch */
2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef WebPreferencesStore_h
2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WebPreferencesStore_h
2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ArgumentDecoder.h"
3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ArgumentEncoder.h"
3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/HashMap.h>
3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/text/StringHash.h>
3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/text/WTFString.h>
3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit {
3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch// macro(KeyUpper, KeyLower, TypeNameUpper, TypeName, DefaultValue)
3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_BOOL_PREFERENCE(macro) \
4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(JavaScriptEnabled, javaScriptEnabled, Bool, bool, true) \
4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(LoadsImagesAutomatically, loadsImagesAutomatically, Bool, bool, true) \
422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    macro(LoadsSiteIconsIgnoringImageLoadingPreference, loadsSiteIconsIgnoringImageLoadingPreference, Bool, bool, false) \
4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(PluginsEnabled, pluginsEnabled, Bool, bool, true) \
4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(JavaEnabled, javaEnabled, Bool, bool, true) \
4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(OfflineWebApplicationCacheEnabled, offlineWebApplicationCacheEnabled, Bool, bool, false) \
4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(LocalStorageEnabled, localStorageEnabled, Bool, bool, true) \
4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DatabasesEnabled, databasesEnabled, Bool, bool, true) \
4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(XSSAuditorEnabled, xssAuditorEnabled, Bool, bool, true) \
4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FrameFlatteningEnabled, frameFlatteningEnabled, Bool, bool, false) \
5065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DeveloperExtrasEnabled, developerExtrasEnabled, Bool, bool, false) \
5165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(PrivateBrowsingEnabled, privateBrowsingEnabled, Bool, bool, false) \
5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(TextAreasAreResizable, textAreasAreResizable, Bool, bool, true) \
5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(JavaScriptCanOpenWindowsAutomatically, javaScriptCanOpenWindowsAutomatically, Bool, bool, true) \
5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(HyperlinkAuditingEnabled, hyperlinkAuditingEnabled, Bool, bool, true) \
5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(NeedsSiteSpecificQuirks, needsSiteSpecificQuirks, Bool, bool, false) \
5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(AcceleratedCompositingEnabled, acceleratedCompositingEnabled, Bool, bool, true) \
5781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch    macro(AcceleratedDrawingEnabled, acceleratedDrawingEnabled, Bool, bool, false) \
582bde8e466a4451c7319e3a072d118917957d6554Steve Block    macro(CanvasUsesAcceleratedDrawing, canvasUsesAcceleratedDrawing, Bool, bool, true) \
5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(CompositingBordersVisible, compositingBordersVisible, Bool, bool, false) \
6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(CompositingRepaintCountersVisible, compositingRepaintCountersVisible, Bool, bool, false) \
612fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(WebGLEnabled, webGLEnabled, Bool, bool, false) \
6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(ForceFTPDirectoryListings, forceFTPDirectoryListings, Bool, bool, false) \
6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(TabsToLinks, tabsToLinks, Bool, bool, false) \
6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DNSPrefetchingEnabled, dnsPrefetchingEnabled, Bool, bool, false) \
6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(WebArchiveDebugModeEnabled, webArchiveDebugModeEnabled, Bool, bool, false) \
6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(LocalFileContentSniffingEnabled, localFileContentSniffingEnabled, Bool, bool, false) \
6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(UsesPageCache, usesPageCache, Bool, bool, true) \
6865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(AuthorAndUserStylesEnabled, authorAndUserStylesEnabled, Bool, bool, true) \
6965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(PaginateDuringLayoutEnabled, paginateDuringLayoutEnabled, Bool, bool, false) \
7065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DOMPasteAllowed, domPasteAllowed, Bool, bool, false) \
712fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(JavaScriptCanAccessClipboard, javaScriptCanAccessClipboard, Bool, bool, false) \
7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(ShouldPrintBackgrounds, shouldPrintBackgrounds, Bool, bool, false) \
732bde8e466a4451c7319e3a072d118917957d6554Steve Block    macro(FullScreenEnabled, fullScreenEnabled, Bool, bool, true) \
742bde8e466a4451c7319e3a072d118917957d6554Steve Block    macro(WebSecurityEnabled, webSecurityEnabled, Bool, bool, true) \
752bde8e466a4451c7319e3a072d118917957d6554Steve Block    macro(AllowUniversalAccessFromFileURLs, allowUniversalAccessFromFileURLs, Bool, bool, false) \
762bde8e466a4451c7319e3a072d118917957d6554Steve Block    macro(AllowFileAccessFromFileURLs, allowFileAccessFromFileURLs, Bool, bool, false) \
7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(PDFScaleFactor, pdfScaleFactor, Double, double, 0) \
8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_UINT32_PREFERENCE(macro) \
8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FontSmoothingLevel, fontSmoothingLevel, UInt32, uint32_t, FontSmoothingLevelMedium) \
8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(MinimumFontSize, minimumFontSize, UInt32, uint32_t, 0) \
8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(MinimumLogicalFontSize, minimumLogicalFontSize, UInt32, uint32_t, 9) \
8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DefaultFontSize, defaultFontSize, UInt32, uint32_t, 16) \
8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DefaultFixedFontSize, defaultFixedFontSize, UInt32, uint32_t, 13) \
8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(PDFDisplayMode, pdfDisplayMode, UInt32, uint32_t, 1) \
902daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    macro(EditableLinkBehavior, editableLinkBehavior, UInt32, uint32_t, WebCore::EditableLinkNeverLive) \
9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
9365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(WIN)
9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_FONT_FAMILY_PREFERENCE(macro) \
9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(StandardFontFamily, standardFontFamily, String, String, "Times New Roman") \
9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(CursiveFontFamily, cursiveFontFamily, String, String, "Comic Sans MS") \
9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FantasyFontFamily, fantasyFontFamily, String, String, "Comic Sans MS") \
9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FixedFontFamily, fixedFontFamily, String, String, "Courier New") \
10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(SansSerifFontFamily, sansSerifFontFamily, String, String, "Arial") \
10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(SerifFontFamily, serifFontFamily, String, String, "Times New Roman") \
10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
1042fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#elif PLATFORM(MAC)
10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_FONT_FAMILY_PREFERENCE(macro) \
10765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(StandardFontFamily, standardFontFamily, String, String, "Times") \
10865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(CursiveFontFamily, cursiveFontFamily, String, String, "Apple Chancery") \
10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FantasyFontFamily, fantasyFontFamily, String, String, "Papyrus") \
11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FixedFontFamily, fixedFontFamily, String, String, "Courier") \
11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(SansSerifFontFamily, sansSerifFontFamily, String, String, "Helvetica") \
1122fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(SerifFontFamily, serifFontFamily, String, String, "Times") \
1132fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    \
1142fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
1152fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#elif PLATFORM(QT) || PLATFORM(GTK)
1162fc2651226baac27029e38c9d6ef883fa32084dbSteve Block
1172fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#define FOR_EACH_WEBKIT_FONT_FAMILY_PREFERENCE(macro) \
1182fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(StandardFontFamily, standardFontFamily, String, String, "Times") \
1192fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(CursiveFontFamily, cursiveFontFamily, String, String, "Comic Sans MS") \
1202fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(FantasyFontFamily, fantasyFontFamily, String, String, "Impact") \
1212fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(FixedFontFamily, fixedFontFamily, String, String, "Courier New") \
1222fc2651226baac27029e38c9d6ef883fa32084dbSteve Block    macro(SansSerifFontFamily, sansSerifFontFamily, String, String, "Helvetica") \
12365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(SerifFontFamily, serifFontFamily, String, String, "Times") \
12465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
12565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif
12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_STRING_PREFERENCE(macro) \
12965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    FOR_EACH_WEBKIT_FONT_FAMILY_PREFERENCE(macro) \
13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(DefaultTextEncodingName, defaultTextEncodingName, String, String, "ISO-8859-1") \
13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    macro(FTPDirectoryTemplatePath, ftpDirectoryTemplatePath, String, String, "") \
13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
13565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define FOR_EACH_WEBKIT_PREFERENCE(macro) \
13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    FOR_EACH_WEBKIT_BOOL_PREFERENCE(macro) \
13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    FOR_EACH_WEBKIT_UINT32_PREFERENCE(macro) \
13965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    FOR_EACH_WEBKIT_STRING_PREFERENCE(macro) \
14065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    \
14165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebPreferencesKey {
14365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define DECLARE_KEY_GETTERS(KeyUpper, KeyLower, TypeName, Type, DefaultValue) const String& KeyLower##Key();
14565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    FOR_EACH_WEBKIT_PREFERENCE(DECLARE_KEY_GETTERS)
14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
14865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#undef DECLARE_KEY_GETTERS
14965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebPreferencesKey
15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct WebPreferencesStore {
15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    WebPreferencesStore();
15465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    void encode(CoreIPC::ArgumentEncoder* encoder) const;
15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    static bool decode(CoreIPC::ArgumentDecoder*, WebPreferencesStore&);
15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    // NOTE: The getters in this class have non-standard names to aid in the use of the preference macros.
15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool setStringValueForKey(const String& key, const String& value);
16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    String getStringValueForKey(const String& key) const;
16265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool setBoolValueForKey(const String& key, bool value);
16465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool getBoolValueForKey(const String& key) const;
16565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool setUInt32ValueForKey(const String& key, uint32_t value);
16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    uint32_t getUInt32ValueForKey(const String& key) const;
16865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    bool setDoubleValueForKey(const String& key, double value);
17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    double getDoubleValueForKey(const String& key) const;
17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    static void overrideXSSAuditorEnabledForTestRunner(bool);
1732bde8e466a4451c7319e3a072d118917957d6554Steve Block    static void overrideAllowUniversalAccessFromFileURLsForTestRunner(bool);
1742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch    static void overrideAllowFileAccessFromFileURLsForTestRunner(bool);
17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    static void removeTestRunnerOverrides();
17665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
17765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    HashMap<String, String> m_stringValues;
17865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    HashMap<String, bool> m_boolValues;
17965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    HashMap<String, uint32_t> m_uint32Values;
18065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch    HashMap<String, double> m_doubleValues;
18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch};
18265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
18365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebKit
18465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch
18565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // WebPreferencesStore_h
186