| Index: chrome/browser/upgrade_detector.cc
|
| diff --git a/chrome/browser/upgrade_detector.cc b/chrome/browser/upgrade_detector.cc
|
| index 0dde1e93e1736b6f8c9b0b3077add36366fc9143..f19a6f6fa704dc7bdf737ff5ea22121a2c2d1d76 100644
|
| --- a/chrome/browser/upgrade_detector.cc
|
| +++ b/chrome/browser/upgrade_detector.cc
|
| @@ -14,6 +14,7 @@
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "chrome/browser/chrome_thread.h"
|
| +#include "chrome/browser/platform_util.h"
|
| #include "chrome/browser/prefs/pref_service.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/chrome_version_info.h"
|
| @@ -34,9 +35,26 @@
|
| namespace {
|
|
|
| // How often to check for an upgrade.
|
| -// TODO(finnur): Once we have a good way of determining which branch the user
|
| -// is on at runtime we should check more frequently for the dev branch.
|
| -const int kCheckForUpgradeEveryMs = 24 * 60 * 60 * 1000; // Check daily.
|
| +int GetCheckForUpgradeEveryMs() {
|
| + // Check for a value passed via the command line.
|
| + int interval_ms;
|
| + const CommandLine& cmd_line = *CommandLine::ForCurrentProcess();
|
| + std::string interval =
|
| + cmd_line.GetSwitchValueASCII(switches::kCheckForUpdateIntervalSec);
|
| + if (!interval.empty() && base::StringToInt(interval, &interval_ms))
|
| + return interval_ms * 1000; // Command line value is in seconds.
|
| +
|
| + // Otherwise check once an hour for dev channel and once a day for all other
|
| + // channels/builds.
|
| + const std::string channel = platform_util::GetVersionStringModifier();
|
| + int hours;
|
| + if (channel == "dev")
|
| + hours = 1;
|
| + else
|
| + hours = 24;
|
| +
|
| + return hours * 60 * 60 * 1000;
|
| +}
|
|
|
| // How long to wait before notifying the user about the upgrade.
|
| const int kNotifyUserAfterMs = 0;
|
| @@ -147,15 +165,8 @@ UpgradeDetector::UpgradeDetector()
|
| if (keystone_glue::KeystoneEnabled())
|
| #endif
|
| {
|
| - int interval_ms = kCheckForUpgradeEveryMs;
|
| - const CommandLine& cmd_line = *CommandLine::ForCurrentProcess();
|
| - std::string interval =
|
| - cmd_line.GetSwitchValueASCII(switches::kCheckForUpdateIntervalSec);
|
| - if (!interval.empty() && base::StringToInt(interval, &interval_ms))
|
| - interval_ms *= 1000; // Command line value is in seconds.
|
| -
|
| detect_upgrade_timer_.Start(
|
| - base::TimeDelta::FromMilliseconds(interval_ms),
|
| + base::TimeDelta::FromMilliseconds(GetCheckForUpgradeEveryMs()),
|
| this, &UpgradeDetector::CheckForUpgrade);
|
| }
|
| #endif
|
|
|