2011-04-22 Jer Noble <jer.noble@apple.com>
[WebKit-https.git] / Source / WebCore / page / Settings.h
1 /*
2  * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved.
3  *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
25  */
26
27 #ifndef Settings_h
28 #define Settings_h
29
30 #include "EditingBehaviorTypes.h"
31 #include "FontRenderingMode.h"
32 #include "KURL.h"
33 #include <wtf/text/AtomicString.h>
34
35 namespace WebCore {
36
37     class Page;
38
39     enum EditableLinkBehavior {
40         EditableLinkDefaultBehavior,
41         EditableLinkAlwaysLive,
42         EditableLinkOnlyLiveWithShiftKey,
43         EditableLinkLiveWhenNotFocused,
44         EditableLinkNeverLive
45     };
46
47     enum TextDirectionSubmenuInclusionBehavior {
48         TextDirectionSubmenuNeverIncluded,
49         TextDirectionSubmenuAutomaticallyIncluded,
50         TextDirectionSubmenuAlwaysIncluded
51     };
52
53     class Settings {
54         WTF_MAKE_NONCOPYABLE(Settings); WTF_MAKE_FAST_ALLOCATED;
55     public:
56         Settings(Page*);
57
58         void setStandardFontFamily(const AtomicString&);
59         const AtomicString& standardFontFamily() const { return m_standardFontFamily; }
60
61         void setFixedFontFamily(const AtomicString&);
62         const AtomicString& fixedFontFamily() const { return m_fixedFontFamily; }
63
64         void setSerifFontFamily(const AtomicString&);
65         const AtomicString& serifFontFamily() const { return m_serifFontFamily; }
66
67         void setSansSerifFontFamily(const AtomicString&);
68         const AtomicString& sansSerifFontFamily() const { return m_sansSerifFontFamily; }
69
70         void setCursiveFontFamily(const AtomicString&);
71         const AtomicString& cursiveFontFamily() const { return m_cursiveFontFamily; }
72
73         void setFantasyFontFamily(const AtomicString&);
74         const AtomicString& fantasyFontFamily() const { return m_fantasyFontFamily; }
75
76         void setMinimumFontSize(int);
77         int minimumFontSize() const { return m_minimumFontSize; }
78
79         void setMinimumLogicalFontSize(int);
80         int minimumLogicalFontSize() const { return m_minimumLogicalFontSize; }
81
82         void setDefaultFontSize(int);
83         int defaultFontSize() const { return m_defaultFontSize; }
84
85         void setDefaultFixedFontSize(int);
86         int defaultFixedFontSize() const { return m_defaultFixedFontSize; }
87
88         // Unlike areImagesEnabled, this only suppresses the network load of
89         // the image URL.  A cached image will still be rendered if requested.
90         void setLoadsImagesAutomatically(bool);
91         bool loadsImagesAutomatically() const { return m_loadsImagesAutomatically; }
92
93         // This setting only affects site icon image loading if loadsImagesAutomatically setting is false and this setting is true.
94         // All other permutations still heed loadsImagesAutomatically setting.
95         void setLoadsSiteIconsIgnoringImageLoadingSetting(bool);
96         bool loadsSiteIconsIgnoringImageLoadingSetting() const { return m_loadsSiteIconsIgnoringImageLoadingSetting; }
97
98         void setJavaScriptEnabled(bool);
99         // Instead of calling isJavaScriptEnabled directly, please consider calling
100         // ScriptController::canExecuteScripts, which takes things like the
101         // HTML sandbox attribute into account.
102         bool isJavaScriptEnabled() const { return m_isJavaScriptEnabled; }
103
104         void setWebSecurityEnabled(bool);
105         bool isWebSecurityEnabled() const { return m_isWebSecurityEnabled; }
106
107         void setAllowUniversalAccessFromFileURLs(bool);
108         bool allowUniversalAccessFromFileURLs() const { return m_allowUniversalAccessFromFileURLs; }
109
110         void setAllowFileAccessFromFileURLs(bool);
111         bool allowFileAccessFromFileURLs() const { return m_allowFileAccessFromFileURLs; }
112
113         void setJavaScriptCanOpenWindowsAutomatically(bool);
114         bool javaScriptCanOpenWindowsAutomatically() const { return m_javaScriptCanOpenWindowsAutomatically; }
115
116         void setJavaScriptCanAccessClipboard(bool);
117         bool javaScriptCanAccessClipboard() const { return m_javaScriptCanAccessClipboard; }
118
119         void setSpatialNavigationEnabled(bool);
120         bool isSpatialNavigationEnabled() const { return m_isSpatialNavigationEnabled; }
121
122         void setJavaEnabled(bool);
123         bool isJavaEnabled() const { return m_isJavaEnabled; }
124
125         void setImagesEnabled(bool);
126         bool areImagesEnabled() const { return m_areImagesEnabled; }
127
128         void setMediaEnabled(bool);
129         bool isMediaEnabled() const { return m_isMediaEnabled; }
130
131         void setPluginsEnabled(bool);
132         bool arePluginsEnabled() const { return m_arePluginsEnabled; }
133
134         void setLocalStorageEnabled(bool);
135         bool localStorageEnabled() const { return m_localStorageEnabled; }
136
137 #if ENABLE(DOM_STORAGE)
138         // Allow clients concerned with memory consumption to set a quota on session storage
139         // since the memory used won't be released until the Page is destroyed.
140         // Default is noQuota.
141         void setSessionStorageQuota(unsigned);
142         unsigned sessionStorageQuota() const { return m_sessionStorageQuota; }
143 #endif
144
145         // When this option is set, WebCore will avoid storing any record of browsing activity
146         // that may persist on disk or remain displayed when the option is reset.
147         // This option does not affect the storage of such information in RAM.
148         // The following functions respect this setting:
149         //  - HTML5/DOM Storage
150         //  - Icon Database
151         //  - Console Messages
152         //  - MemoryCache
153         //  - Application Cache
154         //  - Back/Forward Page History
155         //  - Page Search Results
156         //  - HTTP Cookies
157         //  - Plug-ins (that support NPNVprivateModeBool)
158         void setPrivateBrowsingEnabled(bool);
159         bool privateBrowsingEnabled() const { return m_privateBrowsingEnabled; }
160
161         void setCaretBrowsingEnabled(bool);
162         bool caretBrowsingEnabled() const { return m_caretBrowsingEnabled; }
163
164         void setDefaultTextEncodingName(const String&);
165         const String& defaultTextEncodingName() const { return m_defaultTextEncodingName; }
166         
167         void setUsesEncodingDetector(bool);
168         bool usesEncodingDetector() const { return m_usesEncodingDetector; }
169
170         void setDNSPrefetchingEnabled(bool);
171         bool dnsPrefetchingEnabled() const { return m_dnsPrefetchingEnabled; }
172
173         void setUserStyleSheetLocation(const KURL&);
174         const KURL& userStyleSheetLocation() const { return m_userStyleSheetLocation; }
175
176         void setShouldPrintBackgrounds(bool);
177         bool shouldPrintBackgrounds() const { return m_shouldPrintBackgrounds; }
178
179         void setTextAreasAreResizable(bool);
180         bool textAreasAreResizable() const { return m_textAreasAreResizable; }
181
182         void setEditableLinkBehavior(EditableLinkBehavior);
183         EditableLinkBehavior editableLinkBehavior() const { return m_editableLinkBehavior; }
184
185         void setTextDirectionSubmenuInclusionBehavior(TextDirectionSubmenuInclusionBehavior);
186         TextDirectionSubmenuInclusionBehavior textDirectionSubmenuInclusionBehavior() const { return m_textDirectionSubmenuInclusionBehavior; }
187
188 #if ENABLE(DASHBOARD_SUPPORT)
189         void setUsesDashboardBackwardCompatibilityMode(bool);
190         bool usesDashboardBackwardCompatibilityMode() const { return m_usesDashboardBackwardCompatibilityMode; }
191 #endif
192         
193         void setNeedsAdobeFrameReloadingQuirk(bool);
194         bool needsAcrobatFrameReloadingQuirk() const { return m_needsAdobeFrameReloadingQuirk; }
195
196         void setNeedsKeyboardEventDisambiguationQuirks(bool);
197         bool needsKeyboardEventDisambiguationQuirks() const { return m_needsKeyboardEventDisambiguationQuirks; }
198
199         void setTreatsAnyTextCSSLinkAsStylesheet(bool);
200         bool treatsAnyTextCSSLinkAsStylesheet() const { return m_treatsAnyTextCSSLinkAsStylesheet; }
201
202         void setNeedsLeopardMailQuirks(bool);
203         bool needsLeopardMailQuirks() const { return m_needsLeopardMailQuirks; }
204
205         void setNeedsTigerMailQuirks(bool);
206         bool needsTigerMailQuirks() const { return m_needsTigerMailQuirks; }
207
208         void setDOMPasteAllowed(bool);
209         bool isDOMPasteAllowed() const { return m_isDOMPasteAllowed; }
210         
211         static void setDefaultMinDOMTimerInterval(double); // Interval specified in seconds.
212         static double defaultMinDOMTimerInterval();
213         
214         void setMinDOMTimerInterval(double); // Per-page; initialized to default value.
215         double minDOMTimerInterval();
216
217         void setUsesPageCache(bool);
218         bool usesPageCache() const { return m_usesPageCache; }
219
220         void setShrinksStandaloneImagesToFit(bool);
221         bool shrinksStandaloneImagesToFit() const { return m_shrinksStandaloneImagesToFit; }
222
223         void setShowsURLsInToolTips(bool);
224         bool showsURLsInToolTips() const { return m_showsURLsInToolTips; }
225
226         void setFTPDirectoryTemplatePath(const String&);
227         const String& ftpDirectoryTemplatePath() const { return m_ftpDirectoryTemplatePath; }
228         
229         void setForceFTPDirectoryListings(bool);
230         bool forceFTPDirectoryListings() const { return m_forceFTPDirectoryListings; }
231         
232         void setDeveloperExtrasEnabled(bool);
233         bool developerExtrasEnabled() const { return m_developerExtrasEnabled; }
234
235         void setFrameFlatteningEnabled(bool);
236         bool frameFlatteningEnabled() const { return m_frameFlatteningEnabled; }
237
238         void setAuthorAndUserStylesEnabled(bool);
239         bool authorAndUserStylesEnabled() const { return m_authorAndUserStylesEnabled; }
240         
241         void setFontRenderingMode(FontRenderingMode mode);
242         FontRenderingMode fontRenderingMode() const;
243
244         void setNeedsSiteSpecificQuirks(bool);
245         bool needsSiteSpecificQuirks() const { return m_needsSiteSpecificQuirks; }
246
247 #if ENABLE(WEB_ARCHIVE)
248         void setWebArchiveDebugModeEnabled(bool);
249         bool webArchiveDebugModeEnabled() const { return m_webArchiveDebugModeEnabled; }
250 #endif
251
252         void setLocalFileContentSniffingEnabled(bool);
253         bool localFileContentSniffingEnabled() const { return m_localFileContentSniffingEnabled; }
254
255         void setLocalStorageDatabasePath(const String&);
256         const String& localStorageDatabasePath() const { return m_localStorageDatabasePath; }
257
258         void setApplicationChromeMode(bool);
259         bool inApplicationChromeMode() const { return m_inApplicationChromeMode; }
260
261         void setOfflineWebApplicationCacheEnabled(bool);
262         bool offlineWebApplicationCacheEnabled() const { return m_offlineWebApplicationCacheEnabled; }
263
264         void setShouldPaintCustomScrollbars(bool);
265         bool shouldPaintCustomScrollbars() const { return m_shouldPaintCustomScrollbars; }
266         
267         void setEnforceCSSMIMETypeInNoQuirksMode(bool);
268         bool enforceCSSMIMETypeInNoQuirksMode() { return m_enforceCSSMIMETypeInNoQuirksMode; }
269
270         void setMaximumDecodedImageSize(size_t size) { m_maximumDecodedImageSize = size; }
271         size_t maximumDecodedImageSize() const { return m_maximumDecodedImageSize; }
272
273 #if USE(SAFARI_THEME)
274         // Windows debugging pref (global) for switching between the Aqua look and a native windows look.
275         static void setShouldPaintNativeControls(bool);
276         static bool shouldPaintNativeControls() { return gShouldPaintNativeControls; }
277 #endif
278
279         void setAllowScriptsToCloseWindows(bool);
280         bool allowScriptsToCloseWindows() const { return m_allowScriptsToCloseWindows; }
281
282         void setEditingBehaviorType(EditingBehaviorType behavior) { m_editingBehaviorType = behavior; }
283         EditingBehaviorType editingBehaviorType() const { return static_cast<EditingBehaviorType>(m_editingBehaviorType); }
284
285         void setDownloadableBinaryFontsEnabled(bool);
286         bool downloadableBinaryFontsEnabled() const { return m_downloadableBinaryFontsEnabled; }
287
288         void setXSSAuditorEnabled(bool);
289         bool xssAuditorEnabled() const { return m_xssAuditorEnabled; }
290
291         void setCanvasUsesAcceleratedDrawing(bool);
292         bool canvasUsesAcceleratedDrawing() const { return m_canvasUsesAcceleratedDrawing; }
293
294         void setAcceleratedDrawingEnabled(bool);
295         bool acceleratedDrawingEnabled() const { return m_acceleratedDrawingEnabled; }
296         
297         void setAcceleratedCompositingEnabled(bool);
298         bool acceleratedCompositingEnabled() const { return m_acceleratedCompositingEnabled; }
299
300         void setAcceleratedCompositingFor3DTransformsEnabled(bool);
301         bool acceleratedCompositingFor3DTransformsEnabled() const { return m_acceleratedCompositingFor3DTransformsEnabled; }
302
303         void setAcceleratedCompositingForVideoEnabled(bool);
304         bool acceleratedCompositingForVideoEnabled() const { return m_acceleratedCompositingForVideoEnabled; }
305
306         void setAcceleratedCompositingForPluginsEnabled(bool);
307         bool acceleratedCompositingForPluginsEnabled() const { return m_acceleratedCompositingForPluginsEnabled; }
308
309         void setAcceleratedCompositingForCanvasEnabled(bool);
310         bool acceleratedCompositingForCanvasEnabled() const { return m_acceleratedCompositingForCanvasEnabled; }
311
312         void setAcceleratedCompositingForAnimationEnabled(bool);
313         bool acceleratedCompositingForAnimationEnabled() const { return m_acceleratedCompositingForAnimationEnabled; }
314
315         void setShowDebugBorders(bool);
316         bool showDebugBorders() const { return m_showDebugBorders; }
317
318         void setShowRepaintCounter(bool);
319         bool showRepaintCounter() const { return m_showRepaintCounter; }
320
321         void setExperimentalNotificationsEnabled(bool);
322         bool experimentalNotificationsEnabled() const { return m_experimentalNotificationsEnabled; }
323
324 #if PLATFORM(WIN) || (OS(WINDOWS) && PLATFORM(WX))
325         static void setShouldUseHighResolutionTimers(bool);
326         static bool shouldUseHighResolutionTimers() { return gShouldUseHighResolutionTimers; }
327 #endif
328
329         void setPluginAllowedRunTime(unsigned);
330         unsigned pluginAllowedRunTime() const { return m_pluginAllowedRunTime; }
331
332         void setWebAudioEnabled(bool);
333         bool webAudioEnabled() const { return m_webAudioEnabled; }
334
335         void setWebGLEnabled(bool);
336         bool webGLEnabled() const { return m_webGLEnabled; }
337
338         void setOpenGLMultisamplingEnabled(bool);
339         bool openGLMultisamplingEnabled() const { return m_openGLMultisamplingEnabled; }
340
341         void setAccelerated2dCanvasEnabled(bool);
342         bool accelerated2dCanvasEnabled() const { return m_acceleratedCanvas2dEnabled; }
343
344         void setLoadDeferringEnabled(bool);
345         bool loadDeferringEnabled() const { return m_loadDeferringEnabled; }
346         
347         void setTiledBackingStoreEnabled(bool);
348         bool tiledBackingStoreEnabled() const { return m_tiledBackingStoreEnabled; }
349
350         void setPaginateDuringLayoutEnabled(bool flag) { m_paginateDuringLayoutEnabled = flag; }
351         bool paginateDuringLayoutEnabled() const { return m_paginateDuringLayoutEnabled; }
352
353 #if ENABLE(FULLSCREEN_API)
354         void setFullScreenEnabled(bool flag) { m_fullScreenAPIEnabled = flag; }
355         bool fullScreenEnabled() const  { return m_fullScreenAPIEnabled; }
356 #endif
357
358 #if USE(AVFOUNDATION)
359         static void setAVFoundationEnabled(bool flag) { gAVFoundationEnabled = flag; }
360         static bool isAVFoundationEnabled() { return gAVFoundationEnabled; }
361 #endif
362
363         void setAsynchronousSpellCheckingEnabled(bool flag) { m_asynchronousSpellCheckingEnabled = flag; }
364         bool asynchronousSpellCheckingEnabled() const  { return m_asynchronousSpellCheckingEnabled; }
365
366         void setMemoryInfoEnabled(bool flag) { m_memoryInfoEnabled = flag; }
367         bool memoryInfoEnabled() const { return m_memoryInfoEnabled; }
368
369         // This setting will be removed when an HTML5 compatibility issue is
370         // resolved and WebKit implementation of interactive validation is
371         // completed. See http://webkit.org/b/40520, http://webkit.org/b/40747,
372         // and http://webkit.org/b/40908
373         void setInteractiveFormValidationEnabled(bool flag) { m_interactiveFormValidation = flag; }
374         bool interactiveFormValidationEnabled() const { return m_interactiveFormValidation; }
375
376         // Sets the maginication value for validation message timer.
377         // If the maginication value is N, a validation message disappears
378         // automatically after <message length> * N / 1000 seconds. If N is
379         // equal to or less than 0, a validation message doesn't disappears
380         // automaticaly. The default value is 50.
381         void setValidationMessageTimerMagnification(int newValue) { m_validationMessageTimerMagnification = newValue; }
382         int validationMessageTimerMaginification() const { return m_validationMessageTimerMagnification; }
383         
384         void setUsePreHTML5ParserQuirks(bool flag) { m_usePreHTML5ParserQuirks = flag; }
385         bool usePreHTML5ParserQuirks() const { return m_usePreHTML5ParserQuirks; }
386
387         void setHyperlinkAuditingEnabled(bool flag) { m_hyperlinkAuditingEnabled = flag; }
388         bool hyperlinkAuditingEnabled() const { return m_hyperlinkAuditingEnabled; }
389
390         void setCrossOriginCheckInGetMatchedCSSRulesDisabled(bool flag) { m_crossOriginCheckInGetMatchedCSSRulesDisabled = flag; }
391         bool crossOriginCheckInGetMatchedCSSRulesDisabled() const { return m_crossOriginCheckInGetMatchedCSSRulesDisabled; }
392         
393         void setUseQuickLookResourceCachingQuirks(bool flag) { m_useQuickLookResourceCachingQuirks = flag; }
394         bool useQuickLookResourceCachingQuirks() const { return m_useQuickLookResourceCachingQuirks; }
395
396         void setForceCompositingMode(bool flag) { m_forceCompositingMode = flag; }
397         bool forceCompositingMode() { return m_forceCompositingMode; }
398         
399         void setShouldInjectUserScriptsInInitialEmptyDocument(bool flag) { m_shouldInjectUserScriptsInInitialEmptyDocument = flag; }
400         bool shouldInjectUserScriptsInInitialEmptyDocument() { return m_shouldInjectUserScriptsInInitialEmptyDocument; }
401
402     private:
403         Page* m_page;
404
405         String m_defaultTextEncodingName;
406         String m_ftpDirectoryTemplatePath;
407         String m_localStorageDatabasePath;
408         KURL m_userStyleSheetLocation;
409         AtomicString m_standardFontFamily;
410         AtomicString m_fixedFontFamily;
411         AtomicString m_serifFontFamily;
412         AtomicString m_sansSerifFontFamily;
413         AtomicString m_cursiveFontFamily;
414         AtomicString m_fantasyFontFamily;
415         EditableLinkBehavior m_editableLinkBehavior;
416         TextDirectionSubmenuInclusionBehavior m_textDirectionSubmenuInclusionBehavior;
417         int m_minimumFontSize;
418         int m_minimumLogicalFontSize;
419         int m_defaultFontSize;
420         int m_defaultFixedFontSize;
421         int m_validationMessageTimerMagnification;
422         size_t m_maximumDecodedImageSize;
423 #if ENABLE(DOM_STORAGE)
424         unsigned m_sessionStorageQuota;
425 #endif
426         unsigned m_pluginAllowedRunTime;
427         unsigned m_editingBehaviorType;
428         bool m_isSpatialNavigationEnabled : 1;
429         bool m_isJavaEnabled : 1;
430         bool m_loadsImagesAutomatically : 1;
431         bool m_loadsSiteIconsIgnoringImageLoadingSetting : 1;
432         bool m_privateBrowsingEnabled : 1;
433         bool m_caretBrowsingEnabled : 1;
434         bool m_areImagesEnabled : 1;
435         bool m_isMediaEnabled : 1;
436         bool m_arePluginsEnabled : 1;
437         bool m_localStorageEnabled : 1;
438         bool m_isJavaScriptEnabled : 1;
439         bool m_isWebSecurityEnabled : 1;
440         bool m_allowUniversalAccessFromFileURLs: 1;
441         bool m_allowFileAccessFromFileURLs: 1;
442         bool m_javaScriptCanOpenWindowsAutomatically : 1;
443         bool m_javaScriptCanAccessClipboard : 1;
444         bool m_shouldPrintBackgrounds : 1;
445         bool m_textAreasAreResizable : 1;
446 #if ENABLE(DASHBOARD_SUPPORT)
447         bool m_usesDashboardBackwardCompatibilityMode : 1;
448 #endif
449         bool m_needsAdobeFrameReloadingQuirk : 1;
450         bool m_needsKeyboardEventDisambiguationQuirks : 1;
451         bool m_treatsAnyTextCSSLinkAsStylesheet : 1;
452         bool m_needsLeopardMailQuirks : 1;
453         bool m_needsTigerMailQuirks : 1;
454         bool m_isDOMPasteAllowed : 1;
455         bool m_shrinksStandaloneImagesToFit : 1;
456         bool m_usesPageCache: 1;
457         bool m_showsURLsInToolTips : 1;
458         bool m_forceFTPDirectoryListings : 1;
459         bool m_developerExtrasEnabled : 1;
460         bool m_authorAndUserStylesEnabled : 1;
461         bool m_needsSiteSpecificQuirks : 1;
462         unsigned m_fontRenderingMode : 1;
463         bool m_frameFlatteningEnabled : 1;
464         bool m_webArchiveDebugModeEnabled : 1;
465         bool m_localFileContentSniffingEnabled : 1;
466         bool m_inApplicationChromeMode : 1;
467         bool m_offlineWebApplicationCacheEnabled : 1;
468         bool m_shouldPaintCustomScrollbars : 1;
469         bool m_enforceCSSMIMETypeInNoQuirksMode : 1;
470         bool m_usesEncodingDetector : 1;
471         bool m_allowScriptsToCloseWindows : 1;
472         bool m_canvasUsesAcceleratedDrawing : 1;
473         bool m_acceleratedDrawingEnabled : 1;
474         bool m_downloadableBinaryFontsEnabled : 1;
475         bool m_xssAuditorEnabled : 1;
476         bool m_acceleratedCompositingEnabled : 1;
477         bool m_acceleratedCompositingFor3DTransformsEnabled : 1;
478         bool m_acceleratedCompositingForVideoEnabled : 1;
479         bool m_acceleratedCompositingForPluginsEnabled : 1;
480         bool m_acceleratedCompositingForCanvasEnabled : 1;
481         bool m_acceleratedCompositingForAnimationEnabled : 1;
482         bool m_showDebugBorders : 1;
483         bool m_showRepaintCounter : 1;
484         bool m_experimentalNotificationsEnabled : 1;
485         bool m_webGLEnabled : 1;
486         bool m_openGLMultisamplingEnabled : 1;
487         bool m_webAudioEnabled : 1;
488         bool m_acceleratedCanvas2dEnabled : 1;
489         bool m_loadDeferringEnabled : 1;
490         bool m_tiledBackingStoreEnabled : 1;
491         bool m_paginateDuringLayoutEnabled : 1;
492         bool m_dnsPrefetchingEnabled : 1;
493 #if ENABLE(FULLSCREEN_API)
494         bool m_fullScreenAPIEnabled : 1;
495 #endif
496         bool m_asynchronousSpellCheckingEnabled: 1;
497         bool m_memoryInfoEnabled: 1;
498         bool m_interactiveFormValidation: 1;
499         bool m_usePreHTML5ParserQuirks: 1;
500         bool m_hyperlinkAuditingEnabled : 1;
501         bool m_crossOriginCheckInGetMatchedCSSRulesDisabled : 1;
502         bool m_useQuickLookResourceCachingQuirks : 1;
503         bool m_forceCompositingMode : 1;
504         bool m_shouldInjectUserScriptsInInitialEmptyDocument : 1;
505
506 #if USE(AVFOUNDATION)
507         static bool gAVFoundationEnabled;
508 #endif
509
510 #if USE(SAFARI_THEME)
511         static bool gShouldPaintNativeControls;
512 #endif
513 #if PLATFORM(WIN) || (OS(WINDOWS) && PLATFORM(WX))
514         static bool gShouldUseHighResolutionTimers;
515 #endif
516     };
517
518 } // namespace WebCore
519
520 #endif // Settings_h