Title: [282946] branches/safari-612-branch

Diff

Modified: branches/safari-612-branch/LayoutTests/TestExpectations (282945 => 282946)


--- branches/safari-612-branch/LayoutTests/TestExpectations	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/LayoutTests/TestExpectations	2021-09-23 05:26:29 UTC (rev 282946)
@@ -5155,3 +5155,11 @@
 imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_ctr.https.any.html [ DumpJSConsoleLogInStdErr ]
 
+# Skipping for disabled feature flag for branch
+platform/wpe/http/wpt/webxr [ Skip ]
+platform/wpe/imported/w3c/web-platform-tests/webxr [ Skip ]
+platform/mac/imported/w3c/web-platform-tests/webxr [ Skip ]
+http/wpt/webxr [ Skip ]
+imported/w3c/web-platform-tests/webxr [ Skip ]
+webxr [ Skip ]
+

Modified: branches/safari-612-branch/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt (282945 => 282946)


--- branches/safari-612-branch/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:26:29 UTC (rev 282946)
@@ -29,7 +29,6 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 navigator.appCodeName is OK
 navigator.appName is OK
 navigator.appVersion is OK
@@ -57,5 +56,4 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 

Modified: branches/safari-612-branch/LayoutTests/platform/mac/fast/dom/navigator-detached-no-crash-expected.txt (282945 => 282946)


--- branches/safari-612-branch/LayoutTests/platform/mac/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/LayoutTests/platform/mac/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:26:29 UTC (rev 282946)
@@ -26,7 +26,6 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 navigator.appCodeName is OK
 navigator.appName is OK
 navigator.appVersion is OK
@@ -52,5 +51,4 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 

Modified: branches/safari-612-branch/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt (282945 => 282946)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:26:29 UTC (rev 282946)
@@ -22,7 +22,6 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 navigator.appCodeName is OK
 navigator.appName is OK
 navigator.appVersion is OK
@@ -45,5 +44,4 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 

Modified: branches/safari-612-branch/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt (282945 => 282946)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:26:29 UTC (rev 282946)
@@ -32,7 +32,6 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 navigator.appCodeName is OK
 navigator.appName is OK
 navigator.appVersion is OK
@@ -65,5 +64,4 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 

Modified: branches/safari-612-branch/LayoutTests/platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt (282945 => 282946)


--- branches/safari-612-branch/LayoutTests/platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/LayoutTests/platform/wpe/fast/dom/navigator-detached-no-crash-expected.txt	2021-09-23 05:26:29 UTC (rev 282946)
@@ -25,7 +25,6 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 navigator.appCodeName is OK
 navigator.appName is OK
 navigator.appVersion is OK
@@ -51,5 +50,4 @@
 navigator.vendor is OK
 navigator.vendorSub is OK
 navigator.webdriver is OK
-navigator.xr is OK
 

Modified: branches/safari-612-branch/Source/WTF/wtf/PlatformEnableCocoa.h (282945 => 282946)


--- branches/safari-612-branch/Source/WTF/wtf/PlatformEnableCocoa.h	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/Source/WTF/wtf/PlatformEnableCocoa.h	2021-09-23 05:26:29 UTC (rev 282946)
@@ -628,7 +628,7 @@
 #endif
 
 #if !defined(ENABLE_WEBXR)
-#define ENABLE_WEBXR 1
+#define ENABLE_WEBXR 0
 #endif
 
 #if !defined(ENABLE_WEB_API_STATISTICS)

Modified: branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp (282945 => 282946)


--- branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp	2021-09-23 05:26:29 UTC (rev 282946)
@@ -265,11 +265,7 @@
 
 bool defaultWebXREnabled()
 {
-#if HAVE(WEBXR_INTERNALS)
-    return true;
-#else
     return false;
-#endif
 }
 
 #endif // ENABLE(WEBXR)

Copied: branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp.orig (from rev 282945, branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp) (0 => 282946)


--- branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp.orig	                        (rev 0)
+++ branches/safari-612-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp.orig	2021-09-23 05:26:29 UTC (rev 282946)
@@ -0,0 +1,336 @@
+/*
+ * Copyright (C) 2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "WebPreferencesDefaultValues.h"
+
+#include <WebCore/RuntimeApplicationChecks.h>
+#include <wtf/text/WTFString.h>
+
+#if PLATFORM(COCOA)
+#include <WebCore/VersionChecks.h>
+#include <pal/spi/cocoa/FeatureFlagsSPI.h>
+#include <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
+#endif
+
+#if ENABLE(MEDIA_SESSION_COORDINATOR)
+#import <wtf/cocoa/Entitlements.h>
+#endif
+
+namespace WebKit {
+
+#if !PLATFORM(COCOA)
+bool isFeatureFlagEnabled(const char*, bool defaultValue)
+{
+    return defaultValue;
+}
+#endif
+
+#if PLATFORM(IOS_FAMILY)
+
+bool defaultPassiveTouchListenersAsDefaultOnDocument()
+{
+    static bool result = linkedOnOrAfter(WebCore::SDKVersion::FirstThatDefaultsToPassiveTouchListenersOnDocument);
+    return result;
+}
+
+bool defaultCSSOMViewScrollingAPIEnabled()
+{
+    static bool result = WebCore::IOSApplication::isIMDb() && applicationSDKVersion() < DYLD_IOS_VERSION_13_0;
+    return !result;
+}
+
+#endif
+
+#if PLATFORM(MAC)
+
+bool defaultPassiveWheelListenersAsDefaultOnDocument()
+{
+    static bool result = linkedOnOrAfter(WebCore::SDKVersion::FirstThatDefaultsToPassiveWheelListenersOnDocument);
+    return result;
+}
+
+bool defaultWheelEventGesturesBecomeNonBlocking()
+{
+    static bool result = linkedOnOrAfter(WebCore::SDKVersion::FirstThatAllowsWheelEventGesturesToBecomeNonBlocking);
+    return result;
+}
+
+#endif
+
+#if PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
+
+bool defaultDisallowSyncXHRDuringPageDismissalEnabled()
+{
+#if PLATFORM(MAC) || PLATFORM(MACCATALYST)
+    if (CFPreferencesGetAppBooleanValue(CFSTR("allowDeprecatedSynchronousXMLHttpRequestDuringUnload"), CFSTR("com.apple.WebKit"), nullptr)) {
+        WTFLogAlways("Allowing synchronous XHR during page unload due to managed preference");
+        return false;
+    }
+#elif PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST) && !PLATFORM(WATCHOS)
+    if (allowsDeprecatedSynchronousXMLHttpRequestDuringUnload()) {
+        WTFLogAlways("Allowing synchronous XHR during page unload due to managed preference");
+        return false;
+    }
+#endif
+    return true;
+}
+
+#endif
+
+#if PLATFORM(MAC)
+
+bool defaultAppleMailPaginationQuirkEnabled()
+{
+    return WebCore::MacApplication::isAppleMail();
+}
+
+#endif
+
+static bool defaultAsyncFrameAndOverflowScrollingEnabled()
+{
+#if PLATFORM(IOS_FAMILY)
+    return true;
+#endif
+
+#if PLATFORM(MAC)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("async_frame_and_overflow_scrolling", defaultValue);
+}
+
+bool defaultAsyncFrameScrollingEnabled()
+{
+#if USE(NICOSIA)
+    return true;
+#endif
+
+    return defaultAsyncFrameAndOverflowScrollingEnabled();
+}
+
+bool defaultAsyncOverflowScrollingEnabled()
+{
+    return defaultAsyncFrameAndOverflowScrollingEnabled();
+}
+
+bool defaultOfflineWebApplicationCacheEnabled()
+{
+#if PLATFORM(COCOA)
+    static bool newSDK = linkedOnOrAfter(WebCore::SDKVersion::FirstWithApplicationCacheDisabledByDefault);
+    return !newSDK;
+#else
+    // FIXME: Other platforms should consider turning this off.
+    // ApplicationCache is on its way to being removed from WebKit.
+    return true;
+#endif
+}
+
+#if ENABLE(GPU_PROCESS)
+
+bool defaultUseGPUProcessForCanvasRenderingEnabled()
+{
+#if ENABLE(GPU_PROCESS_BY_DEFAULT)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("gpu_process_canvas_rendering", defaultValue);
+}
+
+bool defaultUseGPUProcessForDOMRenderingEnabled()
+{
+    return isFeatureFlagEnabled("gpu_process_dom_rendering", false);
+}
+
+bool defaultUseGPUProcessForMediaEnabled()
+{
+#if ENABLE(GPU_PROCESS_BY_DEFAULT)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("gpu_process_media", defaultValue);
+}
+
+bool defaultUseGPUProcessForWebGLEnabled()
+{
+    return isFeatureFlagEnabled("gpu_process_webgl", false);
+}
+
+#endif // ENABLE(GPU_PROCESS)
+
+#if ENABLE(MEDIA_STREAM)
+
+bool defaultCaptureAudioInGPUProcessEnabled()
+{
+#if PLATFORM(MAC)
+    // FIXME: Enable GPU process audio capture when <rdar://problem/29448368> is fixed.
+    if (!WebCore::MacApplication::isSafari())
+        return false;
+#endif
+
+#if ENABLE(GPU_PROCESS_BY_DEFAULT)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+#if PLATFORM(MAC)
+    return isFeatureFlagEnabled("gpu_process_webrtc", defaultValue);
+#elif PLATFORM(IOS_FAMILY)
+    return isFeatureFlagEnabled("gpu_process_media", defaultValue);
+#else
+    return defaultValue;
+#endif
+}
+
+bool defaultCaptureAudioInUIProcessEnabled()
+{
+#if PLATFORM(MAC)
+    return !defaultCaptureAudioInGPUProcessEnabled();
+#endif
+
+    return false;
+}
+
+bool defaultCaptureVideoInGPUProcessEnabled()
+{
+#if ENABLE(GPU_PROCESS_BY_DEFAULT)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("gpu_process_webrtc", defaultValue);
+}
+
+#endif // ENABLE(MEDIA_STREAM)
+
+#if ENABLE(WEB_RTC)
+
+bool defaultWebRTCCodecsInGPUProcess()
+{
+#if ENABLE(GPU_PROCESS_BY_DEFAULT)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("gpu_process_webrtc", defaultValue);
+}
+
+#endif // ENABLE(WEB_RTC)
+
+#if HAVE(INCREMENTAL_PDF_APIS)
+bool defaultIncrementalPDFEnabled()
+{
+#if PLATFORM(MAC)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("incremental_pdf", defaultValue);
+}
+#endif
+
+#if ENABLE(WEBXR)
+
+bool defaultWebXREnabled()
+{
+#if HAVE(WEBXR_INTERNALS)
+    return true;
+#else
+    return false;
+#endif
+}
+
+#endif // ENABLE(WEBXR)
+
+#if ENABLE(WEBM_FORMAT_READER)
+
+bool defaultWebMFormatReaderEnabled()
+{
+#if PLATFORM(MAC)
+    bool defaultValue = true;
+#else
+    bool defaultValue = false;
+#endif
+
+    return isFeatureFlagEnabled("webm_format_reader", defaultValue);
+}
+
+#endif // ENABLE(WEBM_FORMAT_READER)
+
+#if ENABLE(VP9)
+
+bool defaultVP8DecoderEnabled()
+{
+    return isFeatureFlagEnabled("vp8_decoder", true);
+}
+
+bool defaultVP9DecoderEnabled()
+{
+    return isFeatureFlagEnabled("vp9_decoder", true);
+}
+
+bool defaultVP9SWDecoderEnabledOnBattery()
+{
+    return isFeatureFlagEnabled("sw_vp9_decoder_on_battery", false);
+}
+#endif // ENABLE(VP9)
+
+#if ENABLE(MEDIA_SOURCE)
+
+bool defaultWebMParserEnabled()
+{
+    return isFeatureFlagEnabled("webm_parser", true);
+}
+
+bool defaultWebMWebAudioEnabled()
+{
+    return isFeatureFlagEnabled("webm_webaudio", false);
+}
+
+#endif // ENABLE(MEDIA_SOURCE)
+
+#if ENABLE(MEDIA_SESSION_COORDINATOR)
+bool defaultMediaSessionCoordinatorEnabled()
+{
+    static dispatch_once_t onceToken;
+    static bool enabled { false };
+    dispatch_once(&onceToken, ^{
+        enabled = WTF::processHasEntitlement("com.apple.developer.group-session.urlactivity");
+    });
+    return enabled;
+}
+#endif
+
+} // namespace WebKit

Modified: branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm (282945 => 282946)


--- branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm	2021-09-23 05:14:36 UTC (rev 282945)
+++ branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm	2021-09-23 05:26:29 UTC (rev 282946)
@@ -84,7 +84,7 @@
 
 bool defaultWebXREnabled()
 {
-    return isFeatureFlagEnabled("WebXR", false);
+    return false;
 }
 
 #endif // ENABLE(WEBXR)

Copied: branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm.orig (from rev 282945, branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm) (0 => 282946)


--- branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm.orig	                        (rev 0)
+++ branches/safari-612-branch/Source/WebKitLegacy/mac/WebView/WebPreferencesDefaultValues.mm.orig	2021-09-23 05:26:29 UTC (rev 282946)
@@ -0,0 +1,306 @@
+/*
+ * Copyright (C) 2020 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    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 INC. AND ITS CONTRIBUTORS ``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 INC. OR ITS 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 PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "WebPreferencesDefaultValues.h"
+
+#import "WebKitVersionChecks.h"
+#import <Foundation/NSBundle.h>
+#import <WebCore/RuntimeApplicationChecks.h>
+#import <WebCore/VersionChecks.h>
+#import <mach-o/dyld.h>
+#import <pal/spi/cf/CFUtilitiesSPI.h>
+#import <pal/spi/cocoa/FeatureFlagsSPI.h>
+#import <wtf/cocoa/RuntimeApplicationChecksCocoa.h>
+#import <wtf/spi/darwin/dyldSPI.h>
+#import <wtf/text/WTFString.h>
+
+#if PLATFORM(IOS_FAMILY)
+#import <WebCore/Device.h>
+#endif
+
+namespace WebKit {
+
+#if PLATFORM(COCOA)
+
+// Because of <rdar://problem/60608008>, WebKit has to parse the feature flags plist file
+bool isFeatureFlagEnabled(const char* featureName, bool defaultValue)
+{
+#if HAVE(SYSTEM_FEATURE_FLAGS)
+
+#if PLATFORM(MAC)
+    static bool isSystemWebKit = [] {
+        auto *bundle = [NSBundle bundleForClass:NSClassFromString(@"WebResource")];
+        return [bundle.bundlePath hasPrefix:@"/System/"];
+    }();
+
+    return isSystemWebKit ? _os_feature_enabled_impl("WebKit", featureName) : defaultValue;
+#else
+    UNUSED_PARAM(defaultValue);
+    return _os_feature_enabled_impl("WebKit", featureName);
+#endif // PLATFORM(MAC)
+
+#else
+
+    UNUSED_PARAM(featureName);
+    return defaultValue;
+
+#endif // HAVE(SYSTEM_FEATURE_FLAGS)
+}
+
+#endif
+
+#if HAVE(INCREMENTAL_PDF_APIS)
+
+bool defaultIncrementalPDFEnabled()
+{
+    return isFeatureFlagEnabled("incremental_pdf", false);
+}
+
+#endif
+
+#if ENABLE(WEBXR)
+
+bool defaultWebXREnabled()
+{
+    return isFeatureFlagEnabled("WebXR", false);
+}
+
+#endif // ENABLE(WEBXR)
+
+#if PLATFORM(IOS_FAMILY)
+
+bool defaultAllowsInlineMediaPlayback()
+{
+    return WebCore::deviceClass() == MGDeviceClassiPad;
+}
+
+bool defaultAllowsInlineMediaPlaybackAfterFullscreen()
+{
+    return WebCore::deviceClass() != MGDeviceClassiPad;
+}
+
+bool defaultAllowsPictureInPictureMediaPlayback()
+{
+    static bool shouldAllowPictureInPictureMediaPlayback = dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_9_0;
+    return shouldAllowPictureInPictureMediaPlayback;
+}
+
+bool defaultJavaScriptCanOpenWindowsAutomatically()
+{
+    static bool shouldAllowWindowOpenWithoutUserGesture = WebCore::IOSApplication::isTheSecretSocietyHiddenMystery() && dyld_get_program_sdk_version() < DYLD_IOS_VERSION_10_0;
+    return shouldAllowWindowOpenWithoutUserGesture;
+}
+
+bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute()
+{
+    return WebCore::deviceClass() != MGDeviceClassiPad;
+}
+
+bool defaultPassiveTouchListenersAsDefaultOnDocument()
+{
+    static bool result = linkedOnOrAfter(WebCore::SDKVersion::FirstThatDefaultsToPassiveTouchListenersOnDocument);
+    return result;
+}
+
+bool defaultRequiresUserGestureToLoadVideo()
+{
+    static bool shouldRequireUserGestureToLoadVideo = dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_10_0;
+    return shouldRequireUserGestureToLoadVideo;
+}
+
+bool defaultWebSQLEnabled()
+{
+    // For backward compatibility, keep WebSQL working until apps are rebuilt with the iOS 14 SDK.
+    static bool webSQLEnabled = dyld_get_program_sdk_version() < DYLD_IOS_VERSION_14_0;
+    return webSQLEnabled;
+}
+
+bool defaultAllowContentSecurityPolicySourceStarToMatchAnyProtocol()
+{
+    static bool shouldAllowContentSecurityPolicySourceStarToMatchAnyProtocol = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_CONTENT_SECURITY_POLICY_SOURCE_STAR_PROTOCOL_RESTRICTION);
+    return shouldAllowContentSecurityPolicySourceStarToMatchAnyProtocol;
+}
+
+#endif // PLATFORM(IOS_FAMILY)
+
+#if PLATFORM(MAC)
+
+bool defaultLoadDeferringEnabled()
+{
+    return !WebCore::MacApplication::isAdobeInstaller();
+}
+
+bool defaultWindowFocusRestricted()
+{
+    return !WebCore::MacApplication::isHRBlock();
+}
+
+bool defaultUsePreHTML5ParserQuirks()
+{
+    // AOL Instant Messenger and Microsoft My Day contain markup incompatible
+    // with the new HTML5 parser. If these applications were linked against a
+    // version of WebKit prior to the introduction of the HTML5 parser, enable
+    // parser quirks to maintain compatibility. For details, see
+    // <https://bugs.webkit.org/show_bug.cgi?id=46134> and
+    // <https://bugs.webkit.org/show_bug.cgi?id=46334>.
+    static bool isApplicationNeedingParserQuirks = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_HTML5_PARSER)
+        && (WebCore::MacApplication::isAOLInstantMessenger() || WebCore::MacApplication::isMicrosoftMyDay());
+
+    // Mail.app must continue to display HTML email that contains quirky markup.
+    static bool isAppleMail = WebCore::MacApplication::isAppleMail();
+
+    return isApplicationNeedingParserQuirks || isAppleMail;
+}
+
+bool defaultNeedsAdobeFrameReloadingQuirk()
+{
+    static bool needsQuirk = _CFAppVersionCheckLessThan(CFSTR("com.adobe.Acrobat"), -1, 9.0)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.Acrobat.Pro"), -1, 9.0)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.Reader"), -1, 9.0)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.distiller"), -1, 9.0)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.Contribute"), -1, 4.2)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.dreamweaver-9.0"), -1, 9.1)
+        || _CFAppVersionCheckLessThan(CFSTR("com.macromedia.fireworks"), -1, 9.1)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.InCopy"), -1, 5.1)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.InDesign"), -1, 5.1)
+        || _CFAppVersionCheckLessThan(CFSTR("com.adobe.Soundbooth"), -1, 2);
+
+    return needsQuirk;
+}
+
+bool defaultTreatsAnyTextCSSLinkAsStylesheet()
+{
+    static bool needsQuirk = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITHOUT_LINK_ELEMENT_TEXT_CSS_QUIRK)
+        && _CFAppVersionCheckLessThan(CFSTR("com.e-frontier.shade10"), -1, 10.6);
+    return needsQuirk;
+}
+
+bool defaultNeedsFrameNameFallbackToIdQuirk()
+{
+    static bool needsQuirk = _CFAppVersionCheckLessThan(CFSTR("info.colloquy"), -1, 2.5);
+    return needsQuirk;
+}
+
+bool defaultNeedsKeyboardEventDisambiguationQuirks()
+{
+    static bool needsQuirks = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_IE_COMPATIBLE_KEYBOARD_EVENT_DISPATCH) && !WebCore::MacApplication::isSafari();
+    return needsQuirks;
+}
+
+#endif // PLATFORM(MAC)
+
+bool defaultAttachmentElementEnabled()
+{
+#if PLATFORM(IOS_FAMILY)
+    return WebCore::IOSApplication::isMobileMail();
+#else
+    return WebCore::MacApplication::isAppleMail();
+#endif
+}
+
+bool defaultShouldRestrictBaseURLSchemes()
+{
+    static bool shouldRestrictBaseURLSchemes = linkedOnOrAfter(WebCore::SDKVersion::FirstThatRestrictsBaseURLSchemes);
+    return shouldRestrictBaseURLSchemes;
+}
+
+bool defaultUseLegacyBackgroundSizeShorthandBehavior()
+{
+#if PLATFORM(IOS_FAMILY)
+    static bool shouldUseLegacyBackgroundSizeShorthandBehavior = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITHOUT_LEGACY_BACKGROUNDSIZE_SHORTHAND_BEHAVIOR);
+#else
+    static bool shouldUseLegacyBackgroundSizeShorthandBehavior = WebCore::MacApplication::isVersions()
+        && !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITHOUT_LEGACY_BACKGROUNDSIZE_SHORTHAND_BEHAVIOR);
+#endif
+    return shouldUseLegacyBackgroundSizeShorthandBehavior;
+}
+
+bool defaultAllowDisplayOfInsecureContent()
+{
+    static bool shouldAllowDisplayOfInsecureContent = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_INSECURE_CONTENT_BLOCKING);
+    return shouldAllowDisplayOfInsecureContent;
+}
+
+bool defaultAllowRunningOfInsecureContent()
+{
+    static bool shouldAllowRunningOfInsecureContent = !WebKitLinkedOnOrAfter(WEBKIT_FIRST_VERSION_WITH_INSECURE_CONTENT_BLOCKING);
+    return shouldAllowRunningOfInsecureContent;
+}
+
+bool defaultShouldConvertInvalidURLsToBlank()
+{
+#if PLATFORM(IOS_FAMILY)
+    static bool shouldConvertInvalidURLsToBlank = dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_10_0;
+#else
+    static bool shouldConvertInvalidURLsToBlank = dyld_get_program_sdk_version() >= DYLD_MACOSX_VERSION_10_12;
+#endif
+    return shouldConvertInvalidURLsToBlank;
+}
+
+#if PLATFORM(MAC)
+
+bool defaultPassiveWheelListenersAsDefaultOnDocument()
+{
+    static bool result = linkedOnOrAfter(WebCore::SDKVersion::FirstThatDefaultsToPassiveWheelListenersOnDocument);
+    return result;
+}
+
+bool defaultWheelEventGesturesBecomeNonBlocking()
+{
+    static bool result = linkedOnOrAfter(WebCore::SDKVersion::FirstThatAllowsWheelEventGesturesToBecomeNonBlocking);
+    return result;
+}
+
+#endif
+
+#if ENABLE(MEDIA_SOURCE)
+
+bool defaultWebMParserEnabled()
+{
+    return isFeatureFlagEnabled("webm_parser", true);
+}
+
+bool defaultWebMWebAudioEnabled()
+{
+    return isFeatureFlagEnabled("webm_webaudio", false);
+}
+
+#endif // ENABLE(MEDIA_SOURCE)
+
+#if ENABLE(VP9)
+
+bool defaultVP8DecoderEnabled()
+{
+    return isFeatureFlagEnabled("vp8_decoder", true);
+}
+
+bool defaultVP9DecoderEnabled()
+{
+    return isFeatureFlagEnabled("vp9_decoder", true);
+}
+
+#endif // ENABLE(VP9)
+
+} // namespace WebKit
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to