1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_
6 #define CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_
8 #include "chrome/common/chrome_version_info.h"
10 namespace extensions
{
12 // Gets the current channel as seen by the Feature system.
13 chrome::VersionInfo::Channel
GetCurrentChannel();
15 // Sets the current channel as seen by the Feature system. In the browser
16 // process this should be chrome::VersionInfo::GetChannel(), and in the
17 // renderer this will need to come from an IPC.
18 void SetCurrentChannel(chrome::VersionInfo::Channel channel
);
20 // Gets the default channel as seen by the Feature system.
21 chrome::VersionInfo::Channel
GetDefaultChannel();
23 // Scoped channel setter. Use for tests.
24 class ScopedCurrentChannel
{
26 explicit ScopedCurrentChannel(chrome::VersionInfo::Channel channel
)
27 : original_channel_(chrome::VersionInfo::CHANNEL_UNKNOWN
) {
28 original_channel_
= GetCurrentChannel();
29 SetCurrentChannel(channel
);
32 ~ScopedCurrentChannel() {
33 SetCurrentChannel(original_channel_
);
37 chrome::VersionInfo::Channel original_channel_
;
40 } // namespace extensions
42 #endif // CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_