Index: chrome/browser/upgrade_detector_impl.h |
diff --git a/chrome/browser/upgrade_detector_impl.h b/chrome/browser/upgrade_detector_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ee6e3fae51ca511c140aa5a832eaf6d909f7728c |
--- /dev/null |
+++ b/chrome/browser/upgrade_detector_impl.h |
@@ -0,0 +1,57 @@ |
+// Copyright (c) 2011 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_IMPL_H_ |
+#define CHROME_BROWSER_UPGRADE_DETECTOR_IMPL_H_ |
+#pragma once |
+ |
+#include "base/timer.h" |
+#include "chrome/browser/upgrade_detector.h" |
+ |
+template <typename T> struct DefaultSingletonTraits; |
+ |
+class UpgradeDetectorImpl : public UpgradeDetector { |
+ public: |
+ virtual ~UpgradeDetectorImpl(); |
+ |
+ // Returns the singleton instance. |
+ static UpgradeDetectorImpl* GetInstance(); |
+ |
+ private: |
+ friend struct DefaultSingletonTraits<UpgradeDetectorImpl>; |
+ |
+ UpgradeDetectorImpl(); |
+ |
+ // Launches a task on the file thread to check if we have the latest version. |
+ void CheckForUpgrade(); |
+ |
+ // Sends out a notification and starts a one shot timer to wait until |
+ // notifying the user. |
+ void UpgradeDetected(); |
+ |
+ // 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<UpgradeDetectorImpl> detect_upgrade_timer_; |
+ |
+ // After we detect an upgrade we start a recurring timer to see if enough time |
+ // has passed and we should start notifying the user. |
+ base::RepeatingTimer<UpgradeDetectorImpl> upgrade_notification_timer_; |
+ |
+ // We use this factory to create callback tasks for UpgradeDetected. We pass |
+ // the task to the actual upgrade detection code, which is in |
+ // DetectUpgradeTask. |
+ ScopedRunnableMethodFactory<UpgradeDetectorImpl> method_factory_; |
+ |
+ // True if this build is a dev or canary channel build. |
+ bool is_unstable_channel_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(UpgradeDetectorImpl); |
+}; |
+ |
+ |
+#endif // CHROME_BROWSER_UPGRADE_DETECTOR_IMPL_H_ |