Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / platform / exported / WebServiceWorkerRequest.cpp
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "public/platform/WebServiceWorkerRequest.h"
7
8 #include "platform/blob/BlobData.h"
9 #include "platform/weborigin/KURL.h"
10 #include "public/platform/WebHTTPHeaderVisitor.h"
11 #include "public/platform/WebURLRequest.h"
12
13 namespace blink {
14
15 class WebServiceWorkerRequestPrivate : public RefCounted<WebServiceWorkerRequestPrivate> {
16 public:
17     WebServiceWorkerRequestPrivate()
18         : m_mode(WebURLRequest::FetchRequestModeNoCORS)
19         , m_credentialsMode(WebURLRequest::FetchCredentialsModeOmit)
20         , m_requestContext(WebURLRequest::RequestContextUnspecified)
21         , m_frameType(WebURLRequest::FrameTypeNone)
22         , m_isReload(false)
23     {
24     }
25     WebURL m_url;
26     WebString m_method;
27     HTTPHeaderMap m_headers;
28     RefPtr<BlobDataHandle> blobDataHandle;
29     Referrer m_referrer;
30     WebURLRequest::FetchRequestMode m_mode;
31     WebURLRequest::FetchCredentialsMode m_credentialsMode;
32     WebURLRequest::RequestContext m_requestContext;
33     WebURLRequest::FrameType m_frameType;
34     bool m_isReload;
35 };
36
37 WebServiceWorkerRequest::WebServiceWorkerRequest()
38     : m_private(adoptRef(new WebServiceWorkerRequestPrivate))
39 {
40 }
41
42 void WebServiceWorkerRequest::reset()
43 {
44     m_private.reset();
45 }
46
47 void WebServiceWorkerRequest::assign(const WebServiceWorkerRequest& other)
48 {
49     m_private = other.m_private;
50 }
51
52 void WebServiceWorkerRequest::setURL(const WebURL& url)
53 {
54     m_private->m_url = url;
55 }
56
57 WebURL WebServiceWorkerRequest::url() const
58 {
59     return m_private->m_url;
60 }
61
62 void WebServiceWorkerRequest::setMethod(const WebString& method)
63 {
64     m_private->m_method = method;
65 }
66
67 WebString WebServiceWorkerRequest::method() const
68 {
69     return m_private->m_method;
70 }
71
72 void WebServiceWorkerRequest::setHeader(const WebString& key, const WebString& value)
73 {
74     if (equalIgnoringCase(key, "referer"))
75         return;
76     m_private->m_headers.set(key, value);
77 }
78
79 void WebServiceWorkerRequest::appendHeader(const WebString& key, const WebString& value)
80 {
81     if (equalIgnoringCase(key, "referer"))
82         return;
83     HTTPHeaderMap::AddResult result = m_private->m_headers.add(key, value);
84     if (!result.isNewEntry)
85         result.storedValue->value = result.storedValue->value + ", " + String(value);
86 }
87
88 void WebServiceWorkerRequest::visitHTTPHeaderFields(WebHTTPHeaderVisitor* headerVisitor) const
89 {
90     for (HTTPHeaderMap::const_iterator i = m_private->m_headers.begin(), end = m_private->m_headers.end(); i != end; ++i)
91         headerVisitor->visitHeader(i->key, i->value);
92 }
93
94 const HTTPHeaderMap& WebServiceWorkerRequest::headers() const
95 {
96     return m_private->m_headers;
97 }
98
99 void WebServiceWorkerRequest::setBlob(const WebString& uuid, long long size)
100 {
101     m_private->blobDataHandle = BlobDataHandle::create(uuid, String(), size);
102 }
103
104 PassRefPtr<BlobDataHandle> WebServiceWorkerRequest::blobDataHandle() const
105 {
106     return m_private->blobDataHandle;
107 }
108
109 void WebServiceWorkerRequest::setReferrer(const WebString& referrer, WebReferrerPolicy referrerPolicy)
110 {
111     m_private->m_referrer = Referrer(referrer, static_cast<ReferrerPolicy>(referrerPolicy));
112 }
113
114 WebURL WebServiceWorkerRequest::referrerUrl() const
115 {
116     return KURL(ParsedURLString, m_private->m_referrer.referrer);
117 }
118
119 WebReferrerPolicy WebServiceWorkerRequest::referrerPolicy() const
120 {
121     return static_cast<WebReferrerPolicy>(m_private->m_referrer.referrerPolicy);
122 }
123
124 const Referrer& WebServiceWorkerRequest::referrer() const
125 {
126     return m_private->m_referrer;
127 }
128
129 void WebServiceWorkerRequest::setMode(WebURLRequest::FetchRequestMode mode)
130 {
131     m_private->m_mode = mode;
132 }
133
134 WebURLRequest::FetchRequestMode WebServiceWorkerRequest::mode() const
135 {
136     return m_private->m_mode;
137 }
138
139 void WebServiceWorkerRequest::setCredentialsMode(WebURLRequest::FetchCredentialsMode credentialsMode)
140 {
141     m_private->m_credentialsMode = credentialsMode;
142 }
143
144 WebURLRequest::FetchCredentialsMode WebServiceWorkerRequest::credentialsMode() const
145 {
146     return m_private->m_credentialsMode;
147 }
148
149 void WebServiceWorkerRequest::setRequestContext(WebURLRequest::RequestContext requestContext)
150 {
151     m_private->m_requestContext = requestContext;
152 }
153
154 WebURLRequest::RequestContext WebServiceWorkerRequest::requestContext() const
155 {
156     return m_private->m_requestContext;
157 }
158
159 void WebServiceWorkerRequest::setFrameType(WebURLRequest::FrameType frameType)
160 {
161     m_private->m_frameType = frameType;
162 }
163
164 WebURLRequest::FrameType WebServiceWorkerRequest::frameType() const
165 {
166     return m_private->m_frameType;
167 }
168
169 void WebServiceWorkerRequest::setIsReload(bool isReload)
170 {
171     m_private->m_isReload = isReload;
172 }
173
174 bool WebServiceWorkerRequest::isReload() const
175 {
176     return m_private->m_isReload;
177 }
178
179 } // namespace blink