Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(935)

Unified Diff: chrome/browser/chromeos/login/version_info_updater.cc

Issue 9836039: Add reporting notification to the enterprise banner on the CrOS login screen. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments. Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/version_info_updater.cc
diff --git a/chrome/browser/chromeos/login/version_info_updater.cc b/chrome/browser/chromeos/login/version_info_updater.cc
index 72c068ba0bcfa19e51d0ad1a0f055ed525596bb1..c9b5b8e67ef8a04db1096b9218dc175d8ba1dca4 100644
--- a/chrome/browser/chromeos/login/version_info_updater.cc
+++ b/chrome/browser/chromeos/login/version_info_updater.cc
@@ -16,8 +16,11 @@
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
+#include "chrome/browser/chromeos/cros_settings.h"
+#include "chrome/browser/chromeos/cros_settings_names.h"
#include "chrome/browser/policy/browser_policy_connector.h"
#include "chrome/browser/profiles/profile_manager.h"
+#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_version_info.h"
#include "googleurl/src/gurl.h"
#include "grit/chromium_strings.h"
@@ -29,11 +32,23 @@
namespace chromeos {
+namespace {
+
+const char* kReportingFlags[] = {
+ chromeos::kReportDeviceVersionInfo,
+ chromeos::kReportDeviceActivityTimes,
+ chromeos::kReportDeviceBootMode,
+};
+
+}
+
///////////////////////////////////////////////////////////////////////////////
// VersionInfoUpdater public:
VersionInfoUpdater::VersionInfoUpdater(Delegate* delegate)
- : delegate_(delegate) {
+ : enterprise_reporting_hint_(false),
+ cros_settings_(chromeos::CrosSettings::Get()),
+ delegate_(delegate) {
}
VersionInfoUpdater::~VersionInfoUpdater() {
@@ -72,6 +87,10 @@ void VersionInfoUpdater::StartUpdate(bool is_official_build) {
// is already fetched and has finished initialization.
UpdateEnterpriseInfo();
}
+
+ // Watch for changes to the reporting flags.
+ for (unsigned int i = 0; i < arraysize(kReportingFlags); ++i)
+ cros_settings_->AddSettingsObserver(kReportingFlags[i], this);
}
void VersionInfoUpdater::UpdateVersionLabel() {
@@ -144,15 +163,29 @@ void VersionInfoUpdater::UpdateEnterpriseInfo() {
}
}
- SetEnterpriseInfo(policy_connector->GetEnterpriseDomain(), status_text);
+ bool reporting_hint = false;
+ for (unsigned int i = 0; i < arraysize(kReportingFlags); ++i) {
+ bool enabled = false;
+ if (cros_settings_->GetBoolean(kReportingFlags[i], &enabled) && enabled) {
+ reporting_hint = true;
+ break;
+ }
+ }
+
+ SetEnterpriseInfo(policy_connector->GetEnterpriseDomain(),
+ status_text,
+ reporting_hint);
}
void VersionInfoUpdater::SetEnterpriseInfo(const std::string& domain_name,
- const std::string& status_text) {
+ const std::string& status_text,
+ bool reporting_hint) {
if (domain_name != enterprise_domain_text_ ||
- status_text != enterprise_status_text_) {
+ status_text != enterprise_status_text_ ||
+ reporting_hint != enterprise_reporting_hint_) {
enterprise_domain_text_ = domain_name;
enterprise_status_text_ = status_text;
+ enterprise_reporting_hint_ = enterprise_reporting_hint_;
UpdateVersionLabel();
// Update the notification about device status reporting.
@@ -162,7 +195,7 @@ void VersionInfoUpdater::SetEnterpriseInfo(const std::string& domain_name,
enterprise_info = l10n_util::GetStringFUTF8(
IDS_LOGIN_MANAGED_BY_NOTICE,
UTF8ToUTF16(enterprise_domain_text_));
- delegate_->OnEnterpriseInfoUpdated(enterprise_info);
+ delegate_->OnEnterpriseInfoUpdated(enterprise_info, reporting_hint);
}
}
}
@@ -214,4 +247,14 @@ void VersionInfoUpdater::OnPolicyStateChanged(
UpdateEnterpriseInfo();
}
+void VersionInfoUpdater::Observe(
+ int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) {
+ if (type == chrome::NOTIFICATION_SYSTEM_SETTING_CHANGED)
+ UpdateEnterpriseInfo();
+ else
+ NOTREACHED();
+}
+
} // namespace chromeos
« no previous file with comments | « chrome/browser/chromeos/login/version_info_updater.h ('k') | chrome/browser/resources/chromeos/login/display_manager.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698