Commit 23e8b9d3 authored by Greg Thompson's avatar Greg Thompson Committed by Commit Bot

Random cleanups in c/b/enterprise_reporting.

- Don't alias namespaces in header files as per
  https://google.github.io/styleguide/cppguide.html#Namespaces
- A few iwyu cleanups.
- Use AddAllocated to pass an element's memory to a repeated proto
  field.
- Move a pair of funcs in BrowserReportGenerator into an unnamed
  namespace.
- Avoid copies when iterating over plugins in
  BrowserReportGenerator::OnPluginsReady.

BUG=none

Change-Id: Ib47925de22d6a0872f40e068a246183888736046
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2091493
Commit-Queue: Greg Thompson <grt@chromium.org>
Reviewed-by: default avatarOwen Min <zmin@chromium.org>
Auto-Submit: Greg Thompson <grt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#747888}
parent 9e2d52aa
......@@ -31,34 +31,19 @@
#include "content/public/browser/plugin_service.h"
#endif
namespace em = ::enterprise_management;
namespace {
std::string GetExecutablePath() {
base::FilePath path;
base::PathService::Get(base::DIR_EXE, &path);
return path.AsUTF8Unsafe();
}
} // namespace
namespace enterprise_reporting {
BrowserReportGenerator::BrowserReportGenerator() = default;
BrowserReportGenerator::~BrowserReportGenerator() = default;
void BrowserReportGenerator::Generate(ReportCallback callback) {
auto report = std::make_unique<em::BrowserReport>();
GenerateBasicInfos(report.get());
GenerateProfileInfos(report.get());
// std::move is required here because the function completes the report
// asynchronously.
GeneratePluginsIfNeeded(std::move(callback), std::move(report));
return base::PathService::Get(base::DIR_EXE, &path) ? path.AsUTF8Unsafe()
: std::string();
}
// static
void BrowserReportGenerator::GenerateBasicInfos(em::BrowserReport* report) {
// Generates browser_version, channel, executable_path info in the given
// report instance.
void GenerateBasicInfos(em::BrowserReport* report) {
#if !defined(OS_CHROMEOS)
report->set_browser_version(version_info::GetVersionNumber());
report->set_channel(policy::ConvertToProtoChannel(chrome::GetChannel()));
......@@ -73,11 +58,11 @@ void BrowserReportGenerator::GenerateBasicInfos(em::BrowserReport* report) {
report->set_executable_path(GetExecutablePath());
}
// static
void BrowserReportGenerator::GenerateProfileInfos(em::BrowserReport* report) {
for (auto* entry : g_browser_process->profile_manager()
->GetProfileAttributesStorage()
.GetAllProfilesAttributes()) {
// Generates user profiles info in the given report instance.
void GenerateProfileInfos(em::BrowserReport* report) {
for (const auto* entry : g_browser_process->profile_manager()
->GetProfileAttributesStorage()
.GetAllProfilesAttributes()) {
#if defined(OS_CHROMEOS)
// Skip sign-in and lock screen app profile on Chrome OS.
if (!chromeos::ProfileHelper::IsRegularProfilePath(
......@@ -93,6 +78,24 @@ void BrowserReportGenerator::GenerateProfileInfos(em::BrowserReport* report) {
}
}
} // namespace
namespace enterprise_reporting {
BrowserReportGenerator::BrowserReportGenerator() = default;
BrowserReportGenerator::~BrowserReportGenerator() = default;
void BrowserReportGenerator::Generate(ReportCallback callback) {
auto report = std::make_unique<em::BrowserReport>();
GenerateBasicInfos(report.get());
GenerateProfileInfos(report.get());
// std::move is required here because the function completes the report
// asynchronously.
GeneratePluginsIfNeeded(std::move(callback), std::move(report));
}
void BrowserReportGenerator::GeneratePluginsIfNeeded(
ReportCallback callback,
std::unique_ptr<em::BrowserReport> report) {
......@@ -110,7 +113,7 @@ void BrowserReportGenerator::OnPluginsReady(
ReportCallback callback,
std::unique_ptr<em::BrowserReport> report,
const std::vector<content::WebPluginInfo>& plugins) {
for (content::WebPluginInfo plugin : plugins) {
for (const content::WebPluginInfo& plugin : plugins) {
em::Plugin* plugin_info = report->add_plugins();
plugin_info->set_name(base::UTF16ToUTF8(plugin.name));
plugin_info->set_version(base::UTF16ToUTF8(plugin.version));
......
......@@ -13,8 +13,6 @@
#include "components/policy/proto/device_management_backend.pb.h"
#include "ppapi/buildflags/buildflags.h"
namespace em = enterprise_management;
namespace content {
struct WebPluginInfo;
}
......@@ -24,8 +22,8 @@ namespace enterprise_reporting {
// A report generator that collects Browser related information.
class BrowserReportGenerator {
public:
using ReportCallback =
base::OnceCallback<void(std::unique_ptr<em::BrowserReport>)>;
using ReportCallback = base::OnceCallback<void(
std::unique_ptr<enterprise_management::BrowserReport>)>;
BrowserReportGenerator();
~BrowserReportGenerator();
......@@ -37,25 +35,20 @@ class BrowserReportGenerator {
void Generate(ReportCallback callback);
private:
// Generates browser_version, channel, executable_path info in the given
// report instance.
static void GenerateBasicInfos(em::BrowserReport* report);
// Generates user profiles info in the given report instance.
static void GenerateProfileInfos(em::BrowserReport* report);
// Generates plugin info in the given report instance, if needed. Passes
// |report| to |callback| either asynchronously when the plugin info is
// available, or synchronously otherwise.
void GeneratePluginsIfNeeded(ReportCallback callback,
std::unique_ptr<em::BrowserReport> report);
void GeneratePluginsIfNeeded(
ReportCallback callback,
std::unique_ptr<enterprise_management::BrowserReport> report);
#if BUILDFLAG(ENABLE_PLUGINS)
// Populates |report| with the plugin info in |plugins|, then passes the
// report to |callback|.
void OnPluginsReady(ReportCallback callback,
std::unique_ptr<em::BrowserReport> report,
const std::vector<content::WebPluginInfo>& plugins);
void OnPluginsReady(
ReportCallback callback,
std::unique_ptr<enterprise_management::BrowserReport> report,
const std::vector<content::WebPluginInfo>& plugins);
#endif
base::WeakPtrFactory<BrowserReportGenerator> weak_ptr_factory_{this};
......
......@@ -4,6 +4,8 @@
#include "chrome/browser/enterprise_reporting/extension_info.h"
#include <string>
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/manifest_handlers/app_launch_info.h"
#include "extensions/browser/extension_registry.h"
......@@ -11,65 +13,65 @@
#include "extensions/common/manifest_url_handlers.h"
#include "extensions/common/permissions/permissions_data.h"
namespace em = ::enterprise_management;
namespace enterprise_reporting {
namespace {
enterprise_management::Extension_ExtensionType GetExtensionType(
em::Extension_ExtensionType GetExtensionType(
extensions::Manifest::Type extension_type) {
switch (extension_type) {
case extensions::Manifest::TYPE_UNKNOWN:
case extensions::Manifest::TYPE_SHARED_MODULE:
return enterprise_management::Extension_ExtensionType_TYPE_UNKNOWN;
return em::Extension_ExtensionType_TYPE_UNKNOWN;
case extensions::Manifest::TYPE_EXTENSION:
return enterprise_management::Extension_ExtensionType_TYPE_EXTENSION;
return em::Extension_ExtensionType_TYPE_EXTENSION;
case extensions::Manifest::TYPE_THEME:
return enterprise_management::Extension_ExtensionType_TYPE_THEME;
return em::Extension_ExtensionType_TYPE_THEME;
case extensions::Manifest::TYPE_USER_SCRIPT:
return enterprise_management::Extension_ExtensionType_TYPE_USER_SCRIPT;
return em::Extension_ExtensionType_TYPE_USER_SCRIPT;
case extensions::Manifest::TYPE_HOSTED_APP:
return enterprise_management::Extension_ExtensionType_TYPE_HOSTED_APP;
return em::Extension_ExtensionType_TYPE_HOSTED_APP;
case extensions::Manifest::TYPE_LEGACY_PACKAGED_APP:
return enterprise_management::
Extension_ExtensionType_TYPE_LEGACY_PACKAGED_APP;
return em::Extension_ExtensionType_TYPE_LEGACY_PACKAGED_APP;
case extensions::Manifest::TYPE_PLATFORM_APP:
return enterprise_management::Extension_ExtensionType_TYPE_PLATFORM_APP;
return em::Extension_ExtensionType_TYPE_PLATFORM_APP;
case extensions::Manifest::TYPE_LOGIN_SCREEN_EXTENSION:
return enterprise_management::
Extension_ExtensionType_TYPE_LOGIN_SCREEN_EXTENSION;
return em::Extension_ExtensionType_TYPE_LOGIN_SCREEN_EXTENSION;
case extensions::Manifest::NUM_LOAD_TYPES:
NOTREACHED();
return enterprise_management::Extension_ExtensionType_TYPE_UNKNOWN;
return em::Extension_ExtensionType_TYPE_UNKNOWN;
}
}
enterprise_management::Extension_InstallType GetExtensionInstallType(
em::Extension_InstallType GetExtensionInstallType(
extensions::Manifest::Location extension_location) {
switch (extension_location) {
case extensions::Manifest::INTERNAL:
return enterprise_management::Extension_InstallType_TYPE_NORMAL;
return em::Extension_InstallType_TYPE_NORMAL;
case extensions::Manifest::UNPACKED:
case extensions::Manifest::COMMAND_LINE:
return enterprise_management::Extension_InstallType_TYPE_DEVELOPMENT;
return em::Extension_InstallType_TYPE_DEVELOPMENT;
case extensions::Manifest::EXTERNAL_PREF:
case extensions::Manifest::EXTERNAL_REGISTRY:
case extensions::Manifest::EXTERNAL_PREF_DOWNLOAD:
return enterprise_management::Extension_InstallType_TYPE_SIDELOAD;
return em::Extension_InstallType_TYPE_SIDELOAD;
case extensions::Manifest::EXTERNAL_POLICY:
case extensions::Manifest::EXTERNAL_POLICY_DOWNLOAD:
return enterprise_management::Extension_InstallType_TYPE_ADMIN;
return em::Extension_InstallType_TYPE_ADMIN;
case extensions::Manifest::NUM_LOCATIONS:
NOTREACHED();
FALLTHROUGH;
case extensions::Manifest::INVALID_LOCATION:
case extensions::Manifest::COMPONENT:
case extensions::Manifest::EXTERNAL_COMPONENT:
return enterprise_management::Extension_InstallType_TYPE_OTHER;
return em::Extension_InstallType_TYPE_OTHER;
}
}
void AddPermission(const extensions::Extension* extension,
enterprise_management::Extension* extension_info) {
em::Extension* extension_info) {
for (const std::string& permission :
extension->permissions_data()->active_permissions().GetAPIsAsStrings()) {
extension_info->add_permissions(permission);
......@@ -77,7 +79,7 @@ void AddPermission(const extensions::Extension* extension,
}
void AddHostPermission(const extensions::Extension* extension,
enterprise_management::Extension* extension_info) {
em::Extension* extension_info) {
for (const auto& url :
extension->permissions_data()->active_permissions().explicit_hosts()) {
extension_info->add_host_permissions(url.GetAsString());
......@@ -85,7 +87,7 @@ void AddHostPermission(const extensions::Extension* extension,
}
void AddExtensions(const extensions::ExtensionSet& extensions,
enterprise_management::ChromeUserProfileInfo* profile_info,
em::ChromeUserProfileInfo* profile_info,
bool enabled) {
for (const auto& extension : extensions) {
// Skip the component extension.
......@@ -113,7 +115,7 @@ void AddExtensions(const extensions::ExtensionSet& extensions,
void AppendExtensionInfoIntoProfileReport(
Profile* profile,
enterprise_management::ChromeUserProfileInfo* profile_info) {
em::ChromeUserProfileInfo* profile_info) {
auto* registry = extensions::ExtensionRegistry::Get(profile);
AddExtensions(registry->enabled_extensions(), profile_info, true);
AddExtensions(registry->disabled_extensions(), profile_info, false);
......
......@@ -7,15 +7,13 @@
#include "components/policy/proto/device_management_backend.pb.h"
namespace em = enterprise_management;
class Profile;
namespace enterprise_reporting {
void AppendExtensionInfoIntoProfileReport(
Profile* profile,
em::ChromeUserProfileInfo* profile_info);
enterprise_management::ChromeUserProfileInfo* profile_info);
} // namespace enterprise_reporting
......
......@@ -4,8 +4,9 @@
#include "chrome/browser/enterprise_reporting/policy_info.h"
#include <string>
#include "base/json/json_writer.h"
#include "base/optional.h"
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/policy/chrome_browser_policy_connector.h"
......@@ -15,6 +16,8 @@
#include "components/policy/core/common/cloud/machine_level_user_cloud_policy_manager.h"
#include "components/policy/core/common/policy_types.h"
namespace em = enterprise_management;
namespace enterprise_reporting {
namespace {
......
......@@ -7,8 +7,6 @@
#include "components/policy/proto/device_management_backend.pb.h"
namespace em = enterprise_management;
namespace base {
class Value;
}
......@@ -17,14 +15,14 @@ namespace enterprise_reporting {
void AppendChromePolicyInfoIntoProfileReport(
const base::Value& policies,
em::ChromeUserProfileInfo* profile_info);
enterprise_management::ChromeUserProfileInfo* profile_info);
void AppendExtensionPolicyInfoIntoProfileReport(
const base::Value& policies,
em::ChromeUserProfileInfo* profile_info);
enterprise_management::ChromeUserProfileInfo* profile_info);
void AppendMachineLevelUserCloudPolicyFetchTimestamp(
em::ChromeUserProfileInfo* profile_info);
enterprise_management::ChromeUserProfileInfo* profile_info);
} // namespace enterprise_reporting
......
......@@ -4,10 +4,10 @@
#include "chrome/browser/enterprise_reporting/prefs.h"
#include "base/feature_list.h"
#include "chrome/common/chrome_features.h"
#include "base/time/time.h"
#include "chrome/common/pref_names.h"
#include "components/pref_registry/pref_registry_syncable.h"
#include "components/prefs/pref_registry_simple.h"
namespace enterprise_reporting {
......
......@@ -5,7 +5,7 @@
#ifndef CHROME_BROWSER_ENTERPRISE_REPORTING_PREFS_H_
#define CHROME_BROWSER_ENTERPRISE_REPORTING_PREFS_H_
#include "components/prefs/pref_registry_simple.h"
class PrefRegistrySimple;
namespace user_prefs {
class PrefRegistrySyncable;
......
......@@ -4,6 +4,8 @@
#include "chrome/browser/enterprise_reporting/profile_report_generator.h"
#include <utility>
#include "base/files/file_path.h"
#include "base/strings/utf_string_conversions.h"
#include "base/threading/thread_task_runner_handle.h"
......@@ -24,6 +26,8 @@
#include "components/signin/public/identity_manager/identity_manager.h"
#include "extensions/common/extension_urls.h"
namespace em = enterprise_management;
namespace enterprise_reporting {
namespace {
......
......@@ -5,14 +5,15 @@
#ifndef CHROME_BROWSER_ENTERPRISE_REPORTING_PROFILE_REPORT_GENERATOR_H_
#define CHROME_BROWSER_ENTERPRISE_REPORTING_PROFILE_REPORT_GENERATOR_H_
#include <memory>
#include <string>
#include "base/callback.h"
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/values.h"
#include "components/policy/proto/device_management_backend.pb.h"
namespace em = enterprise_management;
namespace base {
class FilePath;
}
......@@ -27,7 +28,6 @@ namespace enterprise_reporting {
*/
class ProfileReportGenerator {
public:
ProfileReportGenerator();
~ProfileReportGenerator();
......@@ -36,7 +36,7 @@ class ProfileReportGenerator {
// Generates report for Profile if it's activated. Returns the report with
// |callback| once it's ready. The report is null if it can't be generated.
std::unique_ptr<em::ChromeUserProfileInfo> MaybeGenerate(
std::unique_ptr<enterprise_management::ChromeUserProfileInfo> MaybeGenerate(
const base::FilePath& path,
const std::string& name);
......@@ -57,7 +57,8 @@ class ProfileReportGenerator {
bool extensions_enabled_ = true;
bool policies_enabled_ = true;
std::unique_ptr<em::ChromeUserProfileInfo> report_ = nullptr;
std::unique_ptr<enterprise_management::ChromeUserProfileInfo> report_ =
nullptr;
base::WeakPtrFactory<ProfileReportGenerator> weak_ptr_factory_{this};
......
......@@ -22,6 +22,8 @@
#include "extensions/browser/pref_names.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace em = enterprise_management;
namespace enterprise_reporting {
namespace {
......
......@@ -110,8 +110,8 @@ void ReportGenerator::SetAndroidAppInfos(ReportRequest* basic_request) {
AndroidAppInfoGenerator generator;
for (std::string app_id : prefs->GetAppIds()) {
em::AndroidAppInfo* app_info = basic_request->add_android_app_infos();
generator.Generate(prefs, app_id)->Swap(app_info);
basic_request->mutable_android_app_infos()->AddAllocated(
generator.Generate(prefs, app_id).release());
}
}
......
......@@ -8,7 +8,6 @@
#include <memory>
#include <queue>
#include <string>
#include <vector>
#include "base/macros.h"
#include "build/build_config.h"
......@@ -17,8 +16,6 @@
#include "chrome/browser/enterprise_reporting/report_request_queue_generator.h"
#include "components/policy/proto/device_management_backend.pb.h"
namespace em = enterprise_management;
namespace enterprise_reporting {
class ReportGenerator {
......@@ -46,7 +43,7 @@ class ReportGenerator {
// Returns an OS report contains basic OS information includes OS name, OS
// architecture and OS version.
virtual std::unique_ptr<em::OSReport> GetOSReport();
virtual std::unique_ptr<enterprise_management::OSReport> GetOSReport();
// Returns the name of computer.
virtual std::string GetMachineName();
......@@ -65,10 +62,11 @@ class ReportGenerator {
#endif
private:
void OnBrowserReportReady(bool with_profiles,
ReportCallback callback,
std::unique_ptr<ReportRequest> basic_request,
std::unique_ptr<em::BrowserReport> browser_report);
void OnBrowserReportReady(
bool with_profiles,
ReportCallback callback,
std::unique_ptr<ReportRequest> basic_request,
std::unique_ptr<enterprise_management::BrowserReport> browser_report);
ReportRequestQueueGenerator report_request_queue_generator_;
BrowserReportGenerator browser_report_generator_;
......
......@@ -4,9 +4,6 @@
#include "chrome/browser/enterprise_reporting/report_request_queue_generator.h"
#include <string>
#include <vector>
#include "base/bind.h"
#include "base/callback.h"
#include "base/files/file_path.h"
......
......@@ -15,8 +15,6 @@
#include "chrome/browser/enterprise_reporting/report_request_definition.h"
#include "components/policy/proto/device_management_backend.pb.h"
namespace em = enterprise_management;
namespace enterprise_reporting {
// Generate a report request queue that contains full profile information. The
......@@ -26,7 +24,7 @@ class ReportRequestQueueGenerator {
using ReportRequests = std::queue<std::unique_ptr<ReportRequest>>;
public:
explicit ReportRequestQueueGenerator();
ReportRequestQueueGenerator();
ReportRequestQueueGenerator(const ReportRequestQueueGenerator&) = delete;
ReportRequestQueueGenerator& operator=(const ReportRequestQueueGenerator&) =
delete;
......
......@@ -4,6 +4,7 @@
#include "chrome/browser/enterprise_reporting/report_scheduler.h"
#include <string>
#include <utility>
#include <vector>
......
......@@ -7,8 +7,6 @@
#include <stdint.h>
#include <memory>
#include <queue>
#include <string>
#include "base/containers/flat_set.h"
#include "base/macros.h"
......
......@@ -26,8 +26,6 @@ namespace net {
class BackoffEntry;
} // namespace net
namespace em = enterprise_management;
namespace enterprise_reporting {
// A class that is responsible for uploading multiple requests and retrying in
......
......@@ -19,6 +19,8 @@ using ::testing::InSequence;
using ::testing::Property;
using ::testing::WithArgs;
namespace em = enterprise_management;
namespace enterprise_reporting {
namespace {
constexpr const char* kBrowserVersionNames[] = {"name1", "name2"};
......
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