diff options
author | paulg@google.com <paulg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-05 01:44:33 +0000 |
---|---|---|
committer | paulg@google.com <paulg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-09-05 01:44:33 +0000 |
commit | 200abc3b412aa5129bca6c90cfe298b05ad547b2 (patch) | |
tree | e6ee185054384e5d70328de700bcedabef43920c /chrome/browser/safe_browsing/protocol_manager.cc | |
parent | 99f367cc966bff34742038d12580b8bad30b1ee0 (diff) | |
download | chromium_src-200abc3b412aa5129bca6c90cfe298b05ad547b2.zip chromium_src-200abc3b412aa5129bca6c90cfe298b05ad547b2.tar.gz chromium_src-200abc3b412aa5129bca6c90cfe298b05ad547b2.tar.bz2 |
Cache empty responses from the SafeBrowsing servers for GetHash
requests so that we don't keep asking for full hashes that don't
exist. We flush this cache with each update, which is a little
aggressive, but on the safe side.
BUG=1358225
Review URL: http://codereview.chromium.org/454
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1748 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/safe_browsing/protocol_manager.cc')
-rw-r--r-- | chrome/browser/safe_browsing/protocol_manager.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/chrome/browser/safe_browsing/protocol_manager.cc b/chrome/browser/safe_browsing/protocol_manager.cc index e66afc5..0f9aa5f 100644 --- a/chrome/browser/safe_browsing/protocol_manager.cc +++ b/chrome/browser/safe_browsing/protocol_manager.cc @@ -96,7 +96,7 @@ void SafeBrowsingProtocolManager::GetFullHash( // required to return empty results (i.e. treat the page as safe). if (gethash_error_count_ && Time::Now() <= next_gethash_time_) { std::vector<SBFullHashResult> full_hashes; - sb_service_->HandleGetHashResults(check, full_hashes); + sb_service_->HandleGetHashResults(check, full_hashes, false); return; } @@ -164,7 +164,9 @@ void SafeBrowsingProtocolManager::OnURLFetchComplete( fetcher.reset(it->first); SafeBrowsingService::SafeBrowsingCheck* check = it->second; std::vector<SBFullHashResult> full_hashes; + bool can_cache = false; if (response_code == 200 || response_code == 204) { + can_cache = true; gethash_error_count_ = 0; gethash_back_off_mult_ = 1; bool re_key = false; @@ -192,7 +194,7 @@ void SafeBrowsingProtocolManager::OnURLFetchComplete( // Call back the SafeBrowsingService with full_hashes, even if there was a // parse error or an error response code (in which case full_hashes will be // empty). We can't block the user regardless of the error status. - sb_service_->HandleGetHashResults(check, full_hashes); + sb_service_->HandleGetHashResults(check, full_hashes, can_cache); hash_requests_.erase(it); } else { |