Index: Source/modules/serviceworkers/Response.cpp |
diff --git a/Source/modules/serviceworkers/Response.cpp b/Source/modules/serviceworkers/Response.cpp |
index 00f006d0338496ef478b65a65c93c5698a65552a..2908a2193ebd6759f5f42b17c3e60b0ed652ef56 100644 |
--- a/Source/modules/serviceworkers/Response.cpp |
+++ b/Source/modules/serviceworkers/Response.cpp |
@@ -22,31 +22,54 @@ PassRefPtr<Response> Response::create(const Dictionary& responseInit) |
return adoptRef(new Response(ResponseInit(responseInit))); |
} |
-void Response::headers(const Dictionary& headers) |
+void Response::setHeaders(PassRefPtr<HeaderMap> headers) |
{ |
- notImplemented(); |
+ m_headers = headers; |
} |
-Dictionary* Response::headers() |
+PassRefPtr<HeaderMap> Response::headers() |
{ |
// FIXME: Implement. Spec will eventually whitelist allowable headers. |
- return &m_headers; |
+ return m_headers; |
+} |
+ |
+String Response::getHeader(const String& name) |
+{ |
+ return m_headers->get(name); |
+} |
+ |
+bool Response::namedPropertyQuery(const String& name, ExceptionState&) |
+{ |
+ return m_headers->has(name); |
+} |
+ |
+void Response::namedPropertyEnumerator(Vector<String>& names, ExceptionState&) |
+{ |
+ copyKeysToVector(m_headers->headerMap(), names); |
+} |
+ |
+bool Response::setHeader(const String& name, const String& value) |
+{ |
+ m_headers->set(name, value); |
+ return true; |
} |
void Response::populateWebServiceWorkerResponse(blink::WebServiceWorkerResponse& response) |
{ |
- response.setStatusCode(statusCode()); |
+ response.setStatus(status()); |
response.setStatusText(statusText()); |
- response.setMethod(method()); |
+ response.setHeaders(m_headers->headerMap()); |
} |
Response::Response(const ResponseInit& responseInit) |
- : m_statusCode(responseInit.statusCode) |
+ : m_status(responseInit.status) |
, m_statusText(responseInit.statusText) |
- , m_method(responseInit.method) |
, m_headers(responseInit.headers) |
{ |
ScriptWrappable::init(this); |
+ |
+ if (!m_headers) |
+ m_headers = HeaderMap::create(); |
} |
} // namespace WebCore |