diff options
Diffstat (limited to 'Source/WebCore/loader/ResourceLoaderOptions.h')
-rw-r--r-- | Source/WebCore/loader/ResourceLoaderOptions.h | 99 |
1 files changed, 68 insertions, 31 deletions
diff --git a/Source/WebCore/loader/ResourceLoaderOptions.h b/Source/WebCore/loader/ResourceLoaderOptions.h index b87d98722..b93bcb68f 100644 --- a/Source/WebCore/loader/ResourceLoaderOptions.h +++ b/Source/WebCore/loader/ResourceLoaderOptions.h @@ -28,13 +28,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef ResourceLoaderOptions_h -#define ResourceLoaderOptions_h +#pragma once +#include "FetchOptions.h" #include "ResourceHandleTypes.h" +#include <wtf/Vector.h> +#include <wtf/text/WTFString.h> namespace WebCore { - + enum SendCallbackPolicy { SendCallbacks, DoNotSendCallbacks @@ -55,43 +57,78 @@ enum SecurityCheckPolicy { DoSecurityCheck }; -enum RequestOriginPolicy { - UseDefaultOriginRestrictionsForType, - RestrictToSameOrigin, - PotentiallyCrossOriginEnabled // Indicates "potentially CORS-enabled fetch" in HTML standard. +enum CertificateInfoPolicy { + IncludeCertificateInfo, + DoNotIncludeCertificateInfo }; -struct ResourceLoaderOptions { - ResourceLoaderOptions() - : sendLoadCallbacks(DoNotSendCallbacks) - , sniffContent(DoNotSniffContent) - , dataBufferingPolicy(BufferData) - , allowCredentials(DoNotAllowStoredCredentials) - , clientCredentialPolicy(DoNotAskClientForAnyCredentials) - , securityCheck(DoSecurityCheck) - , requestOriginPolicy(UseDefaultOriginRestrictionsForType) - { - } +enum class ContentSecurityPolicyImposition : uint8_t { + SkipPolicyCheck, + DoPolicyCheck +}; + +enum class DefersLoadingPolicy : uint8_t { + AllowDefersLoading, + DisallowDefersLoading +}; + +enum class CachingPolicy : uint8_t { + AllowCaching, + DisallowCaching +}; + +enum class ClientCredentialPolicy { + CannotAskClientForCredentials, + MayAskClientForCredentials +}; + +enum class SameOriginDataURLFlag { + Set, + Unset +}; + +enum class InitiatorContext { + Document, + Worker, +}; - ResourceLoaderOptions(SendCallbackPolicy sendLoadCallbacks, ContentSniffingPolicy sniffContent, DataBufferingPolicy dataBufferingPolicy, StoredCredentials allowCredentials, ClientCredentialPolicy credentialPolicy, SecurityCheckPolicy securityCheck, RequestOriginPolicy requestOriginPolicy) +struct ResourceLoaderOptions : public FetchOptions { + ResourceLoaderOptions() { } + + ResourceLoaderOptions(const FetchOptions& options) : FetchOptions(options) { } + + ResourceLoaderOptions(SendCallbackPolicy sendLoadCallbacks, ContentSniffingPolicy sniffContent, DataBufferingPolicy dataBufferingPolicy, StoredCredentials allowCredentials, ClientCredentialPolicy credentialPolicy, FetchOptions::Credentials credentials, SecurityCheckPolicy securityCheck, FetchOptions::Mode mode, CertificateInfoPolicy certificateInfoPolicy, ContentSecurityPolicyImposition contentSecurityPolicyImposition, DefersLoadingPolicy defersLoadingPolicy, CachingPolicy cachingPolicy) : sendLoadCallbacks(sendLoadCallbacks) , sniffContent(sniffContent) , dataBufferingPolicy(dataBufferingPolicy) , allowCredentials(allowCredentials) - , clientCredentialPolicy(credentialPolicy) , securityCheck(securityCheck) - , requestOriginPolicy(requestOriginPolicy) + , certificateInfoPolicy(certificateInfoPolicy) + , contentSecurityPolicyImposition(contentSecurityPolicyImposition) + , defersLoadingPolicy(defersLoadingPolicy) + , cachingPolicy(cachingPolicy) + , clientCredentialPolicy(credentialPolicy) { + this->credentials = credentials; + this->mode = mode; } - SendCallbackPolicy sendLoadCallbacks : 1; - ContentSniffingPolicy sniffContent : 1; - DataBufferingPolicy dataBufferingPolicy : 1; - StoredCredentials allowCredentials : 1; // Whether HTTP credentials and cookies are sent with the request. - ClientCredentialPolicy clientCredentialPolicy : 2; // When we should ask the client for credentials (if we allow credentials at all). - SecurityCheckPolicy securityCheck : 1; - RequestOriginPolicy requestOriginPolicy : 2; -}; -} // namespace WebCore + SendCallbackPolicy sendLoadCallbacks { DoNotSendCallbacks }; + ContentSniffingPolicy sniffContent { DoNotSniffContent }; + DataBufferingPolicy dataBufferingPolicy { BufferData }; + StoredCredentials allowCredentials { DoNotAllowStoredCredentials }; + SecurityCheckPolicy securityCheck { DoSecurityCheck }; + CertificateInfoPolicy certificateInfoPolicy { DoNotIncludeCertificateInfo }; + ContentSecurityPolicyImposition contentSecurityPolicyImposition { ContentSecurityPolicyImposition::DoPolicyCheck }; + DefersLoadingPolicy defersLoadingPolicy { DefersLoadingPolicy::AllowDefersLoading }; + CachingPolicy cachingPolicy { CachingPolicy::AllowCaching }; + SameOriginDataURLFlag sameOriginDataURLFlag { SameOriginDataURLFlag::Unset }; + InitiatorContext initiatorContext { InitiatorContext::Document }; + + ClientCredentialPolicy clientCredentialPolicy { ClientCredentialPolicy::CannotAskClientForCredentials }; + unsigned maxRedirectCount { 20 }; + + Vector<String> derivedCachedDataTypesToRetrieve; +}; -#endif // ResourceLoaderOptions_h +} // namespace WebCore |