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

Unified Diff: Source/modules/serviceworkers/Request.cpp

Issue 516123004: Support ServiceWorker created request objects. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@minimaster
Patch Set: fix more builds Created 6 years, 3 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
« no previous file with comments | « Source/modules/serviceworkers/Request.h ('k') | Source/modules/serviceworkers/RequestTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « Source/modules/serviceworkers/Request.h ('k') | Source/modules/serviceworkers/RequestTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698