diff options
5 files changed, 2 insertions, 86 deletions
diff --git a/chrome/browser/safe_browsing/safe_browsing_database.h b/chrome/browser/safe_browsing/safe_browsing_database.h index dd0d49c4..828be6a 100644 --- a/chrome/browser/safe_browsing/safe_browsing_database.h +++ b/chrome/browser/safe_browsing/safe_browsing_database.h @@ -81,9 +81,6 @@ class SafeBrowsingDatabase { const std::vector<SBPrefix>& prefixes, const std::vector<SBFullHashResult>& full_hits) = 0; - // Called when the user's machine has resumed from a lower power state. - virtual void HandleResume() = 0; - // Returns true if we have successfully started the update transaction. virtual bool UpdateStarted() = 0; virtual void UpdateFinished(bool update_succeeded) = 0; diff --git a/chrome/browser/safe_browsing/safe_browsing_database_bloom.cc b/chrome/browser/safe_browsing/safe_browsing_database_bloom.cc index 53f46a4..9d5a42c 100644 --- a/chrome/browser/safe_browsing/safe_browsing_database_bloom.cc +++ b/chrome/browser/safe_browsing/safe_browsing_database_bloom.cc @@ -26,11 +26,6 @@ using base::TimeDelta; // database is reset. static const int kDatabaseVersion = 6; -// When we awake from a low power state, we try to avoid doing expensive disk -// operations for a few minutes to let the system page itself in and settle -// down. -static const int kOnResumeHoldupMs = 5 * 60 * 1000; // 5 minutes. - // The maximum staleness for a cached entry. static const int kMaxStalenessMinutes = 45; @@ -45,9 +40,7 @@ SafeBrowsingDatabaseBloom::SafeBrowsingDatabaseBloom() : db_(NULL), init_(false), ALLOW_THIS_IN_INITIALIZER_LIST(reset_factory_(this)), - ALLOW_THIS_IN_INITIALIZER_LIST(resume_factory_(this)), - add_count_(0), - did_resume_(false) { + add_count_(0) { } SafeBrowsingDatabaseBloom::~SafeBrowsingDatabaseBloom() { @@ -1206,8 +1199,6 @@ bool SafeBrowsingDatabaseBloom::BuildSubFullHashCache(HashCache* sub_cache) { return true; } -// TODO(erikkay): should we call WaitAfterResume() inside any of the loops here? -// This is a pretty fast operation and it would be nice to let it finish. void SafeBrowsingDatabaseBloom::BuildBloomFilter() { #if defined(OS_WIN) // For measuring the amount of IO during the bloom filter build. @@ -1438,26 +1429,6 @@ void SafeBrowsingDatabaseBloom::OnHandleCorruptDatabase() { DCHECK(false) << "SafeBrowsing database was corrupt and reset"; } -void SafeBrowsingDatabaseBloom::HandleResume() { - did_resume_ = true; - MessageLoop::current()->PostDelayedTask( - FROM_HERE, - resume_factory_.NewRunnableMethod( - &SafeBrowsingDatabaseBloom::OnResumeDone), - kOnResumeHoldupMs); -} - -void SafeBrowsingDatabaseBloom::OnResumeDone() { - did_resume_ = false; -} - -void SafeBrowsingDatabaseBloom::WaitAfterResume() { - if (did_resume_) { - PlatformThread::Sleep(kOnResumeHoldupMs); - did_resume_ = false; - } -} - // This database is always synchronous since we don't need to worry about // blocking any incoming reads. void SafeBrowsingDatabaseBloom::SetSynchronous() { diff --git a/chrome/browser/safe_browsing/safe_browsing_database_bloom.h b/chrome/browser/safe_browsing/safe_browsing_database_bloom.h index 57e2b27..be3f4e5 100644 --- a/chrome/browser/safe_browsing/safe_browsing_database_bloom.h +++ b/chrome/browser/safe_browsing/safe_browsing_database_bloom.h @@ -48,7 +48,6 @@ class SafeBrowsingDatabaseBloom : public SafeBrowsingDatabase { virtual void CacheHashResults( const std::vector<SBPrefix>& prefixes, const std::vector<SBFullHashResult>& full_hits); - virtual void HandleResume(); virtual bool UpdateStarted(); virtual void UpdateFinished(bool update_succeeded); @@ -125,14 +124,6 @@ class SafeBrowsingDatabaseBloom : public SafeBrowsingDatabase { void HandleCorruptDatabase(); void OnHandleCorruptDatabase(); - // Clears the did_resume_ flag. This is called by HandleResume after a delay - // to handle the case where we weren't in the middle of any work. - void OnResumeDone(); - - // If the did_resume_ flag is set, sleep for a period and then clear the - // flag. This method should be called periodically inside of busy disk loops. - void WaitAfterResume(); - // Adding add entries to the database. void InsertAdd(SBPrefix host, SBEntry* entry); void InsertAddPrefix(SBPrefix prefix, int encoded_chunk); @@ -196,9 +187,6 @@ class SafeBrowsingDatabaseBloom : public SafeBrowsingDatabase { // Used to schedule resetting the database because of corruption. ScopedRunnableMethodFactory<SafeBrowsingDatabaseBloom> reset_factory_; - // Used to schedule resuming from a lower power state. - ScopedRunnableMethodFactory<SafeBrowsingDatabaseBloom> resume_factory_; - // Caches for all of the existing add and sub chunks. std::set<int> add_chunk_cache_; std::set<int> sub_chunk_cache_; @@ -211,11 +199,6 @@ class SafeBrowsingDatabaseBloom : public SafeBrowsingDatabase { // size for the bloom filter and stats gathering. int add_count_; - // Set to true if the machine just resumed out of a sleep. When this happens, - // we pause disk activity for some time to avoid thrashing the system while - // it's presumably going to be pretty busy. - bool did_resume_; - // Transaction for protecting database integrity during updates. scoped_ptr<SQLTransaction> insert_transaction_; diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/browser/safe_browsing/safe_browsing_service.cc index bc06479..09912f2 100644 --- a/chrome/browser/safe_browsing/safe_browsing_service.cc +++ b/chrome/browser/safe_browsing/safe_browsing_service.cc @@ -38,13 +38,9 @@ SafeBrowsingService::SafeBrowsingService() resetting_(false), database_loaded_(false), update_in_progress_(false) { - base::SystemMonitor::Get()->AddObserver(this); } SafeBrowsingService::~SafeBrowsingService() { - base::SystemMonitor* system_monitor = base::SystemMonitor::Get(); - if (system_monitor) - system_monitor->RemoveObserver(this); } // Only called on the UI thread. @@ -653,26 +649,6 @@ void SafeBrowsingService::CacheHashResults( GetDatabase()->CacheHashResults(prefixes, full_hashes); } -// Tell the SafeBrowsing database not to do expensive disk operations for a few -// minutes after waking up. It's quite likely that the act of resuming from a -// low power state will involve much disk activity, which we don't want to -// exacerbate. -void SafeBrowsingService::OnResume() { - if (enabled_) { - safe_browsing_thread_->message_loop()->PostTask(FROM_HERE, - NewRunnableMethod(this, &SafeBrowsingService::HandleResume)); - } -} - -void SafeBrowsingService::HandleResume() { - DCHECK(MessageLoop::current() == safe_browsing_thread_->message_loop()); - // We don't call GetDatabase() here, since we want to avoid unnecessary calls - // to Open, Reset, etc, or reload the bloom filter while we're coming out of - // a suspended state. - if (database_) - database_->HandleResume(); -} - void SafeBrowsingService::RunQueuedClients() { DCHECK(MessageLoop::current() == io_loop_); HISTOGRAM_COUNTS("SB.QueueDepth", queued_checks_.size()); diff --git a/chrome/browser/safe_browsing/safe_browsing_service.h b/chrome/browser/safe_browsing/safe_browsing_service.h index cc994ff..95417b7 100644 --- a/chrome/browser/safe_browsing/safe_browsing_service.h +++ b/chrome/browser/safe_browsing/safe_browsing_service.h @@ -16,7 +16,6 @@ #include "base/hash_tables.h" #include "base/ref_counted.h" #include "base/scoped_ptr.h" -#include "base/system_monitor.h" #include "base/thread.h" #include "base/time.h" #include "chrome/browser/safe_browsing/safe_browsing_util.h" @@ -32,8 +31,7 @@ class SafeBrowsingProtocolManager; // Construction needs to happen on the main thread. class SafeBrowsingService - : public base::RefCountedThreadSafe<SafeBrowsingService>, - public base::SystemMonitor::PowerObserver { + : public base::RefCountedThreadSafe<SafeBrowsingService> { public: // Users of this service implement this interface to be notified // asynchronously of the result. @@ -166,11 +164,6 @@ class SafeBrowsingService // the current page is 'safe'. void LogPauseDelay(base::TimeDelta time); - // PowerObserver notifications - // We defer SafeBrowsing work for a short duration when the computer comes - // out of a suspend state to avoid thrashing the disk. - void OnResume(); - // Report any pages that contain malware sub-resources to the SafeBrowsing // service. void ReportMalware(const GURL& malware_url, @@ -231,10 +224,6 @@ class SafeBrowsingService void HandleOneCheck(SafeBrowsingCheck* check, const std::vector<SBFullHashResult>& full_hashes); - // Runs on the database thread to inform the database we've resumed from a low - // power state. - void HandleResume(); - // Invoked on the UI thread to show the blocking page. void DoDisplayBlockingPage(const UnsafeResource& resource); |