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

Unified Diff: chrome/browser/ui/ash/system_tray_delegate_chromeos.cc

Issue 2493973003: Display "Restart to update" dialog to Chrome OS users. (Closed)
Patch Set: Display "Restart to update" dialog to Chrome OS users. Created 4 years 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/ash/system_tray_delegate_chromeos.cc
diff --git a/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc b/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc
index d07ce2fa923a24906645d66ff2193cbaebc095d7..72bfb784e8096565dd96c656b35c562a34932029 100644
--- a/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc
+++ b/chrome/browser/ui/ash/system_tray_delegate_chromeos.cc
@@ -109,6 +109,9 @@ const int kSessionLengthLimitMinMs = 30 * 1000; // 30 seconds.
// The maximum session length limit that can be set.
const int kSessionLengthLimitMaxMs = 24 * 60 * 60 * 1000; // 24 hours.
+// A pointer so that callers can access the single class instance.
+SystemTrayDelegateChromeOS* g_instance = nullptr;
+
void ExtractIMEInfo(const input_method::InputMethodDescriptor& ime,
const input_method::InputMethodUtil& util,
ash::IMEInfo* info) {
@@ -173,6 +176,9 @@ SystemTrayDelegateChromeOS::SystemTrayDelegateChromeOS()
base::Unretained(this)));
user_manager::UserManager::Get()->AddSessionStateObserver(this);
+
+ DCHECK(!g_instance);
+ g_instance = this;
}
void SystemTrayDelegateChromeOS::Initialize() {
@@ -222,6 +228,9 @@ void SystemTrayDelegateChromeOS::InitializeOnAdapterReady(
}
SystemTrayDelegateChromeOS::~SystemTrayDelegateChromeOS() {
+ DCHECK_EQ(this, g_instance);
+ g_instance = nullptr;
+
// Unregister PrefChangeRegistrars.
local_state_registrar_.reset();
user_pref_registrar_.reset();
@@ -315,6 +324,10 @@ bool SystemTrayDelegateChromeOS::IsUserChild() const {
void SystemTrayDelegateChromeOS::GetSystemUpdateInfo(
ash::UpdateInfo* info) const {
GetUpdateInfo(UpgradeDetector::GetInstance(), info);
+ // If a flash component update is available, force the tray to show the user
+ // the Restart to Update dialog.
+ if (flash_update_available_)
+ info->update_required = true;
}
bool SystemTrayDelegateChromeOS::ShouldShowSettings() const {
@@ -1006,4 +1019,21 @@ ash::SystemTrayDelegate* CreateSystemTrayDelegate() {
return new SystemTrayDelegateChromeOS();
}
+// static
+SystemTrayDelegateChromeOS* SystemTrayDelegateChromeOS::Get() {
James Cook 2016/12/01 20:41:13 nit: reorder this function (and the ones below) to
Greg K 2016/12/02 01:07:32 Done.
+ return g_instance;
+}
+
+void SystemTrayDelegateChromeOS::SetFlashUpdateAvailable() {
+ flash_update_available_ = true;
+
+ ash::UpdateInfo info;
+ GetSystemUpdateInfo(&info);
+ GetSystemTrayNotifier()->NotifyUpdateRecommended(info);
+}
+
+bool SystemTrayDelegateChromeOS::GetFlashUpdateAvailable() {
+ return flash_update_available_;
+}
+
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698