summaryrefslogtreecommitdiffstats
path: root/WebKit/android/WebCoreSupport/WebRequest.cpp
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2011-01-19 16:02:50 +0000
committerKristian Monsen <kristianm@google.com>2011-01-19 17:45:23 +0000
commitf7bd628182bcc30048a111c13fff3ac631ba1640 (patch)
tree725b20a5e2a9e42ee6cadd13313694842634070c /WebKit/android/WebCoreSupport/WebRequest.cpp
parentdfdc11618f4880565489123e312150d531c690ed (diff)
downloadexternal_webkit-f7bd628182bcc30048a111c13fff3ac631ba1640.zip
external_webkit-f7bd628182bcc30048a111c13fff3ac631ba1640.tar.gz
external_webkit-f7bd628182bcc30048a111c13fff3ac631ba1640.tar.bz2
Passing WebSettings cacheMode to the chrome load_flags
Fixes a few CTS tests Change-Id: I1b72813b828a6aa24522e9ffb2ff17a3e364f7bf
Diffstat (limited to 'WebKit/android/WebCoreSupport/WebRequest.cpp')
-rw-r--r--WebKit/android/WebCoreSupport/WebRequest.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/WebKit/android/WebCoreSupport/WebRequest.cpp b/WebKit/android/WebCoreSupport/WebRequest.cpp
index 9e464c1..1c84687 100644
--- a/WebKit/android/WebCoreSupport/WebRequest.cpp
+++ b/WebKit/android/WebCoreSupport/WebRequest.cpp
@@ -67,6 +67,7 @@ WebRequest::WebRequest(WebUrlLoaderClient* loader, const WebResourceRequest& web
, m_userAgent(webResourceRequest.userAgent())
, m_loadState(Created)
, m_authRequestCount(0)
+ , m_cacheMode(0)
{
GURL gurl(m_url);
@@ -88,6 +89,7 @@ WebRequest::WebRequest(WebUrlLoaderClient* loader, const WebResourceRequest& web
, m_userAgent(webResourceRequest.userAgent())
, m_loadState(Created)
, m_authRequestCount(0)
+ , m_cacheMode(0)
{
}
@@ -154,10 +156,23 @@ void WebRequest::appendBytesToUpload(WTF::Vector<char>* data)
void WebRequest::setRequestContext(WebRequestContext* context)
{
+ m_cacheMode = context->getCacheMode();
if (m_request)
m_request->set_context(context);
}
+void WebRequest::updateLoadFlags(int& loadFlags)
+{
+ if (m_cacheMode == 1) { // LOAD_CACHE_ELSE_NETWORK
+ loadFlags |= net::LOAD_PREFERRING_CACHE;
+ loadFlags &= ~net::LOAD_VALIDATE_CACHE;
+ }
+ if (m_cacheMode == 2) // LOAD_NO_CACHE
+ loadFlags |= net::LOAD_BYPASS_CACHE;
+ if (m_cacheMode == 3) // LOAD_CACHE_ONLY
+ loadFlags |= net::LOAD_ONLY_FROM_CACHE;
+}
+
void WebRequest::start()
{
ASSERT(m_loadState == Created, "Start called on a WebRequest not in CREATED state: (%s)", m_url.c_str());
@@ -174,6 +189,11 @@ void WebRequest::start()
if (m_request->url().SchemeIs("browser"))
return handleBrowserURL(m_request->url());
+ // Update load flags with settings from WebSettings
+ int loadFlags = m_request->load_flags();
+ updateLoadFlags(loadFlags);
+ m_request->set_load_flags(loadFlags);
+
m_request->Start();
}