Add a RuntimeEnabledFeature for display: contents, defaulted to false.
[WebKit-https.git] / Source / WebCore / page / RuntimeEnabledFeatures.h
index 98014ae..299ba9b 100644 (file)
@@ -43,15 +43,8 @@ namespace WebCore {
 class RuntimeEnabledFeatures {
     WTF_MAKE_NONCOPYABLE(RuntimeEnabledFeatures);
 public:
-    // The lang attribute support is incomplete and should only be turned on for tests.
-    bool langAttributeAwareFormControlUIEnabled() const { return m_isLangAttributeAwareFormControlUIEnabled; }
-    void setLangAttributeAwareFormControlUIEnabled(bool isEnabled) { m_isLangAttributeAwareFormControlUIEnabled = isEnabled; }
-
-    void setDOMIteratorEnabled(bool isEnabled) { m_isDOMIteratorEnabled = isEnabled; }
-    bool domIteratorEnabled() const { return m_isDOMIteratorEnabled; }
-
-    void setGeolocationEnabled(bool isEnabled) { m_isGeolocationEnabled = isEnabled; }
-    bool geolocationEnabled() const { return m_isGeolocationEnabled; }
+    void setDisplayContentsEnabled(bool isEnabled) { m_isDisplayContentsEnabled = isEnabled; }
+    bool displayContentsEnabled() const { return m_isDisplayContentsEnabled; }
 
     void setLinkPreloadEnabled(bool isEnabled) { m_isLinkPreloadEnabled = isEnabled; }
     bool linkPreloadEnabled() const { return m_isLinkPreloadEnabled; }
@@ -59,6 +52,11 @@ public:
     void setResourceTimingEnabled(bool isEnabled) { m_isResourceTimingEnabled = isEnabled; }
     bool resourceTimingEnabled() const { return m_isResourceTimingEnabled; }
 
+    void setUserTimingEnabled(bool isEnabled) { m_isUserTimingEnabled = isEnabled; }
+    bool userTimingEnabled() const { return m_isUserTimingEnabled; }
+
+    bool performanceTimelineEnabled() const { return resourceTimingEnabled() || userTimingEnabled(); }
+
     void setShadowDOMEnabled(bool isEnabled) { m_isShadowDOMEnabled = isEnabled; }
     bool shadowDOMEnabled() const { return m_isShadowDOMEnabled; }
 
@@ -74,11 +72,8 @@ public:
     void setModernMediaControlsEnabled(bool areEnabled) { m_areModernMediaControlsEnabled = areEnabled; }
     bool modernMediaControlsEnabled() const { return m_areModernMediaControlsEnabled; }
 
-#if ENABLE(INDEXED_DATABASE)
-    // FIXME: This is always enabled and nobody can even toggle it off. Remove?
-    void setIndexedDBEnabled(bool isEnabled) { m_isIndexedDBEnabled = isEnabled; }
-    bool indexedDBEnabled() const { return m_isIndexedDBEnabled; }
-#endif
+    void setCredentialManagementEnabled(bool isEnabled) { m_isCredentialManagementEnabled = isEnabled; }
+    bool credentialManagementEnabled() const { return m_isCredentialManagementEnabled; }
 
 #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
     void setIndexedDBWorkersEnabled(bool isEnabled) { m_isIndexedDBWorkersEnabled = isEnabled; }
@@ -91,13 +86,17 @@ public:
 #endif
 
 #if ENABLE(MEDIA_STREAM)
+    bool mediaDevicesEnabled() const { return m_isMediaDevicesEnabled; }
+    void setMediaDevicesEnabled(bool isEnabled) { m_isMediaDevicesEnabled = isEnabled; }
     bool mediaStreamEnabled() const { return m_isMediaStreamEnabled; }
     void setMediaStreamEnabled(bool isEnabled) { m_isMediaStreamEnabled = isEnabled; }
 #endif
 
 #if ENABLE(WEB_RTC)
-    bool peerConnectionEnabled() const { return m_isMediaStreamEnabled && m_isPeerConnectionEnabled; }
+    bool peerConnectionEnabled() const { return m_isPeerConnectionEnabled; }
     void setPeerConnectionEnabled(bool isEnabled) { m_isPeerConnectionEnabled = isEnabled; }
+    bool webRTCLegacyAPIEnabled() const { return m_webRTCLegacyAPIEnabled; }
+    void setWebRTCLegacyAPIEnabled(bool isEnabled) { m_webRTCLegacyAPIEnabled = isEnabled; }
 #endif
 
 #if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
@@ -156,20 +155,30 @@ public:
     bool webGL2Enabled() const { return m_isWebGL2Enabled; }
 #endif
 
+#if ENABLE(WEBGPU)
+    void setWebGPUEnabled(bool isEnabled) { m_isWebGPUEnabled = isEnabled; }
+    bool webGPUEnabled() const { return m_isWebGPUEnabled; }
+#endif
+
 #if ENABLE(FETCH_API)
     void setFetchAPIEnabled(bool isEnabled) { m_isFetchAPIEnabled = isEnabled; }
     bool fetchAPIEnabled() const { return m_isFetchAPIEnabled; }
 #endif
-
+    
+#if ENABLE(STREAMS_API)
+    void setReadableByteStreamAPIEnabled(bool isEnabled) { m_isReadableByteStreamAPIEnabled = isEnabled; }
+    bool readableByteStreamAPIEnabled() const { return m_isReadableByteStreamAPIEnabled; }
+    void setWritableStreamAPIEnabled(bool isEnabled) { m_isWritableStreamAPIEnabled = isEnabled; }
+    bool writableStreamAPIEnabled() const { return m_isWritableStreamAPIEnabled; }
+#endif
+    
 #if ENABLE(DOWNLOAD_ATTRIBUTE)
     void setDownloadAttributeEnabled(bool isEnabled) { m_isDownloadAttributeEnabled = isEnabled; }
     bool downloadAttributeEnabled() const { return m_isDownloadAttributeEnabled; }
 #endif
 
-#if ENABLE(CSS_GRID_LAYOUT)
     void setCSSGridLayoutEnabled(bool isEnabled) { m_cssGridLayoutEnabled = isEnabled; }
     bool isCSSGridLayoutEnabled() const { return m_cssGridLayoutEnabled; }
-#endif
 
 #if ENABLE(INTERSECTION_OBSERVER)
     void setIntersectionObserverEnabled(bool isEnabled) { m_intersectionObserverEnabled = isEnabled; }
@@ -188,13 +197,6 @@ public:
 
 #if ENABLE(VIDEO)
     bool audioEnabled() const;
-    bool htmlMediaElementEnabled() const;
-    bool htmlAudioElementEnabled() const;
-    bool htmlVideoElementEnabled() const;
-    bool htmlSourceElementEnabled() const;
-    bool mediaControllerEnabled() const;
-    bool mediaErrorEnabled() const;
-    bool timeRangesEnabled() const;
 #endif
 
 #if ENABLE(WEB_SOCKETS)
@@ -207,32 +209,30 @@ private:
     // Never instantiate.
     RuntimeEnabledFeatures();
 
-    bool m_isLangAttributeAwareFormControlUIEnabled { false }; // FIXME: Move this to Settings.
     bool m_areModernMediaControlsEnabled { false };
     bool m_isLinkPreloadEnabled { false };
     bool m_isResourceTimingEnabled { false };
+    bool m_isUserTimingEnabled { false };
     bool m_isInteractiveFormValidationEnabled { false };
+    bool m_isCredentialManagementEnabled { false };
 
-    bool m_isDOMIteratorEnabled { true };
-    bool m_isGeolocationEnabled { true };
+    bool m_isDisplayContentsEnabled { false };
     bool m_isShadowDOMEnabled { true };
     bool m_areCustomElementsEnabled { true };
     bool m_inputEventsEnabled { true };
 
-#if ENABLE(INDEXED_DATABASE)
-    bool m_isIndexedDBEnabled { true };
-#endif
-
 #if ENABLE(INDEXED_DATABASE_IN_WORKERS)
     bool m_isIndexedDBWorkersEnabled { true };
 #endif
 
 #if ENABLE(MEDIA_STREAM)
+    bool m_isMediaDevicesEnabled { false };
     bool m_isMediaStreamEnabled { true };
 #endif
 
 #if ENABLE(WEB_RTC)
     bool m_isPeerConnectionEnabled { true };
+    bool m_webRTCLegacyAPIEnabled { true };
 #endif
 
 #if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
@@ -275,6 +275,11 @@ private:
     bool m_areAnimationTriggersEnabled { false };
 #endif
 
+#if ENABLE(STREAMS_API)
+    bool m_isReadableByteStreamAPIEnabled { false };
+    bool m_isWritableStreamAPIEnabled { false };
+#endif
+
 #if ENABLE(WEB_ANIMATIONS)
     bool m_areWebAnimationsEnabled { false };
 #endif
@@ -283,6 +288,10 @@ private:
     bool m_isWebGL2Enabled { false };
 #endif
 
+#if ENABLE(WEBGPU)
+    bool m_isWebGPUEnabled { false };
+#endif
+
 #if ENABLE(FETCH_API)
     bool m_isFetchAPIEnabled { true };
 #endif
@@ -291,9 +300,7 @@ private:
     bool m_isDownloadAttributeEnabled { false };
 #endif
 
-#if ENABLE(CSS_GRID_LAYOUT)
     bool m_cssGridLayoutEnabled { true };
-#endif
 
 #if ENABLE(ENCRYPTED_MEDIA)
     bool m_encryptedMediaAPIEnabled { false };