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

Unified 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698