Index: chrome/browser/safe_browsing/database_manager.cc |
diff --git a/chrome/browser/safe_browsing/database_manager.cc b/chrome/browser/safe_browsing/database_manager.cc |
index 2f89931e50aebce92e15a1c38d6b39a257741cfc..afc3da03f816301b695ebc84a46d9df58a9ff562 100644 |
--- a/chrome/browser/safe_browsing/database_manager.cc |
+++ b/chrome/browser/safe_browsing/database_manager.cc |
@@ -30,6 +30,7 @@ |
#include "chrome/common/chrome_switches.h" |
#include "components/metrics/metrics_service.h" |
#include "components/startup_metric_utils/startup_metric_utils.h" |
+#include "components/variations/variations_associated_data.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_service.h" |
#include "url/url_constants.h" |
@@ -167,6 +168,15 @@ SBThreatType GetThreatTypeFromListType(safe_browsing_util::ListType list_type) { |
} |
} |
+// TODO(asvitkine): Experimental code for measuring start up impact of SB. |
+// Remove when experimentation is complete. http://crbug.com/450037 |
+bool ShouldDisableSafeBrowsing() { |
+ DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ static bool disable_sb = |
+ !variations::GetVariationParamValue("LightSpeed", "DisableSB").empty(); |
gab
2015/02/13 22:58:21
Hmmm actually, isn't this boolean logic backwards?
gab
2015/02/13 23:00:09
Oh nvm, it's !empty(), i.e. disabled == not not di
gab
2015/02/13 23:01:36
Would be nice to have a boolean method on that API
|
+ return disable_sb; |
+} |
+ |
} // namespace |
// static |
@@ -593,6 +603,10 @@ void SafeBrowsingDatabaseManager::HandleGetHashResults( |
void SafeBrowsingDatabaseManager::GetChunks(GetChunksCallback callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ if (ShouldDisableSafeBrowsing()) |
+ return; |
+ |
DCHECK(enabled_); |
DCHECK(!callback.is_null()); |
safe_browsing_thread_->message_loop()->PostTask(FROM_HERE, base::Bind( |
@@ -604,6 +618,10 @@ void SafeBrowsingDatabaseManager::AddChunks( |
scoped_ptr<ScopedVector<SBChunkData> > chunks, |
AddChunksCallback callback) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ if (ShouldDisableSafeBrowsing()) |
+ return; |
+ |
DCHECK(enabled_); |
DCHECK(!callback.is_null()); |
safe_browsing_thread_->message_loop()->PostTask(FROM_HERE, base::Bind( |
@@ -614,6 +632,10 @@ void SafeBrowsingDatabaseManager::AddChunks( |
void SafeBrowsingDatabaseManager::DeleteChunks( |
scoped_ptr<std::vector<SBChunkDelete> > chunk_deletes) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ if (ShouldDisableSafeBrowsing()) |
+ return; |
+ |
DCHECK(enabled_); |
safe_browsing_thread_->message_loop()->PostTask(FROM_HERE, base::Bind( |
&SafeBrowsingDatabaseManager::DeleteDatabaseChunks, this, |
@@ -622,6 +644,10 @@ void SafeBrowsingDatabaseManager::DeleteChunks( |
void SafeBrowsingDatabaseManager::UpdateStarted() { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
+ |
+ if (ShouldDisableSafeBrowsing()) |
+ return; |
+ |
DCHECK(enabled_); |
DCHECK(!update_in_progress_); |
update_in_progress_ = true; |
@@ -650,6 +676,9 @@ void SafeBrowsingDatabaseManager::StartOnIOThread() { |
if (enabled_) |
return; |
+ if (ShouldDisableSafeBrowsing()) |
+ return; |
+ |
DCHECK(!safe_browsing_thread_.get()); |
safe_browsing_thread_.reset(new base::Thread("Chrome_SafeBrowsingThread")); |
if (!safe_browsing_thread_->Start()) |