- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / features / feature_channel.h
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.
4
5 #ifndef CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_
6 #define CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_
7
8 #include "chrome/common/chrome_version_info.h"
9
10 namespace extensions {
11
12 // Gets the current channel as seen by the Feature system.
13 chrome::VersionInfo::Channel GetCurrentChannel();
14
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);
19
20 // Gets the default channel as seen by the Feature system.
21 chrome::VersionInfo::Channel GetDefaultChannel();
22
23 // Scoped channel setter. Use for tests.
24 class ScopedCurrentChannel {
25  public:
26   explicit ScopedCurrentChannel(chrome::VersionInfo::Channel channel)
27       : original_channel_(chrome::VersionInfo::CHANNEL_UNKNOWN) {
28     original_channel_ = GetCurrentChannel();
29     SetCurrentChannel(channel);
30   }
31
32   ~ScopedCurrentChannel() {
33     SetCurrentChannel(original_channel_);
34   }
35
36  private:
37   chrome::VersionInfo::Channel original_channel_;
38 };
39
40 }  // namespace extensions
41
42 #endif  // CHROME_COMMON_EXTENSIONS_FEATURES_FEATURE_CHANNEL_H_