#include "components/enterprise/browser/reporting/report_scheduler.h"
#include <string>
#include <utility>
#include <vector>
#include "base/metrics/histogram_functions.h"
#include "base/notreached.h"
#include "base/syslog_logging.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/enterprise/browser/controller/browser_dm_token_storage.h"
#include "components/enterprise/browser/reporting/common_pref_names.h"
#include "components/enterprise/browser/reporting/reporting_delegate_factory.h"
#include "components/policy/core/common/cloud/cloud_policy_client.h"
#include "components/policy/core/common/cloud/device_management_service.h"
#include "components/policy/core/common/cloud/dm_token.h"
#include "components/prefs/pref_service.h"
em;
namespace enterprise_reporting {
namespace {
const int kMaximumRetry = …;
bool IsBrowserVersionUploaded(ReportScheduler::ReportTrigger trigger) { … }
}
ReportScheduler::Delegate::Delegate() = default;
ReportScheduler::Delegate::~Delegate() = default;
ReportScheduler::CreateParams::CreateParams() = default;
ReportScheduler::CreateParams::CreateParams(
ReportScheduler::CreateParams&& other) = default;
ReportScheduler::CreateParams& ReportScheduler::CreateParams::operator=(
ReportScheduler::CreateParams&& other) = default;
ReportScheduler::CreateParams::~CreateParams() = default;
void ReportScheduler::Delegate::SetReportTriggerCallback(
ReportScheduler::ReportTriggerCallback callback) { … }
ReportScheduler::ReportScheduler(CreateParams params)
: … { … }
ReportScheduler::~ReportScheduler() = default;
bool ReportScheduler::IsReportingEnabled() const { … }
bool ReportScheduler::IsNextReportScheduledForTesting() const { … }
ReportScheduler::ReportTrigger ReportScheduler::GetActiveTriggerForTesting()
const { … }
void ReportScheduler::SetReportUploaderForTesting(
std::unique_ptr<ReportUploader> uploader) { … }
ReportScheduler::Delegate* ReportScheduler::GetDelegateForTesting() { … }
void ReportScheduler::OnDMTokenUpdated() { … }
void ReportScheduler::UploadFullReport(base::OnceClosure on_report_uploaded) { … }
void ReportScheduler::RegisterPrefObserver() { … }
void ReportScheduler::OnReportEnabledPrefChanged() { … }
void ReportScheduler::Stop() { … }
void ReportScheduler::RestartReportTimer() { … }
bool ReportScheduler::SetupBrowserPolicyClientRegistration() { … }
void ReportScheduler::Start(base::Time last_upload_time) { … }
void ReportScheduler::GenerateAndUploadReport(ReportTrigger trigger) { … }
void ReportScheduler::OnReportGenerated(ReportRequestQueue requests) { … }
void ReportScheduler::OnReportUploaded(ReportUploader::ReportStatus status) { … }
void ReportScheduler::RunPendingTriggers() { … }
void ReportScheduler::RecordUploadTrigger(ReportTrigger trigger) { … }
ReportType ReportScheduler::TriggerToReportType(
ReportScheduler::ReportTrigger trigger) { … }
policy::DMToken ReportScheduler::GetDMToken() { … }
}