summaryrefslogtreecommitdiff
path: root/Source/WebCore/testing/InternalSettings.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/testing/InternalSettings.h')
-rw-r--r--Source/WebCore/testing/InternalSettings.h188
1 files changed, 116 insertions, 72 deletions
diff --git a/Source/WebCore/testing/InternalSettings.h b/Source/WebCore/testing/InternalSettings.h
index 768d5752b..8df919fa0 100644
--- a/Source/WebCore/testing/InternalSettings.h
+++ b/Source/WebCore/testing/InternalSettings.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2012 Google Inc. All rights reserved.
- * Copyright (C) 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2013-2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -24,40 +24,107 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef InternalSettings_h
-#define InternalSettings_h
+#pragma once
// FIXME (121927): This include should not be needed.
#include <wtf/text/AtomicStringHash.h>
#include "EditingBehaviorTypes.h"
+#include "ExceptionOr.h"
#include "FontGenericFamilies.h"
#include "IntSize.h"
#include "InternalSettingsGenerated.h"
-#include <wtf/PassRefPtr.h>
+#include "SecurityOrigin.h"
+#include "Settings.h"
+#include "WritingMode.h"
namespace WebCore {
-typedef int ExceptionCode;
-
-class Frame;
-class Document;
class Page;
class Settings;
class InternalSettings : public InternalSettingsGenerated {
public:
+ static Ref<InternalSettings> create(Page*);
+ static InternalSettings* from(Page*);
+ void hostDestroyed();
+ void resetToConsistentState();
+
+ ExceptionOr<void> setUsesOverlayScrollbars(bool);
+ ExceptionOr<void> setTouchEventEmulationEnabled(bool);
+ ExceptionOr<void> setStandardFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setSerifFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setSansSerifFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setFixedFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setCursiveFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setFantasyFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setPictographFontFamily(const String& family, const String& script);
+ ExceptionOr<void> setTextAutosizingEnabled(bool);
+ ExceptionOr<void> setTextAutosizingWindowSizeOverride(int width, int height);
+ ExceptionOr<void> setTextAutosizingFontScaleFactor(float);
+ ExceptionOr<void> setMediaTypeOverride(const String&);
+ ExceptionOr<void> setCanStartMedia(bool);
+ ExceptionOr<void> setAllowsAirPlayForMediaPlayback(bool);
+ ExceptionOr<void> setMediaCaptureRequiresSecureConnection(bool);
+
+ ExceptionOr<void> setEditingBehavior(const String&);
+ ExceptionOr<void> setPreferMIMETypeForImages(bool);
+ ExceptionOr<void> setPDFImageCachingPolicy(const String&);
+ ExceptionOr<void> setShouldDisplayTrackKind(const String& kind, bool enabled);
+ ExceptionOr<bool> shouldDisplayTrackKind(const String& kind);
+ ExceptionOr<void> setStorageBlockingPolicy(const String&);
+ ExceptionOr<void> setImagesEnabled(bool);
+ ExceptionOr<void> setMinimumTimerInterval(double intervalInSeconds);
+ ExceptionOr<void> setDefaultVideoPosterURL(const String&);
+ ExceptionOr<void> setForcePendingWebGLPolicy(bool);
+ ExceptionOr<void> setTimeWithoutMouseMovementBeforeHidingControls(double);
+ ExceptionOr<void> setUseLegacyBackgroundSizeShorthandBehavior(bool);
+ ExceptionOr<void> setAutoscrollForDragAndDropEnabled(bool);
+ ExceptionOr<void> setFontFallbackPrefersPictographs(bool);
+ ExceptionOr<void> setWebFontsAlwaysFallBack(bool);
+ ExceptionOr<void> setQuickTimePluginReplacementEnabled(bool);
+ ExceptionOr<void> setYouTubeFlashPluginReplacementEnabled(bool);
+ ExceptionOr<void> setBackgroundShouldExtendBeyondPage(bool);
+ ExceptionOr<void> setShouldConvertPositionStyleOnCopy(bool);
+ ExceptionOr<void> setScrollingTreeIncludesFrames(bool);
+ ExceptionOr<void> setAllowUnclampedScrollPosition(bool);
+ ExceptionOr<void> setAllowsInlineMediaPlayback(bool);
+ ExceptionOr<void> setAllowsInlineMediaPlaybackAfterFullscreen(bool);
+ ExceptionOr<void> setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool);
+ ExceptionOr<String> userInterfaceDirectionPolicy();
+ ExceptionOr<void> setUserInterfaceDirectionPolicy(const String&);
+ ExceptionOr<String> systemLayoutDirection();
+ ExceptionOr<void> setSystemLayoutDirection(const String&);
+
+ static void setAllowsAnySSLCertificate(bool);
+
+ ExceptionOr<bool> deferredCSSParserEnabled();
+ ExceptionOr<void> setDeferredCSSParserEnabled(bool);
+
+ enum class ForcedAccessibilityValue { System, On, Off };
+ ForcedAccessibilityValue forcedColorsAreInvertedAccessibilityValue() const;
+ void setForcedColorsAreInvertedAccessibilityValue(ForcedAccessibilityValue);
+ ForcedAccessibilityValue forcedDisplayIsMonochromeAccessibilityValue() const;
+ void setForcedDisplayIsMonochromeAccessibilityValue(ForcedAccessibilityValue);
+ ForcedAccessibilityValue forcedPrefersReducedMotionAccessibilityValue() const;
+ void setForcedPrefersReducedMotionAccessibilityValue(ForcedAccessibilityValue);
+
+ // RuntimeEnabledFeatures.
+ static void setIndexedDBWorkersEnabled(bool);
+ static void setCSSGridLayoutEnabled(bool);
+ static void setWebGL2Enabled(bool);
+
+private:
+ explicit InternalSettings(Page*);
+
+ Settings& settings() const;
+ static const char* supplementName();
+
class Backup {
public:
explicit Backup(Settings&);
void restoreTo(Settings&);
- bool m_originalCSSExclusionsEnabled;
- bool m_originalCSSShapesEnabled;
-#if ENABLE(SHADOW_DOM)
- bool m_originalShadowDOMEnabled;
- bool m_originalAuthorShadowDOMForAnyElementEnabled;
-#endif
EditingBehaviorType m_originalEditingBehavior;
// Initially empty, only used if changed by a test.
@@ -72,83 +139,60 @@ public:
#if ENABLE(TEXT_AUTOSIZING)
bool m_originalTextAutosizingEnabled;
IntSize m_originalTextAutosizingWindowSizeOverride;
- float m_originalTextAutosizingFontScaleFactor;
#endif
+
String m_originalMediaTypeOverride;
bool m_originalCanvasUsesAcceleratedDrawing;
bool m_originalMockScrollbarsEnabled;
bool m_originalUsesOverlayScrollbars;
- bool m_langAttributeAwareFormControlUIEnabled;
bool m_imagesEnabled;
- double m_minimumTimerInterval;
+ bool m_preferMIMETypeForImages;
+ std::chrono::milliseconds m_minimumTimerInterval;
#if ENABLE(VIDEO_TRACK)
bool m_shouldDisplaySubtitles;
bool m_shouldDisplayCaptions;
bool m_shouldDisplayTextDescriptions;
#endif
String m_defaultVideoPosterURL;
+ bool m_forcePendingWebGLPolicy;
bool m_originalTimeWithoutMouseMovementBeforeHidingControls;
bool m_useLegacyBackgroundSizeShorthandBehavior;
bool m_autoscrollForDragAndDropEnabled;
- bool m_pluginReplacementEnabled;
+ bool m_quickTimePluginReplacementEnabled;
+ bool m_youTubeFlashPluginReplacementEnabled;
+ bool m_shouldConvertPositionStyleOnCopy;
+ bool m_fontFallbackPrefersPictographs;
+ bool m_webFontsAlwaysFallBack;
+ bool m_backgroundShouldExtendBeyondPage;
+ SecurityOrigin::StorageBlockingPolicy m_storageBlockingPolicy;
+ bool m_scrollingTreeIncludesFrames;
+#if ENABLE(TOUCH_EVENTS)
+ bool m_touchEventEmulationEnabled;
+#endif
+#if ENABLE(WIRELESS_PLAYBACK_TARGET)
+ bool m_allowsAirPlayForMediaPlayback;
+#endif
+ bool m_allowsInlineMediaPlayback;
+ bool m_allowsInlineMediaPlaybackAfterFullscreen;
+ bool m_inlineMediaPlaybackRequiresPlaysInlineAttribute;
+ bool m_deferredCSSParserEnabled;
+ bool m_inputEventsEnabled;
+
+ UserInterfaceDirectionPolicy m_userInterfaceDirectionPolicy;
+ TextDirection m_systemLayoutDirection;
+ PDFImageCachingPolicy m_pdfImageCachingPolicy;
+ Settings::ForcedAccessibilityValue m_forcedColorsAreInvertedAccessibilityValue;
+ Settings::ForcedAccessibilityValue m_forcedDisplayIsMonochromeAccessibilityValue;
+ Settings::ForcedAccessibilityValue m_forcedPrefersReducedMotionAccessibilityValue;
+
+ // Runtime enabled settings.
+ bool m_indexedDBWorkersEnabled;
+ bool m_cssGridLayoutEnabled;
+ bool m_webGL2Enabled;
};
- static PassRefPtr<InternalSettings> create(Page* page)
- {
- return adoptRef(new InternalSettings(page));
- }
- static InternalSettings* from(Page*);
- void hostDestroyed() { m_page = 0; }
-
- virtual ~InternalSettings();
- void resetToConsistentState();
-
- void setMockScrollbarsEnabled(bool enabled, ExceptionCode&);
- void setUsesOverlayScrollbars(bool enabled, ExceptionCode&);
- void setTouchEventEmulationEnabled(bool enabled, ExceptionCode&);
- void setShadowDOMEnabled(bool enabled, ExceptionCode&);
- void setAuthorShadowDOMForAnyElementEnabled(bool);
- void setStandardFontFamily(const String& family, const String& script, ExceptionCode&);
- void setSerifFontFamily(const String& family, const String& script, ExceptionCode&);
- void setSansSerifFontFamily(const String& family, const String& script, ExceptionCode&);
- void setFixedFontFamily(const String& family, const String& script, ExceptionCode&);
- void setCursiveFontFamily(const String& family, const String& script, ExceptionCode&);
- void setFantasyFontFamily(const String& family, const String& script, ExceptionCode&);
- void setPictographFontFamily(const String& family, const String& script, ExceptionCode&);
- void setTextAutosizingEnabled(bool enabled, ExceptionCode&);
- void setTextAutosizingWindowSizeOverride(int width, int height, ExceptionCode&);
- void setTextAutosizingFontScaleFactor(float fontScaleFactor, ExceptionCode&);
- void setMediaTypeOverride(const String& mediaType, ExceptionCode&);
- void setCSSExclusionsEnabled(bool enabled, ExceptionCode&);
- void setCSSShapesEnabled(bool enabled, ExceptionCode&);
- void setCanStartMedia(bool, ExceptionCode&);
- void setEditingBehavior(const String&, ExceptionCode&);
- void setShouldDisplayTrackKind(const String& kind, bool enabled, ExceptionCode&);
- bool shouldDisplayTrackKind(const String& kind, ExceptionCode&);
- void setStorageBlockingPolicy(const String&, ExceptionCode&);
- void setLangAttributeAwareFormControlUIEnabled(bool);
- void setImagesEnabled(bool enabled, ExceptionCode&);
- void setMinimumTimerInterval(double intervalInSeconds, ExceptionCode&);
- void setDefaultVideoPosterURL(const String& url, ExceptionCode&);
- void setTimeWithoutMouseMovementBeforeHidingControls(double time, ExceptionCode&);
- void setUseLegacyBackgroundSizeShorthandBehavior(bool enabled, ExceptionCode&);
- void setAutoscrollForDragAndDropEnabled(bool enabled, ExceptionCode&);
- void setFontFallbackPrefersPictographs(bool preferPictographs, ExceptionCode&);
- void setPluginReplacementEnabled(bool);
- void setBackgroundShouldExtendBeyondPage(bool hasExtendedBackground, ExceptionCode&);
-
-
-private:
- explicit InternalSettings(Page*);
-
- Settings* settings() const;
- Page* page() const { return m_page; }
- static const char* supplementName();
-
Page* m_page;
Backup m_backup;
};
} // namespace WebCore
-
-#endif