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

Side by Side Diff: Source/modules/serviceworkers/FetchRequestData.cpp

Issue 329853012: [ServiceWorker] Make Request class better conformance with the spec. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Copy headers in FetchRequestData::createRestrictedCopy(). 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 unified diff | Download patch
OLDNEW
(Empty)
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 "FetchRequestData.h"
7
8 #include "core/fetch/ResourceLoaderOptions.h"
9 #include "core/loader/ThreadableLoader.h"
10 #include "modules/serviceworkers/FetchHeaderList.h"
11 #include "platform/network/ResourceRequest.h"
12 #include "public/platform/WebServiceWorkerRequest.h"
13
14 namespace WebCore {
15
16 PassRefPtr<FetchRequestData> FetchRequestData::create()
17 {
18 return adoptRef(new FetchRequestData());
19 }
20
21 PassRefPtr<FetchRequestData> FetchRequestData::create(const blink::WebServiceWor kerRequest& webRequest)
22 {
23 RefPtr<FetchRequestData> request(create());
24 request->m_url = webRequest.url();
25 request->m_method = webRequest.method();
26 for (size_t i = 0; i < webRequest.headerList().size(); ++i) {
27 request->m_headerList->append(webRequest.headerList()[i]->first, webRequ est.headerList()[i]->second);
28 }
29 request->m_referrer.setURL(webRequest.referrer());
30 return request.release();
31 }
32
33 PassRefPtr<FetchRequestData> FetchRequestData::createRestrictedCopy(PassRefPtr<S ecurityOrigin> origin) const
34 {
35 // "To make a restricted copy of a request |request|, run these steps:"
36 // "1. Let |r| be a new request whose url is |request|'s url, method is
37 // |request|'s method, header list is a copy of |request|'s header list,
38 // body is a tee of |request|'s body, client is entry settings object's
39 // global object, origin is entry settings object's origin, referrer is
40 // |client|, context is |connect|, mode is |request|'s mode, and credentials
41 // mode is |request|'s credentials mode."
42 RefPtr<FetchRequestData> request = adoptRef(new FetchRequestData());
43 request->m_url = m_url;
44 request->m_method = m_method;
45 request->m_headerList = m_headerList->createCopy();
46 // FIXME: Support body.
47 request->m_origin = origin;
48 request->m_referrer.setClient();
49 request->m_context = ConnectContext;
50 request->m_mode = m_mode;
51 request->m_credentials = m_credentials;
52 // "2. Return |r|."
53 return request.release();
54 }
55
56 FetchRequestData::~FetchRequestData()
57 {
58 }
59
60 FetchRequestData::FetchRequestData()
61 : m_method("GET")
62 , m_headerList(FetchHeaderList::create())
63 , m_context(NullContext)
64 , m_sameOriginDataURLFlag(false)
65 , m_mode(NoCORSMode)
66 , m_credentials(OmitCredentials)
67 , m_responseTainting(BasicTainting)
68 {
69 }
70
71 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698