Commit be7acc50 authored by Guillaume Jenkins's avatar Guillaume Jenkins Committed by Commit Bot

[CBCM] Use delegate factory for ProfileReportGenerator delegate

With this change, ProfileReportGenerator is passed a delegate factory
during construction, and takes its delegate directly from it instead of
receiving the delegate as constructor argument.

#Squeegee

Bug: 1091936
Change-Id: Iecc53e7b30a6f2bcb39f6c248ce40c94ae448fa9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2290056Reviewed-by: default avatarOwen Min <zmin@chromium.org>
Commit-Queue: Guillaume Jenkins <gujen@google.com>
Cr-Commit-Position: refs/heads/master@{#787908}
parent 88fdfb0d
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "chrome/test/base/testing_profile_manager.h" #include "chrome/test/base/testing_profile_manager.h"
#include "components/account_id/account_id.h" #include "components/account_id/account_id.h"
#include "components/enterprise/browser/reporting/browser_report_generator.h" #include "components/enterprise/browser/reporting/browser_report_generator.h"
#include "components/enterprise/browser/reporting/profile_report_generator.h"
#include "content/public/browser/plugin_service.h" #include "content/public/browser/plugin_service.h"
#include "content/public/common/webplugininfo.h" #include "content/public/common/webplugininfo.h"
#include "content/public/test/browser_task_environment.h" #include "content/public/test/browser_task_environment.h"
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_service_test_base.h" #include "chrome/browser/extensions/extension_service_test_base.h"
#include "chrome/test/base/testing_profile.h" #include "chrome/test/base/testing_profile.h"
#include "components/enterprise/browser/reporting/profile_report_generator.h"
#include "extensions/common/extension_builder.h" #include "extensions/common/extension_builder.h"
#include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_constants.h"
#include "extensions/common/value_builder.h" #include "extensions/common/value_builder.h"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include "base/strings/string_number_conversions.h" #include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/util/values/values_util.h" #include "base/util/values/values_util.h"
#include "chrome/browser/enterprise/reporting/profile_report_generator_desktop.h" #include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h"
#include "chrome/browser/profiles/profile_attributes_storage.h" #include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/browser/signin/identity_test_environment_profile_adaptor.h" #include "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
#include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/extension_constants.h"
...@@ -54,7 +54,7 @@ constexpr char kBlockedExtensionSettings[] = R"({ ...@@ -54,7 +54,7 @@ constexpr char kBlockedExtensionSettings[] = R"({
class ProfileReportGeneratorTest : public ::testing::Test { class ProfileReportGeneratorTest : public ::testing::Test {
public: public:
ProfileReportGeneratorTest() ProfileReportGeneratorTest()
: generator_(std::make_unique<ProfileReportGeneratorDesktop>()), : generator_(&reporting_delegate_factory_),
profile_manager_(TestingBrowserProcess::GetGlobal()) {} profile_manager_(TestingBrowserProcess::GetGlobal()) {}
~ProfileReportGeneratorTest() override = default; ~ProfileReportGeneratorTest() override = default;
...@@ -134,6 +134,7 @@ class ProfileReportGeneratorTest : public ::testing::Test { ...@@ -134,6 +134,7 @@ class ProfileReportGeneratorTest : public ::testing::Test {
TestingProfile* profile() { return profile_; } TestingProfile* profile() { return profile_; }
TestingProfileManager* profile_manager() { return &profile_manager_; } TestingProfileManager* profile_manager() { return &profile_manager_; }
ReportingDelegateFactoryDesktop reporting_delegate_factory_;
ProfileReportGenerator generator_; ProfileReportGenerator generator_;
private: private:
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/arc/arc_util.h" #include "chrome/browser/chromeos/arc/arc_util.h"
#include "chrome/browser/enterprise/reporting/browser_report_generator_desktop.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "components/policy/core/common/cloud/cloud_policy_util.h" #include "components/policy/core/common/cloud/cloud_policy_util.h"
...@@ -31,7 +30,8 @@ namespace em = enterprise_management; ...@@ -31,7 +30,8 @@ namespace em = enterprise_management;
namespace enterprise_reporting { namespace enterprise_reporting {
ReportGenerator::ReportGenerator() ReportGenerator::ReportGenerator()
: browser_report_generator_(&delegate_factory_) {} : report_request_queue_generator_(&delegate_factory_),
browser_report_generator_(&delegate_factory_) {}
ReportGenerator::~ReportGenerator() = default; ReportGenerator::~ReportGenerator() = default;
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/metrics/histogram_functions.h" #include "base/metrics/histogram_functions.h"
#include "chrome/browser/enterprise/reporting/profile_report_generator_desktop.h"
namespace enterprise_reporting { namespace enterprise_reporting {
namespace { namespace {
...@@ -31,10 +30,10 @@ const int kRequestCountMetricMaxValue = 21; ...@@ -31,10 +30,10 @@ const int kRequestCountMetricMaxValue = 21;
} // namespace } // namespace
ReportRequestQueueGenerator::ReportRequestQueueGenerator() ReportRequestQueueGenerator::ReportRequestQueueGenerator(
ReportingDelegateFactory* delegate_factory)
: maximum_report_size_(kMaximumReportSize), : maximum_report_size_(kMaximumReportSize),
profile_report_generator_( profile_report_generator_(delegate_factory) {
std::make_unique<ProfileReportGeneratorDesktop>()) {
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
// For Chrome OS, policy information needn't be uploaded to DM server. // For Chrome OS, policy information needn't be uploaded to DM server.
profile_report_generator_.set_policies_enabled(false); profile_report_generator_.set_policies_enabled(false);
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
namespace enterprise_reporting { namespace enterprise_reporting {
class ReportingDelegateFactory;
// Generate a report request queue that contains full profile information. The // Generate a report request queue that contains full profile information. The
// request number in the queue is decided by the maximum report size setting. // request number in the queue is decided by the maximum report size setting.
class ReportRequestQueueGenerator { class ReportRequestQueueGenerator {
...@@ -24,7 +26,8 @@ class ReportRequestQueueGenerator { ...@@ -24,7 +26,8 @@ class ReportRequestQueueGenerator {
using ReportRequests = std::queue<std::unique_ptr<ReportRequest>>; using ReportRequests = std::queue<std::unique_ptr<ReportRequest>>;
public: public:
ReportRequestQueueGenerator(); explicit ReportRequestQueueGenerator(
ReportingDelegateFactory* delegate_factory);
ReportRequestQueueGenerator(const ReportRequestQueueGenerator&) = delete; ReportRequestQueueGenerator(const ReportRequestQueueGenerator&) = delete;
ReportRequestQueueGenerator& operator=(const ReportRequestQueueGenerator&) = ReportRequestQueueGenerator& operator=(const ReportRequestQueueGenerator&) =
delete; delete;
......
...@@ -11,7 +11,6 @@ ...@@ -11,7 +11,6 @@
#include "base/test/bind_test_util.h" #include "base/test/bind_test_util.h"
#include "base/test/metrics/histogram_tester.h" #include "base/test/metrics/histogram_tester.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "chrome/browser/enterprise/reporting/browser_report_generator_desktop.h"
#include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h" #include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h"
#include "chrome/browser/profiles/profile_attributes_storage.h" #include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_browser_process.h"
...@@ -46,7 +45,8 @@ class ReportRequestQueueGeneratorTest : public ::testing::Test { ...@@ -46,7 +45,8 @@ class ReportRequestQueueGeneratorTest : public ::testing::Test {
ReportRequestQueueGeneratorTest() ReportRequestQueueGeneratorTest()
: profile_manager_(TestingBrowserProcess::GetGlobal()), : profile_manager_(TestingBrowserProcess::GetGlobal()),
browser_report_generator_(&reporting_delegate_factory_) {} browser_report_generator_(&reporting_delegate_factory_),
report_request_queue_generator_(&reporting_delegate_factory_) {}
~ReportRequestQueueGeneratorTest() override = default; ~ReportRequestQueueGeneratorTest() override = default;
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h" #include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h"
#include "chrome/browser/enterprise/reporting/browser_report_generator_desktop.h" #include "chrome/browser/enterprise/reporting/browser_report_generator_desktop.h"
#include "chrome/browser/enterprise/reporting/profile_report_generator_desktop.h"
namespace enterprise_reporting { namespace enterprise_reporting {
...@@ -13,4 +14,9 @@ ReportingDelegateFactoryDesktop::GetBrowserReportGeneratorDelegate() { ...@@ -13,4 +14,9 @@ ReportingDelegateFactoryDesktop::GetBrowserReportGeneratorDelegate() {
return std::make_unique<BrowserReportGeneratorDesktop>(); return std::make_unique<BrowserReportGeneratorDesktop>();
} }
std::unique_ptr<ProfileReportGenerator::Delegate>
ReportingDelegateFactoryDesktop::GetProfileReportGeneratorDelegate() {
return std::make_unique<ProfileReportGeneratorDesktop>();
}
} // namespace enterprise_reporting } // namespace enterprise_reporting
...@@ -5,13 +5,15 @@ ...@@ -5,13 +5,15 @@
#ifndef CHROME_BROWSER_ENTERPRISE_REPORTING_REPORTING_DELEGATE_FACTORY_DESKTOP_H_ #ifndef CHROME_BROWSER_ENTERPRISE_REPORTING_REPORTING_DELEGATE_FACTORY_DESKTOP_H_
#define CHROME_BROWSER_ENTERPRISE_REPORTING_REPORTING_DELEGATE_FACTORY_DESKTOP_H_ #define CHROME_BROWSER_ENTERPRISE_REPORTING_REPORTING_DELEGATE_FACTORY_DESKTOP_H_
#include <memory>
#include "components/enterprise/browser/reporting/browser_report_generator.h"
#include "components/enterprise/browser/reporting/reporting_delegate_factory.h" #include "components/enterprise/browser/reporting/reporting_delegate_factory.h"
#include <memory>
namespace enterprise_reporting { namespace enterprise_reporting {
class BrowserReportGenerator;
class ProfileReportGenerator;
// Desktop implementation of the reporting delegate factory. Creates desktop- // Desktop implementation of the reporting delegate factory. Creates desktop-
// specific delegates for the enterprise reporting classes. // specific delegates for the enterprise reporting classes.
class ReportingDelegateFactoryDesktop : public ReportingDelegateFactory { class ReportingDelegateFactoryDesktop : public ReportingDelegateFactory {
...@@ -25,6 +27,9 @@ class ReportingDelegateFactoryDesktop : public ReportingDelegateFactory { ...@@ -25,6 +27,9 @@ class ReportingDelegateFactoryDesktop : public ReportingDelegateFactory {
std::unique_ptr<BrowserReportGenerator::Delegate> std::unique_ptr<BrowserReportGenerator::Delegate>
GetBrowserReportGeneratorDelegate() override; GetBrowserReportGeneratorDelegate() override;
std::unique_ptr<ProfileReportGenerator::Delegate>
GetProfileReportGeneratorDelegate() override;
}; };
} // namespace enterprise_reporting } // namespace enterprise_reporting
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "components/enterprise/browser/reporting/policy_info.h" #include "components/enterprise/browser/reporting/policy_info.h"
#include "components/enterprise/browser/reporting/reporting_delegate_factory.h"
#include "components/policy/core/browser/policy_conversions.h" #include "components/policy/core/browser/policy_conversions.h"
namespace em = enterprise_management; namespace em = enterprise_management;
...@@ -15,8 +16,8 @@ namespace em = enterprise_management; ...@@ -15,8 +16,8 @@ namespace em = enterprise_management;
namespace enterprise_reporting { namespace enterprise_reporting {
ProfileReportGenerator::ProfileReportGenerator( ProfileReportGenerator::ProfileReportGenerator(
std::unique_ptr<ProfileReportGenerator::Delegate> delegate) ReportingDelegateFactory* delegate_factory)
: delegate_(std::move(delegate)) {} : delegate_(delegate_factory->GetProfileReportGeneratorDelegate()) {}
ProfileReportGenerator::~ProfileReportGenerator() = default; ProfileReportGenerator::~ProfileReportGenerator() = default;
......
...@@ -22,6 +22,8 @@ class MachineLevelUserCloudPolicyManager; ...@@ -22,6 +22,8 @@ class MachineLevelUserCloudPolicyManager;
namespace enterprise_reporting { namespace enterprise_reporting {
class ReportingDelegateFactory;
/** /**
* A report generator that collects Profile related information that is selected * A report generator that collects Profile related information that is selected
* by policies. * by policies.
...@@ -57,11 +59,7 @@ class ProfileReportGenerator { ...@@ -57,11 +59,7 @@ class ProfileReportGenerator {
GetCloudPolicyManager() = 0; GetCloudPolicyManager() = 0;
}; };
// TODO(crbug/1091916): When this class is moved to components, it should use explicit ProfileReportGenerator(ReportingDelegateFactory* delegate_factory);
// the reporting delegate factory to get its delegate instead of requiring it
// in the constructor.
explicit ProfileReportGenerator(
std::unique_ptr<ProfileReportGenerator::Delegate> delegate);
ProfileReportGenerator(const ProfileReportGenerator&) = delete; ProfileReportGenerator(const ProfileReportGenerator&) = delete;
ProfileReportGenerator& operator=(const ProfileReportGenerator&) = delete; ProfileReportGenerator& operator=(const ProfileReportGenerator&) = delete;
~ProfileReportGenerator(); ~ProfileReportGenerator();
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <memory> #include <memory>
#include "components/enterprise/browser/reporting/browser_report_generator.h" #include "components/enterprise/browser/reporting/browser_report_generator.h"
#include "components/enterprise/browser/reporting/profile_report_generator.h"
namespace enterprise_reporting { namespace enterprise_reporting {
...@@ -21,6 +22,9 @@ class ReportingDelegateFactory { ...@@ -21,6 +22,9 @@ class ReportingDelegateFactory {
virtual std::unique_ptr<BrowserReportGenerator::Delegate> virtual std::unique_ptr<BrowserReportGenerator::Delegate>
GetBrowserReportGeneratorDelegate() = 0; GetBrowserReportGeneratorDelegate() = 0;
virtual std::unique_ptr<ProfileReportGenerator::Delegate>
GetProfileReportGeneratorDelegate() = 0;
}; };
} // namespace enterprise_reporting } // namespace enterprise_reporting
......
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