Index: third_party/WebKit/Source/modules/fetch/Request.cpp |
diff --git a/third_party/WebKit/Source/modules/fetch/Request.cpp b/third_party/WebKit/Source/modules/fetch/Request.cpp |
index 46eea38c21112f0118111705f015f9d7e066487e..f355cf85cab4c6018d8ebfb09c63432945c451f7 100644 |
--- a/third_party/WebKit/Source/modules/fetch/Request.cpp |
+++ b/third_party/WebKit/Source/modules/fetch/Request.cpp |
@@ -45,11 +45,10 @@ FetchRequestData* CreateCopyOfFetchRequestDataForFetch( |
request->SetReferrer(original->GetReferrer()); |
request->SetMode(original->Mode()); |
request->SetCredentials(original->Credentials()); |
+ request->SetCacheMode(original->CacheMode()); |
request->SetAttachedCredential(original->AttachedCredential()); |
request->SetRedirect(original->Redirect()); |
request->SetIntegrity(original->Integrity()); |
- // FIXME: Set cache mode. |
- // TODO(yhirano): Set redirect mode. |
return request; |
} |
@@ -260,9 +259,20 @@ Request* Request::CreateRequestWithRequestOrString( |
request->SetCredentials(WebURLRequest::kFetchCredentialsModeOmit); |
} |
- // TODO(yhirano): Implement the following step: |
- // "If |init|'s cache member is present, set |request|'s cache mode to |
- // it." |
+ // "If |init|'s cache member is present, set |request|'s cache mode to it." |
+ if (init.cache == "default") { |
+ request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeDefault); |
+ } else if (init.cache == "no-store") { |
+ request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeNoStore); |
+ } else if (init.cache == "reload") { |
+ request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeReload); |
+ } else if (init.cache == "no-cache") { |
+ request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeNoCache); |
+ } else if (init.cache == "force-cache") { |
+ request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeForceCache); |
+ } else if (init.cache == "only-if-cached") { |
+ request->SetCacheMode(WebURLRequest::kFetchRequestCacheModeOnlyIfCached); |
+ } |
// "If |init|'s redirect member is present, set |request|'s redirect mode |
// to it." |
@@ -645,6 +655,26 @@ String Request::credentials() const { |
return ""; |
} |
+String Request::cache() const { |
+ // "The cache attribute's getter must return request's cache mode." |
+ switch (request_->CacheMode()) { |
+ case WebURLRequest::kFetchRequestCacheModeDefault: |
+ return "default"; |
+ case WebURLRequest::kFetchRequestCacheModeNoStore: |
+ return "no-store"; |
+ case WebURLRequest::kFetchRequestCacheModeReload: |
+ return "reload"; |
+ case WebURLRequest::kFetchRequestCacheModeNoCache: |
+ return "no-cache"; |
+ case WebURLRequest::kFetchRequestCacheModeForceCache: |
+ return "force-cache"; |
+ case WebURLRequest::kFetchRequestCacheModeOnlyIfCached: |
+ return "only-if-cached"; |
+ } |
+ NOTREACHED(); |
+ return ""; |
+} |
+ |
String Request::redirect() const { |
// "The redirect attribute's getter must return request's redirect mode." |
switch (request_->Redirect()) { |