Index: components/subresource_filter/content/browser/fake_safe_browsing_database_manager.cc |
diff --git a/components/subresource_filter/content/browser/fake_safe_browsing_database_manager.cc b/components/subresource_filter/content/browser/fake_safe_browsing_database_manager.cc |
index f6526bd7b29b575c4fccaf829eb043d2db9a2613..b00a186764e42351aada69a57e8011d56e6c0fab 100644 |
--- a/components/subresource_filter/content/browser/fake_safe_browsing_database_manager.cc |
+++ b/components/subresource_filter/content/browser/fake_safe_browsing_database_manager.cc |
@@ -32,13 +32,24 @@ bool FakeSafeBrowsingDatabaseManager::CheckUrlForSubresourceFilter( |
if (!url_to_threat_type_.count(url)) |
return true; |
+ checks_.insert(client); |
content::BrowserThread::PostTask( |
content::BrowserThread::IO, FROM_HERE, |
- base::Bind(&Client::OnCheckBrowseUrlResult, base::Unretained(client), url, |
- url_to_threat_type_[url], safe_browsing::ThreatMetadata())); |
+ base::Bind(&FakeSafeBrowsingDatabaseManager:: |
+ OnCheckUrlForSubresourceFilterComplete, |
+ base::Unretained(this), base::Unretained(client), url)); |
return false; |
} |
+void FakeSafeBrowsingDatabaseManager::OnCheckUrlForSubresourceFilterComplete( |
+ Client* client, |
+ const GURL& url) { |
+ if (checks_.find(client) == checks_.end()) |
+ return; |
+ client->OnCheckBrowseUrlResult(url, url_to_threat_type_[url], |
+ safe_browsing::ThreatMetadata()); |
+} |
+ |
bool FakeSafeBrowsingDatabaseManager::CheckResourceUrl(const GURL& url, |
Client* client) { |
return true; |
@@ -50,7 +61,9 @@ bool FakeSafeBrowsingDatabaseManager::IsSupported() const { |
bool FakeSafeBrowsingDatabaseManager::ChecksAreAlwaysAsync() const { |
return false; |
} |
-void FakeSafeBrowsingDatabaseManager::CancelCheck(Client* client) {} |
+void FakeSafeBrowsingDatabaseManager::CancelCheck(Client* client) { |
+ checks_.erase(client); |
+} |
bool FakeSafeBrowsingDatabaseManager::CanCheckResourceType( |
content::ResourceType /* resource_type */) const { |
return true; |