| Index: components/safe_browsing_db/v4_local_database_manager.cc
|
| diff --git a/components/safe_browsing_db/v4_local_database_manager.cc b/components/safe_browsing_db/v4_local_database_manager.cc
|
| index 6644f662d80677a734ce471c54363ed0581dfd88..02617ce96cdf4984c19eb6d061db61248e5a8c98 100644
|
| --- a/components/safe_browsing_db/v4_local_database_manager.cc
|
| +++ b/components/safe_browsing_db/v4_local_database_manager.cc
|
| @@ -256,7 +256,7 @@ bool V4LocalDatabaseManager::CheckResourceUrl(const GURL& url, Client* client) {
|
|
|
| StoresToCheck stores_to_check({GetChromeUrlClientIncidentId()});
|
|
|
| - if (!CanCheckUrl(url) || !AreStoresAvailableNow(stores_to_check)) {
|
| + if (!CanCheckUrl(url) || !AreAllStoresAvailableNow(stores_to_check)) {
|
| // Fail open: Mark resource as safe immediately.
|
| // TODO(nparker): This should queue the request if the DB isn't yet
|
| // loaded, and later decide if this store is available.
|
| @@ -276,8 +276,9 @@ bool V4LocalDatabaseManager::CheckUrlForSubresourceFilter(const GURL& url,
|
| Client* client) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| - StoresToCheck stores_to_check({GetUrlSubresourceFilterId()});
|
| - if (!AreStoresAvailableNow(stores_to_check) || !CanCheckUrl(url)) {
|
| + StoresToCheck stores_to_check(
|
| + {GetUrlSocEngId(), GetUrlSubresourceFilterId()});
|
| + if (!AreAnyStoresAvailableNow(stores_to_check) || !CanCheckUrl(url)) {
|
| return true;
|
| }
|
|
|
| @@ -292,7 +293,7 @@ bool V4LocalDatabaseManager::MatchCsdWhitelistUrl(const GURL& url) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| StoresToCheck stores_to_check({GetUrlCsdWhitelistId()});
|
| - if (!AreStoresAvailableNow(stores_to_check)) {
|
| + if (!AreAllStoresAvailableNow(stores_to_check)) {
|
| // Fail open: Whitelist everything. Otherwise we may run the
|
| // CSD phishing/malware detector on popular domains and generate
|
| // undue load on the client and server. This has the effect of disabling
|
| @@ -308,7 +309,7 @@ bool V4LocalDatabaseManager::MatchDownloadWhitelistString(
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| StoresToCheck stores_to_check({GetCertCsdDownloadWhitelistId()});
|
| - if (!AreStoresAvailableNow(stores_to_check)) {
|
| + if (!AreAllStoresAvailableNow(stores_to_check)) {
|
| // Fail close: Whitelist nothing. This may generate download-protection
|
| // pings for whitelisted binaries, but that's fine.
|
| return false;
|
| @@ -321,7 +322,7 @@ bool V4LocalDatabaseManager::MatchDownloadWhitelistUrl(const GURL& url) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| StoresToCheck stores_to_check({GetUrlCsdDownloadWhitelistId()});
|
| - if (!AreStoresAvailableNow(stores_to_check)) {
|
| + if (!AreAllStoresAvailableNow(stores_to_check)) {
|
| // Fail close: Whitelist nothing. This may generate download-protection
|
| // pings for whitelisted domains, but that's fine.
|
| return false;
|
| @@ -351,7 +352,7 @@ bool V4LocalDatabaseManager::MatchModuleWhitelistString(
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| StoresToCheck stores_to_check({GetChromeFilenameClientIncidentId()});
|
| - if (!AreStoresAvailableNow(stores_to_check)) {
|
| + if (!AreAllStoresAvailableNow(stores_to_check)) {
|
| // Fail open: Whitelist everything. This has the effect of marking
|
| // all DLLs as safe until the DB is synced and loaded.
|
| return true;
|
| @@ -757,10 +758,16 @@ void V4LocalDatabaseManager::UpdateRequestCompleted(
|
| db_updated_callback_);
|
| }
|
|
|
| -bool V4LocalDatabaseManager::AreStoresAvailableNow(
|
| +bool V4LocalDatabaseManager::AreAllStoresAvailableNow(
|
| const StoresToCheck& stores_to_check) const {
|
| return enabled_ && v4_database_ &&
|
| - v4_database_->AreStoresAvailable(stores_to_check);
|
| + v4_database_->AreAllStoresAvailable(stores_to_check);
|
| +}
|
| +
|
| +bool V4LocalDatabaseManager::AreAnyStoresAvailableNow(
|
| + const StoresToCheck& stores_to_check) const {
|
| + return enabled_ && v4_database_ &&
|
| + v4_database_->AreAnyStoresAvailable(stores_to_check);
|
| }
|
|
|
| } // namespace safe_browsing
|
|
|