Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Unified Diff: chrome/common/safe_browsing/file_type_policies.cc

Issue 2072933002: Add sampling of unknown filetypes in download protection. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add int values for histograms to ensure they match Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/safe_browsing/file_type_policies.cc
diff --git a/chrome/common/safe_browsing/file_type_policies.cc b/chrome/common/safe_browsing/file_type_policies.cc
index 1741b5a88de3e1ab7ba2d6fc3879bbca939b9460..b1bb39e5d8d3cef039b526a45539fbef0a4edc60 100644
--- a/chrome/common/safe_browsing/file_type_policies.cc
+++ b/chrome/common/safe_browsing/file_type_policies.cc
@@ -127,7 +127,21 @@ FileTypePolicies::UpdateResult FileTypePolicies::PopulateFromBinaryPb(
}
// Looks good. Update our internal list.
- config_.reset(new_config.release());
+ SwapConfigLocked(new_config);
+
+ return UpdateResult::SUCCESS;
+}
+
+void FileTypePolicies::SwapConfig(
+ std::unique_ptr<DownloadFileTypeConfig>& new_config) {
+ AutoLock lock(lock_);
+ SwapConfigLocked(new_config);
+}
+
+void FileTypePolicies::SwapConfigLocked(
+ std::unique_ptr<DownloadFileTypeConfig>& new_config) {
+ lock_.AssertAcquired();
+ config_.swap(new_config);
// Build an index for faster lookup.
file_type_by_ext_.clear();
@@ -135,13 +149,6 @@ FileTypePolicies::UpdateResult FileTypePolicies::PopulateFromBinaryPb(
// If there are dups, first one wins.
file_type_by_ext_.insert(std::make_pair(file_type.extension(), &file_type));
}
-
- return UpdateResult::SUCCESS;
-}
-
-float FileTypePolicies::SampledPingProbability() const {
- AutoLock lock(lock_);
- return config_ ? config_->sampled_ping_probability() : 0.0;
}
// static
@@ -166,6 +173,15 @@ std::string FileTypePolicies::CanonicalizedExtension(
return ascii_ext;
}
+//
+// Accessors
+//
+
+float FileTypePolicies::SampledPingProbability() const {
+ AutoLock lock(lock_);
+ return config_ ? config_->sampled_ping_probability() : 0.0;
+}
+
const DownloadFileType& FileTypePolicies::PolicyForExtension(
const std::string& ascii_ext) const {
lock_.AssertAcquired();
@@ -208,11 +224,7 @@ bool FileTypePolicies::IsArchiveFile(const base::FilePath& file) const {
return PolicyForExtension(ext).is_archive();
}
-bool FileTypePolicies::IsCheckedBinaryFile(const base::FilePath& file) const {
- const std::string ext = CanonicalizedExtension(file);
- AutoLock lock(lock_);
- return PolicyForExtension(ext).ping_setting() == DownloadFileType::FULL_PING;
-}
+// TODO(nparker): Add unit tests for these accessors.
bool FileTypePolicies::IsAllowedToOpenAutomatically(
const base::FilePath& file) const {
@@ -224,6 +236,17 @@ bool FileTypePolicies::IsAllowedToOpenAutomatically(
DownloadFileType::ALLOW_AUTO_OPEN;
}
+DownloadFileType::PingSetting FileTypePolicies::PingSettingForFile(
+ const base::FilePath& file) const {
+ const std::string ext = CanonicalizedExtension(file);
+ AutoLock lock(lock_);
+ return PolicyForExtension(ext).ping_setting();
+}
+
+bool FileTypePolicies::IsCheckedBinaryFile(const base::FilePath& file) const {
+ return PingSettingForFile(file) == DownloadFileType::FULL_PING;
+}
+
DownloadFileType::DangerLevel FileTypePolicies::GetFileDangerLevel(
const base::FilePath& file) const {
const std::string ext = CanonicalizedExtension(file);
« no previous file with comments | « chrome/common/safe_browsing/file_type_policies.h ('k') | chrome/common/safe_browsing/file_type_policies_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698