Commit 75645bae authored by Lutz Justen's avatar Lutz Justen Committed by Commit Bot

DeviceStatusCollector: Add channel

Adds channel information ("stable", "beta", "dev", 'cannary") next to
the browser version.

BUG=chromium:849803
TEST=browser_tests --gtest_filter=*DeviceStatusCollector*

Change-Id: I30c4b78950ad1540169835bc4e295bc9ba0ea483
Reviewed-on: https://chromium-review.googlesource.com/1124162Reviewed-by: default avatarPavol Marko <pmarko@chromium.org>
Reviewed-by: default avatarJulian Pastarmov <pastarmovj@chromium.org>
Reviewed-by: default avatarSergey Poromov <poromov@chromium.org>
Commit-Queue: Lutz Justen <ljusten@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578612}
parent 2fd35dd9
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include "chrome/browser/policy/profile_policy_connector.h" #include "chrome/browser/policy/profile_policy_connector.h"
#include "chrome/browser/policy/profile_policy_connector_factory.h" #include "chrome/browser/policy/profile_policy_connector_factory.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/channel_info.h"
#include "chrome/common/chrome_features.h" #include "chrome/common/chrome_features.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chromeos/audio/cras_audio_handler.h" #include "chromeos/audio/cras_audio_handler.h"
...@@ -63,6 +64,7 @@ ...@@ -63,6 +64,7 @@
#include "components/arc/arc_service_manager.h" #include "components/arc/arc_service_manager.h"
#include "components/arc/common/enterprise_reporting.mojom.h" #include "components/arc/common/enterprise_reporting.mojom.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h" #include "components/policy/core/common/cloud/cloud_policy_constants.h"
#include "components/policy/core/common/cloud/cloud_policy_util.h"
#include "components/policy/proto/device_management_backend.pb.h" #include "components/policy/proto/device_management_backend.pb.h"
#include "components/prefs/pref_change_registrar.h" #include "components/prefs/pref_change_registrar.h"
#include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_registry_simple.h"
...@@ -719,17 +721,16 @@ DeviceStatusCollector::DeviceStatusCollector( ...@@ -719,17 +721,16 @@ DeviceStatusCollector::DeviceStatusCollector(
android_status_fetcher_ = base::Bind(&ReadAndroidStatus); android_status_fetcher_ = base::Bind(&ReadAndroidStatus);
idle_poll_timer_.Start(FROM_HERE, idle_poll_timer_.Start(FROM_HERE,
TimeDelta::FromSeconds(kIdlePollIntervalSeconds), TimeDelta::FromSeconds(kIdlePollIntervalSeconds), this,
this, &DeviceStatusCollector::CheckIdleState); &DeviceStatusCollector::CheckIdleState);
resource_usage_sampling_timer_.Start( resource_usage_sampling_timer_.Start(
FROM_HERE, TimeDelta::FromSeconds(kResourceUsageSampleIntervalSeconds), FROM_HERE, TimeDelta::FromSeconds(kResourceUsageSampleIntervalSeconds),
this, &DeviceStatusCollector::SampleResourceUsage); this, &DeviceStatusCollector::SampleResourceUsage);
// Watch for changes to the individual policies that control what the status // Watch for changes to the individual policies that control what the status
// reports contain. // reports contain.
base::Closure callback = base::Closure callback = base::Bind(
base::Bind(&DeviceStatusCollector::UpdateReportingSettings, &DeviceStatusCollector::UpdateReportingSettings, base::Unretained(this));
base::Unretained(this));
version_info_subscription_ = cros_settings_->AddSettingsObserver( version_info_subscription_ = cros_settings_->AddSettingsObserver(
chromeos::kReportDeviceVersionInfo, callback); chromeos::kReportDeviceVersionInfo, callback);
activity_times_subscription_ = cros_settings_->AddSettingsObserver( activity_times_subscription_ = cros_settings_->AddSettingsObserver(
...@@ -764,9 +765,8 @@ DeviceStatusCollector::DeviceStatusCollector( ...@@ -764,9 +765,8 @@ DeviceStatusCollector::DeviceStatusCollector(
base::Bind(&chromeos::version_loader::GetFirmware), base::Bind(&chromeos::version_loader::GetFirmware),
base::Bind(&DeviceStatusCollector::OnOSFirmware, base::Bind(&DeviceStatusCollector::OnOSFirmware,
weak_factory_.GetWeakPtr())); weak_factory_.GetWeakPtr()));
chromeos::version_loader::GetTpmVersion( chromeos::version_loader::GetTpmVersion(base::BindOnce(
base::BindOnce(&DeviceStatusCollector::OnTpmVersion, &DeviceStatusCollector::OnTpmVersion, weak_factory_.GetWeakPtr()));
weak_factory_.GetWeakPtr()));
// If doing enterprise device-level reporting, observe the list of users to be // If doing enterprise device-level reporting, observe the list of users to be
// reported. Consumer reporting is enforced for the signed-in registered user // reported. Consumer reporting is enforced for the signed-in registered user
...@@ -787,8 +787,7 @@ DeviceStatusCollector::DeviceStatusCollector( ...@@ -787,8 +787,7 @@ DeviceStatusCollector::DeviceStatusCollector(
: prefs::kUserActivityTimes)); : prefs::kUserActivityTimes));
} }
DeviceStatusCollector::~DeviceStatusCollector() { DeviceStatusCollector::~DeviceStatusCollector() {}
}
// static // static
void DeviceStatusCollector::RegisterPrefs(PrefRegistrySimple* registry) { void DeviceStatusCollector::RegisterPrefs(PrefRegistrySimple* registry) {
...@@ -805,8 +804,8 @@ void DeviceStatusCollector::RegisterProfilePrefs(PrefRegistrySimple* registry) { ...@@ -805,8 +804,8 @@ void DeviceStatusCollector::RegisterProfilePrefs(PrefRegistrySimple* registry) {
void DeviceStatusCollector::CheckIdleState() { void DeviceStatusCollector::CheckIdleState() {
CalculateIdleState(kIdleStateThresholdSeconds, CalculateIdleState(kIdleStateThresholdSeconds,
base::Bind(&DeviceStatusCollector::IdleStateCallback, base::Bind(&DeviceStatusCollector::IdleStateCallback,
base::Unretained(this))); base::Unretained(this)));
} }
void DeviceStatusCollector::UpdateReportingSettings() { void DeviceStatusCollector::UpdateReportingSettings() {
...@@ -815,13 +814,13 @@ void DeviceStatusCollector::UpdateReportingSettings() { ...@@ -815,13 +814,13 @@ void DeviceStatusCollector::UpdateReportingSettings() {
// back when they are available. // back when they are available.
if (chromeos::CrosSettingsProvider::TRUSTED != if (chromeos::CrosSettingsProvider::TRUSTED !=
cros_settings_->PrepareTrustedValues( cros_settings_->PrepareTrustedValues(
base::Bind(&DeviceStatusCollector::UpdateReportingSettings, base::Bind(&DeviceStatusCollector::UpdateReportingSettings,
weak_factory_.GetWeakPtr()))) { weak_factory_.GetWeakPtr()))) {
return; return;
} }
if (!cros_settings_->GetBoolean( if (!cros_settings_->GetBoolean(chromeos::kReportDeviceVersionInfo,
chromeos::kReportDeviceVersionInfo, &report_version_info_)) { &report_version_info_)) {
report_version_info_ = true; report_version_info_ = true;
} }
if (!is_enterprise_reporting_) { if (!is_enterprise_reporting_) {
...@@ -832,8 +831,8 @@ void DeviceStatusCollector::UpdateReportingSettings() { ...@@ -832,8 +831,8 @@ void DeviceStatusCollector::UpdateReportingSettings() {
&report_activity_times_)) { &report_activity_times_)) {
report_activity_times_ = true; report_activity_times_ = true;
} }
if (!cros_settings_->GetBoolean( if (!cros_settings_->GetBoolean(chromeos::kReportDeviceBootMode,
chromeos::kReportDeviceBootMode, &report_boot_mode_)) { &report_boot_mode_)) {
report_boot_mode_ = true; report_boot_mode_ = true;
} }
if (!cros_settings_->GetBoolean(chromeos::kReportDeviceSessionStatus, if (!cros_settings_->GetBoolean(chromeos::kReportDeviceSessionStatus,
...@@ -852,8 +851,8 @@ void DeviceStatusCollector::UpdateReportingSettings() { ...@@ -852,8 +851,8 @@ void DeviceStatusCollector::UpdateReportingSettings() {
} }
// Hardware status is reported for enterprise devices only by default. // Hardware status is reported for enterprise devices only by default.
const bool already_reporting_hardware_status = report_hardware_status_; const bool already_reporting_hardware_status = report_hardware_status_;
if (!cros_settings_->GetBoolean( if (!cros_settings_->GetBoolean(chromeos::kReportDeviceHardwareStatus,
chromeos::kReportDeviceHardwareStatus, &report_hardware_status_)) { &report_hardware_status_)) {
report_hardware_status_ = is_enterprise_reporting_; report_hardware_status_ = is_enterprise_reporting_;
} }
...@@ -1088,6 +1087,7 @@ bool DeviceStatusCollector::GetVersionInfo( ...@@ -1088,6 +1087,7 @@ bool DeviceStatusCollector::GetVersionInfo(
// Enterprise-only version reporting below. // Enterprise-only version reporting below.
status->set_browser_version(version_info::GetVersionNumber()); status->set_browser_version(version_info::GetVersionNumber());
status->set_channel(ConvertToProtoChannel(chrome::GetChannel()));
status->set_firmware_version(firmware_version_); status->set_firmware_version(firmware_version_);
em::TpmVersionInfo* const tpm_version_info = em::TpmVersionInfo* const tpm_version_info =
...@@ -1135,18 +1135,17 @@ bool DeviceStatusCollector::GetNetworkInterfaces( ...@@ -1135,18 +1135,17 @@ bool DeviceStatusCollector::GetNetworkInterfaces(
const char* state_string; const char* state_string;
em::NetworkState::ConnectionState state_constant; em::NetworkState::ConnectionState state_constant;
} kConnectionStateMap[] = { } kConnectionStateMap[] = {
{ shill::kStateIdle, em::NetworkState::IDLE }, {shill::kStateIdle, em::NetworkState::IDLE},
{ shill::kStateCarrier, em::NetworkState::CARRIER }, {shill::kStateCarrier, em::NetworkState::CARRIER},
{ shill::kStateAssociation, em::NetworkState::ASSOCIATION }, {shill::kStateAssociation, em::NetworkState::ASSOCIATION},
{ shill::kStateConfiguration, em::NetworkState::CONFIGURATION }, {shill::kStateConfiguration, em::NetworkState::CONFIGURATION},
{ shill::kStateReady, em::NetworkState::READY }, {shill::kStateReady, em::NetworkState::READY},
{ shill::kStatePortal, em::NetworkState::PORTAL }, {shill::kStatePortal, em::NetworkState::PORTAL},
{ shill::kStateOffline, em::NetworkState::OFFLINE }, {shill::kStateOffline, em::NetworkState::OFFLINE},
{ shill::kStateOnline, em::NetworkState::ONLINE }, {shill::kStateOnline, em::NetworkState::ONLINE},
{ shill::kStateDisconnect, em::NetworkState::DISCONNECT }, {shill::kStateDisconnect, em::NetworkState::DISCONNECT},
{ shill::kStateFailure, em::NetworkState::FAILURE }, {shill::kStateFailure, em::NetworkState::FAILURE},
{ shill::kStateActivationFailure, {shill::kStateActivationFailure, em::NetworkState::ACTIVATION_FAILURE},
em::NetworkState::ACTIVATION_FAILURE },
}; };
chromeos::NetworkStateHandler::DeviceStateList device_list; chromeos::NetworkStateHandler::DeviceStateList device_list;
...@@ -1549,9 +1548,8 @@ bool DeviceStatusCollector::GetAndroidStatus( ...@@ -1549,9 +1548,8 @@ bool DeviceStatusCollector::GetAndroidStatus(
std::string DeviceStatusCollector::GetAppVersion( std::string DeviceStatusCollector::GetAppVersion(
const std::string& kiosk_app_id) { const std::string& kiosk_app_id) {
Profile* const profile = Profile* const profile = chromeos::ProfileHelper::Get()->GetProfileByUser(
chromeos::ProfileHelper::Get()->GetProfileByUser( user_manager::UserManager::Get()->GetActiveUser());
user_manager::UserManager::Get()->GetActiveUser());
const extensions::ExtensionRegistry* const registry = const extensions::ExtensionRegistry* const registry =
extensions::ExtensionRegistry::Get(profile); extensions::ExtensionRegistry::Get(profile);
const extensions::Extension* const extension = registry->GetExtensionById( const extensions::Extension* const extension = registry->GetExtensionById(
......
...@@ -91,11 +91,17 @@ const char kKioskAppId[] = "kiosk_app_id"; ...@@ -91,11 +91,17 @@ const char kKioskAppId[] = "kiosk_app_id";
const char kArcKioskPackageName[] = "com.test.kioskapp"; const char kArcKioskPackageName[] = "com.test.kioskapp";
const char kExternalMountPoint[] = "/a/b/c"; const char kExternalMountPoint[] = "/a/b/c";
const char kPublicAccountId[] = "public_user@localhost"; const char kPublicAccountId[] = "public_user@localhost";
const char kArcStatus[] = "{\"applications\":[ { " const char kArcStatus[] = R"(
"\"packageName\":\"com.android.providers.telephony\"," {
"\"versionName\":\"6.0.1\"," "applications":[
"\"permissions\": [\"android.permission.INTERNET\"] }]," {
"\"userEmail\":\"xxx@google.com\"}"; "packageName":"com.android.providers.telephony",
"versionName":"6.0.1",
"permissions":[ "android.permission.INTERNET" ]
}
],
"userEmail":"xxx@google.com"
})";
const char kDroidGuardInfo[] = "{\"droid_guard_info\":42}"; const char kDroidGuardInfo[] = "{\"droid_guard_info\":42}";
const char kShillFakeProfilePath[] = "/profile/user1/shill"; const char kShillFakeProfilePath[] = "/profile/user1/shill";
const char kShillFakeUserhash[] = "user1"; const char kShillFakeUserhash[] = "user1";
...@@ -182,7 +188,7 @@ class TestingDeviceStatusCollector : public policy::DeviceStatusCollector { ...@@ -182,7 +188,7 @@ class TestingDeviceStatusCollector : public policy::DeviceStatusCollector {
Time GetCurrentTime() override { Time GetCurrentTime() override {
int poll_interval = policy::DeviceStatusCollector::kIdlePollIntervalSeconds; int poll_interval = policy::DeviceStatusCollector::kIdlePollIntervalSeconds;
return baseline_time_ + return baseline_time_ +
TimeDelta::FromSeconds(poll_interval * baseline_offset_periods_++); TimeDelta::FromSeconds(poll_interval * baseline_offset_periods_++);
} }
private: private:
...@@ -390,9 +396,7 @@ class DeviceStatusCollectorTest : public testing::Test { ...@@ -390,9 +396,7 @@ class DeviceStatusCollectorTest : public testing::Test {
false); false);
} }
void TearDown() override { void TearDown() override { settings_helper_.RestoreProvider(); }
settings_helper_.RestoreProvider();
}
protected: protected:
void AddMountPoint(const std::string& mount_point) { void AddMountPoint(const std::string& mount_point) {
...@@ -1002,6 +1006,7 @@ TEST_F(DeviceStatusCollectorTest, VersionInfo) { ...@@ -1002,6 +1006,7 @@ TEST_F(DeviceStatusCollectorTest, VersionInfo) {
// Expect the version info to be reported by default. // Expect the version info to be reported by default.
GetStatus(); GetStatus();
EXPECT_TRUE(device_status_.has_browser_version()); EXPECT_TRUE(device_status_.has_browser_version());
EXPECT_TRUE(device_status_.has_channel());
EXPECT_TRUE(device_status_.has_os_version()); EXPECT_TRUE(device_status_.has_os_version());
EXPECT_TRUE(device_status_.has_firmware_version()); EXPECT_TRUE(device_status_.has_firmware_version());
EXPECT_TRUE(device_status_.has_tpm_version_info()); EXPECT_TRUE(device_status_.has_tpm_version_info());
...@@ -1011,6 +1016,7 @@ TEST_F(DeviceStatusCollectorTest, VersionInfo) { ...@@ -1011,6 +1016,7 @@ TEST_F(DeviceStatusCollectorTest, VersionInfo) {
settings_helper_.SetBoolean(chromeos::kReportDeviceVersionInfo, false); settings_helper_.SetBoolean(chromeos::kReportDeviceVersionInfo, false);
GetStatus(); GetStatus();
EXPECT_FALSE(device_status_.has_browser_version()); EXPECT_FALSE(device_status_.has_browser_version());
EXPECT_FALSE(device_status_.has_channel());
EXPECT_FALSE(device_status_.has_os_version()); EXPECT_FALSE(device_status_.has_os_version());
EXPECT_FALSE(device_status_.has_firmware_version()); EXPECT_FALSE(device_status_.has_firmware_version());
EXPECT_FALSE(device_status_.has_tpm_version_info()); EXPECT_FALSE(device_status_.has_tpm_version_info());
...@@ -1018,13 +1024,13 @@ TEST_F(DeviceStatusCollectorTest, VersionInfo) { ...@@ -1018,13 +1024,13 @@ TEST_F(DeviceStatusCollectorTest, VersionInfo) {
settings_helper_.SetBoolean(chromeos::kReportDeviceVersionInfo, true); settings_helper_.SetBoolean(chromeos::kReportDeviceVersionInfo, true);
GetStatus(); GetStatus();
EXPECT_TRUE(device_status_.has_browser_version()); EXPECT_TRUE(device_status_.has_browser_version());
EXPECT_TRUE(device_status_.has_channel());
EXPECT_TRUE(device_status_.has_os_version()); EXPECT_TRUE(device_status_.has_os_version());
EXPECT_TRUE(device_status_.has_firmware_version()); EXPECT_TRUE(device_status_.has_firmware_version());
EXPECT_TRUE(device_status_.has_tpm_version_info()); EXPECT_TRUE(device_status_.has_tpm_version_info());
// Check that the browser version is not empty. OS version & firmware // Check that the browser version is not empty. OS version & firmware don't
// don't have any reasonable values inside the unit test, so those // have any reasonable values inside the unit test, so those aren't checked.
// aren't checked.
EXPECT_NE("", device_status_.browser_version()); EXPECT_NE("", device_status_.browser_version());
} }
...@@ -1084,7 +1090,7 @@ TEST_F(DeviceStatusCollectorTest, TestVolumeInfo) { ...@@ -1084,7 +1090,7 @@ TEST_F(DeviceStatusCollectorTest, TestVolumeInfo) {
std::vector<em::VolumeInfo> expected_volume_info; std::vector<em::VolumeInfo> expected_volume_info;
int size = 12345678; int size = 12345678;
for (const auto& mount_info : for (const auto& mount_info :
DiskMountManager::GetInstance()->mount_points()) { DiskMountManager::GetInstance()->mount_points()) {
expected_mount_points.push_back(mount_info.first); expected_mount_points.push_back(mount_info.first);
} }
expected_mount_points.push_back(kExternalMountPoint); expected_mount_points.push_back(kExternalMountPoint);
...@@ -1249,7 +1255,7 @@ TEST_F(DeviceStatusCollectorTest, KioskAndroidReporting) { ...@@ -1249,7 +1255,7 @@ TEST_F(DeviceStatusCollectorTest, KioskAndroidReporting) {
GetStatus(); GetStatus();
EXPECT_EQ(kArcStatus, session_status_.android_status().status_payload()); EXPECT_EQ(kArcStatus, session_status_.android_status().status_payload());
EXPECT_EQ(kDroidGuardInfo, EXPECT_EQ(kDroidGuardInfo,
session_status_.android_status().droid_guard_info()); session_status_.android_status().droid_guard_info());
// Expect no User DM Token for kiosk sessions. // Expect no User DM Token for kiosk sessions.
EXPECT_FALSE(session_status_.has_user_dm_token()); EXPECT_FALSE(session_status_.has_user_dm_token());
} }
...@@ -1946,6 +1952,7 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitDisabledTest, ...@@ -1946,6 +1952,7 @@ TEST_F(ConsumerDeviceStatusCollectorTimeLimitDisabledTest,
// Should only report OS version. // Should only report OS version.
EXPECT_TRUE(device_status_.has_os_version()); EXPECT_TRUE(device_status_.has_os_version());
EXPECT_FALSE(device_status_.has_browser_version()); EXPECT_FALSE(device_status_.has_browser_version());
EXPECT_FALSE(device_status_.has_channel());
EXPECT_FALSE(device_status_.has_firmware_version()); EXPECT_FALSE(device_status_.has_firmware_version());
EXPECT_FALSE(device_status_.has_tpm_version_info()); EXPECT_FALSE(device_status_.has_tpm_version_info());
} }
......
...@@ -82,7 +82,7 @@ void AppendAdditionalBrowserInformation(em::ChromeDesktopReportRequest* request, ...@@ -82,7 +82,7 @@ void AppendAdditionalBrowserInformation(em::ChromeDesktopReportRequest* request,
version_info::GetVersionNumber()); version_info::GetVersionNumber());
// Set Chrome channel // Set Chrome channel
request->mutable_browser_report()->set_channel( request->mutable_browser_report()->set_channel(
static_cast<em::BrowserReport_Channel>(chrome::GetChannel())); policy::ConvertToProtoChannel(chrome::GetChannel()));
// Set Chrome executable path // Set Chrome executable path
request->mutable_browser_report()->set_executable_path(GetChromePath()); request->mutable_browser_report()->set_executable_path(GetChromePath());
......
...@@ -46,9 +46,9 @@ ...@@ -46,9 +46,9 @@
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
#include "base/mac/scoped_cftyperef.h" #include "base/mac/scoped_cftyperef.h"
#include "base/sys_info.h"
#include "base/strings/string_util.h" #include "base/strings/string_util.h"
#include "base/strings/sys_string_conversions.h" #include "base/strings/sys_string_conversions.h"
#include "base/sys_info.h"
#endif #endif
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
...@@ -57,6 +57,8 @@ ...@@ -57,6 +57,8 @@
namespace policy { namespace policy {
namespace em = enterprise_management;
std::string GetMachineName() { std::string GetMachineName() {
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
char hostname[HOST_NAME_MAX]; char hostname[HOST_NAME_MAX];
...@@ -156,4 +158,19 @@ std::string GetOSUsername() { ...@@ -156,4 +158,19 @@ std::string GetOSUsername() {
#endif #endif
} }
em::Channel ConvertToProtoChannel(version_info::Channel channel) {
switch (channel) {
case version_info::Channel::UNKNOWN:
return em::CHANNEL_UNKNOWN;
case version_info::Channel::CANARY:
return em::CHANNEL_CANARY;
case version_info::Channel::DEV:
return em::CHANNEL_DEV;
case version_info::Channel::BETA:
return em::CHANNEL_BETA;
case version_info::Channel::STABLE:
return em::CHANNEL_STABLE;
}
}
} // namespace policy } // namespace policy
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#include <string> #include <string>
#include "components/policy/policy_export.h" #include "components/policy/policy_export.h"
#include "components/policy/proto/device_management_backend.pb.h"
#include "components/version_info/channel.h"
namespace policy { namespace policy {
...@@ -28,6 +30,10 @@ POLICY_EXPORT std::string GetOSArchitecture(); ...@@ -28,6 +30,10 @@ POLICY_EXPORT std::string GetOSArchitecture();
// the domain, whereas on POSIX, this just returns the username. // the domain, whereas on POSIX, this just returns the username.
POLICY_EXPORT std::string GetOSUsername(); POLICY_EXPORT std::string GetOSUsername();
// Converts |version_info::Channel| to |enterprise_management::Channel|.
POLICY_EXPORT enterprise_management::Channel ConvertToProtoChannel(
version_info::Channel channel);
} // namespace policy } // namespace policy
#endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_UTIL_H_ #endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_CLOUD_POLICY_UTIL_H_
...@@ -748,6 +748,15 @@ message CPUTempInfo { ...@@ -748,6 +748,15 @@ message CPUTempInfo {
optional int32 cpu_temp = 2; optional int32 cpu_temp = 2;
} }
// Chrome release channel, shared for different reports.
enum Channel {
CHANNEL_UNKNOWN = 0;
CHANNEL_CANARY = 1;
CHANNEL_DEV = 2;
CHANNEL_BETA = 3;
CHANNEL_STABLE = 4;
}
// Report device level status. // Report device level status.
message DeviceStatusReportRequest { message DeviceStatusReportRequest {
reserved 4, 7, 13, 20; reserved 4, 7, 13, 20;
...@@ -807,6 +816,9 @@ message DeviceStatusReportRequest { ...@@ -807,6 +816,9 @@ message DeviceStatusReportRequest {
// TPM version information. // TPM version information.
optional TpmVersionInfo tpm_version_info = 21; optional TpmVersionInfo tpm_version_info = 21;
// Release channel (stable, beta, etc.).
optional Channel channel = 22;
} }
message OsUpdateStatus { message OsUpdateStatus {
...@@ -890,14 +902,7 @@ message BrowserReport { ...@@ -890,14 +902,7 @@ message BrowserReport {
// user agent. // user agent.
optional string browser_version = 1; optional string browser_version = 1;
// Chrome browser channel, // Release channel (stable, beta, etc.).
enum Channel {
UNKNOWN = 0;
CANARY = 1;
DEV = 2;
BETA = 3;
STABLE = 4;
}
optional Channel channel = 2; optional Channel channel = 2;
// Required. The path to the browser executable so that we can uniquely // Required. The path to the browser executable so that we can uniquely
......
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