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

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

Issue 287363004: ServiceWorker: support Response.{status,statusText,headers} [blink] (2/3) (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 #include "Response.h" 6 #include "Response.h"
7 7
8 #include "bindings/v8/Dictionary.h" 8 #include "bindings/v8/Dictionary.h"
9 #include "modules/serviceworkers/ResponseInit.h" 9 #include "modules/serviceworkers/ResponseInit.h"
10 #include "platform/NotImplemented.h" 10 #include "platform/NotImplemented.h"
11 #include "public/platform/WebServiceWorkerResponse.h" 11 #include "public/platform/WebServiceWorkerResponse.h"
12 12
13 namespace WebCore { 13 namespace WebCore {
14 14
15 PassRefPtr<Response> Response::create() 15 PassRefPtr<Response> Response::create()
16 { 16 {
17 return create(Dictionary()); 17 return create(Dictionary());
18 } 18 }
19 19
20 PassRefPtr<Response> Response::create(const Dictionary& responseInit) 20 PassRefPtr<Response> Response::create(const Dictionary& responseInit)
21 { 21 {
22 return adoptRef(new Response(ResponseInit(responseInit))); 22 return adoptRef(new Response(ResponseInit(responseInit)));
23 } 23 }
24 24
25 void Response::headers(const Dictionary& headers) 25 void Response::setHeaders(PassRefPtr<HeaderMap> headers)
26 { 26 {
27 notImplemented(); 27 m_headers = headers;
28 } 28 }
29 29
30 Dictionary* Response::headers() 30 PassRefPtr<HeaderMap> Response::headers()
31 { 31 {
32 // FIXME: Implement. Spec will eventually whitelist allowable headers. 32 // FIXME: Implement. Spec will eventually whitelist allowable headers.
33 return &m_headers; 33 return m_headers;
34 }
35
36 String Response::getHeader(const String& name)
37 {
38 return m_headers->get(name);
39 }
40
41 bool Response::namedPropertyQuery(const String& name, ExceptionState&)
42 {
43 return m_headers->has(name);
44 }
45
46 void Response::namedPropertyEnumerator(Vector<String>& names, ExceptionState&)
47 {
48 copyKeysToVector(m_headers->headerMap(), names);
49 }
50
51 bool Response::setHeader(const String& name, const String& value)
52 {
53 m_headers->set(name, value);
54 return true;
34 } 55 }
35 56
36 void Response::populateWebServiceWorkerResponse(blink::WebServiceWorkerResponse& response) 57 void Response::populateWebServiceWorkerResponse(blink::WebServiceWorkerResponse& response)
37 { 58 {
38 response.setStatusCode(statusCode()); 59 response.setStatus(status());
39 response.setStatusText(statusText()); 60 response.setStatusText(statusText());
40 response.setMethod(method()); 61 response.setHeaders(m_headers->headerMap());
41 } 62 }
42 63
43 Response::Response(const ResponseInit& responseInit) 64 Response::Response(const ResponseInit& responseInit)
44 : m_statusCode(responseInit.statusCode) 65 : m_status(responseInit.status)
45 , m_statusText(responseInit.statusText) 66 , m_statusText(responseInit.statusText)
46 , m_method(responseInit.method)
47 , m_headers(responseInit.headers) 67 , m_headers(responseInit.headers)
48 { 68 {
49 ScriptWrappable::init(this); 69 ScriptWrappable::init(this);
70
71 if (!m_headers)
72 m_headers = HeaderMap::create();
50 } 73 }
51 74
52 } // namespace WebCore 75 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698