2 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2011 Apple Inc. All rights reserved.
3 * (C) 2006 Graham Dennis (graham.dennis@gmail.com)
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
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.
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.
30 #include "EditingBehaviorTypes.h"
31 #include "FontRenderingMode.h"
34 #include <wtf/HashMap.h>
35 #include <wtf/text/AtomicString.h>
36 #include <wtf/text/AtomicStringHash.h>
37 #include <wtf/unicode/Unicode.h>
43 enum EditableLinkBehavior {
44 EditableLinkDefaultBehavior,
45 EditableLinkAlwaysLive,
46 EditableLinkOnlyLiveWithShiftKey,
47 EditableLinkLiveWhenNotFocused,
51 enum TextDirectionSubmenuInclusionBehavior {
52 TextDirectionSubmenuNeverIncluded,
53 TextDirectionSubmenuAutomaticallyIncluded,
54 TextDirectionSubmenuAlwaysIncluded
57 // UScriptCode uses -1 and 0 for UScriptInvalidCode and UScriptCommon.
58 // We need to use -2 and -3 for empty value and deleted value.
59 struct UScriptCodeHashTraits : WTF::GenericHashTraits<int> {
60 static const bool emptyValueIsZero = false;
61 static int emptyValue() { return -2; }
62 static void constructDeletedValue(int& slot) { slot = -3; }
63 static bool isDeletedValue(int value) { return value == -3; }
66 typedef HashMap<int, AtomicString, DefaultHash<int>::Hash, UScriptCodeHashTraits> ScriptFontFamilyMap;
69 WTF_MAKE_NONCOPYABLE(Settings); WTF_MAKE_FAST_ALLOCATED;
73 void setStandardFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
74 const AtomicString& standardFontFamily(UScriptCode = USCRIPT_COMMON) const;
76 void setFixedFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
77 const AtomicString& fixedFontFamily(UScriptCode = USCRIPT_COMMON) const;
79 void setSerifFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
80 const AtomicString& serifFontFamily(UScriptCode = USCRIPT_COMMON) const;
82 void setSansSerifFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
83 const AtomicString& sansSerifFontFamily(UScriptCode = USCRIPT_COMMON) const;
85 void setCursiveFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
86 const AtomicString& cursiveFontFamily(UScriptCode = USCRIPT_COMMON) const;
88 void setFantasyFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
89 const AtomicString& fantasyFontFamily(UScriptCode = USCRIPT_COMMON) const;
91 void setPictographFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
92 const AtomicString& pictographFontFamily(UScriptCode = USCRIPT_COMMON) const;
94 void setMinimumFontSize(int);
95 int minimumFontSize() const { return m_minimumFontSize; }
97 void setMinimumLogicalFontSize(int);
98 int minimumLogicalFontSize() const { return m_minimumLogicalFontSize; }
100 void setDefaultFontSize(int);
101 int defaultFontSize() const { return m_defaultFontSize; }
103 void setDefaultFixedFontSize(int);
104 int defaultFixedFontSize() const { return m_defaultFixedFontSize; }
106 // Unlike areImagesEnabled, this only suppresses the network load of
107 // the image URL. A cached image will still be rendered if requested.
108 void setLoadsImagesAutomatically(bool);
109 bool loadsImagesAutomatically() const { return m_loadsImagesAutomatically; }
111 // This setting only affects site icon image loading if loadsImagesAutomatically setting is false and this setting is true.
112 // All other permutations still heed loadsImagesAutomatically setting.
113 void setLoadsSiteIconsIgnoringImageLoadingSetting(bool);
114 bool loadsSiteIconsIgnoringImageLoadingSetting() const { return m_loadsSiteIconsIgnoringImageLoadingSetting; }
116 void setJavaScriptEnabled(bool);
117 // Instead of calling isJavaScriptEnabled directly, please consider calling
118 // ScriptController::canExecuteScripts, which takes things like the
119 // HTML sandbox attribute into account.
120 bool isJavaScriptEnabled() const { return m_isJavaScriptEnabled; }
122 void setWebSecurityEnabled(bool);
123 bool isWebSecurityEnabled() const { return m_isWebSecurityEnabled; }
125 void setAllowUniversalAccessFromFileURLs(bool);
126 bool allowUniversalAccessFromFileURLs() const { return m_allowUniversalAccessFromFileURLs; }
128 void setAllowFileAccessFromFileURLs(bool);
129 bool allowFileAccessFromFileURLs() const { return m_allowFileAccessFromFileURLs; }
131 void setJavaScriptCanOpenWindowsAutomatically(bool);
132 bool javaScriptCanOpenWindowsAutomatically() const { return m_javaScriptCanOpenWindowsAutomatically; }
134 void setJavaScriptCanAccessClipboard(bool);
135 bool javaScriptCanAccessClipboard() const { return m_javaScriptCanAccessClipboard; }
137 void setSpatialNavigationEnabled(bool);
138 bool isSpatialNavigationEnabled() const { return m_isSpatialNavigationEnabled; }
140 void setJavaEnabled(bool);
141 bool isJavaEnabled() const { return m_isJavaEnabled; }
143 void setImagesEnabled(bool);
144 bool areImagesEnabled() const { return m_areImagesEnabled; }
146 void setMediaEnabled(bool);
147 bool isMediaEnabled() const { return m_isMediaEnabled; }
149 void setPluginsEnabled(bool);
150 bool arePluginsEnabled() const { return m_arePluginsEnabled; }
152 void setLocalStorageEnabled(bool);
153 bool localStorageEnabled() const { return m_localStorageEnabled; }
155 #if ENABLE(DOM_STORAGE)
156 // Allow clients concerned with memory consumption to set a quota on session storage
157 // since the memory used won't be released until the Page is destroyed.
158 // Default is noQuota.
159 void setSessionStorageQuota(unsigned);
160 unsigned sessionStorageQuota() const { return m_sessionStorageQuota; }
163 // When this option is set, WebCore will avoid storing any record of browsing activity
164 // that may persist on disk or remain displayed when the option is reset.
165 // This option does not affect the storage of such information in RAM.
166 // The following functions respect this setting:
167 // - HTML5/DOM Storage
169 // - Console Messages
171 // - Application Cache
172 // - Back/Forward Page History
173 // - Page Search Results
175 // - Plug-ins (that support NPNVprivateModeBool)
176 void setPrivateBrowsingEnabled(bool);
177 bool privateBrowsingEnabled() const { return m_privateBrowsingEnabled; }
179 void setCaretBrowsingEnabled(bool);
180 bool caretBrowsingEnabled() const { return m_caretBrowsingEnabled; }
182 void setDefaultTextEncodingName(const String&);
183 const String& defaultTextEncodingName() const { return m_defaultTextEncodingName; }
185 void setUsesEncodingDetector(bool);
186 bool usesEncodingDetector() const { return m_usesEncodingDetector; }
188 void setDNSPrefetchingEnabled(bool);
189 bool dnsPrefetchingEnabled() const { return m_dnsPrefetchingEnabled; }
191 void setUserStyleSheetLocation(const KURL&);
192 const KURL& userStyleSheetLocation() const { return m_userStyleSheetLocation; }
194 void setShouldPrintBackgrounds(bool);
195 bool shouldPrintBackgrounds() const { return m_shouldPrintBackgrounds; }
197 void setTextAreasAreResizable(bool);
198 bool textAreasAreResizable() const { return m_textAreasAreResizable; }
200 void setEditableLinkBehavior(EditableLinkBehavior);
201 EditableLinkBehavior editableLinkBehavior() const { return m_editableLinkBehavior; }
203 void setTextDirectionSubmenuInclusionBehavior(TextDirectionSubmenuInclusionBehavior);
204 TextDirectionSubmenuInclusionBehavior textDirectionSubmenuInclusionBehavior() const { return m_textDirectionSubmenuInclusionBehavior; }
206 #if ENABLE(DASHBOARD_SUPPORT)
207 void setUsesDashboardBackwardCompatibilityMode(bool);
208 bool usesDashboardBackwardCompatibilityMode() const { return m_usesDashboardBackwardCompatibilityMode; }
211 void setNeedsAdobeFrameReloadingQuirk(bool);
212 bool needsAcrobatFrameReloadingQuirk() const { return m_needsAdobeFrameReloadingQuirk; }
214 void setNeedsKeyboardEventDisambiguationQuirks(bool);
215 bool needsKeyboardEventDisambiguationQuirks() const { return m_needsKeyboardEventDisambiguationQuirks; }
217 void setTreatsAnyTextCSSLinkAsStylesheet(bool);
218 bool treatsAnyTextCSSLinkAsStylesheet() const { return m_treatsAnyTextCSSLinkAsStylesheet; }
220 void setNeedsLeopardMailQuirks(bool);
221 bool needsLeopardMailQuirks() const { return m_needsLeopardMailQuirks; }
223 void setDOMPasteAllowed(bool);
224 bool isDOMPasteAllowed() const { return m_isDOMPasteAllowed; }
226 static void setDefaultMinDOMTimerInterval(double); // Interval specified in seconds.
227 static double defaultMinDOMTimerInterval();
229 void setMinDOMTimerInterval(double); // Per-page; initialized to default value.
230 double minDOMTimerInterval();
232 void setUsesPageCache(bool);
233 bool usesPageCache() const { return m_usesPageCache; }
235 void setShrinksStandaloneImagesToFit(bool);
236 bool shrinksStandaloneImagesToFit() const { return m_shrinksStandaloneImagesToFit; }
238 void setShowsURLsInToolTips(bool);
239 bool showsURLsInToolTips() const { return m_showsURLsInToolTips; }
241 void setShowsToolTipOverTruncatedText(bool);
242 bool showsToolTipOverTruncatedText() const { return m_showsToolTipOverTruncatedText; }
244 void setFTPDirectoryTemplatePath(const String&);
245 const String& ftpDirectoryTemplatePath() const { return m_ftpDirectoryTemplatePath; }
247 void setForceFTPDirectoryListings(bool);
248 bool forceFTPDirectoryListings() const { return m_forceFTPDirectoryListings; }
250 void setDeveloperExtrasEnabled(bool);
251 bool developerExtrasEnabled() const { return m_developerExtrasEnabled; }
253 void setFrameFlatteningEnabled(bool);
254 bool frameFlatteningEnabled() const { return m_frameFlatteningEnabled; }
256 void setAuthorAndUserStylesEnabled(bool);
257 bool authorAndUserStylesEnabled() const { return m_authorAndUserStylesEnabled; }
259 void setFontRenderingMode(FontRenderingMode mode);
260 FontRenderingMode fontRenderingMode() const;
262 void setNeedsSiteSpecificQuirks(bool);
263 bool needsSiteSpecificQuirks() const { return m_needsSiteSpecificQuirks; }
265 #if ENABLE(WEB_ARCHIVE)
266 void setWebArchiveDebugModeEnabled(bool);
267 bool webArchiveDebugModeEnabled() const { return m_webArchiveDebugModeEnabled; }
270 void setLocalFileContentSniffingEnabled(bool);
271 bool localFileContentSniffingEnabled() const { return m_localFileContentSniffingEnabled; }
273 void setLocalStorageDatabasePath(const String&);
274 const String& localStorageDatabasePath() const { return m_localStorageDatabasePath; }
276 void setApplicationChromeMode(bool);
277 bool inApplicationChromeMode() const { return m_inApplicationChromeMode; }
279 void setOfflineWebApplicationCacheEnabled(bool);
280 bool offlineWebApplicationCacheEnabled() const { return m_offlineWebApplicationCacheEnabled; }
282 void setShouldPaintCustomScrollbars(bool);
283 bool shouldPaintCustomScrollbars() const { return m_shouldPaintCustomScrollbars; }
285 void setEnforceCSSMIMETypeInNoQuirksMode(bool);
286 bool enforceCSSMIMETypeInNoQuirksMode() { return m_enforceCSSMIMETypeInNoQuirksMode; }
288 void setMaximumDecodedImageSize(size_t size) { m_maximumDecodedImageSize = size; }
289 size_t maximumDecodedImageSize() const { return m_maximumDecodedImageSize; }
291 #if USE(SAFARI_THEME)
292 // Windows debugging pref (global) for switching between the Aqua look and a native windows look.
293 static void setShouldPaintNativeControls(bool);
294 static bool shouldPaintNativeControls() { return gShouldPaintNativeControls; }
297 void setAllowScriptsToCloseWindows(bool);
298 bool allowScriptsToCloseWindows() const { return m_allowScriptsToCloseWindows; }
300 void setEditingBehaviorType(EditingBehaviorType behavior) { m_editingBehaviorType = behavior; }
301 EditingBehaviorType editingBehaviorType() const { return static_cast<EditingBehaviorType>(m_editingBehaviorType); }
303 void setDownloadableBinaryFontsEnabled(bool);
304 bool downloadableBinaryFontsEnabled() const { return m_downloadableBinaryFontsEnabled; }
306 void setXSSAuditorEnabled(bool);
307 bool xssAuditorEnabled() const { return m_xssAuditorEnabled; }
309 void setCanvasUsesAcceleratedDrawing(bool);
310 bool canvasUsesAcceleratedDrawing() const { return m_canvasUsesAcceleratedDrawing; }
312 void setAcceleratedDrawingEnabled(bool);
313 bool acceleratedDrawingEnabled() const { return m_acceleratedDrawingEnabled; }
315 void setAcceleratedCompositingEnabled(bool);
316 bool acceleratedCompositingEnabled() const { return m_acceleratedCompositingEnabled; }
318 void setAcceleratedCompositingFor3DTransformsEnabled(bool);
319 bool acceleratedCompositingFor3DTransformsEnabled() const { return m_acceleratedCompositingFor3DTransformsEnabled; }
321 void setAcceleratedCompositingForVideoEnabled(bool);
322 bool acceleratedCompositingForVideoEnabled() const { return m_acceleratedCompositingForVideoEnabled; }
324 void setAcceleratedCompositingForPluginsEnabled(bool);
325 bool acceleratedCompositingForPluginsEnabled() const { return m_acceleratedCompositingForPluginsEnabled; }
327 void setAcceleratedCompositingForCanvasEnabled(bool);
328 bool acceleratedCompositingForCanvasEnabled() const { return m_acceleratedCompositingForCanvasEnabled; }
330 void setAcceleratedCompositingForAnimationEnabled(bool);
331 bool acceleratedCompositingForAnimationEnabled() const { return m_acceleratedCompositingForAnimationEnabled; }
333 void setShowDebugBorders(bool);
334 bool showDebugBorders() const { return m_showDebugBorders; }
336 void setShowRepaintCounter(bool);
337 bool showRepaintCounter() const { return m_showRepaintCounter; }
339 void setExperimentalNotificationsEnabled(bool);
340 bool experimentalNotificationsEnabled() const { return m_experimentalNotificationsEnabled; }
342 #if PLATFORM(WIN) || (OS(WINDOWS) && PLATFORM(WX))
343 static void setShouldUseHighResolutionTimers(bool);
344 static bool shouldUseHighResolutionTimers() { return gShouldUseHighResolutionTimers; }
347 void setWebAudioEnabled(bool);
348 bool webAudioEnabled() const { return m_webAudioEnabled; }
350 void setWebGLEnabled(bool);
351 bool webGLEnabled() const { return m_webGLEnabled; }
353 void setOpenGLMultisamplingEnabled(bool);
354 bool openGLMultisamplingEnabled() const { return m_openGLMultisamplingEnabled; }
356 void setAccelerated2dCanvasEnabled(bool);
357 bool accelerated2dCanvasEnabled() const { return m_acceleratedCanvas2dEnabled; }
359 void setLegacyAccelerated2dCanvasEnabled(bool);
360 bool legacyAccelerated2dCanvasEnabled() const { return m_legacyAcceleratedCanvas2dEnabled; }
362 // Number of pixels below which 2D canvas is rendered in software
363 // even if hardware acceleration is enabled.
364 // Hardware acceleration is useful for large canvases where it can avoid the
365 // pixel bandwidth between the CPU and GPU. But GPU acceleration comes at
366 // a price - extra back-buffer and texture copy. Small canvases are also
367 // widely used for stylized fonts. Anti-aliasing text in hardware at that
368 // scale is generally slower. So below a certain size it is better to
369 // draw canvas in software.
370 void setMinimumAccelerated2dCanvasSize(int);
371 int minimumAccelerated2dCanvasSize() const { return m_minimumAccelerated2dCanvasSize; }
373 void setLoadDeferringEnabled(bool);
374 bool loadDeferringEnabled() const { return m_loadDeferringEnabled; }
376 void setTiledBackingStoreEnabled(bool);
377 bool tiledBackingStoreEnabled() const { return m_tiledBackingStoreEnabled; }
379 void setPaginateDuringLayoutEnabled(bool flag) { m_paginateDuringLayoutEnabled = flag; }
380 bool paginateDuringLayoutEnabled() const { return m_paginateDuringLayoutEnabled; }
382 #if ENABLE(FULLSCREEN_API)
383 void setFullScreenEnabled(bool flag) { m_fullScreenAPIEnabled = flag; }
384 bool fullScreenEnabled() const { return m_fullScreenAPIEnabled; }
387 #if USE(AVFOUNDATION)
388 static void setAVFoundationEnabled(bool flag) { gAVFoundationEnabled = flag; }
389 static bool isAVFoundationEnabled() { return gAVFoundationEnabled; }
392 void setAsynchronousSpellCheckingEnabled(bool flag) { m_asynchronousSpellCheckingEnabled = flag; }
393 bool asynchronousSpellCheckingEnabled() const { return m_asynchronousSpellCheckingEnabled; }
395 void setMemoryInfoEnabled(bool flag) { m_memoryInfoEnabled = flag; }
396 bool memoryInfoEnabled() const { return m_memoryInfoEnabled; }
398 // This setting will be removed when an HTML5 compatibility issue is
399 // resolved and WebKit implementation of interactive validation is
400 // completed. See http://webkit.org/b/40520, http://webkit.org/b/40747,
401 // and http://webkit.org/b/40908
402 void setInteractiveFormValidationEnabled(bool flag) { m_interactiveFormValidation = flag; }
403 bool interactiveFormValidationEnabled() const { return m_interactiveFormValidation; }
405 // Sets the maginication value for validation message timer.
406 // If the maginication value is N, a validation message disappears
407 // automatically after <message length> * N / 1000 seconds. If N is
408 // equal to or less than 0, a validation message doesn't disappears
409 // automaticaly. The default value is 50.
410 void setValidationMessageTimerMagnification(int newValue) { m_validationMessageTimerMagnification = newValue; }
411 int validationMessageTimerMaginification() const { return m_validationMessageTimerMagnification; }
413 void setUsePreHTML5ParserQuirks(bool flag) { m_usePreHTML5ParserQuirks = flag; }
414 bool usePreHTML5ParserQuirks() const { return m_usePreHTML5ParserQuirks; }
416 static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512;
417 void setMaximumHTMLParserDOMTreeDepth(unsigned maximumHTMLParserDOMTreeDepth) { m_maximumHTMLParserDOMTreeDepth = maximumHTMLParserDOMTreeDepth; }
418 unsigned maximumHTMLParserDOMTreeDepth() const { return m_maximumHTMLParserDOMTreeDepth; }
420 void setHyperlinkAuditingEnabled(bool flag) { m_hyperlinkAuditingEnabled = flag; }
421 bool hyperlinkAuditingEnabled() const { return m_hyperlinkAuditingEnabled; }
423 void setCrossOriginCheckInGetMatchedCSSRulesDisabled(bool flag) { m_crossOriginCheckInGetMatchedCSSRulesDisabled = flag; }
424 bool crossOriginCheckInGetMatchedCSSRulesDisabled() const { return m_crossOriginCheckInGetMatchedCSSRulesDisabled; }
426 void setLayoutFallbackWidth(int width) { m_layoutFallbackWidth = width; }
427 int layoutFallbackWidth() const { return m_layoutFallbackWidth; }
429 void setDeviceWidth(int width) { m_deviceWidth = width; }
430 int deviceWidth() const { return m_deviceWidth; }
432 void setDeviceHeight(int height) { m_deviceHeight = height; }
433 int deviceHeight() const { return m_deviceHeight; }
435 void setDeviceDPI(int deviceDPI) { m_deviceDPI = deviceDPI; }
436 int deviceDPI() const { return m_deviceDPI; }
438 void setForceCompositingMode(bool flag) { m_forceCompositingMode = flag; }
439 bool forceCompositingMode() { return m_forceCompositingMode; }
441 void setShouldInjectUserScriptsInInitialEmptyDocument(bool flag) { m_shouldInjectUserScriptsInInitialEmptyDocument = flag; }
442 bool shouldInjectUserScriptsInInitialEmptyDocument() { return m_shouldInjectUserScriptsInInitialEmptyDocument; }
444 void setAllowDisplayOfInsecureContent(bool flag) { m_allowDisplayOfInsecureContent = flag; }
445 bool allowDisplayOfInsecureContent() const { return m_allowDisplayOfInsecureContent; }
446 void setAllowRunningOfInsecureContent(bool flag) { m_allowRunningOfInsecureContent = flag; }
447 bool allowRunningOfInsecureContent() const { return m_allowRunningOfInsecureContent; }
449 #if ENABLE(SMOOTH_SCROLLING)
450 void setEnableScrollAnimator(bool flag) { m_scrollAnimatorEnabled = flag; }
451 bool scrollAnimatorEnabled() const { return m_scrollAnimatorEnabled; }
453 #if ENABLE(WEB_SOCKETS)
454 void setUseHixie76WebSocketProtocol(bool flag) { m_useHixie76WebSocketProtocol = flag; }
455 bool useHixie76WebSocketProtocol() { return m_useHixie76WebSocketProtocol; }
458 void setMediaPlaybackRequiresUserGesture(bool flag) { m_mediaPlaybackRequiresUserGesture = flag; };
459 bool mediaPlaybackRequiresUserGesture() const { return m_mediaPlaybackRequiresUserGesture; }
461 void setMediaPlaybackAllowsInline(bool flag) { m_mediaPlaybackAllowsInline = flag; };
462 bool mediaPlaybackAllowsInline() const { return m_mediaPlaybackAllowsInline; }
467 String m_defaultTextEncodingName;
468 String m_ftpDirectoryTemplatePath;
469 String m_localStorageDatabasePath;
470 KURL m_userStyleSheetLocation;
471 ScriptFontFamilyMap m_standardFontFamilyMap;
472 ScriptFontFamilyMap m_serifFontFamilyMap;
473 ScriptFontFamilyMap m_fixedFontFamilyMap;
474 ScriptFontFamilyMap m_sansSerifFontFamilyMap;
475 ScriptFontFamilyMap m_cursiveFontFamilyMap;
476 ScriptFontFamilyMap m_fantasyFontFamilyMap;
477 ScriptFontFamilyMap m_pictographFontFamilyMap;
478 EditableLinkBehavior m_editableLinkBehavior;
479 TextDirectionSubmenuInclusionBehavior m_textDirectionSubmenuInclusionBehavior;
480 int m_minimumFontSize;
481 int m_minimumLogicalFontSize;
482 int m_defaultFontSize;
483 int m_defaultFixedFontSize;
484 int m_validationMessageTimerMagnification;
485 int m_minimumAccelerated2dCanvasSize;
486 int m_layoutFallbackWidth;
488 size_t m_maximumDecodedImageSize;
491 #if ENABLE(DOM_STORAGE)
492 unsigned m_sessionStorageQuota;
494 unsigned m_editingBehaviorType;
495 unsigned m_maximumHTMLParserDOMTreeDepth;
496 bool m_isSpatialNavigationEnabled : 1;
497 bool m_isJavaEnabled : 1;
498 bool m_loadsImagesAutomatically : 1;
499 bool m_loadsSiteIconsIgnoringImageLoadingSetting : 1;
500 bool m_privateBrowsingEnabled : 1;
501 bool m_caretBrowsingEnabled : 1;
502 bool m_areImagesEnabled : 1;
503 bool m_isMediaEnabled : 1;
504 bool m_arePluginsEnabled : 1;
505 bool m_localStorageEnabled : 1;
506 bool m_isJavaScriptEnabled : 1;
507 bool m_isWebSecurityEnabled : 1;
508 bool m_allowUniversalAccessFromFileURLs: 1;
509 bool m_allowFileAccessFromFileURLs: 1;
510 bool m_javaScriptCanOpenWindowsAutomatically : 1;
511 bool m_javaScriptCanAccessClipboard : 1;
512 bool m_shouldPrintBackgrounds : 1;
513 bool m_textAreasAreResizable : 1;
514 #if ENABLE(DASHBOARD_SUPPORT)
515 bool m_usesDashboardBackwardCompatibilityMode : 1;
517 bool m_needsAdobeFrameReloadingQuirk : 1;
518 bool m_needsKeyboardEventDisambiguationQuirks : 1;
519 bool m_treatsAnyTextCSSLinkAsStylesheet : 1;
520 bool m_needsLeopardMailQuirks : 1;
521 bool m_isDOMPasteAllowed : 1;
522 bool m_shrinksStandaloneImagesToFit : 1;
523 bool m_usesPageCache: 1;
524 bool m_showsURLsInToolTips : 1;
525 bool m_showsToolTipOverTruncatedText : 1;
526 bool m_forceFTPDirectoryListings : 1;
527 bool m_developerExtrasEnabled : 1;
528 bool m_authorAndUserStylesEnabled : 1;
529 bool m_needsSiteSpecificQuirks : 1;
530 unsigned m_fontRenderingMode : 1;
531 bool m_frameFlatteningEnabled : 1;
532 bool m_webArchiveDebugModeEnabled : 1;
533 bool m_localFileContentSniffingEnabled : 1;
534 bool m_inApplicationChromeMode : 1;
535 bool m_offlineWebApplicationCacheEnabled : 1;
536 bool m_shouldPaintCustomScrollbars : 1;
537 bool m_enforceCSSMIMETypeInNoQuirksMode : 1;
538 bool m_usesEncodingDetector : 1;
539 bool m_allowScriptsToCloseWindows : 1;
540 bool m_canvasUsesAcceleratedDrawing : 1;
541 bool m_acceleratedDrawingEnabled : 1;
542 bool m_downloadableBinaryFontsEnabled : 1;
543 bool m_xssAuditorEnabled : 1;
544 bool m_acceleratedCompositingEnabled : 1;
545 bool m_acceleratedCompositingFor3DTransformsEnabled : 1;
546 bool m_acceleratedCompositingForVideoEnabled : 1;
547 bool m_acceleratedCompositingForPluginsEnabled : 1;
548 bool m_acceleratedCompositingForCanvasEnabled : 1;
549 bool m_acceleratedCompositingForAnimationEnabled : 1;
550 bool m_showDebugBorders : 1;
551 bool m_showRepaintCounter : 1;
552 bool m_experimentalNotificationsEnabled : 1;
553 bool m_webGLEnabled : 1;
554 bool m_openGLMultisamplingEnabled : 1;
555 bool m_webAudioEnabled : 1;
556 bool m_acceleratedCanvas2dEnabled : 1;
557 bool m_legacyAcceleratedCanvas2dEnabled : 1;
558 bool m_loadDeferringEnabled : 1;
559 bool m_tiledBackingStoreEnabled : 1;
560 bool m_paginateDuringLayoutEnabled : 1;
561 bool m_dnsPrefetchingEnabled : 1;
562 #if ENABLE(FULLSCREEN_API)
563 bool m_fullScreenAPIEnabled : 1;
565 bool m_asynchronousSpellCheckingEnabled: 1;
566 bool m_memoryInfoEnabled: 1;
567 bool m_interactiveFormValidation: 1;
568 bool m_usePreHTML5ParserQuirks: 1;
569 bool m_hyperlinkAuditingEnabled : 1;
570 bool m_crossOriginCheckInGetMatchedCSSRulesDisabled : 1;
571 bool m_forceCompositingMode : 1;
572 bool m_shouldInjectUserScriptsInInitialEmptyDocument : 1;
573 bool m_allowDisplayOfInsecureContent : 1;
574 bool m_allowRunningOfInsecureContent : 1;
575 #if ENABLE(SMOOTH_SCROLLING)
576 bool m_scrollAnimatorEnabled : 1;
578 #if ENABLE(WEB_SOCKETS)
579 bool m_useHixie76WebSocketProtocol : 1;
581 bool m_mediaPlaybackRequiresUserGesture : 1;
582 bool m_mediaPlaybackAllowsInline : 1;
584 Timer<Settings> m_loadsImagesAutomaticallyTimer;
585 void loadsImagesAutomaticallyTimerFired(Timer<Settings>*);
587 #if USE(AVFOUNDATION)
588 static bool gAVFoundationEnabled;
591 #if USE(SAFARI_THEME)
592 static bool gShouldPaintNativeControls;
594 #if PLATFORM(WIN) || (OS(WINDOWS) && PLATFORM(WX))
595 static bool gShouldUseHighResolutionTimers;
599 } // namespace WebCore