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

Unified Diff: chrome/browser/ui/webui/help/version_updater_chromeos.cc

Issue 476983002: About page should not automatically trigger OS updates (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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/ui/webui/help/version_updater_chromeos.cc
diff --git a/chrome/browser/ui/webui/help/version_updater_chromeos.cc b/chrome/browser/ui/webui/help/version_updater_chromeos.cc
index e6c2f2afe8fa893afd418ce55719ccaf8c843c4f..03822b49e6fb94fa699fb92ae4c0031b9719efc1 100644
--- a/chrome/browser/ui/webui/help/version_updater_chromeos.cc
+++ b/chrome/browser/ui/webui/help/version_updater_chromeos.cc
@@ -73,19 +73,13 @@ bool IsAutoUpdateDisabled() {
return update_disabled;
}
-} // namespace
-
-VersionUpdater* VersionUpdater::Create() {
- return new VersionUpdaterCros;
-}
-
-void VersionUpdaterCros::CheckForUpdate(const StatusCallback& callback) {
- callback_ = callback;
-
+// Returns whether an update is allowed. If not, it calls the callback with
+// the appropriate status.
+bool EnsureCanUpdate(const VersionUpdater::StatusCallback& callback) {
if (IsAutoUpdateDisabled()) {
- callback_.Run(FAILED, 0,
- l10n_util::GetStringUTF16(IDS_UPGRADE_DISABLED_BY_POLICY));
- return;
+ callback.Run(VersionUpdater::FAILED, 0,
+ l10n_util::GetStringUTF16(IDS_UPGRADE_DISABLED_BY_POLICY));
+ return false;
}
chromeos::NetworkStateHandler* network_state_handler =
@@ -93,25 +87,55 @@ void VersionUpdaterCros::CheckForUpdate(const StatusCallback& callback) {
const chromeos::NetworkState* network =
network_state_handler->DefaultNetwork();
- // Don't proceed to update if we're currently offline or connected
+ // Don't allow an update if we're currently offline or connected
// to a network for which updates are disallowed.
NetworkStatus status = GetNetworkStatus(network);
if (status == NETWORK_STATUS_OFFLINE) {
- callback_.Run(FAILED_OFFLINE, 0,
+ callback.Run(VersionUpdater::FAILED_OFFLINE, 0,
l10n_util::GetStringUTF16(IDS_UPGRADE_OFFLINE));
- return;
+ return false;
} else if (status == NETWORK_STATUS_DISALLOWED) {
base::string16 message =
l10n_util::GetStringFUTF16(
IDS_UPGRADE_DISALLOWED,
help_utils_chromeos::GetConnectionTypeAsUTF16(network->type()));
- callback_.Run(FAILED_CONNECTION_TYPE_DISALLOWED, 0, message);
- return;
+ callback.Run(VersionUpdater::FAILED_CONNECTION_TYPE_DISALLOWED, 0, message);
+ return false;
}
+ return true;
+}
+
+} // namespace
+
+VersionUpdater* VersionUpdater::Create() {
+ return new VersionUpdaterCros;
+}
+
+void VersionUpdaterCros::GetUpdateStatus(const StatusCallback& callback) {
+ callback_ = callback;
+ if (!EnsureCanUpdate(callback))
+ return;
+
+ UpdateEngineClient* update_engine_client =
+ DBusThreadManager::Get()->GetUpdateEngineClient();
+ if (!update_engine_client->HasObserver(this))
+ update_engine_client->AddObserver(this);
+
+ this->UpdateStatusChanged(
+ DBusThreadManager::Get()->GetUpdateEngineClient()->GetLastStatus());
+}
+
+void VersionUpdaterCros::CheckForUpdate(const StatusCallback& callback) {
+ callback_ = callback;
+
+ if (!EnsureCanUpdate(callback))
+ return;
+
UpdateEngineClient* update_engine_client =
DBusThreadManager::Get()->GetUpdateEngineClient();
- update_engine_client->AddObserver(this);
+ if (!update_engine_client->HasObserver(this))
michaelpg 2014/08/14 22:52:57 Note that this is an existing "bug" (a NOT_REACHED
+ update_engine_client->AddObserver(this);
// Make sure that libcros is loaded and OOBE is complete.
if (!WizardController::default_controller() ||

Powered by Google App Engine
This is Rietveld 408576698