summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
authorShimeng (Simon) Wang <swang@google.com>2010-11-11 17:22:57 -0800
committerShimeng (Simon) Wang <swang@google.com>2010-11-12 10:28:33 -0800
commit833804653e1cc85cc95b67838a544b676e7b5f3b (patch)
treed87f592c24ad0760481f0ae2f1ec9ac99510935e /WebKit
parent62e1f86fe500eeb622fe50cdb5cc0e09e18069d1 (diff)
downloadexternal_webkit-833804653e1cc85cc95b67838a544b676e7b5f3b.zip
external_webkit-833804653e1cc85cc95b67838a544b676e7b5f3b.tar.gz
external_webkit-833804653e1cc85cc95b67838a544b676e7b5f3b.tar.bz2
Fix mobile google.com flickering issue.
Implementing request cache policy in chrome http integration. issue:3008478 Change-Id: I3d7c32912e72e7639885056fb70f9f627d075c4e
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/android/WebCoreSupport/ChromiumIncludes.h1
-rw-r--r--WebKit/android/WebCoreSupport/WebRequest.cpp1
-rw-r--r--WebKit/android/WebCoreSupport/WebResourceRequest.cpp21
-rw-r--r--WebKit/android/WebCoreSupport/WebResourceRequest.h6
4 files changed, 27 insertions, 2 deletions
diff --git a/WebKit/android/WebCoreSupport/ChromiumIncludes.h b/WebKit/android/WebCoreSupport/ChromiumIncludes.h
index 377aa22..a79faec 100644
--- a/WebKit/android/WebCoreSupport/ChromiumIncludes.h
+++ b/WebKit/android/WebCoreSupport/ChromiumIncludes.h
@@ -61,6 +61,7 @@
#include <net/base/data_url.h>
#include <net/base/host_resolver.h>
#include <net/base/io_buffer.h>
+#include <net/base/load_flags.h>
#include <net/base/net_errors.h>
#include <net/base/mime_util.h>
#include <net/base/ssl_config_service.h>
diff --git a/WebKit/android/WebCoreSupport/WebRequest.cpp b/WebKit/android/WebCoreSupport/WebRequest.cpp
index e939be4..758ff31 100644
--- a/WebKit/android/WebCoreSupport/WebRequest.cpp
+++ b/WebKit/android/WebCoreSupport/WebRequest.cpp
@@ -74,6 +74,7 @@ WebRequest::WebRequest(WebUrlLoaderClient* loader, const WebResourceRequest& web
m_request->SetExtraRequestHeaders(webResourceRequest.requestHeaders());
m_request->set_referrer(webResourceRequest.referrer());
m_request->set_method(webResourceRequest.method());
+ m_request->set_load_flags(webResourceRequest.loadFlags());
}
// This is a special URL for Android. Query the Java InputStream
diff --git a/WebKit/android/WebCoreSupport/WebResourceRequest.cpp b/WebKit/android/WebCoreSupport/WebResourceRequest.cpp
index e8fb520..c3ec562 100644
--- a/WebKit/android/WebCoreSupport/WebResourceRequest.cpp
+++ b/WebKit/android/WebCoreSupport/WebResourceRequest.cpp
@@ -30,13 +30,15 @@
#include <wtf/text/CString.h>
+using namespace WebCore;
+
namespace android {
WebResourceRequest::WebResourceRequest(const WebCore::ResourceRequest& resourceRequest)
{
// Set the request headers
- const WebCore::HTTPHeaderMap& map = resourceRequest.httpHeaderFields();
- for (WebCore::HTTPHeaderMap::const_iterator it = map.begin(); it != map.end(); ++it) {
+ const HTTPHeaderMap& map = resourceRequest.httpHeaderFields();
+ for (HTTPHeaderMap::const_iterator it = map.begin(); it != map.end(); ++it) {
const std::string& nameUtf8 = it->first.string().utf8().data();
// Skip over referrer headers found in the header map because we already
@@ -66,6 +68,21 @@ WebResourceRequest::WebResourceRequest(const WebCore::ResourceRequest& resourceR
m_userAgent = resourceRequest.httpUserAgent().utf8().data();
m_url = resourceRequest.url().string().utf8().data();
+
+ m_loadFlags = net::LOAD_NORMAL;
+ switch (resourceRequest.cachePolicy()) {
+ case ReloadIgnoringCacheData:
+ m_loadFlags |= net::LOAD_VALIDATE_CACHE;
+ break;
+ case ReturnCacheDataElseLoad:
+ m_loadFlags |= net::LOAD_PREFERRING_CACHE;
+ break;
+ case ReturnCacheDataDontLoad:
+ m_loadFlags |= net::LOAD_ONLY_FROM_CACHE;
+ break;
+ case UseProtocolCachePolicy:
+ break;
+ }
}
} // namespace android
diff --git a/WebKit/android/WebCoreSupport/WebResourceRequest.h b/WebKit/android/WebCoreSupport/WebResourceRequest.h
index d0c7f90..38f37b5 100644
--- a/WebKit/android/WebCoreSupport/WebResourceRequest.h
+++ b/WebKit/android/WebCoreSupport/WebResourceRequest.h
@@ -66,12 +66,18 @@ public:
return m_url;
}
+ int loadFlags() const
+ {
+ return m_loadFlags;
+ }
+
private:
std::string m_method;
std::string m_referrer;
std::string m_userAgent;
net::HttpRequestHeaders m_requestHeaders;
std::string m_url;
+ int m_loadFlags;
};
} // namespace android