summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/chromium/public/WebSettings.h
blob: ccf3303c757379f8e98ffb7787bbd483d30a0fc2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/*
 * Copyright (C) 2009 Google 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:
 *
 *     * Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 *     * 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.
 *     * Neither the name of Google Inc. nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "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 THE COPYRIGHT
 * OWNER 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 WebSettings_h
#define WebSettings_h

#include "platform/WebCommon.h"
#include "platform/WebSize.h"
#include <unicode/uscript.h>

#define HAS_WEBAUDIO_FEATURE_ENABLE 1

namespace WebKit {

class WebString;
class WebURL;

// WebSettings is owned by the WebView and allows code to modify the settings for
// the WebView's page without any knowledge of WebCore itself.  For the most part,
// these functions have a 1:1 mapping with the methods in WebCore/page/Settings.h.
class WebSettings {
public:
    enum EditingBehavior {
        EditingBehaviorMac,
        EditingBehaviorWin,
        EditingBehaviorUnix
    };

    virtual void setStandardFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
    virtual void setFixedFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
    virtual void setSerifFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
    virtual void setSansSerifFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
    virtual void setCursiveFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
    virtual void setFantasyFontFamily(const WebString&, UScriptCode = USCRIPT_COMMON) = 0;
    virtual void setDefaultFontSize(int) = 0;
    virtual void setDefaultFixedFontSize(int) = 0;
    virtual void setMinimumFontSize(int) = 0;
    virtual void setMinimumLogicalFontSize(int) = 0;
    virtual void setDefaultDeviceScaleFactor(int) = 0;
    virtual void setApplyDefaultDeviceScaleFactorInCompositor(bool) = 0;
    virtual void setFontBoostingEnabled(bool) = 0;
    virtual void setDefaultTextEncodingName(const WebString&) = 0;
    virtual void setDeviceSupportsTouch(bool) = 0;
    virtual void setJavaScriptEnabled(bool) = 0;
    virtual void setWebSecurityEnabled(bool) = 0;
    virtual void setJavaScriptCanOpenWindowsAutomatically(bool) = 0;
    virtual void setLoadsImagesAutomatically(bool) = 0;
    virtual void setImagesEnabled(bool) = 0;
    virtual void setPluginsEnabled(bool) = 0;
    virtual void setDOMPasteAllowed(bool) = 0;
    virtual void setDeveloperExtrasEnabled(bool) = 0;
    virtual void setNeedsSiteSpecificQuirks(bool) = 0;
    virtual void setShrinksStandaloneImagesToFit(bool) = 0;
    virtual void setUsesEncodingDetector(bool) = 0;
    virtual void setTextAreasAreResizable(bool) = 0;
    virtual void setJavaEnabled(bool) = 0;
    virtual void setAllowScriptsToCloseWindows(bool) = 0;
    virtual void setUserStyleSheetLocation(const WebURL&) = 0;
    virtual void setAuthorAndUserStylesEnabled(bool) = 0;
    virtual void setUsesPageCache(bool) = 0;
    virtual void setPageCacheSupportsPlugins(bool) = 0;
    virtual void setDownloadableBinaryFontsEnabled(bool) = 0;
    virtual void setJavaScriptCanAccessClipboard(bool) = 0;
    virtual void setXSSAuditorEnabled(bool) = 0;
    virtual void setDNSPrefetchingEnabled(bool) = 0;
    virtual void setFixedElementsLayoutRelativeToFrame(bool) = 0;
    virtual void setLocalStorageEnabled(bool) = 0;
    virtual void setEditableLinkBehaviorNeverLive() = 0;
    virtual void setFrameFlatteningEnabled(bool) = 0;
    virtual void setFontRenderingModeNormal() = 0;
    virtual void setAllowUniversalAccessFromFileURLs(bool) = 0;
    virtual void setAllowFileAccessFromFileURLs(bool) = 0;
    virtual void setTextDirectionSubmenuInclusionBehaviorNeverIncluded() = 0;
    virtual void setOfflineWebApplicationCacheEnabled(bool) = 0;
    virtual void setWebAudioEnabled(bool) = 0;
    virtual void setExperimentalWebGLEnabled(bool) = 0;
    virtual void setExperimentalCSSRegionsEnabled(bool) = 0;
    virtual void setExperimentalCSSGridLayoutEnabled(bool) = 0;
    virtual void setExperimentalCSSCustomFilterEnabled(bool) = 0;
    virtual void setOpenGLMultisamplingEnabled(bool) = 0;
    virtual void setPrivilegedWebGLExtensionsEnabled(bool) = 0;
    virtual void setWebGLErrorsToConsoleEnabled(bool) = 0;
    virtual void setShowDebugBorders(bool) = 0;
    virtual void setShowFPSCounter(bool) = 0;
    virtual void setShowPlatformLayerTree(bool) = 0;
    virtual void setShowPaintRects(bool) = 0;
    virtual void setEditingBehavior(EditingBehavior) = 0;
    virtual void setAcceleratedCompositingEnabled(bool) = 0;
    virtual void setForceCompositingMode(bool) = 0;
    virtual void setMockScrollbarsEnabled(bool) = 0;
    virtual void setAcceleratedCompositingFor3DTransformsEnabled(bool) = 0;
    virtual void setAcceleratedCompositingForVideoEnabled(bool) = 0;
    virtual void setAcceleratedCompositingForCanvasEnabled(bool) = 0;
    virtual void setAcceleratedCompositingForPluginsEnabled(bool) = 0;
    virtual void setAcceleratedCompositingForAnimationEnabled(bool) = 0;
    virtual void setAccelerated2dCanvasEnabled(bool) = 0;
    virtual void setDeferred2dCanvasEnabled(bool) = 0;
    virtual void setAcceleratedCompositingForFixedPositionEnabled(bool)  = 0;
    virtual void setMinimumAccelerated2dCanvasSize(int) = 0;
    virtual void setAcceleratedFiltersEnabled(bool) = 0;
    virtual void setMemoryInfoEnabled(bool) = 0;
    virtual void setHyperlinkAuditingEnabled(bool) = 0;
    virtual void setLayoutFallbackWidth(int) = 0;
    virtual void setAsynchronousSpellCheckingEnabled(bool) = 0;
    virtual void setUnifiedTextCheckerEnabled(bool) = 0;
    virtual void setCaretBrowsingEnabled(bool) = 0;
    virtual void setInteractiveFormValidationEnabled(bool) = 0;
    virtual void setValidationMessageTimerMagnification(int) = 0;
    virtual void setMinimumTimerInterval(double) = 0;
    virtual void setFullScreenEnabled(bool) = 0;
    virtual void setAllowDisplayOfInsecureContent(bool) = 0;
    virtual void setAllowRunningOfInsecureContent(bool) = 0;
    virtual void setPasswordEchoEnabled(bool) = 0;
    virtual void setPasswordEchoDurationInSeconds(double) = 0;
    virtual void setShouldPrintBackgrounds(bool) = 0;
    virtual void setEnableScrollAnimator(bool) = 0;
    virtual bool scrollAnimatorEnabled() const = 0;
    virtual void setHixie76WebSocketProtocolEnabled(bool) = 0;
    virtual void setVisualWordMovementEnabled(bool) = 0;
    virtual void setAcceleratedPaintingEnabled(bool) = 0;
    virtual void setPerTilePaintingEnabled(bool) = 0;
    virtual void setPartialSwapEnabled(bool) = 0;
    virtual void setThreadedAnimationEnabled(bool) = 0;
    virtual void setViewportEnabled(bool) = 0;
    virtual void setMediaPlaybackRequiresUserGesture(bool) = 0;
    virtual bool viewportEnabled() const = 0;
    virtual void setDefaultTileSize(WebSize) = 0;
    virtual void setMaxUntiledLayerSize(WebSize) = 0;
    virtual void setFixedPositionCreatesStackingContext(bool) = 0;
    virtual void setSyncXHRInDocumentsEnabled(bool) = 0;

protected:
    ~WebSettings() { }
};

} // namespace WebKit

#endif