#include "chrome/browser/enterprise/chrome_browser_main_extra_parts_enterprise.h"
#include "components/enterprise/buildflags/buildflags.h"
#include "content/public/browser/browser_thread.h"
#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)) && \
BUILDFLAG(ENTERPRISE_LOCAL_CONTENT_ANALYSIS)
#include "chrome/browser/enterprise/connectors/analysis/content_analysis_sdk_manager.h"
#include "chrome/browser/enterprise/connectors/connectors_service.h"
#endif
namespace enterprise_util {
namespace {
#if BUILDFLAG(ENTERPRISE_LOCAL_CONTENT_ANALYSIS)
void MaybePrimeLocalContentAnalysisAgentConnection(Profile* profile) {
auto* connectors_service =
enterprise_connectors::ConnectorsServiceFactory::GetForBrowserContext(
profile);
constexpr enterprise_connectors::AnalysisConnector kConnectors[] = {
enterprise_connectors::AnalysisConnector::BULK_DATA_ENTRY,
enterprise_connectors::AnalysisConnector::FILE_DOWNLOADED,
enterprise_connectors::AnalysisConnector::FILE_ATTACHED,
enterprise_connectors::AnalysisConnector::PRINT,
};
for (auto connector : kConnectors) {
auto configs = connectors_service->GetAnalysisServiceConfigs(connector);
if (configs.size() < 1 || !configs[0]->local_path)
continue;
enterprise_connectors::ContentAnalysisSdkManager::Get()->GetClient(
{configs[0]->local_path, configs[0]->user_specific});
}
}
#endif
}
ChromeBrowserMainExtraPartsEnterprise::ChromeBrowserMainExtraPartsEnterprise() =
default;
ChromeBrowserMainExtraPartsEnterprise::
~ChromeBrowserMainExtraPartsEnterprise() = default;
#if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)) && \
BUILDFLAG(ENTERPRISE_LOCAL_CONTENT_ANALYSIS)
void ChromeBrowserMainExtraPartsEnterprise::PostProfileInit(
Profile* profile,
bool is_initial_profile) {
MaybePrimeLocalContentAnalysisAgentConnection(profile);
}
#endif
void ChromeBrowserMainExtraPartsEnterprise::PostCreateMainMessageLoop() {
reporting_client_ =
reporting::ReportingClient::Create(content::GetUIThreadTaskRunner({}));
}
}