Commit 0f012120 authored by Dominique Fauteux-Chapleau's avatar Dominique Fauteux-Chapleau Committed by Commit Bot

Remove legacy protos from DeepScanningRequest

This should not change deep scanning behaviour with Connectors.

Bug: 1103390
Change-Id: I347c5fd3e14631e3fe6dd1260d55a0a5271e54ae
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2388943
Commit-Queue: Dominique Fauteux-Chapleau <domfc@chromium.org>
Reviewed-by: default avatarDaniel Rubery <drubery@chromium.org>
Cr-Commit-Position: refs/heads/master@{#805530}
parent 0f35e6aa
......@@ -64,19 +64,10 @@ class UnresponsiveDeepScanningDialogDelegate
} // namespace
DeepScanningBrowserTestBase::DeepScanningBrowserTestBase(
bool use_legacy_policies)
: use_legacy_policies_(use_legacy_policies) {
DeepScanningBrowserTestBase::DeepScanningBrowserTestBase() {
// Enable every deep scanning features.
if (use_legacy_policies_) {
scoped_feature_list_.InitWithFeatures(
{kContentComplianceEnabled, kMalwareScanEnabled},
{enterprise_connectors::kEnterpriseConnectorsEnabled});
} else {
scoped_feature_list_.InitWithFeatures(
{enterprise_connectors::kEnterpriseConnectorsEnabled},
{kContentComplianceEnabled, kMalwareScanEnabled});
}
scoped_feature_list_.InitWithFeatures(
{enterprise_connectors::kEnterpriseConnectorsEnabled}, {});
// Change the time values of the upload UI to smaller ones to make tests
// showing it run faster.
......@@ -95,77 +86,19 @@ void DeepScanningBrowserTestBase::TearDownOnMainThread() {
enterprise_connectors::ConnectorsManager::GetInstance()->TearDownForTesting();
DeepScanningDialogDelegate::ResetFactoryForTesting();
SetDlpPolicy(CheckContentComplianceValues::CHECK_NONE);
SetMalwarePolicy(SendFilesForMalwareCheckValues::DO_NOT_SCAN);
SetWaitPolicy(DelayDeliveryUntilVerdictValues::DELAY_NONE);
SetAllowPasswordProtectedFilesPolicy(
SetDlpPolicyForConnectors(CheckContentComplianceValues::CHECK_NONE);
SetMalwarePolicyForConnectors(SendFilesForMalwareCheckValues::DO_NOT_SCAN);
SetDelayDeliveryUntilVerdictPolicyForConnectors(
DelayDeliveryUntilVerdictValues::DELAY_NONE);
SetAllowPasswordProtectedFilesPolicyForConnectors(
AllowPasswordProtectedFilesValues::ALLOW_UPLOADS_AND_DOWNLOADS);
SetBlockUnsupportedFileTypesPolicy(
SetBlockUnsupportedFileTypesPolicyForConnectors(
BlockUnsupportedFiletypesValues::BLOCK_UNSUPPORTED_FILETYPES_NONE);
SetBlockLargeFileTransferPolicy(BlockLargeFileTransferValues::BLOCK_NONE);
SetBlockLargeFileTransferPolicyForConnectors(
BlockLargeFileTransferValues::BLOCK_NONE);
SetUnsafeEventsReportingPolicy(false);
ClearUrlsToCheckComplianceOfDownloads();
ClearUrlsToCheckForMalwareOfUploads();
}
void DeepScanningBrowserTestBase::SetDlpPolicy(
CheckContentComplianceValues state) {
if (use_legacy_policies_) {
g_browser_process->local_state()->SetInteger(prefs::kCheckContentCompliance,
state);
} else {
SetDlpPolicyForConnectors(state);
}
}
void DeepScanningBrowserTestBase::SetMalwarePolicy(
SendFilesForMalwareCheckValues state) {
if (use_legacy_policies_) {
browser()->profile()->GetPrefs()->SetInteger(
prefs::kSafeBrowsingSendFilesForMalwareCheck, state);
} else {
SetMalwarePolicyForConnectors(state);
}
}
void DeepScanningBrowserTestBase::SetWaitPolicy(
DelayDeliveryUntilVerdictValues state) {
if (use_legacy_policies_) {
g_browser_process->local_state()->SetInteger(
prefs::kDelayDeliveryUntilVerdict, state);
} else {
SetDelayDeliveryUntilVerdictPolicyForConnectors(state);
}
}
void DeepScanningBrowserTestBase::SetAllowPasswordProtectedFilesPolicy(
AllowPasswordProtectedFilesValues state) {
if (use_legacy_policies_) {
g_browser_process->local_state()->SetInteger(
prefs::kAllowPasswordProtectedFiles, state);
} else {
SetAllowPasswordProtectedFilesPolicyForConnectors(state);
}
}
void DeepScanningBrowserTestBase::SetBlockUnsupportedFileTypesPolicy(
BlockUnsupportedFiletypesValues state) {
if (use_legacy_policies_) {
g_browser_process->local_state()->SetInteger(
prefs::kBlockUnsupportedFiletypes, state);
} else {
SetBlockUnsupportedFileTypesPolicyForConnectors(state);
}
}
void DeepScanningBrowserTestBase::SetBlockLargeFileTransferPolicy(
BlockLargeFileTransferValues state) {
if (use_legacy_policies_) {
g_browser_process->local_state()->SetInteger(prefs::kBlockLargeFileTransfer,
state);
} else {
SetBlockLargeFileTransferPolicyForConnectors(state);
}
ClearUrlsToCheckComplianceOfDownloadsForConnectors();
ClearUrlsToCheckForMalwareOfUploadsForConnectors();
}
void DeepScanningBrowserTestBase::SetUnsafeEventsReportingPolicy(bool report) {
......@@ -173,53 +106,11 @@ void DeepScanningBrowserTestBase::SetUnsafeEventsReportingPolicy(bool report) {
prefs::kUnsafeEventsReportingEnabled, report);
}
void DeepScanningBrowserTestBase::AddUrlToCheckComplianceOfDownloads(
const std::string& url) {
if (use_legacy_policies_) {
ListPrefUpdate(g_browser_process->local_state(),
prefs::kURLsToCheckComplianceOfDownloadedContent)
->Append(url);
} else {
AddUrlsToCheckComplianceOfDownloadsForConnectors({url});
}
}
void DeepScanningBrowserTestBase::AddUrlToCheckForMalwareOfUploads(
const std::string& url) {
if (use_legacy_policies_) {
ListPrefUpdate(g_browser_process->local_state(),
prefs::kURLsToCheckForMalwareOfUploadedContent)
->Append(url);
} else {
AddUrlsToCheckForMalwareOfUploadsForConnectors({url});
}
}
void DeepScanningBrowserTestBase::ClearUrlsToCheckComplianceOfDownloads() {
if (use_legacy_policies_) {
ListPrefUpdate(g_browser_process->local_state(),
prefs::kURLsToCheckComplianceOfDownloadedContent)
->Clear();
} else {
ClearUrlsToCheckComplianceOfDownloadsForConnectors();
}
}
void DeepScanningBrowserTestBase::ClearUrlsToCheckForMalwareOfUploads() {
if (use_legacy_policies_) {
ListPrefUpdate(g_browser_process->local_state(),
prefs::kURLsToCheckForMalwareOfUploadedContent)
->Clear();
} else {
ClearUrlsToCheckForMalwareOfUploadsForConnectors();
}
}
void DeepScanningBrowserTestBase::SetUpDelegate() {
SetDMTokenForTesting(policy::DMToken::CreateValidTokenForTesting(kDmToken));
DeepScanningDialogDelegate::SetFactoryForTesting(base::BindRepeating(
&FakeDeepScanningDialogDelegate::Create, base::DoNothing(),
base::Bind(&DeepScanningBrowserTestBase::ConnectorStatusCallback,
base::Bind(&DeepScanningBrowserTestBase::StatusCallback,
base::Unretained(this)),
base::Bind(&DeepScanningBrowserTestBase::EncryptionStatusCallback,
base::Unretained(this)),
......@@ -230,7 +121,7 @@ void DeepScanningBrowserTestBase::SetUpUnresponsiveDelegate() {
SetDMTokenForTesting(policy::DMToken::CreateValidTokenForTesting(kDmToken));
DeepScanningDialogDelegate::SetFactoryForTesting(base::BindRepeating(
&UnresponsiveDeepScanningDialogDelegate::Create, base::DoNothing(),
base::Bind(&DeepScanningBrowserTestBase::ConnectorStatusCallback,
base::Bind(&DeepScanningBrowserTestBase::StatusCallback,
base::Unretained(this)),
base::Bind(&DeepScanningBrowserTestBase::EncryptionStatusCallback,
base::Unretained(this)),
......@@ -247,24 +138,13 @@ void DeepScanningBrowserTestBase::CallQuitClosure() {
quit_closure_.Run();
}
void DeepScanningBrowserTestBase::SetStatusCallbackResponse(
DeepScanningClientResponse response) {
status_callback_response_ = response;
}
void DeepScanningBrowserTestBase::SetStatusCallbackResponse(
enterprise_connectors::ContentAnalysisResponse response) {
connector_status_callback_response_ = response;
}
DeepScanningClientResponse DeepScanningBrowserTestBase::StatusCallback(
const base::FilePath& path) {
return status_callback_response_;
}
enterprise_connectors::ContentAnalysisResponse
DeepScanningBrowserTestBase::ConnectorStatusCallback(
const base::FilePath& path) {
DeepScanningBrowserTestBase::StatusCallback(const base::FilePath& path) {
return connector_status_callback_response_;
}
......
......@@ -15,26 +15,14 @@ namespace safe_browsing {
// used by browser tests should be added to this class.
class DeepScanningBrowserTestBase : public InProcessBrowserTest {
public:
explicit DeepScanningBrowserTestBase(bool use_legacy_policies = true);
DeepScanningBrowserTestBase();
~DeepScanningBrowserTestBase() override;
void SetUpOnMainThread() override;
void TearDownOnMainThread() override;
// Setters for deep scanning policies.
void SetDlpPolicy(CheckContentComplianceValues state);
void SetMalwarePolicy(SendFilesForMalwareCheckValues state);
void SetWaitPolicy(DelayDeliveryUntilVerdictValues state);
void SetAllowPasswordProtectedFilesPolicy(
AllowPasswordProtectedFilesValues state);
void SetBlockUnsupportedFileTypesPolicy(
BlockUnsupportedFiletypesValues state);
void SetBlockLargeFileTransferPolicy(BlockLargeFileTransferValues state);
void SetUnsafeEventsReportingPolicy(bool report);
void AddUrlToCheckComplianceOfDownloads(const std::string& url);
void AddUrlToCheckForMalwareOfUploads(const std::string& url);
void ClearUrlsToCheckComplianceOfDownloads();
void ClearUrlsToCheckForMalwareOfUploads();
// Sets up a FakeDeepScanningDialogDelegate to use this class's StatusCallback
// and EncryptionStatusCallback. Also sets up a test DM token.
......@@ -49,13 +37,11 @@ class DeepScanningBrowserTestBase : public InProcessBrowserTest {
void CallQuitClosure();
// Set what StatusCallback returns.
void SetStatusCallbackResponse(DeepScanningClientResponse response);
void SetStatusCallbackResponse(
enterprise_connectors::ContentAnalysisResponse response);
// Callbacks used to set up the fake delegate factory.
DeepScanningClientResponse StatusCallback(const base::FilePath& path);
enterprise_connectors::ContentAnalysisResponse ConnectorStatusCallback(
enterprise_connectors::ContentAnalysisResponse StatusCallback(
const base::FilePath& path);
bool EncryptionStatusCallback(const base::FilePath& path);
......@@ -69,12 +55,10 @@ class DeepScanningBrowserTestBase : public InProcessBrowserTest {
private:
base::test::ScopedFeatureList scoped_feature_list_;
base::RepeatingClosure quit_closure_;
DeepScanningClientResponse status_callback_response_;
enterprise_connectors::ContentAnalysisResponse
connector_status_callback_response_;
base::ScopedTempDir temp_dir_;
std::vector<base::FilePath> created_file_paths_;
bool use_legacy_policies_;
};
} // namespace safe_browsing
......
......@@ -188,21 +188,21 @@ class DeepScanningDialogDelegateBrowserTest
: public DeepScanningBrowserTestBase,
public DeepScanningDialogViews::TestObserver {
public:
DeepScanningDialogDelegateBrowserTest() : DeepScanningBrowserTestBase(false) {
DeepScanningDialogDelegateBrowserTest() {
DeepScanningDialogViews::SetObserverForTesting(this);
}
void EnableUploadsScanningAndReporting() {
SetDMTokenForTesting(policy::DMToken::CreateValidTokenForTesting(kDmToken));
SetDlpPolicy(CHECK_UPLOADS);
SetMalwarePolicy(SEND_UPLOADS);
SetWaitPolicy(DELAY_UPLOADS);
SetUnsafeEventsReportingPolicy(true);
SetDlpPolicyForConnectors(CHECK_UPLOADS);
SetMalwarePolicyForConnectors(SEND_UPLOADS);
SetDelayDeliveryUntilVerdictPolicyForConnectors(DELAY_UPLOADS);
SetOnSecurityEventReporting(true);
// Add the wildcard pattern to this policy since malware responses are
// verified for most of these tests.
AddUrlToCheckForMalwareOfUploads("*");
AddUrlsToCheckForMalwareOfUploadsForConnectors({"*"});
client_ = std::make_unique<policy::MockCloudPolicyClient>();
extensions::SafeBrowsingPrivateEventRouterFactory::GetForProfile(
......@@ -471,7 +471,8 @@ IN_PROC_BROWSER_TEST_P(
// Set up delegate and upload service.
EnableUploadsScanningAndReporting();
SetAllowPasswordProtectedFilesPolicy(allow_password_protected_files());
SetAllowPasswordProtectedFilesPolicyForConnectors(
allow_password_protected_files());
DeepScanningDialogDelegate::SetFactoryForTesting(
base::BindRepeating(&MinimalFakeDeepScanningDialogDelegate::Create));
......@@ -566,8 +567,9 @@ IN_PROC_BROWSER_TEST_P(
// Set up delegate and upload service.
EnableUploadsScanningAndReporting();
SetBlockUnsupportedFileTypesPolicy(block_unsupported_file_types());
ClearUrlsToCheckForMalwareOfUploads();
SetBlockUnsupportedFileTypesPolicyForConnectors(
block_unsupported_file_types());
ClearUrlsToCheckForMalwareOfUploadsForConnectors();
DeepScanningDialogDelegate::SetFactoryForTesting(
base::BindRepeating(&MinimalFakeDeepScanningDialogDelegate::Create));
......@@ -662,7 +664,7 @@ IN_PROC_BROWSER_TEST_P(
// Set up delegate and upload service.
EnableUploadsScanningAndReporting();
SetBlockLargeFileTransferPolicy(block_large_file_transfer());
SetBlockLargeFileTransferPolicyForConnectors(block_large_file_transfer());
DeepScanningDialogDelegate::SetFactoryForTesting(
base::BindRepeating(&MinimalFakeDeepScanningDialogDelegate::Create));
......@@ -760,7 +762,8 @@ IN_PROC_BROWSER_TEST_P(DeepScanningDialogDelegateDelayDeliveryUntilVerdictTest,
// Set up delegate and upload service.
EnableUploadsScanningAndReporting();
SetWaitPolicy(delay_delivery_until_verdict());
SetDelayDeliveryUntilVerdictPolicyForConnectors(
delay_delivery_until_verdict());
DeepScanningDialogDelegate::SetFactoryForTesting(
base::BindRepeating(&MinimalFakeDeepScanningDialogDelegate::Create));
......
......@@ -9,6 +9,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_browsertest_base.h"
#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_dialog_views.h"
#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_test_utils.h"
#include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h"
#include "chrome/browser/safe_browsing/cloud_content_scanning/fake_deep_scanning_dialog_delegate.h"
#include "chrome/browser/ui/browser.h"
......@@ -46,8 +47,7 @@ class DeepScanningDialogViewsBehaviorBrowserTest
public testing::WithParamInterface<
std::tuple<bool, bool, base::TimeDelta>> {
public:
DeepScanningDialogViewsBehaviorBrowserTest()
: DeepScanningBrowserTestBase(false) {
DeepScanningDialogViewsBehaviorBrowserTest() {
DeepScanningDialogViews::SetObserverForTesting(this);
expected_scan_result_ = dlp_success() && malware_success();
......@@ -188,8 +188,7 @@ class DeepScanningDialogViewsCancelPendingScanBrowserTest
: public DeepScanningBrowserTestBase,
public DeepScanningDialogViews::TestObserver {
public:
DeepScanningDialogViewsCancelPendingScanBrowserTest()
: DeepScanningBrowserTestBase(false) {
DeepScanningDialogViewsCancelPendingScanBrowserTest() {
DeepScanningDialogViews::SetObserverForTesting(this);
}
......@@ -232,8 +231,7 @@ class DeepScanningDialogViewsWarningBrowserTest
public DeepScanningDialogViews::TestObserver,
public testing::WithParamInterface<bool> {
public:
DeepScanningDialogViewsWarningBrowserTest()
: DeepScanningBrowserTestBase(false) {
DeepScanningDialogViewsWarningBrowserTest() {
DeepScanningDialogViews::SetObserverForTesting(this);
}
......@@ -281,8 +279,7 @@ class DeepScanningDialogViewsAppearanceBrowserTest
public testing::WithParamInterface<
std::tuple<bool, bool, DeepScanAccessPoint>> {
public:
DeepScanningDialogViewsAppearanceBrowserTest()
: DeepScanningBrowserTestBase(false) {
DeepScanningDialogViewsAppearanceBrowserTest() {
DeepScanningDialogViews::SetObserverForTesting(this);
}
......@@ -389,14 +386,14 @@ IN_PROC_BROWSER_TEST_P(DeepScanningDialogViewsBehaviorBrowserTest, Test) {
// Setup policies to enable deep scanning, its UI and the responses to be
// simulated.
SetDlpPolicy(CHECK_UPLOADS_AND_DOWNLOADS);
SetMalwarePolicy(SEND_UPLOADS_AND_DOWNLOADS);
AddUrlToCheckForMalwareOfUploads("*");
SetDlpPolicyForConnectors(CHECK_UPLOADS_AND_DOWNLOADS);
SetMalwarePolicyForConnectors(SEND_UPLOADS_AND_DOWNLOADS);
AddUrlsToCheckForMalwareOfUploadsForConnectors({"*"});
SetStatusCallbackResponse(SimpleContentAnalysisResponseForTesting(
dlp_success(), malware_success()));
// Always set this policy so the UI is shown.
SetWaitPolicy(DELAY_UPLOADS);
SetDelayDeliveryUntilVerdictPolicyForConnectors(DELAY_UPLOADS);
// Set up delegate test values.
FakeDeepScanningDialogDelegate::SetResponseDelay(response_delay());
......@@ -456,12 +453,12 @@ IN_PROC_BROWSER_TEST_F(DeepScanningDialogViewsCancelPendingScanBrowserTest,
// Setup policies to enable deep scanning, its UI and the responses to be
// simulated.
SetDlpPolicy(CHECK_UPLOADS);
SetDlpPolicyForConnectors(CHECK_UPLOADS);
SetStatusCallbackResponse(SimpleContentAnalysisResponseForTesting(
/*dlp=*/true, /*malware=*/base::nullopt));
// Always set this policy so the UI is shown.
SetWaitPolicy(DELAY_UPLOADS);
SetDelayDeliveryUntilVerdictPolicyForConnectors(DELAY_UPLOADS);
// Set up delegate test values. An unresponsive delegate is set up to avoid
// a race between the file responses and the "Cancel" button being clicked.
......@@ -500,8 +497,8 @@ IN_PROC_BROWSER_TEST_P(DeepScanningDialogViewsWarningBrowserTest, Test) {
base::ScopedAllowBlockingForTesting allow_blocking;
// Setup policies.
SetDlpPolicy(CHECK_UPLOADS);
SetWaitPolicy(DELAY_UPLOADS);
SetDlpPolicyForConnectors(CHECK_UPLOADS);
SetDelayDeliveryUntilVerdictPolicyForConnectors(DELAY_UPLOADS);
// Setup the DLP warning response.
enterprise_connectors::ContentAnalysisResponse response;
......@@ -558,14 +555,14 @@ IN_PROC_BROWSER_TEST_P(DeepScanningDialogViewsAppearanceBrowserTest, Test) {
// Setup policies to enable deep scanning, its UI and the responses to be
// simulated.
SetDlpPolicy(CHECK_UPLOADS);
SetMalwarePolicy(SEND_UPLOADS);
SetDlpPolicyForConnectors(CHECK_UPLOADS);
SetMalwarePolicyForConnectors(SEND_UPLOADS);
SetStatusCallbackResponse(
SimpleContentAnalysisResponseForTesting(success(), success()));
// Always set this policy so the UI is shown.
SetWaitPolicy(DELAY_UPLOADS);
SetDelayDeliveryUntilVerdictPolicyForConnectors(DELAY_UPLOADS);
// Set up delegate test values.
FakeDeepScanningDialogDelegate::SetResponseDelay(kSmallDelay);
......
......@@ -8,6 +8,7 @@
#include "base/values.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/enterprise/connectors/common.h"
#include "chrome/browser/enterprise/connectors/connectors_prefs.h"
#include "chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.h"
#include "components/policy/core/common/cloud/mock_cloud_policy_client.h"
#include "components/policy/core/common/cloud/realtime_reporting_job_configuration.h"
......@@ -570,4 +571,21 @@ void ClearUrlsToCheckForMalwareOfDownloadsForConnectors() {
MakeListValue({"malware"}));
}
void SetOnSecurityEventReporting(bool enabled) {
ListPrefUpdate settings_list(g_browser_process->local_state(),
enterprise_connectors::kOnSecurityEventPref);
DCHECK(settings_list.Get());
if (enabled) {
if (settings_list->empty()) {
base::Value settings(base::Value::Type::DICTIONARY);
settings.SetKey(enterprise_connectors::kKeyServiceProvider,
base::Value("google"));
settings_list->Append(std::move(settings));
}
} else {
settings_list->ClearList();
}
}
} // namespace safe_browsing
......@@ -144,6 +144,7 @@ void ClearUrlsToCheckComplianceOfUploadsForConnectors();
void ClearUrlsToCheckForMalwareOfUploadsForConnectors();
void ClearUrlsToCheckComplianceOfDownloadsForConnectors();
void ClearUrlsToCheckForMalwareOfDownloadsForConnectors();
void SetOnSecurityEventReporting(bool enabled);
} // namespace safe_browsing
......
......@@ -10,7 +10,6 @@
#include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h"
#include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
#include "components/enterprise/common/proto/connectors.pb.h"
#include "components/safe_browsing/core/proto/webprotect.pb.h"
namespace download {
class DownloadItem;
......@@ -59,13 +58,8 @@ class DeepScanningRequest : public download::DownloadItem::Observer {
private:
// Callbacks for when |binary_upload_service_| finishes uploading.
void OnLegacyScanComplete(BinaryUploadService::Result result,
DeepScanningClientResponse response);
void OnConnectorScanComplete(
BinaryUploadService::Result result,
enterprise_connectors::ContentAnalysisResponse response);
template <typename T>
void OnScanComplete(BinaryUploadService::Result result, T response);
void OnScanComplete(BinaryUploadService::Result result,
enterprise_connectors::ContentAnalysisResponse response);
// Finishes the request, providing the result through |callback_| and
// notifying |download_service_|.
......@@ -84,10 +78,7 @@ class DeepScanningRequest : public download::DownloadItem::Observer {
void OpenDownload();
// Populates a request with the appropriate data depending on the used proto.
void PrepareLegacyRequest(BinaryUploadService::Request* request,
Profile* profile);
void PrepareConnectorRequest(BinaryUploadService::Request* request,
Profile* profile);
void PrepareRequest(BinaryUploadService::Request* request, Profile* profile);
// The download item to scan. This is unowned, and could become nullptr if the
// download is destroyed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment