// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_REQUEST_HANDLER_BASE_H_ #define CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_REQUEST_HANDLER_BASE_H_ #include <string> #include <vector> #include "base/memory/raw_ptr.h" #include "base/memory/raw_ref.h" #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "chrome/browser/enterprise/connectors/common.h" #include "chrome/browser/safe_browsing/cloud_content_scanning/binary_upload_service.h" #include "chrome/browser/safe_browsing/cloud_content_scanning/deep_scanning_utils.h" #include "components/enterprise/common/proto/connectors.pb.h" namespace enterprise_connectors { // Abstract base class for handling the scanning and reporting of deep scanning // requests. // Scanning should be started using `UploadData()`. `ReportWarningBypass()` is // only allowed to be called once scanning is complete. // The typical flow is: // 1. Create instance of a child class of RequestHandlerBase. // 2. Call UploadData(). // 3. Wait for the upload to be completed. // 4. Potentially call ReportWarningBypass() if a bypass of a warning should be // reported. class RequestHandlerBase { … }; } // namespace enterprise_connectors #endif // CHROME_BROWSER_ENTERPRISE_CONNECTORS_ANALYSIS_REQUEST_HANDLER_BASE_H_