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

Unified Diff: third_party/WebKit/Source/modules/fetch/Request.cpp

Issue 2811623002: Fetch API: Add Request#cache attribute (Closed)
Patch Set: address comments Created 3 years, 8 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: 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()) {
« no previous file with comments | « third_party/WebKit/Source/modules/fetch/Request.h ('k') | third_party/WebKit/Source/modules/fetch/Request.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698