ResourceLoaderOptions.h [plain text]
#pragma once
#include "ContentSecurityPolicyResponseHeaders.h"
#include "FetchOptions.h"
#include "HTTPHeaderNames.h"
#include "ServiceWorkerTypes.h"
#include "StoredCredentialsPolicy.h"
#include <wtf/HashSet.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
enum class SendCallbackPolicy : uint8_t {
SendCallbacks,
DoNotSendCallbacks
};
enum class ContentSniffingPolicy : uint8_t {
SniffContent,
DoNotSniffContent
};
enum class DataBufferingPolicy : uint8_t {
BufferData,
DoNotBufferData
};
enum class SecurityCheckPolicy : uint8_t {
SkipSecurityCheck,
DoSecurityCheck
};
enum class CertificateInfoPolicy : uint8_t {
IncludeCertificateInfo,
DoNotIncludeCertificateInfo
};
enum class ContentSecurityPolicyImposition : uint8_t {
SkipPolicyCheck,
DoPolicyCheck
};
enum class DefersLoadingPolicy : uint8_t {
AllowDefersLoading,
DisallowDefersLoading
};
enum class CachingPolicy : uint8_t {
AllowCaching,
DisallowCaching
};
enum class ClientCredentialPolicy : uint8_t {
CannotAskClientForCredentials,
MayAskClientForCredentials
};
enum class SameOriginDataURLFlag : uint8_t {
Set,
Unset
};
enum class InitiatorContext : uint8_t {
Document,
Worker,
};
enum class ServiceWorkersMode : uint8_t {
All,
None,
Only };
enum class ApplicationCacheMode : uint8_t {
Use,
Bypass
};
enum class ContentEncodingSniffingPolicy : uint8_t {
Sniff,
DoNotSniff,
};
enum class PreflightPolicy : uint8_t {
Consider,
Force,
Prevent
};
struct ResourceLoaderOptions : public FetchOptions {
ResourceLoaderOptions() { }
ResourceLoaderOptions(FetchOptions options) : FetchOptions { WTFMove(options) } { }
ResourceLoaderOptions(SendCallbackPolicy sendLoadCallbacks, ContentSniffingPolicy sniffContent, DataBufferingPolicy dataBufferingPolicy, StoredCredentialsPolicy storedCredentialsPolicy, ClientCredentialPolicy credentialPolicy, FetchOptions::Credentials credentials, SecurityCheckPolicy securityCheck, FetchOptions::Mode mode, CertificateInfoPolicy certificateInfoPolicy, ContentSecurityPolicyImposition contentSecurityPolicyImposition, DefersLoadingPolicy defersLoadingPolicy, CachingPolicy cachingPolicy)
: sendLoadCallbacks(sendLoadCallbacks)
, sniffContent(sniffContent)
, dataBufferingPolicy(dataBufferingPolicy)
, storedCredentialsPolicy(storedCredentialsPolicy)
, securityCheck(securityCheck)
, certificateInfoPolicy(certificateInfoPolicy)
, contentSecurityPolicyImposition(contentSecurityPolicyImposition)
, defersLoadingPolicy(defersLoadingPolicy)
, cachingPolicy(cachingPolicy)
, clientCredentialPolicy(credentialPolicy)
{
this->credentials = credentials;
this->mode = mode;
}
#if ENABLE(SERVICE_WORKER)
std::optional<ServiceWorkerRegistrationIdentifier> serviceWorkerRegistrationIdentifier;
#endif
HashSet<HTTPHeaderName, WTF::IntHash<HTTPHeaderName>, WTF::StrongEnumHashTraits<HTTPHeaderName>> httpHeadersToKeep;
Vector<String> derivedCachedDataTypesToRetrieve;
std::optional<ContentSecurityPolicyResponseHeaders> cspResponseHeaders;
unsigned maxRedirectCount { 20 };
SendCallbackPolicy sendLoadCallbacks { SendCallbackPolicy::DoNotSendCallbacks };
ContentSniffingPolicy sniffContent { ContentSniffingPolicy::DoNotSniffContent };
ContentEncodingSniffingPolicy sniffContentEncoding { ContentEncodingSniffingPolicy::Sniff };
DataBufferingPolicy dataBufferingPolicy { DataBufferingPolicy::BufferData };
StoredCredentialsPolicy storedCredentialsPolicy { StoredCredentialsPolicy::DoNotUse };
SecurityCheckPolicy securityCheck { SecurityCheckPolicy::DoSecurityCheck };
CertificateInfoPolicy certificateInfoPolicy { CertificateInfoPolicy::DoNotIncludeCertificateInfo };
ContentSecurityPolicyImposition contentSecurityPolicyImposition { ContentSecurityPolicyImposition::DoPolicyCheck };
DefersLoadingPolicy defersLoadingPolicy { DefersLoadingPolicy::AllowDefersLoading };
CachingPolicy cachingPolicy { CachingPolicy::AllowCaching };
SameOriginDataURLFlag sameOriginDataURLFlag { SameOriginDataURLFlag::Unset };
InitiatorContext initiatorContext { InitiatorContext::Document };
ServiceWorkersMode serviceWorkersMode { ServiceWorkersMode::All };
ApplicationCacheMode applicationCacheMode { ApplicationCacheMode::Use };
ClientCredentialPolicy clientCredentialPolicy { ClientCredentialPolicy::CannotAskClientForCredentials };
PreflightPolicy preflightPolicy { PreflightPolicy::Consider };
};
}