Update implementation following changes to URLRequest cache mode.
R=viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/1241553003 .
diff --git a/DEPS b/DEPS
index e74e422..c306c0d 100644
--- a/DEPS
+++ b/DEPS
@@ -65,7 +65,7 @@
Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '7c81740601355556e630da515b74d889ba2f8d08',
'src/third_party/mojo/src/mojo/public':
- Var('chromium_git') + '/external/github.com/domokit/mojo_sdk.git' + '@' + '5f1023823844481ef887ca19c78f5246c766d23b',
+ Var('chromium_git') + '/external/github.com/domokit/mojo_sdk.git' + '@' + '62cdd3f9d10166c666d2b98c05fb84d869e37cd2',
'src/tools/grit':
Var('chromium_git') + '/external/grit-i18n.git' + '@' + 'c1b1591a05209c1ad467e845ba8543c22f9072af', # from svn revision 189
diff --git a/mojo/services/network/url_loader_impl.cc b/mojo/services/network/url_loader_impl.cc
index 955a49c..89e64b8 100644
--- a/mojo/services/network/url_loader_impl.cc
+++ b/mojo/services/network/url_loader_impl.cc
@@ -94,6 +94,16 @@
DISALLOW_COPY_AND_ASSIGN(UploadDataPipeElementReader);
};
+bool IsValidCacheMode(int cache_mode) {
+ switch (cache_mode) {
+ case URLRequest::CACHE_MODE_DEFAULT:
+ case URLRequest::CACHE_MODE_BYPASS_CACHE:
+ case URLRequest::CACHE_MODE_ONLY_FROM_CACHE:
+ return true;
+ }
+ return false;
+}
+
} // namespace
// Each body fetcher takes ownership of a net::URLRequest and stream its data
@@ -495,6 +505,12 @@
DCHECK(!url_request_);
DCHECK(!redirect_info_);
+ if (!IsValidCacheMode(request->cache_mode)) {
+ // Unknown cache mode. The request must fail.
+ delete this;
+ return;
+ }
+
if (interceptor_index_ >= 0 &&
interceptor_index_ < static_cast<int>(interceptors_.size())) {
interceptors_[interceptor_index_]->InterceptRequest(
@@ -537,10 +553,15 @@
new net::ElementsUploadDataStream(element_readers.Pass(), 0)));
}
int load_flags = 0;
- if (request->bypass_cache)
- load_flags |= net::LOAD_BYPASS_CACHE;
- if (request->only_from_cache)
- load_flags |= net::LOAD_ONLY_FROM_CACHE;
+ switch (request->cache_mode) {
+ case URLRequest::CACHE_MODE_DEFAULT:
+ break;
+ case URLRequest::CACHE_MODE_BYPASS_CACHE:
+ load_flags |= net::LOAD_BYPASS_CACHE;
+ case URLRequest::CACHE_MODE_ONLY_FROM_CACHE:
+ load_flags |= net::LOAD_ONLY_FROM_CACHE;
+ break;
+ }
if (load_flags)
url_request_->SetLoadFlags(load_flags);