diff options
author | Kristian Monsen <kristianm@google.com> | 2011-01-19 16:02:50 +0000 |
---|---|---|
committer | Kristian Monsen <kristianm@google.com> | 2011-01-19 17:45:23 +0000 |
commit | f7bd628182bcc30048a111c13fff3ac631ba1640 (patch) | |
tree | 725b20a5e2a9e42ee6cadd13313694842634070c /WebKit/android/WebCoreSupport/WebRequest.cpp | |
parent | dfdc11618f4880565489123e312150d531c690ed (diff) | |
download | external_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.cpp | 20 |
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(); } |