| Index: Source/modules/serviceworkers/FetchRequestData.h
|
| diff --git a/Source/modules/serviceworkers/FetchRequestData.h b/Source/modules/serviceworkers/FetchRequestData.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5788abc760cd8b8b4b2e82f43155fe18edb7a1f4
|
| --- /dev/null
|
| +++ b/Source/modules/serviceworkers/FetchRequestData.h
|
| @@ -0,0 +1,103 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef FetchRequestData_h
|
| +#define FetchRequestData_h
|
| +
|
| +#include "platform/weborigin/KURL.h"
|
| +#include "wtf/PassOwnPtr.h"
|
| +#include "wtf/PassRefPtr.h"
|
| +#include "wtf/RefCounted.h"
|
| +#include "wtf/text/AtomicString.h"
|
| +#include "wtf/text/WTFString.h"
|
| +
|
| +namespace blink {
|
| +class WebServiceWorkerRequest;
|
| +}
|
| +
|
| +namespace WebCore {
|
| +
|
| +class FetchHeaderList;
|
| +struct ResourceLoaderOptions;
|
| +class ResourceRequest;
|
| +class SecurityOrigin;
|
| +struct ThreadableLoaderOptions;
|
| +
|
| +
|
| +class FetchRequestData : public RefCounted<FetchRequestData> {
|
| +public:
|
| + enum Mode { SameOriginMode, NoCORSMode, CORSMode, CORSWithForcedPreflight };
|
| + enum Credentials { OmitCredentials, SameOriginCredentials, IncludeCredentials };
|
| + enum Context { ChildContext, ConnectContext, DownloadContext, FontContext, FormContext, ImageContext, ManifestContext, MediaContext, NavigateContext, ObjectContext, PingContext, PopupContext, PrefetchContext, ScriptContext, ServiceWorkerContext, SharedWorkerContext, StyleContext, WorkerContext, NullContext };
|
| + enum Tainting { BasicTainting, CORSTainting, OpaqueTainting };
|
| +
|
| + class Referrer {
|
| + public:
|
| + Referrer() : m_type(ClientReferrer) { }
|
| + ~Referrer() { }
|
| + bool isNone() const { return m_type == NoneReferrer; }
|
| + bool isClient() const { return m_type == ClientReferrer; }
|
| + bool isURL() const { return m_type == URLReferrer; }
|
| + void setNone() { m_referrerURL = ""; m_type = NoneReferrer; }
|
| + void setClient() { m_referrerURL = ""; m_type = ClientReferrer; }
|
| + void setURL(const String& url)
|
| + {
|
| + m_referrerURL = url;
|
| + m_type = URLReferrer;
|
| + }
|
| + String getUrl() const { return m_referrerURL; }
|
| + private:
|
| + enum Type { NoneReferrer, ClientReferrer, URLReferrer };
|
| + Type m_type;
|
| + String m_referrerURL;
|
| + };
|
| +
|
| + static PassRefPtr<FetchRequestData> create();
|
| + static PassRefPtr<FetchRequestData> create(const blink::WebServiceWorkerRequest&);
|
| + PassRefPtr<FetchRequestData> createRestrictedCopy(PassRefPtr<SecurityOrigin>) const;
|
| + ~FetchRequestData();
|
| +
|
| + void setMethod(AtomicString method) { m_method = method; }
|
| + const AtomicString method() const { return m_method; }
|
| + void setURL(const KURL& url) { m_url = url; }
|
| + const KURL& url() const { return m_url; }
|
| + bool unsafeRequestFlag() const { return m_unsafeRequestFlag; }
|
| + PassRefPtr<SecurityOrigin> origin() { return m_origin; }
|
| + bool sameOriginDataURLFlag() { return m_sameOriginDataURLFlag; }
|
| + const Referrer& referrer() const { return m_referrer; }
|
| + void setMode(Mode mode) { m_mode = mode; }
|
| + Mode mode() const { return m_mode; }
|
| + void setCredentials(Credentials credentials) { m_credentials = credentials; }
|
| + Credentials credentials() const { return m_credentials; }
|
| + void setResponseTainting(Tainting tainting) { m_responseTainting = tainting; }
|
| + Tainting tainting() const { return m_responseTainting; }
|
| + FetchHeaderList* headerList() { return m_headerList.get(); }
|
| +
|
| +private:
|
| + FetchRequestData();
|
| +
|
| + AtomicString m_method;
|
| + KURL m_url;
|
| + RefPtr<FetchHeaderList> m_headerList;
|
| + bool m_unsafeRequestFlag;
|
| + // FIXME: Support body.
|
| + // FIXME: Support m_skipServiceWorkerFlag;
|
| + Context m_context;
|
| + RefPtr<SecurityOrigin> m_origin;
|
| + // FIXME: Support m_forceOriginHeaderFlag;
|
| + bool m_sameOriginDataURLFlag;
|
| + Referrer m_referrer;
|
| + // FIXME: Support m_authenticationFlag;
|
| + // FIXME: Support m_synchronousFlag;
|
| + Mode m_mode;
|
| + Credentials m_credentials;
|
| + // FIXME: Support m_useURLCredentialsFlag;
|
| + // FIXME: Support m_manualRedirectFlag;
|
| + // FIXME: Support m_redirectCount;
|
| + Tainting m_responseTainting;
|
| +};
|
| +
|
| +} // namespace WebCore
|
| +
|
| +#endif // FetchRequestData_h
|
|
|