Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(43)

Unified Diff: Source/modules/serviceworkers/FetchRequestData.h

Issue 329853012: [ServiceWorker] Make Request class better conformance with the spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: incorporated jochen's comment Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..9befc513ed7f07555eb0f69b9c50ea108991ea5f
--- /dev/null
+++ b/Source/modules/serviceworkers/FetchRequestData.h
@@ -0,0 +1,112 @@
+// 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 "platform/weborigin/Referrer.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 ExecutionContext;
+class FetchHeaderList;
+struct ResourceLoaderOptions;
+class ResourceRequest;
+class SecurityOrigin;
+struct ThreadableLoaderOptions;
+
+class FetchRequestData : public RefCounted<FetchRequestData> {
+public:
jochen (gone - plz use gerrit) 2014/07/07 15:31:52 should be WTF_MAKE_NONCOPYABLE()?
horo 2014/07/08 02:05:59 Done.
+ 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:
jochen (gone - plz use gerrit) 2014/07/07 15:31:52 and here?
horo 2014/07/08 02:05:59 Done.
+ 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_referrer = WebCore::Referrer();
+ m_type = NoneReferrer;
+ }
+ void setClient(const WebCore::Referrer& referrer)
+ {
+ m_referrer = referrer;
+ m_type = ClientReferrer;
+ }
+ void setURL(const WebCore::Referrer& referrer)
+ {
+ m_referrer = referrer;
+ m_type = URLReferrer;
+ }
+ WebCore::Referrer referrer() const { return m_referrer; }
+ private:
+ enum Type { NoneReferrer, ClientReferrer, URLReferrer };
+ Type m_type;
+ WebCore::Referrer m_referrer;
+ };
+
+ static PassRefPtr<FetchRequestData> create(ExecutionContext*);
+ static PassRefPtr<FetchRequestData> create(const blink::WebServiceWorkerRequest&);
+ PassRefPtr<FetchRequestData> createRestrictedCopy(ExecutionContext*, 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

Powered by Google App Engine
This is Rietveld 408576698