Chromium Code Reviews| Index: Source/modules/serviceworkers/Request.cpp |
| diff --git a/Source/modules/serviceworkers/Request.cpp b/Source/modules/serviceworkers/Request.cpp |
| index 43ffd21b7e10cdec12413cfc7a72a5cb8935d2cd..c006839a59a4871c43ccd81992ce4bb6ce1382ff 100644 |
| --- a/Source/modules/serviceworkers/Request.cpp |
| +++ b/Source/modules/serviceworkers/Request.cpp |
| @@ -12,6 +12,7 @@ |
| #include "core/loader/ThreadableLoader.h" |
| #include "core/xml/XMLHttpRequest.h" |
| #include "modules/serviceworkers/FetchManager.h" |
| +#include "modules/serviceworkers/HeadersForEachCallback.h" |
| #include "modules/serviceworkers/RequestInit.h" |
| #include "platform/NotImplemented.h" |
| #include "platform/network/HTTPParsers.h" |
| @@ -23,6 +24,25 @@ namespace blink { |
| namespace { |
| +class FillWebRequestHeaders : public HeadersForEachCallback { |
| +public: |
| + FillWebRequestHeaders(WebServiceWorkerRequest* webRequest) : m_webRequest(webRequest) { } |
| + |
| + virtual bool handleItem(ScriptValue, const String&, const String&, Headers*) |
| + { |
| + ASSERT_NOT_REACHED(); |
| + } |
| + |
| + virtual bool handleItem(const String& value, const String& key, Headers*) |
| + { |
| + m_webRequest->setHeader(key, value); |
| + return true; |
| + } |
| + |
| +private: |
| + WebServiceWorkerRequest* m_webRequest; |
| +}; |
| + |
| PassRefPtrWillBeRawPtr<Request> createRequestWithRequestData(PassRefPtrWillBeRawPtr<FetchRequestData> request, const RequestInit& init, FetchRequestData::Mode mode, FetchRequestData::Credentials credentials, ExceptionState& exceptionState) |
| { |
| // "6. Let |mode| be |init|'s mode member if it is present, and |
| @@ -255,6 +275,15 @@ String Request::credentials() const |
| return ""; |
| } |
| +void Request::populateWebServiceWorkerRequest(WebServiceWorkerRequest& webRequest) |
| +{ |
| + webRequest.setMethod(method()); |
| + webRequest.setURL(m_request->url()); |
| + m_headers->forEach(adoptPtr(new FillWebRequestHeaders(&webRequest))); |
| + webRequest.setReferrer(m_request->referrer().referrer().referrer, static_cast<WebReferrerPolicy>(m_request->referrer().referrer().referrerPolicy)); |
| + // FIXME: Handle isReload correctly. |
|
dominicc (has gone to gerrit)
2014/08/11 01:40:41
Can you hint more here? Is this doable right now b
gavinp
2014/08/13 23:25:22
Done.
|
| +} |
| + |
| void Request::trace(Visitor* visitor) |
| { |
| visitor->trace(m_request); |