diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-03 23:48:30 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-03 23:48:30 +0000 |
commit | 5e36967c2b96745b13f3bc8d9ca56f62d888ae1d (patch) | |
tree | b0d19f0215e69041641f667af37cd493b748c4e2 /chrome/renderer/navigation_state.h | |
parent | 4eae2c4462379beaf4df96815a2cd95424dcd73e (diff) | |
download | chromium_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.h | 26 |
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); |