summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-25 22:03:04 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-25 22:03:04 +0000
commitf7187c4d1a97bfbc33a86b04ebd15ae3793e807e (patch)
tree75d0c0fe03ff6eba147856eaeac99aa85721500f /chrome_frame
parente317c9a117b6f365cd6e596dc7e4d1d1365f53a0 (diff)
downloadchromium_src-f7187c4d1a97bfbc33a86b04ebd15ae3793e807e.zip
chromium_src-f7187c4d1a97bfbc33a86b04ebd15ae3793e807e.tar.gz
chromium_src-f7187c4d1a97bfbc33a86b04ebd15ae3793e807e.tar.bz2
Not freeing the cached request data when we get OnHttpEquiv(done==TRUE) and the browser is tagged for CF navigation.
I found that if I load a CF page, then go to the address bar and press enter, we will actually get both OnHttpEquiv(done==false) and then followed by OnHttpEquiv(done==TRUE) even though we kicked off a new navigation in between. When this happened we would clear the cache in OnHttpEquiv(done==true) and subsequently we'd have to go to the network to fetch the content once CF is instantiated. TEST=See description. BUG=none Review URL: http://codereview.chromium.org/1330001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42675 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r--chrome_frame/bho.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/chrome_frame/bho.cc b/chrome_frame/bho.cc
index 9700b91..f685166 100644
--- a/chrome_frame/bho.cc
+++ b/chrome_frame/bho.cc
@@ -252,10 +252,15 @@ HRESULT Bho::OnHttpEquiv(IBrowserService_OnHttpEquiv_Fn original_httpequiv,
}
}
} else if (done) {
- DLOG(INFO) << "Releasing cached data.";
- NavigationManager* mgr = NavigationManager::GetThreadInstance();
- if (mgr)
- mgr->ReleaseRequestData();
+ if (!CheckForCFNavigation(browser, false)) {
+ DLOG(INFO) << "Releasing cached data.";
+ NavigationManager* mgr = NavigationManager::GetThreadInstance();
+ if (mgr)
+ mgr->ReleaseRequestData();
+ } else {
+ DLOG(INFO) << __FUNCTION__
+ << " not freeing request data - browser tagged";
+ }
}
return original_httpequiv(browser, shell_view, done, in_arg, out_arg);