summaryrefslogtreecommitdiff
path: root/Source/WebCore/page/Settings.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/page/Settings.h')
-rw-r--r--Source/WebCore/page/Settings.h450
1 files changed, 251 insertions, 199 deletions
diff --git a/Source/WebCore/page/Settings.h b/Source/WebCore/page/Settings.h
index a3e527d52..7fc5708ec 100644
--- a/Source/WebCore/page/Settings.h
+++ b/Source/WebCore/page/Settings.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2011, 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2003-2016 Apple Inc. All rights reserved.
* (C) 2006 Graham Dennis (graham.dennis@gmail.com)
*
* Redistribution and use in source and binary forms, with or without
@@ -11,10 +11,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``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 APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. 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
@@ -24,22 +24,28 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef Settings_h
-#define Settings_h
+#pragma once
+#include "ClipboardAccessPolicy.h"
#include "EditingBehaviorTypes.h"
-#include "FontRenderingMode.h"
#include "IntSize.h"
-#include "URL.h"
#include "SecurityOrigin.h"
#include "SettingsMacros.h"
+#include "TextFlags.h"
#include "Timer.h"
+#include "URL.h"
+#include "WritingMode.h"
#include <chrono>
+#include <runtime/RuntimeFlags.h>
+#include <unicode/uscript.h>
#include <wtf/HashMap.h>
#include <wtf/RefCounted.h>
#include <wtf/text/AtomicString.h>
#include <wtf/text/AtomicStringHash.h>
-#include <wtf/unicode/Unicode.h>
+
+#if ENABLE(DATA_DETECTION)
+#include "DataDetection.h"
+#endif
namespace WebCore {
@@ -60,262 +66,270 @@ enum TextDirectionSubmenuInclusionBehavior {
TextDirectionSubmenuAlwaysIncluded
};
+enum DebugOverlayRegionFlags {
+ NonFastScrollableRegion = 1 << 0,
+ WheelEventHandlerRegion = 1 << 1,
+};
+
+enum class UserInterfaceDirectionPolicy {
+ Content,
+ System
+};
+
+enum PDFImageCachingPolicy {
+ PDFImageCachingEnabled,
+ PDFImageCachingBelowMemoryLimit,
+ PDFImageCachingDisabled,
+ PDFImageCachingClipBoundsOnly,
+#if PLATFORM(IOS)
+ PDFImageCachingDefault = PDFImageCachingBelowMemoryLimit
+#else
+ PDFImageCachingDefault = PDFImageCachingEnabled
+#endif
+};
+
+typedef unsigned DebugOverlayRegions;
+
class Settings : public RefCounted<Settings> {
WTF_MAKE_NONCOPYABLE(Settings); WTF_MAKE_FAST_ALLOCATED;
public:
- static PassRefPtr<Settings> create(Page*);
+ static Ref<Settings> create(Page*);
~Settings();
void pageDestroyed() { m_page = nullptr; }
- void setStandardFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& standardFontFamily(UScriptCode = USCRIPT_COMMON) const;
-
- void setFixedFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& fixedFontFamily(UScriptCode = USCRIPT_COMMON) const;
+ enum class ForcedAccessibilityValue { System, On, Off };
+ static const Settings::ForcedAccessibilityValue defaultForcedColorsAreInvertedAccessibilityValue = ForcedAccessibilityValue::System;
+ static const Settings::ForcedAccessibilityValue defaultForcedDisplayIsMonochromeAccessibilityValue = ForcedAccessibilityValue::System;
+ static const Settings::ForcedAccessibilityValue defaultForcedPrefersReducedMotionAccessibilityValue = ForcedAccessibilityValue::System;
- void setSerifFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& serifFontFamily(UScriptCode = USCRIPT_COMMON) const;
+ WEBCORE_EXPORT void setStandardFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& standardFontFamily(UScriptCode = USCRIPT_COMMON) const;
- void setSansSerifFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& sansSerifFontFamily(UScriptCode = USCRIPT_COMMON) const;
+ WEBCORE_EXPORT void setFixedFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& fixedFontFamily(UScriptCode = USCRIPT_COMMON) const;
- void setCursiveFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& cursiveFontFamily(UScriptCode = USCRIPT_COMMON) const;
+ WEBCORE_EXPORT void setSerifFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& serifFontFamily(UScriptCode = USCRIPT_COMMON) const;
- void setFantasyFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& fantasyFontFamily(UScriptCode = USCRIPT_COMMON) const;
+ WEBCORE_EXPORT void setSansSerifFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& sansSerifFontFamily(UScriptCode = USCRIPT_COMMON) const;
- void setPictographFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
- const AtomicString& pictographFontFamily(UScriptCode = USCRIPT_COMMON) const;
+ WEBCORE_EXPORT void setCursiveFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& cursiveFontFamily(UScriptCode = USCRIPT_COMMON) const;
-#if ENABLE(TEXT_AUTOSIZING)
- void setTextAutosizingEnabled(bool);
- bool textAutosizingEnabled() const { return m_textAutosizingEnabled; }
+ WEBCORE_EXPORT void setFantasyFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& fantasyFontFamily(UScriptCode = USCRIPT_COMMON) const;
- void setTextAutosizingFontScaleFactor(float);
- float textAutosizingFontScaleFactor() const { return m_textAutosizingFontScaleFactor; }
+ WEBCORE_EXPORT void setPictographFontFamily(const AtomicString&, UScriptCode = USCRIPT_COMMON);
+ WEBCORE_EXPORT const AtomicString& pictographFontFamily(UScriptCode = USCRIPT_COMMON) const;
- // Only set by Layout Tests, and only used if textAutosizingEnabled() returns true.
- void setTextAutosizingWindowSizeOverride(const IntSize&);
- const IntSize& textAutosizingWindowSizeOverride() const { return m_textAutosizingWindowSizeOverride; }
-#endif
+ WEBCORE_EXPORT static bool defaultTextAutosizingEnabled();
+ WEBCORE_EXPORT static float defaultMinimumZoomFontSize();
// Only set by Layout Tests.
- void setMediaTypeOverride(const String&);
+ WEBCORE_EXPORT void setMediaTypeOverride(const String&);
const String& mediaTypeOverride() const { return m_mediaTypeOverride; }
// Unlike areImagesEnabled, this only suppresses the network load of
// the image URL. A cached image will still be rendered if requested.
- void setLoadsImagesAutomatically(bool);
+ WEBCORE_EXPORT void setLoadsImagesAutomatically(bool);
bool loadsImagesAutomatically() const { return m_loadsImagesAutomatically; }
// Clients that execute script should call ScriptController::canExecuteScripts()
// instead of this function. ScriptController::canExecuteScripts() checks the
// HTML sandbox, plug-in sandboxing, and other important details.
bool isScriptEnabled() const { return m_isScriptEnabled; }
- void setScriptEnabled(bool);
+ WEBCORE_EXPORT void setScriptEnabled(bool);
SETTINGS_GETTERS_AND_SETTERS
- void setScreenFontSubstitutionEnabled(bool);
- bool screenFontSubstitutionEnabled() const { return m_screenFontSubstitutionEnabled; }
-
- void setJavaEnabled(bool);
+ WEBCORE_EXPORT void setJavaEnabled(bool);
bool isJavaEnabled() const { return m_isJavaEnabled; }
// This settings is only consulted if isJavaEnabled() returns true;
- void setJavaEnabledForLocalFiles(bool);
+ WEBCORE_EXPORT void setJavaEnabledForLocalFiles(bool);
bool isJavaEnabledForLocalFiles() const { return m_isJavaEnabledForLocalFiles; }
- void setImagesEnabled(bool);
+ WEBCORE_EXPORT void setImagesEnabled(bool);
bool areImagesEnabled() const { return m_areImagesEnabled; }
- void setPluginsEnabled(bool);
+ WEBCORE_EXPORT void setPreferMIMETypeForImages(bool);
+ bool preferMIMETypeForImages() const { return m_preferMIMETypeForImages; }
+
+ WEBCORE_EXPORT void setPluginsEnabled(bool);
bool arePluginsEnabled() const { return m_arePluginsEnabled; }
- // When this option is set, WebCore will avoid storing any record of browsing activity
- // that may persist on disk or remain displayed when the option is reset.
- // This option does not affect the storage of such information in RAM.
- // The following functions respect this setting:
- // - HTML5/DOM Storage
- // - Icon Database
- // - Console Messages
- // - MemoryCache
- // - Application Cache
- // - Back/Forward Page History
- // - Page Search Results
- // - HTTP Cookies
- // - Plug-ins (that support NPNVprivateModeBool)
- void setPrivateBrowsingEnabled(bool);
- bool privateBrowsingEnabled() const { return m_privateBrowsingEnabled; }
-
- void setDNSPrefetchingEnabled(bool);
+ WEBCORE_EXPORT void setDNSPrefetchingEnabled(bool);
bool dnsPrefetchingEnabled() const { return m_dnsPrefetchingEnabled; }
- void setUserStyleSheetLocation(const URL&);
+ WEBCORE_EXPORT void setUserStyleSheetLocation(const URL&);
const URL& userStyleSheetLocation() const { return m_userStyleSheetLocation; }
- void setNeedsAdobeFrameReloadingQuirk(bool);
+ WEBCORE_EXPORT void setNeedsAdobeFrameReloadingQuirk(bool);
bool needsAcrobatFrameReloadingQuirk() const { return m_needsAdobeFrameReloadingQuirk; }
- static void setDefaultMinDOMTimerInterval(double); // Interval specified in seconds.
- static double defaultMinDOMTimerInterval();
-
- static void setHiddenPageDOMTimerAlignmentInterval(double); // Interval specified in seconds.
- static double hiddenPageDOMTimerAlignmentInterval();
-
- void setMinDOMTimerInterval(double); // Per-page; initialized to default value.
- double minDOMTimerInterval();
+ WEBCORE_EXPORT void setMinimumDOMTimerInterval(std::chrono::milliseconds); // Initialized to DOMTimer::defaultMinimumInterval().
+ std::chrono::milliseconds minimumDOMTimerInterval() const { return m_minimumDOMTimerInterval; }
- static void setDefaultDOMTimerAlignmentInterval(double);
- static double defaultDOMTimerAlignmentInterval();
+ WEBCORE_EXPORT void setLayoutInterval(Seconds);
+ Seconds layoutInterval() const { return m_layoutInterval; }
- void setDOMTimerAlignmentInterval(double);
- double domTimerAlignmentInterval() const;
-
- void setLayoutInterval(std::chrono::milliseconds);
- std::chrono::milliseconds layoutInterval() const { return m_layoutInterval; }
-
-#if ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
bool hiddenPageDOMTimerThrottlingEnabled() const { return m_hiddenPageDOMTimerThrottlingEnabled; }
- void setHiddenPageDOMTimerThrottlingEnabled(bool);
-#endif
-
-#if PLATFORM(IOS)
- // FIXME: This setting isn't specific to iOS.
- void setMaxParseDuration(double maxParseDuration) { m_maxParseDuration = maxParseDuration; }
- double maxParseDuration() const { return m_maxParseDuration; }
-
- void setStandalone(bool);
- bool standalone() const { return m_standalone; }
+ WEBCORE_EXPORT void setHiddenPageDOMTimerThrottlingEnabled(bool);
+ bool hiddenPageDOMTimerThrottlingAutoIncreases() const { return m_hiddenPageDOMTimerThrottlingAutoIncreases; }
+ WEBCORE_EXPORT void setHiddenPageDOMTimerThrottlingAutoIncreases(bool);
- void setTelephoneNumberParsingEnabled(bool flag) { m_telephoneNumberParsingEnabled = flag; }
- bool telephoneNumberParsingEnabled() const { return m_telephoneNumberParsingEnabled; }
-
- void setMediaDataLoadsAutomatically(bool flag) { m_mediaDataLoadsAutomatically = flag; }
- bool mediaDataLoadsAutomatically() const { return m_mediaDataLoadsAutomatically; }
-
- void setShouldTransformsAffectOverflow(bool flag) { m_shouldTransformsAffectOverflow = flag; }
- bool shouldTransformsAffectOverflow() const { return m_shouldTransformsAffectOverflow; }
-
- void setShouldDispatchJavaScriptWindowOnErrorEvents(bool flag) { m_shouldDispatchJavaScriptWindowOnErrorEvents = flag; }
- bool shouldDispatchJavaScriptWindowOnErrorEvents() const { return m_shouldDispatchJavaScriptWindowOnErrorEvents; }
-
- void setAlwaysUseBaselineOfPrimaryFont(bool flag) { m_alwaysUseBaselineOfPrimaryFont = flag; }
- bool alwaysUseBaselineOfPrimaryFont() const { return m_alwaysUseBaselineOfPrimaryFont; }
-
- void setAlwaysUseAcceleratedOverflowScroll(bool flag) { m_alwaysUseAcceleratedOverflowScroll = flag; }
- bool alwaysUseAcceleratedOverflowScroll() const { return m_alwaysUseAcceleratedOverflowScroll; }
-#endif
-
- void setUsesPageCache(bool);
+ WEBCORE_EXPORT void setUsesPageCache(bool);
bool usesPageCache() const { return m_usesPageCache; }
void setFontRenderingMode(FontRenderingMode mode);
FontRenderingMode fontRenderingMode() const;
-#if ENABLE(CSS_STICKY_POSITION)
- void setCSSStickyPositionEnabled(bool enabled) { m_cssStickyPositionEnabled = enabled; }
- bool cssStickyPositionEnabled() const { return m_cssStickyPositionEnabled; }
-#else
- void setCSSStickyPositionEnabled(bool) { }
- bool cssStickyPositionEnabled() const { return false; }
-#endif
-
- void setShowTiledScrollingIndicator(bool);
+ WEBCORE_EXPORT void setShowTiledScrollingIndicator(bool);
bool showTiledScrollingIndicator() const { return m_showTiledScrollingIndicator; }
+#if ENABLE(RESOURCE_USAGE)
+ bool resourceUsageOverlayVisible() const { return m_resourceUsageOverlayVisible; }
+ WEBCORE_EXPORT void setResourceUsageOverlayVisible(bool);
+#endif
+
#if PLATFORM(WIN)
static void setShouldUseHighResolutionTimers(bool);
static bool shouldUseHighResolutionTimers() { return gShouldUseHighResolutionTimers; }
#endif
- void setTiledBackingStoreEnabled(bool);
- bool tiledBackingStoreEnabled() const { return m_tiledBackingStoreEnabled; }
+ static bool isPostLoadCPUUsageMeasurementEnabled();
+ static bool isPostBackgroundingCPUUsageMeasurementEnabled();
+ static bool isPerActivityStateCPUUsageMeasurementEnabled();
+
+ static bool isPostLoadMemoryUsageMeasurementEnabled();
+ static bool isPostBackgroundingMemoryUsageMeasurementEnabled();
- void setBackgroundShouldExtendBeyondPage(bool);
+ static bool globalConstRedeclarationShouldThrow();
+
+ WEBCORE_EXPORT void setBackgroundShouldExtendBeyondPage(bool);
bool backgroundShouldExtendBeyondPage() const { return m_backgroundShouldExtendBeyondPage; }
#if USE(AVFOUNDATION)
- static void setAVFoundationEnabled(bool flag);
+ WEBCORE_EXPORT static void setAVFoundationEnabled(bool flag);
static bool isAVFoundationEnabled() { return gAVFoundationEnabled; }
+ WEBCORE_EXPORT static void setAVFoundationNSURLSessionEnabled(bool flag);
+ static bool isAVFoundationNSURLSessionEnabled() { return gAVFoundationNSURLSessionEnabled; }
#endif
-#if PLATFORM(MAC)
- static void setQTKitEnabled(bool flag);
+#if PLATFORM(COCOA)
+ WEBCORE_EXPORT static void setQTKitEnabled(bool flag);
static bool isQTKitEnabled() { return gQTKitEnabled; }
+#else
+ static bool isQTKitEnabled() { return false; }
#endif
- static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512;
-
-#if USE(SAFARI_THEME)
- // Windows debugging pref (global) for switching between the Aqua look and a native windows look.
- static void setShouldPaintNativeControls(bool);
- static bool shouldPaintNativeControls() { return gShouldPaintNativeControls; }
+#if USE(GSTREAMER)
+ WEBCORE_EXPORT static void setGStreamerEnabled(bool flag);
+ static bool isGStreamerEnabled() { return gGStreamerEnabled; }
#endif
- static void setMockScrollbarsEnabled(bool flag);
- static bool mockScrollbarsEnabled();
+ static const unsigned defaultMaximumHTMLParserDOMTreeDepth = 512;
+ static const unsigned defaultMaximumRenderTreeDepth = 512;
+
+ WEBCORE_EXPORT static void setMockScrollbarsEnabled(bool flag);
+ WEBCORE_EXPORT static bool mockScrollbarsEnabled();
- static void setUsesOverlayScrollbars(bool flag);
+ WEBCORE_EXPORT static void setUsesOverlayScrollbars(bool flag);
static bool usesOverlayScrollbars();
+ WEBCORE_EXPORT static void setUsesMockScrollAnimator(bool);
+ static bool usesMockScrollAnimator();
+
#if ENABLE(TOUCH_EVENTS)
void setTouchEventEmulationEnabled(bool enabled) { m_touchEventEmulationEnabled = enabled; }
bool isTouchEventEmulationEnabled() const { return m_touchEventEmulationEnabled; }
#endif
- void setStorageBlockingPolicy(SecurityOrigin::StorageBlockingPolicy);
+ WEBCORE_EXPORT void setStorageBlockingPolicy(SecurityOrigin::StorageBlockingPolicy);
SecurityOrigin::StorageBlockingPolicy storageBlockingPolicy() const { return m_storageBlockingPolicy; }
- void setScrollingPerformanceLoggingEnabled(bool);
+ WEBCORE_EXPORT void setScrollingPerformanceLoggingEnabled(bool);
bool scrollingPerformanceLoggingEnabled() { return m_scrollingPerformanceLoggingEnabled; }
-
- void setAggressiveTileRetentionEnabled(bool);
- bool aggressiveTileRetentionEnabled() { return m_aggressiveTileRetentionEnabled; }
- static void setShouldRespectPriorityInCSSAttributeSetters(bool);
+ WEBCORE_EXPORT static void setShouldRespectPriorityInCSSAttributeSetters(bool);
static bool shouldRespectPriorityInCSSAttributeSetters();
void setTimeWithoutMouseMovementBeforeHidingControls(double time) { m_timeWithoutMouseMovementBeforeHidingControls = time; }
double timeWithoutMouseMovementBeforeHidingControls() const { return m_timeWithoutMouseMovementBeforeHidingControls; }
-#if ENABLE(PAGE_VISIBILITY_API)
bool hiddenPageCSSAnimationSuspensionEnabled() const { return m_hiddenPageCSSAnimationSuspensionEnabled; }
- void setHiddenPageCSSAnimationSuspensionEnabled(bool);
-#endif
+ WEBCORE_EXPORT void setHiddenPageCSSAnimationSuspensionEnabled(bool);
- void setFontFallbackPrefersPictographs(bool);
+ WEBCORE_EXPORT void setFontFallbackPrefersPictographs(bool);
bool fontFallbackPrefersPictographs() const { return m_fontFallbackPrefersPictographs; }
+ WEBCORE_EXPORT void setWebFontsAlwaysFallBack(bool);
+ bool webFontsAlwaysFallBack() const { return m_webFontsAlwaysFallBack; }
+
static bool lowPowerVideoAudioBufferSizeEnabled() { return gLowPowerVideoAudioBufferSizeEnabled; }
- static void setLowPowerVideoAudioBufferSizeEnabled(bool);
+ WEBCORE_EXPORT static void setLowPowerVideoAudioBufferSizeEnabled(bool);
-#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- static void setVideoPluginProxyEnabled(bool flag);
- static bool isVideoPluginProxyEnabled() { return gVideoPluginProxyEnabled; }
-#endif
+ static bool resourceLoadStatisticsEnabled() { return gResourceLoadStatisticsEnabledEnabled; }
+ WEBCORE_EXPORT static void setResourceLoadStatisticsEnabled(bool);
#if PLATFORM(IOS)
- static void setAudioSessionCategoryOverride(unsigned);
+ WEBCORE_EXPORT static void setAudioSessionCategoryOverride(unsigned);
static unsigned audioSessionCategoryOverride();
- static void setNetworkDataUsageTrackingEnabled(bool);
+ WEBCORE_EXPORT static void setNetworkDataUsageTrackingEnabled(bool);
static bool networkDataUsageTrackingEnabled();
- static void setNetworkInterfaceName(const String&);
+ WEBCORE_EXPORT static void setNetworkInterfaceName(const String&);
static const String& networkInterfaceName();
+#if HAVE(AVKIT)
static void setAVKitEnabled(bool flag) { gAVKitEnabled = flag; }
+#endif
static bool avKitEnabled() { return gAVKitEnabled; }
+
+ static void setShouldOptOutOfNetworkStateObservation(bool flag) { gShouldOptOutOfNetworkStateObservation = flag; }
+ static bool shouldOptOutOfNetworkStateObservation() { return gShouldOptOutOfNetworkStateObservation; }
+
+ static void setShouldManageAudioSessionCategory(bool flag) { gManageAudioSession = flag; }
+ static bool shouldManageAudioSessionCategory() { return gManageAudioSession; }
+#endif
+
+#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
+ void setMediaKeysStorageDirectory(const String& directory) { m_mediaKeysStorageDirectory = directory; }
+ const String& mediaKeysStorageDirectory() const { return m_mediaKeysStorageDirectory; }
+#endif
+
+#if ENABLE(MEDIA_STREAM)
+ void setMediaDeviceIdentifierStorageDirectory(const String& directory) { m_mediaDeviceIdentifierStorageDirectory = directory; }
+ const String& mediaDeviceIdentifierStorageDirectory() const { return m_mediaDeviceIdentifierStorageDirectory; }
+
+ static bool mockCaptureDevicesEnabled();
+ WEBCORE_EXPORT static void setMockCaptureDevicesEnabled(bool);
+
+ bool mediaCaptureRequiresSecureConnection() const;
+ WEBCORE_EXPORT static void setMediaCaptureRequiresSecureConnection(bool);
#endif
+#if ENABLE(APPLE_PAY)
+ bool applePayEnabled() const { return m_applePayEnabled; }
+ void setApplePayEnabled(bool applePayEnabled) { m_applePayEnabled = applePayEnabled; }
+
+ bool applePayCapabilityDisclosureAllowed() const { return m_applePayCapabilityDisclosureAllowed; }
+ void setApplePayCapabilityDisclosureAllowed(bool applePayCapabilityDisclosureAllowed) { m_applePayCapabilityDisclosureAllowed = applePayCapabilityDisclosureAllowed; }
+#endif
+
+ WEBCORE_EXPORT void setForcePendingWebGLPolicy(bool);
+ bool isForcePendingWebGLPolicy() const { return m_forcePendingWebGLPolicy; }
+
+ WEBCORE_EXPORT static void setAllowsAnySSLCertificate(bool);
+ static bool allowsAnySSLCertificate();
+
private:
explicit Settings(Page*);
void initializeDefaultFontFamilies();
- static bool shouldEnableScreenFontSubstitutionByDefault();
Page* m_page;
@@ -323,44 +337,22 @@ private:
URL m_userStyleSheetLocation;
const std::unique_ptr<FontGenericFamilies> m_fontGenericFamilies;
SecurityOrigin::StorageBlockingPolicy m_storageBlockingPolicy;
- std::chrono::milliseconds m_layoutInterval;
-#if PLATFORM(IOS)
- double m_maxParseDuration;
-#endif
-#if ENABLE(TEXT_AUTOSIZING)
- float m_textAutosizingFontScaleFactor;
- IntSize m_textAutosizingWindowSizeOverride;
- bool m_textAutosizingEnabled : 1;
-#endif
+ Seconds m_layoutInterval;
+ std::chrono::milliseconds m_minimumDOMTimerInterval;
SETTINGS_MEMBER_VARIABLES
- bool m_screenFontSubstitutionEnabled : 1;
bool m_isJavaEnabled : 1;
bool m_isJavaEnabledForLocalFiles : 1;
bool m_loadsImagesAutomatically : 1;
- bool m_privateBrowsingEnabled : 1;
bool m_areImagesEnabled : 1;
+ bool m_preferMIMETypeForImages : 1;
bool m_arePluginsEnabled : 1;
bool m_isScriptEnabled : 1;
bool m_needsAdobeFrameReloadingQuirk : 1;
bool m_usesPageCache : 1;
unsigned m_fontRenderingMode : 1;
-#if PLATFORM(IOS)
- bool m_standalone : 1;
- bool m_telephoneNumberParsingEnabled : 1;
- bool m_mediaDataLoadsAutomatically : 1;
- bool m_shouldTransformsAffectOverflow : 1;
- bool m_shouldDispatchJavaScriptWindowOnErrorEvents : 1;
- bool m_alwaysUseBaselineOfPrimaryFont : 1;
- bool m_allowMultiElementImplicitFormSubmission : 1;
- bool m_alwaysUseAcceleratedOverflowScroll : 1;
-#endif
-#if ENABLE(CSS_STICKY_POSITION)
- bool m_cssStickyPositionEnabled : 1;
-#endif
bool m_showTiledScrollingIndicator : 1;
- bool m_tiledBackingStoreEnabled : 1;
bool m_backgroundShouldExtendBeyondPage : 1;
bool m_dnsPrefetchingEnabled : 1;
@@ -368,56 +360,116 @@ private:
bool m_touchEventEmulationEnabled : 1;
#endif
bool m_scrollingPerformanceLoggingEnabled : 1;
- bool m_aggressiveTileRetentionEnabled : 1;
double m_timeWithoutMouseMovementBeforeHidingControls;
- Timer<Settings> m_setImageLoadingSettingsTimer;
- void imageLoadingSettingsTimerFired(Timer<Settings>*);
+ Timer m_setImageLoadingSettingsTimer;
+ void imageLoadingSettingsTimerFired();
-#if ENABLE(HIDDEN_PAGE_DOM_TIMER_THROTTLING)
bool m_hiddenPageDOMTimerThrottlingEnabled : 1;
-#endif
-#if ENABLE(PAGE_VISIBILITY_API)
bool m_hiddenPageCSSAnimationSuspensionEnabled : 1;
-#endif
bool m_fontFallbackPrefersPictographs : 1;
+ bool m_webFontsAlwaysFallBack : 1;
- static double gDefaultMinDOMTimerInterval;
- static double gDefaultDOMTimerAlignmentInterval;
+ bool m_forcePendingWebGLPolicy : 1;
+
+#if ENABLE(RESOURCE_USAGE)
+ bool m_resourceUsageOverlayVisible { false };
+#endif
+
+ bool m_hiddenPageDOMTimerThrottlingAutoIncreases { false };
#if USE(AVFOUNDATION)
- static bool gAVFoundationEnabled;
+ WEBCORE_EXPORT static bool gAVFoundationEnabled;
+ WEBCORE_EXPORT static bool gAVFoundationNSURLSessionEnabled;
#endif
-#if PLATFORM(MAC)
- static bool gQTKitEnabled;
+#if PLATFORM(COCOA)
+ WEBCORE_EXPORT static bool gQTKitEnabled;
#endif
-
+
+#if USE(GSTREAMER)
+ WEBCORE_EXPORT static bool gGStreamerEnabled;
+#endif
+
static bool gMockScrollbarsEnabled;
static bool gUsesOverlayScrollbars;
+ static bool gMockScrollAnimatorEnabled;
-#if USE(SAFARI_THEME)
- static bool gShouldPaintNativeControls;
-#endif
#if PLATFORM(WIN)
static bool gShouldUseHighResolutionTimers;
#endif
static bool gShouldRespectPriorityInCSSAttributeSetters;
#if PLATFORM(IOS)
static bool gNetworkDataUsageTrackingEnabled;
- static bool gAVKitEnabled;
+ WEBCORE_EXPORT static bool gAVKitEnabled;
+ WEBCORE_EXPORT static bool gShouldOptOutOfNetworkStateObservation;
+ WEBCORE_EXPORT static bool gManageAudioSession;
#endif
- static double gHiddenPageDOMTimerAlignmentInterval;
+#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
+ String m_mediaKeysStorageDirectory;
+#endif
+
+#if ENABLE(MEDIA_STREAM)
+ String m_mediaDeviceIdentifierStorageDirectory;
+ static bool gMockCaptureDevicesEnabled;
+ static bool gMediaCaptureRequiresSecureConnection;
+#endif
+
+#if ENABLE(APPLE_PAY)
+ bool m_applePayEnabled { false };
+ bool m_applePayCapabilityDisclosureAllowed { true };
+#endif
static bool gLowPowerVideoAudioBufferSizeEnabled;
+ static bool gResourceLoadStatisticsEnabledEnabled;
+ static bool gAllowsAnySSLCertificate;
+};
-#if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
- static bool gVideoPluginProxyEnabled;
+inline bool Settings::isPostLoadCPUUsageMeasurementEnabled()
+{
+#if PLATFORM(COCOA)
+ return true;
+#else
+ return false;
#endif
-};
+}
-} // namespace WebCore
+inline bool Settings::isPostBackgroundingCPUUsageMeasurementEnabled()
+{
+#if PLATFORM(MAC)
+ return true;
+#else
+ return false;
+#endif
+}
+
+inline bool Settings::isPerActivityStateCPUUsageMeasurementEnabled()
+{
+#if PLATFORM(MAC)
+ return true;
+#else
+ return false;
+#endif
+}
+
+inline bool Settings::isPostLoadMemoryUsageMeasurementEnabled()
+{
+#if PLATFORM(COCOA)
+ return true;
+#else
+ return false;
+#endif
+}
+inline bool Settings::isPostBackgroundingMemoryUsageMeasurementEnabled()
+{
+#if PLATFORM(MAC)
+ return true;
+#else
+ return false;
#endif
+}
+
+} // namespace WebCore