#ifndef SchemeRegistry_h
#define SchemeRegistry_h
#include <wtf/HashSet.h>
#include <wtf/text/StringHash.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
typedef HashSet<String, CaseFoldingHash> URLSchemesMap;
class SchemeRegistry {
public:
static void registerURLSchemeAsLocal(const String&);
static void removeURLSchemeRegisteredAsLocal(const String&);
static const URLSchemesMap& localSchemes();
static bool shouldTreatURLSchemeAsLocal(const String&);
static void registerURLSchemeAsSecure(const String&);
static bool shouldTreatURLSchemeAsSecure(const String&);
static void registerURLSchemeAsNoAccess(const String&);
static bool shouldTreatURLSchemeAsNoAccess(const String&);
static void registerURLSchemeAsDisplayIsolated(const String&);
static bool shouldTreatURLSchemeAsDisplayIsolated(const String&);
static void registerURLSchemeAsEmptyDocument(const String&);
static bool shouldLoadURLSchemeAsEmptyDocument(const String&);
static void setDomainRelaxationForbiddenForURLScheme(bool forbidden, const String&);
static bool isDomainRelaxationForbiddenForURLScheme(const String&);
static bool canDisplayOnlyIfCanRequest(const String& scheme);
static void registerAsCanDisplayOnlyIfCanRequest(const String& scheme);
static void registerURLSchemeAsNotAllowingJavascriptURLs(const String& scheme);
static bool shouldTreatURLSchemeAsNotAllowingJavascriptURLs(const String& scheme);
static void registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing(const String& scheme);
static bool allowsLocalStorageAccessInPrivateBrowsing(const String& scheme);
static void registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing(const String& scheme);
static bool allowsDatabaseAccessInPrivateBrowsing(const String& scheme);
static void registerURLSchemeAsCORSEnabled(const String& scheme);
static bool shouldTreatURLSchemeAsCORSEnabled(const String& scheme);
static void registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme);
static void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(const String& scheme);
static bool schemeShouldBypassContentSecurityPolicy(const String& scheme);
static bool shouldCacheResponsesFromURLSchemeIndefinitely(const String& scheme);
#if ENABLE(CACHE_PARTITIONING)
static void registerURLSchemeAsCachePartitioned(const String& scheme);
static bool shouldPartitionCacheForURLScheme(const String& scheme);
#endif
};
}
#endif // SchemeRegistry_h