RuntimeEnabledFeatures.cpp [plain text]
#include "config.h"
#include "RuntimeEnabledFeatures.h"
#include "DatabaseManager.h"
#include "MediaPlayer.h"
#include "WebSocket.h"
#include <wtf/NeverDestroyed.h>
namespace WebCore {
RuntimeEnabledFeatures::RuntimeEnabledFeatures()
: m_isLocalStorageEnabled(true)
, m_isSessionStorageEnabled(true)
, m_isWebkitNotificationsEnabled(false)
, m_isApplicationCacheEnabled(true)
, m_isDataTransferItemsEnabled(true)
, m_isGeolocationEnabled(true)
, m_isIndexedDBEnabled(false)
, m_isTouchEnabled(true)
, m_isDeviceMotionEnabled(true)
, m_isDeviceOrientationEnabled(true)
, m_isCSSShapesEnabled(true)
, m_isCSSRegionsEnabled(false)
, m_isCSSCompositingEnabled(false)
, m_isLangAttributeAwareFormControlUIEnabled(false)
#if PLATFORM(IOS)
, m_isPluginReplacementEnabled(true)
#else
, m_isPluginReplacementEnabled(false)
#endif
#if ENABLE(MEDIA_STREAM)
, m_isMediaStreamEnabled(true)
, m_isPeerConnectionEnabled(true)
#endif
#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
, m_isLegacyCSSVendorPrefixesEnabled(false)
#endif
#if ENABLE(JAVASCRIPT_I18N_API)
, m_isJavaScriptI18NAPIEnabled(false)
#endif
#if ENABLE(VIDEO_TRACK)
, m_isVideoTrackEnabled(true)
#endif
#if ENABLE(INPUT_TYPE_DATE)
, m_isInputTypeDateEnabled(true)
#endif
#if ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE)
, m_isInputTypeDateTimeEnabled(false)
#endif
#if ENABLE(INPUT_TYPE_DATETIMELOCAL)
, m_isInputTypeDateTimeLocalEnabled(true)
#endif
#if ENABLE(INPUT_TYPE_MONTH)
, m_isInputTypeMonthEnabled(true)
#endif
#if ENABLE(INPUT_TYPE_TIME)
, m_isInputTypeTimeEnabled(true)
#endif
#if ENABLE(INPUT_TYPE_WEEK)
, m_isInputTypeWeekEnabled(true)
#endif
#if ENABLE(CSP_NEXT)
, m_areExperimentalContentSecurityPolicyFeaturesEnabled(false)
#endif
#if ENABLE(FONT_LOAD_EVENTS)
, m_isFontLoadEventsEnabled(true)
#endif
#if ENABLE(GAMEPAD)
, m_areGamepadsEnabled(false)
#endif
#if ENABLE(CSS_ANIMATIONS_LEVEL_2)
, m_areAnimationTriggersEnabled(false)
#endif
{
}
RuntimeEnabledFeatures& RuntimeEnabledFeatures::sharedFeatures()
{
static NeverDestroyed<RuntimeEnabledFeatures> runtimeEnabledFeatures;
return runtimeEnabledFeatures;
}
#if ENABLE(JAVASCRIPT_I18N_API)
bool RuntimeEnabledFeatures::javaScriptI18NAPIEnabled()
{
return m_isJavaScriptI18NAPIEnabled;
}
#endif
#if ENABLE(VIDEO)
bool RuntimeEnabledFeatures::audioEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::htmlMediaElementEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::htmlAudioElementEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::htmlVideoElementEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::htmlSourceElementEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::mediaControllerEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::mediaErrorEnabled() const
{
return MediaPlayer::isAvailable();
}
bool RuntimeEnabledFeatures::timeRangesEnabled() const
{
return MediaPlayer::isAvailable();
}
#endif
#if ENABLE(WEB_SOCKETS)
bool RuntimeEnabledFeatures::webSocketEnabled() const
{
return WebSocket::isAvailable();
}
#endif
}