| Index: chromeos/dbus/update_engine_client.cc
|
| diff --git a/chromeos/dbus/update_engine_client.cc b/chromeos/dbus/update_engine_client.cc
|
| index f1866f5cfb99a0acf9c36d9b968553bc56aecd9d..e3602561594b7f266eddb19adc0cdeb2f9c65f72 100644
|
| --- a/chromeos/dbus/update_engine_client.cc
|
| +++ b/chromeos/dbus/update_engine_client.cc
|
| @@ -4,9 +4,12 @@
|
|
|
| #include "chromeos/dbus/update_engine_client.h"
|
|
|
| +#include <algorithm>
|
| +
|
| #include "base/bind.h"
|
| #include "base/callback.h"
|
| #include "base/command_line.h"
|
| +#include "base/macros.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/strings/string_util.h"
|
| #include "chromeos/chromeos_switches.h"
|
| @@ -24,6 +27,11 @@ const char kReleaseChannelDev[] = "dev-channel";
|
| const char kReleaseChannelBeta[] = "beta-channel";
|
| const char kReleaseChannelStable[] = "stable-channel";
|
|
|
| +// List of release channels ordered by stability.
|
| +const char* kReleaseChannelsList[] = {kReleaseChannelDev,
|
| + kReleaseChannelBeta,
|
| + kReleaseChannelStable};
|
| +
|
| // Delay between successive state transitions during AU.
|
| const int kStateTransitionDefaultDelayMs = 3000;
|
|
|
| @@ -66,9 +74,8 @@ void EmptyUpdateCheckCallbackBody(
|
| }
|
|
|
| bool IsValidChannel(const std::string& channel) {
|
| - return channel == kReleaseChannelDev ||
|
| - channel == kReleaseChannelBeta ||
|
| - channel == kReleaseChannelStable;
|
| + return channel == kReleaseChannelDev || channel == kReleaseChannelBeta ||
|
| + channel == kReleaseChannelStable;
|
| }
|
|
|
| } // namespace
|
| @@ -561,4 +568,17 @@ UpdateEngineClient* UpdateEngineClient::Create(
|
| return new UpdateEngineClientStubImpl();
|
| }
|
|
|
| +// static
|
| +bool UpdateEngineClient::IsTargetChannelMoreStable(
|
| + const std::string& current_channel,
|
| + const std::string& target_channel) {
|
| + auto cix = std::find(kReleaseChannelsList,
|
| + kReleaseChannelsList + arraysize(kReleaseChannelsList),
|
| + current_channel);
|
| + auto tix = std::find(kReleaseChannelsList,
|
| + kReleaseChannelsList + arraysize(kReleaseChannelsList),
|
| + target_channel);
|
| + return tix > cix;
|
| +}
|
| +
|
| } // namespace chromeos
|
|
|