| Index: Source/modules/serviceworkers/Request.cpp
|
| diff --git a/Source/modules/serviceworkers/Request.cpp b/Source/modules/serviceworkers/Request.cpp
|
| index e16d2e4e6e29bcf323ff760214597cad00b7c1bd..51066915225ba64d2f0c079df736d1be9723e639 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,26 @@ 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();
|
| + return false;
|
| + }
|
| +
|
| + 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
|
| @@ -283,6 +304,16 @@ 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: How can we set isReload properly? What is the correct place to load it in to the Request object? We should investigate the right way
|
| + // to plumb this information in to here.
|
| +}
|
| +
|
| void Request::setBodyBlobHandle(PassRefPtr<BlobDataHandle>blobHandle)
|
| {
|
| m_request->setBlobDataHandle(blobHandle);
|
|
|