Index: chrome/browser/upgrade_detector.h |
=================================================================== |
--- chrome/browser/upgrade_detector.h (revision 0) |
+++ chrome/browser/upgrade_detector.h (revision 0) |
@@ -0,0 +1,57 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef CHROME_BROWSER_UPGRADE_DETECTOR_H_ |
+#define CHROME_BROWSER_UPGRADE_DETECTOR_H_ |
+ |
+#include "base/singleton.h" |
+#include "base/timer.h" |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
+// UpgradeDetector |
+// |
+// This class is a singleton class that monitors when an upgrade happens in the |
+// background. We basically ask Omaha what it thinks the latest version is and |
+// if our version is lower we send out a notification upon: |
+// a) Detecting an upgrade and... |
+// b) When we think the user should be notified about the upgrade. |
+// The latter happens much later, since we don't want to be too annoying. |
+// |
+class UpgradeDetector { |
+ public: |
+ ~UpgradeDetector(); |
+ |
+ bool notify_upgrade() { return notify_upgrade_; } |
+ |
+ private: |
+ UpgradeDetector(); |
+ friend struct DefaultSingletonTraits<UpgradeDetector>; |
+ |
+ // Checks with Omaha if we have the latest version. If not, sends out a |
+ // notification and starts a one shot timer to wait until notifying the |
+ // user. |
+ void CheckForUpgrade(); |
+ |
+ // The function that sends out a notification (after a certain time has |
+ // elapsed) that lets the rest of the UI know we should start notifying the |
+ // user that a new version is available. |
+ void NotifyOnUpgrade(); |
+ |
+ // We periodically check to see if Chrome has been upgraded. |
+ base::RepeatingTimer<UpgradeDetector> detect_upgrade_timer_; |
+ |
+ // After we detect an upgrade we wait a set time before notifying the user. |
+ base::OneShotTimer<UpgradeDetector> upgrade_notification_timer_; |
+ |
+ // Whether we have detected an upgrade happening while we were running. |
+ bool upgrade_detected_; |
+ |
+ // Whether we have waited long enough after detecting an upgrade (to see |
+ // is we should start nagging about upgrading). |
+ bool notify_upgrade_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(UpgradeDetector); |
+}; |
+ |
+#endif // CHROME_BROWSER_UPGRADE_DETECTOR_H_ |
Property changes on: chrome\browser\upgrade_detector.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |