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);