• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2003, 2006, 2007, 2008, 2009 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 "AtomicString.h"
31 #include "FontRenderingMode.h"
32 #include "KURL.h"
33 
34 namespace WebCore {
35 
36     class Page;
37 
38     enum EditableLinkBehavior {
39         EditableLinkDefaultBehavior,
40         EditableLinkAlwaysLive,
41         EditableLinkOnlyLiveWithShiftKey,
42         EditableLinkLiveWhenNotFocused,
43         EditableLinkNeverLive
44     };
45 
46     enum TextDirectionSubmenuInclusionBehavior {
47         TextDirectionSubmenuNeverIncluded,
48         TextDirectionSubmenuAutomaticallyIncluded,
49         TextDirectionSubmenuAlwaysIncluded
50     };
51 
52     // There are multiple editing details that are different on Windows than Macintosh.
53     // We use a single switch for all of them. Some examples:
54     //
55     //    1) Clicking below the last line of an editable area puts the caret at the end
56     //       of the last line on Mac, but in the middle of the last line on Windows.
57     //    2) Pushing the down arrow key on the last line puts the caret at the end of the
58     //       last line on Mac, but does nothing on Windows. A similar case exists on the
59     //       top line.
60     //
61     // This setting is intended to control these sorts of behaviors. There are some other
62     // behaviors with individual function calls on EditorClient (smart copy and paste and
63     // selecting the space after a double click) that could be combined with this if
64     // if possible in the future.
65     enum EditingBehavior { EditingMacBehavior, EditingWindowsBehavior };
66 
67     class Settings : public Noncopyable {
68     public:
69         Settings(Page*);
70 
71 #ifdef ANDROID_LAYOUT
72         // FIXME: How do we determine the margins other than guessing?
73         #define ANDROID_SSR_MARGIN_PADDING  3
74         #define ANDROID_FCTS_MARGIN_PADDING  10
75 
76         enum LayoutAlgorithm {
77             kLayoutNormal,
78             kLayoutSSR,
79             kLayoutFitColumnToScreen
80         };
81 #endif
82         void setStandardFontFamily(const AtomicString&);
standardFontFamily()83         const AtomicString& standardFontFamily() const { return m_standardFontFamily; }
84 
85         void setFixedFontFamily(const AtomicString&);
fixedFontFamily()86         const AtomicString& fixedFontFamily() const { return m_fixedFontFamily; }
87 
88 #ifdef ANDROID_LAYOUT
layoutAlgorithm()89         LayoutAlgorithm layoutAlgorithm() const { return m_layoutAlgorithm; }
setLayoutAlgorithm(LayoutAlgorithm algorithm)90         void setLayoutAlgorithm(LayoutAlgorithm algorithm) { m_layoutAlgorithm = algorithm; }
91 
useWideViewport()92         bool useWideViewport() const { return m_useWideViewport; }
setUseWideViewport(bool use)93         void setUseWideViewport(bool use) { m_useWideViewport = use; }
94 #endif
95 
96         void setSerifFontFamily(const AtomicString&);
serifFontFamily()97         const AtomicString& serifFontFamily() const { return m_serifFontFamily; }
98 
99         void setSansSerifFontFamily(const AtomicString&);
sansSerifFontFamily()100         const AtomicString& sansSerifFontFamily() const { return m_sansSerifFontFamily; }
101 
102         void setCursiveFontFamily(const AtomicString&);
cursiveFontFamily()103         const AtomicString& cursiveFontFamily() const { return m_cursiveFontFamily; }
104 
105         void setFantasyFontFamily(const AtomicString&);
fantasyFontFamily()106         const AtomicString& fantasyFontFamily() const { return m_fantasyFontFamily; }
107 
108         void setMinimumFontSize(int);
minimumFontSize()109         int minimumFontSize() const { return m_minimumFontSize; }
110 
111         void setMinimumLogicalFontSize(int);
minimumLogicalFontSize()112         int minimumLogicalFontSize() const { return m_minimumLogicalFontSize; }
113 
114         void setDefaultFontSize(int);
defaultFontSize()115         int defaultFontSize() const { return m_defaultFontSize; }
116 
117         void setDefaultFixedFontSize(int);
defaultFixedFontSize()118         int defaultFixedFontSize() const { return m_defaultFixedFontSize; }
119 
120         // Unlike areImagesEnabled, this only suppresses the network load of
121         // the image URL.  A cached image will still be rendered if requested.
122         void setLoadsImagesAutomatically(bool);
loadsImagesAutomatically()123         bool loadsImagesAutomatically() const { return m_loadsImagesAutomatically; }
124 
125 #ifdef ANDROID_BLOCK_NETWORK_IMAGE
126         void setBlockNetworkImage(bool);
blockNetworkImage()127         bool blockNetworkImage() const { return m_blockNetworkImage; }
128 #endif
129         void setJavaScriptEnabled(bool);
isJavaScriptEnabled()130         bool isJavaScriptEnabled() const { return m_isJavaScriptEnabled; }
131 
132         void setWebSecurityEnabled(bool);
isWebSecurityEnabled()133         bool isWebSecurityEnabled() const { return m_isWebSecurityEnabled; }
134 
135         void setAllowUniversalAccessFromFileURLs(bool);
allowUniversalAccessFromFileURLs()136         bool allowUniversalAccessFromFileURLs() const { return m_allowUniversalAccessFromFileURLs; }
137 
138         void setJavaScriptCanOpenWindowsAutomatically(bool);
javaScriptCanOpenWindowsAutomatically()139         bool javaScriptCanOpenWindowsAutomatically() const { return m_javaScriptCanOpenWindowsAutomatically; }
140 
141         void setJavaEnabled(bool);
isJavaEnabled()142         bool isJavaEnabled() const { return m_isJavaEnabled; }
143 
144         void setImagesEnabled(bool);
areImagesEnabled()145         bool areImagesEnabled() const { return m_areImagesEnabled; }
146 
147         void setPluginsEnabled(bool);
arePluginsEnabled()148         bool arePluginsEnabled() const { return m_arePluginsEnabled; }
149 
150 #ifdef ANDROID_PLUGINS
setPluginsOnDemand(bool onDemand)151         void setPluginsOnDemand(bool onDemand) { m_pluginsOnDemand = onDemand; }
arePluginsOnDemand()152         bool arePluginsOnDemand() const { return m_pluginsOnDemand; }
153 #endif
154 
155         void setDatabasesEnabled(bool);
databasesEnabled()156         bool databasesEnabled() const { return m_databasesEnabled; }
157 
158         void setLocalStorageEnabled(bool);
localStorageEnabled()159         bool localStorageEnabled() const { return m_localStorageEnabled; }
160 
161         void setLocalStorageQuota(unsigned);
localStorageQuota()162         unsigned localStorageQuota() const { return m_localStorageQuota; }
163 
164         void setPrivateBrowsingEnabled(bool);
privateBrowsingEnabled()165         bool privateBrowsingEnabled() const { return m_privateBrowsingEnabled; }
166 
167         void setCaretBrowsingEnabled(bool);
caretBrowsingEnabled()168         bool caretBrowsingEnabled() const { return m_caretBrowsingEnabled; }
169 
170         void setDefaultTextEncodingName(const String&);
defaultTextEncodingName()171         const String& defaultTextEncodingName() const { return m_defaultTextEncodingName; }
172 
173         void setUsesEncodingDetector(bool);
usesEncodingDetector()174         bool usesEncodingDetector() const { return m_usesEncodingDetector; }
175 
176         void setUserStyleSheetLocation(const KURL&);
userStyleSheetLocation()177         const KURL& userStyleSheetLocation() const { return m_userStyleSheetLocation; }
178 
179         void setShouldPrintBackgrounds(bool);
shouldPrintBackgrounds()180         bool shouldPrintBackgrounds() const { return m_shouldPrintBackgrounds; }
181 
182         void setTextAreasAreResizable(bool);
textAreasAreResizable()183         bool textAreasAreResizable() const { return m_textAreasAreResizable; }
184 
185         void setEditableLinkBehavior(EditableLinkBehavior);
editableLinkBehavior()186         EditableLinkBehavior editableLinkBehavior() const { return m_editableLinkBehavior; }
187 
188         void setTextDirectionSubmenuInclusionBehavior(TextDirectionSubmenuInclusionBehavior);
textDirectionSubmenuInclusionBehavior()189         TextDirectionSubmenuInclusionBehavior textDirectionSubmenuInclusionBehavior() const { return m_textDirectionSubmenuInclusionBehavior; }
190 
191 #if ENABLE(DASHBOARD_SUPPORT)
192         void setUsesDashboardBackwardCompatibilityMode(bool);
usesDashboardBackwardCompatibilityMode()193         bool usesDashboardBackwardCompatibilityMode() const { return m_usesDashboardBackwardCompatibilityMode; }
194 #endif
195 
196         void setNeedsAdobeFrameReloadingQuirk(bool);
needsAcrobatFrameReloadingQuirk()197         bool needsAcrobatFrameReloadingQuirk() const { return m_needsAdobeFrameReloadingQuirk; }
198 
199         void setNeedsKeyboardEventDisambiguationQuirks(bool);
needsKeyboardEventDisambiguationQuirks()200         bool needsKeyboardEventDisambiguationQuirks() const { return m_needsKeyboardEventDisambiguationQuirks; }
201 
202         void setTreatsAnyTextCSSLinkAsStylesheet(bool);
treatsAnyTextCSSLinkAsStylesheet()203         bool treatsAnyTextCSSLinkAsStylesheet() const { return m_treatsAnyTextCSSLinkAsStylesheet; }
204 
205         void setNeedsLeopardMailQuirks(bool);
needsLeopardMailQuirks()206         bool needsLeopardMailQuirks() const { return m_needsLeopardMailQuirks; }
207 
208         void setNeedsTigerMailQuirks(bool);
needsTigerMailQuirks()209         bool needsTigerMailQuirks() const { return m_needsTigerMailQuirks; }
210 
211         void setDOMPasteAllowed(bool);
isDOMPasteAllowed()212         bool isDOMPasteAllowed() const { return m_isDOMPasteAllowed; }
213 
214         void setUsesPageCache(bool);
usesPageCache()215         bool usesPageCache() const { return m_usesPageCache; }
216 
217         void setShrinksStandaloneImagesToFit(bool);
shrinksStandaloneImagesToFit()218         bool shrinksStandaloneImagesToFit() const { return m_shrinksStandaloneImagesToFit; }
219 
220         void setShowsURLsInToolTips(bool);
showsURLsInToolTips()221         bool showsURLsInToolTips() const { return m_showsURLsInToolTips; }
222 
223         void setFTPDirectoryTemplatePath(const String&);
ftpDirectoryTemplatePath()224         const String& ftpDirectoryTemplatePath() const { return m_ftpDirectoryTemplatePath; }
225 
226         void setForceFTPDirectoryListings(bool);
forceFTPDirectoryListings()227         bool forceFTPDirectoryListings() const { return m_forceFTPDirectoryListings; }
228 
229         void setDeveloperExtrasEnabled(bool);
developerExtrasEnabled()230         bool developerExtrasEnabled() const { return m_developerExtrasEnabled; }
231 
232         void setFrameSetFlatteningEnabled(bool);
frameSetFlatteningEnabled()233         bool frameSetFlatteningEnabled() const { return m_frameSetFlatteningEnabled; }
234 
235 #ifdef ANDROID_META_SUPPORT
236         void resetMetadataSettings();
237         void setMetadataSettings(const String& key, const String& value);
238 
239         void setViewportWidth(int);
viewportWidth()240         int viewportWidth() const { return m_viewport_width; }
241 
242         void setViewportHeight(int);
viewportHeight()243         int viewportHeight() const { return m_viewport_height; }
244 
245         void setViewportInitialScale(int);
viewportInitialScale()246         int viewportInitialScale() const { return m_viewport_initial_scale; }
247 
248         void setViewportMinimumScale(int);
viewportMinimumScale()249         int viewportMinimumScale() const { return m_viewport_minimum_scale; }
250 
251         void setViewportMaximumScale(int);
viewportMaximumScale()252         int viewportMaximumScale() const { return m_viewport_maximum_scale; }
253 
254         void setViewportUserScalable(bool);
viewportUserScalable()255         bool viewportUserScalable() const { return m_viewport_user_scalable; }
256 
257         void setViewportTargetDensityDpi(int);
viewportTargetDensityDpi()258         int viewportTargetDensityDpi() const { return m_viewport_target_densitydpi; }
259 
260         void setFormatDetectionAddress(bool);
formatDetectionAddress()261         bool formatDetectionAddress() const { return m_format_detection_address; }
262 
263         void setFormatDetectionEmail(bool);
formatDetectionEmail()264         bool formatDetectionEmail() const { return m_format_detection_email; }
265 
266         void setFormatDetectionTelephone(bool);
formatDetectionTelephone()267         bool formatDetectionTelephone() const { return m_format_detection_telephone; }
268 #endif
269 #ifdef ANDROID_MULTIPLE_WINDOWS
supportMultipleWindows()270         bool supportMultipleWindows() const { return m_supportMultipleWindows; }
setSupportMultipleWindows(bool support)271         void setSupportMultipleWindows(bool support) { m_supportMultipleWindows = support; }
272 #endif
273         void setAuthorAndUserStylesEnabled(bool);
authorAndUserStylesEnabled()274         bool authorAndUserStylesEnabled() const { return m_authorAndUserStylesEnabled; }
275 
276         void setFontRenderingMode(FontRenderingMode mode);
277         FontRenderingMode fontRenderingMode() const;
278 
279         void setNeedsSiteSpecificQuirks(bool);
needsSiteSpecificQuirks()280         bool needsSiteSpecificQuirks() const { return m_needsSiteSpecificQuirks; }
281 
282         void setWebArchiveDebugModeEnabled(bool);
webArchiveDebugModeEnabled()283         bool webArchiveDebugModeEnabled() const { return m_webArchiveDebugModeEnabled; }
284 
285         void setLocalFileContentSniffingEnabled(bool);
localFileContentSniffingEnabled()286         bool localFileContentSniffingEnabled() const { return m_localFileContentSniffingEnabled; }
287 
288         void setLocalStorageDatabasePath(const String&);
localStorageDatabasePath()289         const String& localStorageDatabasePath() const { return m_localStorageDatabasePath; }
290 
291         void setApplicationChromeMode(bool);
inApplicationChromeMode()292         bool inApplicationChromeMode() const { return m_inApplicationChromeMode; }
293 
294         void setOfflineWebApplicationCacheEnabled(bool);
offlineWebApplicationCacheEnabled()295         bool offlineWebApplicationCacheEnabled() const { return m_offlineWebApplicationCacheEnabled; }
296 
297         void setShouldPaintCustomScrollbars(bool);
shouldPaintCustomScrollbars()298         bool shouldPaintCustomScrollbars() const { return m_shouldPaintCustomScrollbars; }
299 
300         void setZoomsTextOnly(bool);
zoomsTextOnly()301         bool zoomsTextOnly() const { return m_zoomsTextOnly; }
302 
303         void setEnforceCSSMIMETypeInStrictMode(bool);
enforceCSSMIMETypeInStrictMode()304         bool enforceCSSMIMETypeInStrictMode() { return m_enforceCSSMIMETypeInStrictMode; }
305 
setMaximumDecodedImageSize(size_t size)306         void setMaximumDecodedImageSize(size_t size) { m_maximumDecodedImageSize = size; }
maximumDecodedImageSize()307         size_t maximumDecodedImageSize() const { return m_maximumDecodedImageSize; }
308 
309 #if USE(SAFARI_THEME)
310         // Windows debugging pref (global) for switching between the Aqua look and a native windows look.
311         static void setShouldPaintNativeControls(bool);
shouldPaintNativeControls()312         static bool shouldPaintNativeControls() { return gShouldPaintNativeControls; }
313 #endif
314 
315         void setAllowScriptsToCloseWindows(bool);
allowScriptsToCloseWindows()316         bool allowScriptsToCloseWindows() const { return m_allowScriptsToCloseWindows; }
317 
setEditingBehavior(EditingBehavior behavior)318         void setEditingBehavior(EditingBehavior behavior) { m_editingBehavior = behavior; }
editingBehavior()319         EditingBehavior editingBehavior() const { return static_cast<EditingBehavior>(m_editingBehavior); }
320 
321         void setDownloadableBinaryFontsEnabled(bool);
downloadableBinaryFontsEnabled()322         bool downloadableBinaryFontsEnabled() const { return m_downloadableBinaryFontsEnabled; }
323 
324         void setXSSAuditorEnabled(bool);
xssAuditorEnabled()325         bool xssAuditorEnabled() const { return m_xssAuditorEnabled; }
326 
327         void setAcceleratedCompositingEnabled(bool);
acceleratedCompositingEnabled()328         bool acceleratedCompositingEnabled() const { return m_acceleratedCompositingEnabled; }
329 
330         void setShowDebugBorders(bool);
showDebugBorders()331         bool showDebugBorders() const { return m_showDebugBorders; }
332 
333         void setShowRepaintCounter(bool);
showRepaintCounter()334         bool showRepaintCounter() const { return m_showRepaintCounter; }
335 
336         void setExperimentalNotificationsEnabled(bool);
experimentalNotificationsEnabled()337         bool experimentalNotificationsEnabled() const { return m_experimentalNotificationsEnabled; }
338 
339 #if PLATFORM(WIN) || (OS(WINDOWS) && PLATFORM(WX))
340         static void setShouldUseHighResolutionTimers(bool);
shouldUseHighResolutionTimers()341         static bool shouldUseHighResolutionTimers() { return gShouldUseHighResolutionTimers; }
342 #endif
343 
344         void setPluginAllowedRunTime(unsigned);
pluginAllowedRunTime()345         unsigned pluginAllowedRunTime() const { return m_pluginAllowedRunTime; }
346 
347         void setWebGLEnabled(bool);
webGLEnabled()348         bool webGLEnabled() const { return m_webGLEnabled; }
349 
350         void setGeolocationEnabled(bool);
geolocationEnabled()351         bool geolocationEnabled() const { return m_geolocationEnabled; }
352 
353         void setLoadDeferringEnabled(bool);
loadDeferringEnabled()354         bool loadDeferringEnabled() const { return m_loadDeferringEnabled; }
355 
356     private:
357         Page* m_page;
358 
359         String m_defaultTextEncodingName;
360         String m_ftpDirectoryTemplatePath;
361         String m_localStorageDatabasePath;
362         KURL m_userStyleSheetLocation;
363         AtomicString m_standardFontFamily;
364         AtomicString m_fixedFontFamily;
365         AtomicString m_serifFontFamily;
366         AtomicString m_sansSerifFontFamily;
367         AtomicString m_cursiveFontFamily;
368         AtomicString m_fantasyFontFamily;
369 #ifdef ANDROID_LAYOUT
370         LayoutAlgorithm m_layoutAlgorithm;
371 #endif
372         EditableLinkBehavior m_editableLinkBehavior;
373         TextDirectionSubmenuInclusionBehavior m_textDirectionSubmenuInclusionBehavior;
374         int m_minimumFontSize;
375         int m_minimumLogicalFontSize;
376         int m_defaultFontSize;
377         int m_defaultFixedFontSize;
378 #ifdef ANDROID_META_SUPPORT
379         // range is from 200 to 10,000. 0 is a special value means device-width.
380         // default is -1, which means undefined.
381         int m_viewport_width;
382         // range is from 223 to 10,000. 0 is a special value means device-height
383         // default is -1, which means undefined.
384         int m_viewport_height;
385         // range is from 1 to 1000 in percent. default is 0, which means undefined.
386         int m_viewport_initial_scale;
387         // range is from 1 to 1000 in percent. default is 0, which means undefined.
388         int m_viewport_minimum_scale;
389         // range is from 1 to 1000 in percent. default is 0, which means undefined.
390         int m_viewport_maximum_scale;
391         // default is yes
392         bool m_viewport_user_scalable : 1;
393         // range is from 70 to 400. 0 is a special value means device-dpi
394         // default is -1, which means undefined.
395         int m_viewport_target_densitydpi;
396         // default is yes
397         bool m_format_detection_telephone : 1;
398         // default is yes
399         bool m_format_detection_address : 1;
400         // default is yes
401         bool m_format_detection_email : 1;
402 #endif
403 #ifdef ANDROID_LAYOUT
404         bool m_useWideViewport : 1;
405 #endif
406 #ifdef ANDROID_MULTIPLE_WINDOWS
407         bool m_supportMultipleWindows : 1;
408 #endif
409 #ifdef ANDROID_BLOCK_NETWORK_IMAGE
410         bool m_blockNetworkImage : 1;
411 #endif
412         size_t m_maximumDecodedImageSize;
413         unsigned m_localStorageQuota;
414         unsigned m_pluginAllowedRunTime;
415         bool m_isJavaEnabled : 1;
416         bool m_loadsImagesAutomatically : 1;
417         bool m_privateBrowsingEnabled : 1;
418         bool m_caretBrowsingEnabled : 1;
419         bool m_areImagesEnabled : 1;
420         bool m_arePluginsEnabled : 1;
421         bool m_databasesEnabled : 1;
422         bool m_localStorageEnabled : 1;
423         bool m_isJavaScriptEnabled : 1;
424         bool m_isWebSecurityEnabled : 1;
425         bool m_allowUniversalAccessFromFileURLs: 1;
426         bool m_javaScriptCanOpenWindowsAutomatically : 1;
427         bool m_shouldPrintBackgrounds : 1;
428         bool m_textAreasAreResizable : 1;
429 #if ENABLE(DASHBOARD_SUPPORT)
430         bool m_usesDashboardBackwardCompatibilityMode : 1;
431 #endif
432         bool m_needsAdobeFrameReloadingQuirk : 1;
433         bool m_needsKeyboardEventDisambiguationQuirks : 1;
434         bool m_treatsAnyTextCSSLinkAsStylesheet : 1;
435         bool m_needsLeopardMailQuirks : 1;
436         bool m_needsTigerMailQuirks : 1;
437         bool m_isDOMPasteAllowed : 1;
438         bool m_shrinksStandaloneImagesToFit : 1;
439         bool m_usesPageCache: 1;
440         bool m_showsURLsInToolTips : 1;
441         bool m_forceFTPDirectoryListings : 1;
442         bool m_developerExtrasEnabled : 1;
443         bool m_authorAndUserStylesEnabled : 1;
444         bool m_needsSiteSpecificQuirks : 1;
445         unsigned m_fontRenderingMode : 1;
446         bool m_frameSetFlatteningEnabled : 1;
447         bool m_webArchiveDebugModeEnabled : 1;
448         bool m_localFileContentSniffingEnabled : 1;
449         bool m_inApplicationChromeMode : 1;
450         bool m_offlineWebApplicationCacheEnabled : 1;
451         bool m_shouldPaintCustomScrollbars : 1;
452         bool m_zoomsTextOnly : 1;
453         bool m_enforceCSSMIMETypeInStrictMode : 1;
454         bool m_usesEncodingDetector : 1;
455         bool m_allowScriptsToCloseWindows : 1;
456         unsigned m_editingBehavior : 1;
457         bool m_downloadableBinaryFontsEnabled : 1;
458         bool m_xssAuditorEnabled : 1;
459         bool m_acceleratedCompositingEnabled : 1;
460         bool m_showDebugBorders : 1;
461         bool m_showRepaintCounter : 1;
462         bool m_experimentalNotificationsEnabled : 1;
463         bool m_webGLEnabled : 1;
464         bool m_geolocationEnabled : 1;
465         bool m_loadDeferringEnabled : 1;
466 #ifdef ANDROID_PLUGINS
467         bool m_pluginsOnDemand : 1;
468 #endif
469 
470 #if USE(SAFARI_THEME)
471         static bool gShouldPaintNativeControls;
472 #endif
473 #if PLATFORM(WIN) || (OS(WINDOWS) && PLATFORM(WX))
474         static bool gShouldUseHighResolutionTimers;
475 #endif
476     };
477 
478 } // namespace WebCore
479 
480 #endif // Settings_h
481