summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/navigation_state.h
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-03 23:48:30 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-03 23:48:30 +0000
commit5e36967c2b96745b13f3bc8d9ca56f62d888ae1d (patch)
treeb0d19f0215e69041641f667af37cd493b748c4e2 /chrome/renderer/navigation_state.h
parent4eae2c4462379beaf4df96815a2cd95424dcd73e (diff)
downloadchromium_src-5e36967c2b96745b13f3bc8d9ca56f62d888ae1d.zip
chromium_src-5e36967c2b96745b13f3bc8d9ca56f62d888ae1d.tar.gz
chromium_src-5e36967c2b96745b13f3bc8d9ca56f62d888ae1d.tar.bz2
Changes session restore to use a normal load rather than preferring
the cache. We need to do this else we don't honor page expiration and end up showing stale data for some sites. BUG=21195 TEST=make sure session restore works. Review URL: http://codereview.chromium.org/341043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30892 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/navigation_state.h')
-rw-r--r--chrome/renderer/navigation_state.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/chrome/renderer/navigation_state.h b/chrome/renderer/navigation_state.h
index 394aee9..d2e572a 100644
--- a/chrome/renderer/navigation_state.h
+++ b/chrome/renderer/navigation_state.h
@@ -10,6 +10,7 @@
#include "chrome/common/page_transition_types.h"
#include "chrome/renderer/user_script_idle_scheduler.h"
#include "webkit/api/public/WebDataSource.h"
+#include "webkit/api/public/WebURLRequest.h"
#include "webkit/glue/alt_error_page_resource_fetcher.h"
#include "webkit/glue/password_form.h"
@@ -170,6 +171,25 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
return postponed_data_;
}
+ // Sets the cache policy. The cache policy is only used if explicitly set and
+ // by default is not set. You can mark a NavigationState as not having a cache
+ // state by way of clear_cache_policy_override.
+ void set_cache_policy_override(
+ WebKit::WebURLRequest::CachePolicy cache_policy) {
+ cache_policy_override_ = cache_policy;
+ cache_policy_override_set_ = true;
+ }
+ WebKit::WebURLRequest::CachePolicy cache_policy_override() const {
+ return cache_policy_override_;
+ }
+ void clear_cache_policy_override() {
+ cache_policy_override_set_ = false;
+ cache_policy_override_ = WebKit::WebURLRequest::UseProtocolCachePolicy;
+ }
+ bool is_cache_policy_override_set() const {
+ return cache_policy_override_set_;
+ }
+
private:
NavigationState(PageTransition::Type transition_type,
const base::Time& request_time,
@@ -182,6 +202,8 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
is_content_initiated_(is_content_initiated),
pending_page_id_(pending_page_id),
postpone_loading_data_(false),
+ cache_policy_override_set_(false),
+ cache_policy_override_(WebKit::WebURLRequest::UseProtocolCachePolicy) {
user_script_idle_scheduler_(NULL) {
}
@@ -204,6 +226,10 @@ class NavigationState : public WebKit::WebDataSource::ExtraData {
std::string security_info_;
bool postpone_loading_data_;
std::string postponed_data_;
+
+ bool cache_policy_override_set_;
+ WebKit::WebURLRequest::CachePolicy cache_policy_override_;
+
scoped_ptr<UserScriptIdleScheduler> user_script_idle_scheduler_;
DISALLOW_COPY_AND_ASSIGN(NavigationState);